Из 1С в IIKO: Передаем перемещения УТ в приходные накладные

Обмен - Обмен с другими системами

1
Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

Вступление

Здравствуйте, друзья. Меня зовут Тян Семен. В Лемме я отвечаю за обмен между IIKO и . За плечами нашего коллектива не только отточенный типовой обмен из Айко в 1С:Бухгалтерию, но и несколько успешно реализованных проектов по интеграции учетных систем: от загрузки документа "Учет рабочего времени" (не участвует в типовом обмене) в 1С:Зарплата и управление персоналом до регламентного фонового двустороннего обмена с доработанной для производства Бухгалтерией предприятия.

В цикле публикаций, посвященному консолидации IIKO и , рассматриваются альтернативные варианты обмена данными между учетными системами с целью решить вопросы, которые выходят за рамки типового решения.

В прошлых публикациях были рассмотрены нетиповые варианты обмена между учетными системами, а также создание номенклатуры из 1С в IIKO.

Постановка вопроса

Необходимо создать приходную накладную в IIKO на основании перемещения товаров из 1С:Управление торговлей. Цены формируем по последнему поступлению. Сопоставление справочных сведений производится в явном виде через специальные редактор, сопоставления сохраняются и восстанавливаются при последующих запусках.Выгрузка перемещение в IIKO

Реализация и подводные камни

Первый неочевидный момент, с которым пришлось столкнуться в ходе реализации, это необходимость сопоставления нескольких номенклатурных позиций с одной номенклатурной позицией Айко. Так происходит потому, что в Айко в разрезе технологических карт нецелесообразно вести несколько позиций составляющих (к примеру 3 вида сахара или 5 наименований сметаны). В то время, как в вполне естественно у нас присутствуют различные номенклатурные позиции от разных поставщиков и с разными ценами, объединенные одним типом (мука, масло, сахар и т. п.).

Вторая сложность, с которой мы столкнулись, это пустой ответ на запрос по описанной ранее схеме (см. IIKO (Айко). Обмениваемся накладными с 1С). Первая мысль - в свежей версии сервера IIKO отсутствовал необходимый функционал. Однако в ходе попыток установить корень проблемы выяснилось, что виновником был PostgreSQL. Точнее тот факт, что данную СУБД не так часто используют при развертывании IIKO (в основном это MS SQL). С учетом того, что сервер для разработки крутится на MS SQL, а боевой на PostgreSQL, данный факт сулил определенные неудобства. Решение пришло само собой - определять СУБД "на лету" при первом же запросе, а в последствии формировать запрос соответствующий типу.Ошибка PostgreSQL

Третий вопрос, который необходимо было решить в ходе реализации, это преобразование различных единиц измерения - как в случае, к примеру, сопоставления 3х различных номенклатурных позиций в штуках (пачки по 500, 750 и 800 грамм) преобразовывать в граммы IIKO. В решении данного вопроса в значительной степени помог типовой функционал УТ: возможность указания мер длин, весов, площади для номенклатурной позиции. Таким образом, при расхождении единиц измерения мы всегда можем динамически рассчитать коэффициент на основе данных справочника.

Сценарий использования

Решение реализовано в виде внешней обработки, что предоставляет известную гибкость в использовании и сопровождении. При запуске загружаются справочные сведения из IIKO для последующего сопоставления.

В основном окне пользователем осуществляется подбор перемещений для выгрузки. По окончанию подбора пробуем передать документы. Если перед отправкой были найдены несопоставленные значения номенклатуры или складов, то автоматически происходит переключение на соответствующую вкладку.Сопоставление номенклатуры 1С и IIKOНа вкладке "Номенклатура" помимо сопоставления с уже имеющейся позицией в IIKO можно создать новую не покидая 1С. Если наименование номенклатуры в обеих системах совпадает с точностью до символа, то можно сопоставить такие строки автоматически.

Выводы

Описанный механизм взаимодействия позволяет решать самые различные задачи автоматизации. Не так давно в разговоре с коллегами обсуждали одно из неудобств IIKO в сравнении с - нет ряда служебных механизмов по групповой обработке данных. "А почему бы и нет?". И правда, современные возможности платформы 1С и разработанная методика интеграции систем позволяют решать не только повседневные учетные задачи, но и вопросы корректировки, внедрения и сопровождения.

Спасибо за внимание. Буду рад ответить в комментариях на возникшие вопросы.

Версии программного обеспечения

Платформа - 1С:Предприятие 8.3 (8.3.11.2867). По идее подойдет и гораздо старше, начиная с появления методов для работы с HTTP, строковые функции типа СтрРазделить. Требования к РасшифроватьGZIP  имеются на странице публикации.

Конфигурация - Управление торговлей, редакция 11 (11.4.5.63).

IIKO - работа проверена на версиях, начиная с 4.5.4038 по 6.0.3011 (как Chain, так и RMS)

1

См. также

Комментарии
Сортировка: Древо
1. kag 19.09.18 14:12 Сейчас в теме
Есть ли возможность с помощью вашего механизма загружать в IIKO из 1С данные по приказам на изменение цен?
2. oyti 17 19.09.18 14:34 Сейчас в теме
(1) В принципе описанный метод имеет мало ограничений в плане видов загружаемых/выгружаемых данных, только нужно точное описания процедуры преобразования. В IIKO я так понял это приказы об изменения прейскуранта, а в 1С?

Данные по ним получить можно запросом (с заданием своего периода):
SEL ECT * FR OM TreeMenuChangeDocument where (dateCreated >= convert(datetime,'2016-01-01 00:00:00.000', 120) and dateCreated <= convert(datetime,'2016-01-31 23:59:59.999', 120))


Создание - по аналогии с мордой, то есть эксэмэлька на SaveDocument по типу TreeMenuChangeDocument
3. kag 20.09.18 12:05 Сейчас в теме
В 1С это документ Переоценка
4. oyti 17 21.09.18 11:17 Сейчас в теме
(3) Ознакомился с вашим ТЗ. Фрагмент "Желательно такой инструмент - конструктор, который можно настроить под себя. То есть, я указываю метаданные 1с и метаданные iiko и сопоставляю их, указывая что является источником, что приемником и в какой последовательности и с какой периодичностью (или событийно) выгружается и загружается." подразумевает большую и сложную разработку. Может имеет смысл начать с решения частного случая с приказами на изменение прейскуранта?
5. kag 21.09.18 12:59 Сейчас в теме
Давайте так: если интересно, то можно продолжить обсуждение по идее разработки более универсального инструмента. Если количество заказов по данному вопросу не единицы - вам же и выгодно разработать, рано или поздно, такой инструмент. А по конкретному ТЗ (приказы на изменение прейскуранта) наверное удобнее обсуждать по рабочим каналам.
Оставьте свое сообщение