Основная идея программного создания объектов на сервере IIKO заключается в формировании запросов аналогичных запросам штатного клиента BackOffice.
Для понимания сути протокола обмена данными между клиентской и серверной частью IIKO достаточно воспользоваться любым доступным снифером HTTP-пакетов. Для простоты и из-за доступности далее для этих целей будет использоваться Fiddler.
Обмен осуществляется посредством XML-пакетов. К примеру, для создания номенклатурной позиции достаточно отправить HTTP POST-запрос в специально сформированным XML-пакетов в теле по адресу /resto/services/products?methodName=createProduct.
При создании многих объектов будь то справочник или документ, в XML-пакете требуется заполнение полей не только примитивных типов (строка, число или булево), но и ссылок на соответствующие объекты. К примеру, в пакете создания существует поле mainUnit, значением которого должен быть GUID соответствующей единицы измерения.
Для получения таких сведений предлагается использовать инструмент, входящий в набор скриптов администратора или специалиста по сопровождению, который позволяет выполнять SQL-запросы к данным сервера IIKO. Интересующий нас скрипт расположен по адресу /resto/service/maintance/sql.jsp .
Общая схема выгрузки
Принимая во внимание описанные наблюдения и возможности современной платформы 1С, можно заключить, что нет никаких препятствий для формирования запросов к IIKO прямо из 1С.
Примерная схема передачи документа из конфигурации 1С в IIKO (Айко) может выглядеть следующим образом:
- Организуем подписку на события при изменении документа;
- В регистрации события фиксируем измененный документ в планы обмена;
- На основе XDTO документа IIKO формируем XML-представление из документа 1С;
- Отправляем HTTP-запрос на сервер;
- Обрабатываем ответ.