Задать вопрос

Как отправить/поучить файл через OData REST API 1С?

Работаю с REST API OData в 1С. С созданием/получением объектов проблем нет.
Но столкнулся с проблемой при добавлении/получении файлов через этот интерфейс.
Создаю объект в "Catalog_ДоговорыКонтрагентовПрисоединенныеФайлы" - создается объект без проблем.
Если посмотреть в $metadata - у объекта есть следующие параметры:
...
<Property Name="Расширение" Type="Edm.String" Nullable="true" />
<Property Name="ТекстХранилище_Base64Data" Type="Edm.Binary" Nullable="true" />
<Property Name="ФайлХранилище_Base64Data" Type="Edm.Binary" Nullable="true" />
<Property Name="ТекстХранилище" Type="Edm.Stream" Nullable="true" />
<Property Name="ФайлХранилище" Type="Edm.Stream" Nullable="true" />
...

Значит, на сколько я понимаю, содержимое файла нужно отправлять через эти параметры.
Пробовал передавать содержимое файла в каждом из этих параметров и в base64 и просто - ничего не получается.
В 1С в присоединенных файлах договора файл отображается, но при попытке открыть его выдает ошибку, что "Файл не найден в хранилище файлов".
Также не удается получить содержимое файла (созданного в этом же справочнике через 1С) через REST.
Пытался запрашивать:
Catalog_ДоговорыКонтрагентовПрисоединенныеФайлы(guid'GUID')/ТекстХранилище
Catalog_ДоговорыКонтрагентовПрисоединенныеФайлы(guid'GUID')/ФайлХранилище
Ничего не возвращает.

Может кто-то работал с файлами через OData, и, в частности, с REST API 1C, подскажите как это сделать?

upd
Разобрался как добавить/получить файл через OData.
При создании записи в справочнике в параметре "ФайлХранилище_Type" указываем mime-type файл (например image/jpeg), в "ФайлХранилище_Base64Data" пихаем содержимое файла, закодированное в base64.
После этого через OData можно получить файл двумя способами:
1. .../Catalog_ДоговорыКонтрагентовПрисоединенныеФайлы(guid'GUID')/ФайлХранилище - возвращает сам файл
2. .../Catalog_ДоговорыКонтрагентовПрисоединенныеФайлы(guid'GUID')/ФайлХранилище_Base64Data/$value - возвращает содержимое файла, кодированное в base64
Но! При этом все равно этот файл не открывается через 1С, и выдает прежнюю ошибку, равно как и добавленные через 1С файлы не удается получить через OData - в "ФайлХранилище_Base64Data" просто пусто!
  • Вопрос задан
  • 7431 просмотр
Подписаться 3 Оценить Комментировать
Решения вопроса 1
ovaunit
@ovaunit Автор вопроса
С решением вопроса помогли на Infostart`е.
Кому интересно - смотреть тут
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы