Вступление
Здравствуйте.
Представляю вашему вниманию izi.cloud (Изи Клауд) - HTTP-сервис по созданию документов в IIKO из документов 1С.
На данный момент в сервисе реализовано 7 GET-методов (получение справочников):
- products - номенклатура, поля id, type, vcode, name, parent, unit
- productGroups - папки номенклатуры, поля id, code, parent, name
- units - единицы измерения, поля id, name
- stores - склады, поля id, code, name
- suppliers - поставщики, поля id, vendor_code, name
- departments - подразделения, поля id, code, name
- expenseAccounts - расходные счета для Актов списания, поля id, name
и 6 POST-методов (создание документов):
- IncomingInvoice - приходная накладная
- OutgoingInvoice - расходная накладная
- ReturnedInvoice - возвратная накладная
- InternalTransfer - внутреннее перемещение
- TreeMenuChangeDocument - приказ об изменении прейскуранта
- WriteoffDocument - акт списания
Детали
Возможно, дорогой коллега, ты уже знаком с предыдущими изысканиями на тему "Как из 1С передавать документы в IIKO, возможные варианты с алхимией и подпорками". Если нет, то неплохо бы ознакомиться, потому что некоторые фрагменты дальнейшего повествования могут показаться неочевидными.
- IIKO (Айко). Обмениваемся накладными с 1С
- Создаем номенклатурную позицию в IIKO (Айко) по данным из 1С
- Из 1С в IIKO: Передаем перемещения УТ в приходные накладные
Закругляемся с прелюдиями и переходим к сути.
Задача: Создавать в IIKO (RMS или CHAIN) документы на основании документов 1С.
Один из вариантов решения.
Наверняка многие, кто сталкивался со всякого рода обменами со сторонними системами, в курсе весьма примитивного, но в то же время действенного, механизма таблиц сопоставления. Для наполнения документа данными, учетной системе для начала нужно объяснить что и откуда брать, то бишь сопоставить данные справочников в обеих системах. Конечно, если существуют определенные условности, к примеру коды справочников совпадают или справочники одной системы заполняются на основании данных из другой, то данную процедуру можно автоматизировать. На практике, как правило, в большинстве случаев это не так, поэтому за основу предлагаемого решения и выбраны таблицы сопоставления.
Таким образом, необходимо сначала загрузить справочники для возможности сопоставления соответствующих полей (склад, контрагент и т. п.) и только потом уже формировать саму накладную.
izi.cloud не сохраняет никаких данных, обмен осуществляется по https и пароль не передается в открытом виде (для работы используются сессионные cookie и хэш). Кроме этого имеется standalone редакция, которая позволяет производить обмен внутри локальной сети.
К публикации приложена обработка, демонстрирующая передачу из Бухгалтерии предприятия 3.0 в IIKO:
- Поступление товаров и услуг → Приходная накладная;
- Реализация товаров и услуг → Расходная накладная;
- Возврат товаров поставщику → Возвратная накладная;
- Перемещение товаров → Внутреннее перемещение;
- Установка цен номенклатуры → Приказ об изменении прейскуранта;
Требование-накладная → Акт списания.
Для наполнения временных справочников IIKO в 1С, необходимо заполнить основные параметры подключения и нажать "Подключиться". Кроме настроек сети и данных авторизации, нужно знать, какой тип бэка развернут на сервере и какую он эксплуатирует СУБД (izi уже умеет MS SQL и PostgreSQL). В последней версии типы бэка и СУБД определяются автоматически. Об успешном завершении этапа будет свидетельствовать сообщение (см. картинку).
Далее через кнопку подбора можно определить перечень выгружаемых документов. По окончании заполняем таблицы сопоставления (кнопка "Заполнить таблицы"). Сопоставление - рутинный и малоинтересный процесс: заполнили таблицы реквизитами выбранных документов, ручками сопоставили с ранее загруженными значениями из IIKO. Чтобы этим мероприятием (построчным сопоставлением) не промышлять на регулярной основе, неплохо бы все это добро где-нибудь хранить (в обработке этого нет, но для смекалистого одинэсника не составит труда реализовать такой функционал).
После того, как все данные сопоставлены, жмем "Передать в IIKO". Далее можно перейти в IIKO и наблюдать свежеиспеченный документ.
Пару слов о внутренностях
Данные авторизации передаются в заголовках.
Обмен с сервисом осуществляется в формате JSON. К примеру, простейший документ "Приказ об изменении прейскуранта" в формате JSON может иметь следующий вид:
Таким образом, становится не важно, в какой системе формируется документ, что позволяет с наименьшими затратами адаптировать код к любому прикладному решению.
При обмене с IZI используется ZIP-сжатие передаваемых данных.
Версии программного обеспечения
Платформа - 1С:Предприятие 8.3 (8.3.11.2867). По идее подойдет и гораздо старше, начиная с появления методов для работы с HTTP, строковые функции типа СтрРазделить.
Конфигурация - Бухгалтерия предприятия, редакция 3.0 (3.0.52.36). Данная версия просто использовалась для разработки, однако не так много объектов прикладного решения было задействовано и обработка должна работать на многих других версиях без исправлений или с внесением минимальных корректировок.
IIKO - работа проверена на версиях, начиная с 4.5.4038 по 6.2.2015 (как Chain, так и RMS).
Сервер IIKO должен быть доступен извне, для возможности подключения к нему сервисом izi.cloud. При невозможности внешнего подключения для обмена используется standalone версия сервиса.
Вместо заключения
Спасибо всем, кто дочитал до конца. Приветствуются комментарии, замечания, указания на ошибки, предложения. Интересно узнать, насколько такой сервис актуален и существует ли необходимость в реализации создания других объектов IIKO ERP.