Имя: Пароль:
1C
1С v8
Загрузка присоединенного файла через OData
0 ernestoche29
 
29.03.25
14:56
Добрый день. Пытаюсь загрузить присоединенный файл к документу Счет от поставщика.

Застрял на стадии ФайлХранилище_Base64Data. Если я добавляю эту строку в тело JSON, сервер возвращает ошибку 500. В технологическом журнале подробностей нет, только Internal Server Error.
Запрос POST к Catalog_СчетНаОплатуПоставщикаПрисоединенныеФайлы.
В теле запроса передаю:

      "ДатаСоздания": _текущая дата в формате YYYY-mm-ddTHH:MM:SS,
     "ТипХраненияФайла": "ВИнформационнойБазе",
     "Description": "file.txt",
     "Расширение": "txt",
     "ВладелецФайла_Key": _guid документа Счет от поставщика,
     "ФайлХранилище_Type": _mime-тип_,
     "ФайлХранилище_Base64Data": _строка base64_


Если убираю ФайлХранилище_Type и ФайлХранилище_Base64Data - запрос отрабатывает, запись о файле появляется в документе.

Может, кто-то сталкивался? Много гуглил перед тем, как написать.
1 ernestoche29
 
29.03.25
15:36
Сделал "ФайлХранилище_Type": "application/octet-stream" - запрос отработал, файл появился в списке. При запросе GET в Catalog_СчетНаОплатуПоставщикаПрисоединенныеФайлы данные о файле показывает, ФайлХранилище_Base64Data - заполнено. Но при попытке открыть файл из документа Счет от поставщика получаю ошибку, что не удается открыть присоединенный файл, данные файла недоступны.

В регистре Сведения о файлах запись о файле появляется, но с нулевым размером. В регистре сведений Хранилище файлов записи о файле нет.
2 DiMel_77
 
29.03.25
16:02
(1) Я не специалист в OData, но реквизит "ФайлХранилище" справочников "ХХХПрисоединенныйФайл" вроде используется только при обмене по планам обменов?

Т.е. в этот реквизит помещаются данные с тома хранения при отправке данных подчиненному, а при получении данных извлекаются и пишутся в соответствии с типом хранения либо в том либо в регистр "ХранилищеФайлов". Другого применения этому реквизиту не встречал, но могу ошибаться.
Закон Брукера: Даже маленькая практика стоит большой теории.