Описание текущей ситуации
В стандартной поставке дистрибутива Айко присутствует внешняя обработка, которая позволяет загружать данные в типовую Бухгалтерию. Данные могут передаваться через выгруженные файлы, либо через непосредственное подключение к серверу Айко с использование внешней компоненты, разработанной по технологии COM (со всеми вытекающими преимуществами и ограничениями).
Вроде неплохо. Внешнюю обработку можно немного доработать для работы в фоне по расписанию, а проблемы с установкой внешней компоненты случаются в основном в облачных сервисах и особо не проявляются, если одинэс живет внутри организации. Конечно же на этом этапе существует ряд "НО". К примеру нам недоступно использование решений 1С Fresh, потому что внешняя обработки из поставки не проходит аудит облачного решения. На данный момент есть решение под 1С Fresh, работающее с небольшими ограничениями.
А что, если мы захотим передать данные обратно, из 1С в Айко? Данная потребность может показаться надуманной: кому нужно выгружать данные из системы для регламентированной отчетности в систему для управленческого учета сферы HoReCa? Как показала практика, постановка такого вопроса не редкость. Данная ситуация может произойти хотя бы потому, что база 1С с большей долей вероятности могла появиться раньше решения от Айко. Зачем вновь создавать стопицот номенклатурных позиций, когда они уже все есть в 1С?
Поиск источников вдохновения
Давайте попробуем для начала проанализировать, как можно обмениваться данными с Айко. Наблюдать будем глазами дилетанта одинэсника, который ничего не знает о сервере приложений Tomcat, но умеет пользоваться браузером и даже может запустить Fiddler.
Наблюдение 1
За отдельную плату существует возможность приобретения функционала API IIKO. Но это простой и неинтересный программистам путь, поэтому остановимся на пути без дополнительной оплаты. Даже в этом случае компания Айко предоставляет довольно обширную информацию по API, с которой можно ознакомиться на странице http://help.iiko.ru/articles/#!api-documentations/api . Здесь нас интересует как общая схема объектов Айко, так и XML схемы объектов.
Наблюдение 2
Запускаем Fiddler. Запускаем IIKO Office. Устанавливаем фильтр на процесс Айко. Изучаем язык общения приложения с сервером. Многие неочевидные и непонятные моменты можно подсмотреть именно так.
Наблюдение 3
У каждой установки Айко, будь то RMS или CHAIN, существует веб-часть по пути /resto. Зайти можно под учетной записью, которая используется для обычного входа в office. Внутри много интересных дополнений вроде всякого рода отчетов и импорта данных из CSV-файлов (например номенклатуры или технологических карт). Нас же в рамках обсуждаемой темы больше всего интересует /resto/service/maintance/sql.jsp . Данный скрипт позволяет формировать к серверу Айко что-то вроде SQL-запросов (пусть знатоки поправят).
Схема взаимодействия
Принимая во внимание описанные наблюдения и возможности современной платформы 1С, можно заключить, что нет никаких препятствий для формирования запросов к Айко прямо из 1С.
Примерная схема передачи документа Поступление из типовой Бухгалтерии в IIKO (Айко) может выглядеть следующим образом:
- Организуем подписку на события при изменении документа Поступления;
- В регистрации события фиксируем измененный документ в планы обмена;
- На основе XDTO документа Айко формируем XML-представление из документа Поступление;
- Отправляем HTTP-запрос на сервер;
- Обрабатываем ответ.
Конечно, такой алгоритм весьма упрощен и существует ряд нюансов по синхронизации справочных сведений обеих систем. Наша команда успешно реализовала двунаправленный обмен между учетными системами в фоновом режиме. Накопленный опыт позволил создать ядро универсального обмена данными. Унификация схемы позволяет легко масштабировать решение под широкий круг задач и в короткий срок реализовывать проект под конкретного заказчика.
Вместо заключения
Спасибо, если дочитали до конца. Надеюсь, изложенная информация поможет в решении вопросов автоматизации.
Если что-то не будет получаться, обращайтесь, буду рад помочь.
UPDATE
[25.06.2018][Добавлено] "Создаем номенклатурную позицию в IIKO (Айко) по данным из 1С". Описание процесса передачи данных из 1С в Айко с прикладной точки зрения. В конце статьи можно скачать внешнюю обработку, демонстрирующую описанную технологию.
[12.09.2018][Добавлено] "Из 1С в IIKO: Передаем перемещения УТ в приходные накладные". Рассмотрение прикладных вопросов, возникающие при реализации обмена.
[27.11.2018][Добавлено] "izi.cloud: Передаем поступления БП в приходные накладные IIKO без регистрации и смс". В статье рассмотрен вариант реализации создания приходных накладных IIKO из типовой Бухгалтерии предприятия 3.0 с использованием функционала сервиса izi.cloud. (обработка инсайд)
[31.01.2019][Добавлено] "Передаем накладные из 1С в IIKO (Айко)". Пошаговое руководство по выгрузке документов с использованием сервиса izi.cloud.
[21.06.2019][Добавлено] "Лайка - расширение 1С с хранением справочников IIKO вместо SQL-запросов". Реализация концепта получения справочных сведений из BackOffice IIKO без использования запросов SQL.
[01.08.2019][Добавлено] "Взросление Лайки - просматриваем накладные IIKO в 1С без выгрузок". Продолжение развития проекта Лайка - реализация просмотра накладных IIKO прямо внутри 1С.
[15.10.2020][Добавлено] "Учим Лайку новым трюкам: заказы с предоплатами, выгрузка накладных из 1С". Загрузка информации по заказам, предоплатам и создание накладных в один клик.