задача решена с минимумом энергозатрат
так:
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);
}