Как интегрировать AXELOT WMS X5 с 1С:Управление торговлей без использования DATAREON ESB?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с современными системами управления складом (WMS) на платформе 1С, такими как AXELOT WMS X5, часто возникает потребность в их интеграции с учетными системами, например, 1С:Управление торговлей (УТ). Производитель AXELOT предлагает для этих целей свою сервисную шину данных DATAREON ESB. Однако, как показывает практика, использование сторонней прокладки не всегда является оптимальным решением из-за высокой стоимости лицензий (от 250 тыс. рублей) и потенциальной сложности настройки. Мы рассмотрим, как можно реализовать интеграцию AXELOT WMS X5 с 1С:УТ, избегая DATAREON ESB, используя более современные и гибкие подходы.

Представленная проблема актуальна для многих компаний, которые стремятся к оптимизации затрат и повышению гибкости своих информационных систем. Мы разберем два основных пути решения: создание собственного HTTP-сервиса и использование встроенных возможностей AXELOT WMS X5.

Почему DATAREON ESB не всегда является оптимальным решением?

Прежде чем углубляться в альтернативные методы интеграции, проанализируем, почему некоторые пользователи предпочитают обходить стороной рекомендованную производителем шину DATAREON ESB. Основные аргументы против её использования сводятся к следующему:

  1. Высокая стоимость: Стоимость лицензий на DATAREON ESB может достигать значительных сумм. Например, сервер управления может стоить до 259 200 рублей, а программируемый коннектор TCP BRIDGE – 43 200 рублей. Для многих предприятий это существенные затраты, которые можно сократить при наличии альтернативных технических решений.
  2. Сложность и "каменный век": Некоторые пользователи отмечают, что настройка обмена через DATAREON ESB, особенно с генерацией кода с использованием XDTO, ощущается как "каменный велосипед". Формат XDTO, применяемый в традиционных веб-сервисах, считается устаревшим и более громоздким по сравнению с современными подходами.
  3. Зависимость от стороннего продукта: Использование DATAREON ESB создает дополнительную зависимость от внешнего продукта и его специфики, что может усложнять поддержку и развитие интеграции в долгосрочной перспективе.

Таким образом, стремление к более простому, дешевому и технологичному решению вполне оправдано.

Интеграция через собственный HTTP-сервис: Первые шаги

Одним из первых и наиболее очевидных решений для обхода DATAREON ESB является разработка собственного HTTP-сервиса. Мы рассмотрим, как такой подход может быть реализован в среде 1С:Предприятие 8.3.

Создание собственного HTTP-сервиса позволяет нам полностью контролировать процесс обмена данными и использовать современные форматы, такие как JSON. Для этого нам потребуется создать новый HTTP-сервис в конфигурации 1С, желательно через расширение, чтобы не затрагивать типовую конфигурацию AXELOT WMS X5. В качестве отправной точки для такой разработки можно использовать готовое расширение с HTTP-сервисом получения остатков.

  1. Создание HTTP-сервиса: В конфигураторе 1С мы создаем новый объект HTTPСервис. Даем ему осмысленное имя, например, WMSIntegrationService.
  2. Определение шаблонов URL: Для каждого типа обмена (например, отправка заказов, получение остатков) мы определяем свой шаблон URL и соответствующий обработчик. Например, для получения информации о номенклатуре: /Номенклатура/{Идентификатор} Или для передачи документов: /Документы/ЗаказНаПеремещение
  3. Реализация обработчиков: В модуле каждого шаблона URL мы пишем код, который будет обрабатывать входящие HTTP-запросы. Здесь мы получаем данные из тела запроса, обрабатываем их и формируем ответ.

Ключевым преимуществом этого подхода является использование формата JSON для передачи данных. JSON значительно проще, легче и понятнее для работы, чем XDTO, который обычно применяется в традиционных веб-сервисах. Мы можем "запихнуть все в JSON в тело запроса" и "распарсить ответ" без лишних сложностей. Для работы с JSON в 1С используются методы JSON.Прочитать и JSON.Записать (или JSON.Сериализовать).

Пример концептуального кода для обработчика HTTP-сервиса может выглядеть так:


// В модуле HTTP-сервиса, в обработчике метода POST для шаблона /Документы/ЗаказНаПеремещение
Функция PostДокументыЗаказНаПеремещение(Запрос)
    // 1. Получаем тело запроса
    ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();

    // 2. Парсим JSON
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ТелоЗапроса);
    ДанныеЗаказа = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();

    // 3. Обрабатываем данные (создаем/обновляем документ в WMS)
    Попытка
        ДокументWMS = СоздатьДокументЗаказНаПеремещениеWMS(ДанныеЗаказа);
        // ... дальнейшая логика обработки ...

        // 4. Формируем успешный ответ в формате JSON
        ОтветДанные = Новый Структура;
        ОтветДанные.Вставить("Успех", Истина);
        ОтветДанные.Вставить("Сообщение", "Документ успешно обработан. Номер: " + ДокументWMS.Номер);

        Ответ = Новый HTTPСервисОтвет(200); // 200 OK
        Ответ.УстановитьТелоИзСтроки(JSON.Сериализовать(ОтветДанные), "application/json", КодировкаТекста.UTF8);
        Возврат Ответ;
    Исключение
        // 5. Обрабатываем ошибки и формируем ответ об ошибке
        ОтветДанные = Новый Структура;
        ОтветДанные.Вставить("Успех", Ложь);
        ОтветДанные.Вставить("Ошибка", ОписаниеОшибки());

        Ответ = Новый HTTPСервисОтвет(500); // 500 Internal Server Error
        Ответ.УстановитьТелоИзСтроки(JSON.Сериализовать(ОтветДанные), "application/json", КодировкаТекста.UTF8);
        Возврат Ответ;
    КонецПопытки;
КонецФункции

// Пример вспомогательной функции (должна быть реализована отдельно)
Функция СоздатьДокументЗаказНаПеремещениеWMS(ДанныеЗаказа)
    // Здесь должна быть логика создания или поиска документа в AXELOT WMS X5
    // на основе данных, полученных из JSON.
    // Например:
    // Документ = Документы.ЗаказНаПеремещение.СоздатьДокумент();
    // Документ.Дата = ДанныеЗаказа.Дата;
    // Документ.СкладОтправитель = ПолучитьСкладПоНаименованию(ДанныеЗаказа.СкладОтправитель);
    // ... заполнение других полей и табличных частей ...
    // Документ.Записать();
    // Возврат Документ;
    Возврат Неопределено; // Заглушка
КонецФункции

После реализации HTTP-сервиса его необходимо опубликовать на веб-сервере (Apache или IIS) через стандартную публикацию базы 1С. Это обеспечит доступ к сервису извне. Для отправки тестовых GET/POST запросов и быстрой отладки созданного API пригодится обработка для проверки HTTP-запросов из интерфейса 1С.

Ключевое открытие: Встроенные HTTP-сервисы в AXELOT WMS X5

В процессе работы с AXELOT WMS X5 было сделано важное открытие: конфигурация AXELOT X5 (версия 5.0.7.18 и, вероятно, последующие) уже содержит встроенные аналогичные веб- и HTTP-сервисы. Эти сервисы называются "ESBExchange" и предлагают готовые операции и шаблоны, которые могут быть использованы для обмена данными.

Это открытие значительно упрощает задачу, так как отпадает необходимость в написании HTTP-сервиса с нуля. Вместо этого мы можем использовать уже существующий функционал, который, как было подтверждено, поддерживает формат JSON. Это означает, что AXELOT WMS X5 уже "из коробки" готов к современным методам интеграции без привязки к дорогостоящему DATAREON ESB.

Использование встроенного "ESBExchange" позволяет:

  1. Сократить время разработки: Нет необходимости создавать инфраструктуру обмена с нуля.
  2. Использовать проверенные решения: Встроенные сервисы разработаны и протестированы производителем.
  3. Обеспечить поддержку JSON: Возможность обмениваться данными в удобном и современном формате, избегая XDTO.

Таким образом, вместо полного "самописного" решения, мы можем подключиться к существующим HTTP-сервисам AXELOT WMS X5, используя их структуру и функциональность для интеграции с 1С:УТ 10.3 или 1С:УТ 11.

HTTP-сервисы против веб-сервисов: Современный подход к обмену данными

Возможно, вы заметили, что в дискуссии часто упоминается, что "веб-сервисы — это уже каменный век", а HTTP-сервисы с JSON — это "сказка". Мы разберем, в чем заключается принципиальная разница и почему предпочтение отдается последним.

Веб-сервисы (SOAP-based Web Services):

Традиционные веб-сервисы на платформе 1С обычно используют протокол SOAP (Simple Object Access Protocol) и формат XDTO для описания данных. Они характеризуются:

HTTP-сервисы (RESTful HTTP Services):

HTTP-сервисы, часто реализуемые в RESTful стиле, используют стандартные HTTP-методы (GET, POST, PUT, DELETE) и, как правило, формат JSON для передачи данных. Их преимущества:

Таким образом, выбор HTTP-сервисов с JSON является современным и эффективным решением для интеграции, значительно превосходящим устаревшие SOAP-веб-сервисы по удобству и производительности. Это объясняет, почему для обмена данными с 1С, включая WMS, разработчики предпочитают именно этот подход.

Архитектурные особенности AXELOT WMS X5, способствующие интеграции

AXELOT WMS X5 — это пятое поколение системы управления складом от компании AXELOT, разработанное на платформе "1С:Предприятие 8.3". Её архитектурные особенности также способствуют гибкой интеграции:

  1. Открытый код: Система имеет открытый код, что обеспечивает высокую гибкость настройки под специфику предприятия. Мы можем создавать расширения конфигурации, добавлять собственные HTTP-сервисы или модифицировать существующие обработчики, не снимая систему с поддержки.
  2. Платформа 1С:Предприятие 8.3: Использование современной платформы 1С обеспечивает доступ к мощным механизмам для работы с HTTP-сервисами, JSON и другими средствами интеграции.
  3. Повышенная производительность: Система перешла на использование регистров сведений для учета актуальных остатков вместо регистров накопления. Это позволило значительно увеличить производительность (в 2-3 раза, а в некоторых сценариях до 10 раз), что критически важно для высоконагруженных складских операций. Высокая производительность WMS важна и для обмена данными, так как система быстрее реагирует на запросы из УТ.
  4. Один-к-одному соответствие объектов: Обмен данными с ERP-системами разработан таким образом, чтобы объекты ERP (номенклатура, контрагенты, заказы) в WMS соответствовали объектам в ERP «один-к-одному». Это позволяет выполнять преобразование данных на уровне WMS простой параметрической настройкой без необходимости программирования и тем самым ускоряет интеграцию.

Все эти особенности делают AXELOT WMS X5 очень адаптивной к различным схемам интеграции, включая те, что исключают использование DATAREON ESB.

Интеграция с терминалами сбора данных (ТСД)

Вопрос об интеграции с ТСД также поднимался в ходе обсуждения. В AXELOT WMS X5 реализована полноценная мобильная платформа, поддерживающая работу как в онлайн-, так и в офлайн-режимах. Это критически важно для бесперебойной работы склада.

Для работы с ТСД необходимы устройства со сканерами 2D-кодов формата Data Matrix. Мобильное приложение на ТСД должно программно работать со сканером штрихкодов, исключая режим «в разрыв клавиатуры». Это особенно важно для работы с маркированным товаром, требующим чтения уникальных кодов.

Типовая архитектура взаимодействия с ТСД включает:

  1. Веб-сервер: Используется для публикации HTTP-сервиса (например, RFDevice), через который ТСД обмениваются данными с WMS.
  2. Сервер мобильных приложений Axelot (СМП): Это отдельный компонент, который отвечает за управление мобильными устройствами и передачу данных. Он также может использоваться для раздачи ключей ТСД, обеспечивая безопасность и контроль доступа.

Хотя "Сервер ТСД" от Акселота может быть отдельным платным продуктом/прокладкой, сама мобильная платформа и её взаимодействие с WMS через веб-сервисы (HTTP-сервисы) является частью возможностей AXELOT WMS X5. Обмен данными с ТСД также может использовать принципы HTTP-сервисов с JSON, что делает его современным и эффективным. Нам важно учитывать, что эти механизмы предназначены для автоматизации всех ключевых складских операций: приемки, размещения, отбора, контроля и отгрузки товаров.

Таким образом, интеграция AXELOT WMS X5 с 1С:УТ без DATAREON ESB является не только возможной, но и целесообразной, благодаря возможностям платформы 1С, открытому коду AXELOT WMS X5, и наличию встроенных HTTP-сервисов, поддерживающих формат JSON. Выбрав этот путь, мы получаем гибкое, экономичное и технологичное решение, соответствующее современным стандартам обмена данными.

← На главную