1cfresh api - создание и получение данных
Столкнулся с необходимостью поработать с облачной версией 1С (1cfresh). Нужно через api создавать счета, получать контрагентов, сгенерированные документы для печати и получать поступления. Основная проблема в документации. Она вроде бы есть, но переварить её выходит с большим трудом. Удалось получить контрагентов через oData. Но счета таким образом не возвращаются (ошибка Сегмент пути ОсновнойБанковскийСчет не найден!). Так же через oData не добавляются данные (ошибка 403 Forbidden)
Возможно у кого-то есть опыт взаимодействия с этим продуктом или примеры кода, или адекватная документация. Буду крайне признателен за помощь
Ответы (1 шт):
oData. Проблема была в том, что связи у объектов нужно подтягивать с помощью $expand=, т.е. что бы получить любую сущность нужно составить подобный запрос:
//odata/standard.odata/Catalog_Валюты?$expand=*&$select=*
В ответ вернется сущность со всеми связями.
Сюда же ограничение на изменение данных. Для 1c fresh oData работает только в режиме чтения.
Что бы что-то изменить необходимо использовать механизм интеграции объектов, который работает через механизм DataTransfer.
В целом вот неплохой пример на питоне из документации: https://its.1c.ru/db/fresh#content:25756595:hdoc
В чем суть, вкратце:
- нужно сгенерировать документ в соответствии с одним из форматов (EnterpriseData, DirectBank, 1CClientBankExchange)
- упаковать этот документ в zip архив, добавив к нему манифест
- инициировать сессию DataTransfer
- выгрузить файл
- дождаться его обработки на стороне 1С
Еще из полезного:
Описание формата EnterpriseData: https://its.1c.ru/db/metod8dev#content:5934:hdoc
Документация по oData: https://its.1c.ru/db/v8319doc#bookmark:dev:TI000001358
Надеюсь, кому-то это поможет