При работе с современными системами управления складом (WMS) на платформе 1С, такими как AXELOT WMS X5, часто возникает потребность в их интеграции с учетными системами, например, 1С:Управление торговлей (УТ). Производитель AXELOT предлагает для этих целей свою сервисную шину данных DATAREON ESB. Однако, как показывает практика, использование сторонней прокладки не всегда является оптимальным решением из-за высокой стоимости лицензий (от 250 тыс. рублей) и потенциальной сложности настройки. Мы рассмотрим, как можно реализовать интеграцию AXELOT WMS X5 с 1С:УТ, избегая DATAREON ESB, используя более современные и гибкие подходы.
Представленная проблема актуальна для многих компаний, которые стремятся к оптимизации затрат и повышению гибкости своих информационных систем. Мы разберем два основных пути решения: создание собственного HTTP-сервиса и использование встроенных возможностей AXELOT WMS X5.
Прежде чем углубляться в альтернативные методы интеграции, проанализируем, почему некоторые пользователи предпочитают обходить стороной рекомендованную производителем шину DATAREON ESB. Основные аргументы против её использования сводятся к следующему:
Таким образом, стремление к более простому, дешевому и технологичному решению вполне оправдано.
Одним из первых и наиболее очевидных решений для обхода DATAREON ESB является разработка собственного HTTP-сервиса. Мы рассмотрим, как такой подход может быть реализован в среде 1С:Предприятие 8.3.
Создание собственного HTTP-сервиса позволяет нам полностью контролировать процесс обмена данными и использовать современные форматы, такие как JSON. Для этого нам потребуется создать новый HTTP-сервис в конфигурации 1С, желательно через расширение, чтобы не затрагивать типовую конфигурацию AXELOT WMS X5. В качестве отправной точки для такой разработки можно использовать готовое расширение с HTTP-сервисом получения остатков.
HTTPСервис. Даем ему осмысленное имя, например, WMSIntegrationService.
/Номенклатура/{Идентификатор}
Или для передачи документов:
/Документы/ЗаказНаПеремещение
Ключевым преимуществом этого подхода является использование формата 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С.
В процессе работы с AXELOT WMS X5 было сделано важное открытие: конфигурация AXELOT X5 (версия 5.0.7.18 и, вероятно, последующие) уже содержит встроенные аналогичные веб- и HTTP-сервисы. Эти сервисы называются "ESBExchange" и предлагают готовые операции и шаблоны, которые могут быть использованы для обмена данными.
Это открытие значительно упрощает задачу, так как отпадает необходимость в написании HTTP-сервиса с нуля. Вместо этого мы можем использовать уже существующий функционал, который, как было подтверждено, поддерживает формат JSON. Это означает, что AXELOT WMS X5 уже "из коробки" готов к современным методам интеграции без привязки к дорогостоящему DATAREON ESB.
Использование встроенного "ESBExchange" позволяет:
Таким образом, вместо полного "самописного" решения, мы можем подключиться к существующим HTTP-сервисам AXELOT WMS X5, используя их структуру и функциональность для интеграции с 1С:УТ 10.3 или 1С:УТ 11.
Возможно, вы заметили, что в дискуссии часто упоминается, что "веб-сервисы — это уже каменный век", а 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, разработанное на платформе "1С:Предприятие 8.3". Её архитектурные особенности также способствуют гибкой интеграции:
Все эти особенности делают AXELOT WMS X5 очень адаптивной к различным схемам интеграции, включая те, что исключают использование DATAREON ESB.
Вопрос об интеграции с ТСД также поднимался в ходе обсуждения. В AXELOT WMS X5 реализована полноценная мобильная платформа, поддерживающая работу как в онлайн-, так и в офлайн-режимах. Это критически важно для бесперебойной работы склада.
Для работы с ТСД необходимы устройства со сканерами 2D-кодов формата Data Matrix. Мобильное приложение на ТСД должно программно работать со сканером штрихкодов, исключая режим «в разрыв клавиатуры». Это особенно важно для работы с маркированным товаром, требующим чтения уникальных кодов.
Типовая архитектура взаимодействия с ТСД включает:
RFDevice), через который ТСД обмениваются данными с WMS.Хотя "Сервер ТСД" от Акселота может быть отдельным платным продуктом/прокладкой, сама мобильная платформа и её взаимодействие с WMS через веб-сервисы (HTTP-сервисы) является частью возможностей AXELOT WMS X5. Обмен данными с ТСД также может использовать принципы HTTP-сервисов с JSON, что делает его современным и эффективным. Нам важно учитывать, что эти механизмы предназначены для автоматизации всех ключевых складских операций: приемки, размещения, отбора, контроля и отгрузки товаров.
Таким образом, интеграция AXELOT WMS X5 с 1С:УТ без DATAREON ESB является не только возможной, но и целесообразной, благодаря возможностям платформы 1С, открытому коду AXELOT WMS X5, и наличию встроенных HTTP-сервисов, поддерживающих формат JSON. Выбрав этот путь, мы получаем гибкое, экономичное и технологичное решение, соответствующее современным стандартам обмена данными.