Показать сообщение отдельно
Старый 07.02.2008, 19:20   #3  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
задача решена с минимумом энергозатрат
так:
1. документооборот настроен на хранение файлов в БД
2. при чтении/записи запускаем класс на сервере который открывает/сохраняет файл нужной нам в папке куда только у него есть доступ
чтение:
\Classes\DocuActionFile\saveTempFile
X++:
     //binData.setData(docuRef.docuValue().file);
     binData.setData(DocuActionServer::Load(docuRef.docuValue().fileName()));
запись:
\Data Dictionary\Tables\DocuValue\Methods\writeDocuValue
X++:
     //docuValue.file = binData.getData();
     DocuActionServer::Save(binData.getData(), docuValue.fileName());
DocuActionServer::Load()
X++:
server static container Load(Filename _filename)
{
    BinData bindata = new BinData();
    str     completeFileName = #Path + _fileName;
    ;

    if (WinApi::fileExists2(completeFileName))
        BinData.loadFile(completeFileName);
    else
        throw error("Не найден файл: " + completeFileName);

    return bindata.getData();
}
код DocuActionServer::Save()
X++:
server static boolean Save(container _file, FileName _fileName)
{
    BinData bindata = new BinData();
    ;

    BinData.setData(_file);

    if (!WinApi::folderExists(#Path))
        throw error("Не найден путь к папке: " + #Path);

    return bindata.saveFile(#Path + _fileName);
}
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy