Перейти к содержанию

Расширение адаптера

Как расширять функциональность подсистемы — добавлять новые объекты в обмен, писать свои обработчики, использовать КД 3.1.

Подключение новых объектов к автоматическому обмену

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

Вручную добавлять объекты в подписки не нужно

Подписки уже подписаны на все объекты соответствующих типов. Чтобы конкретный объект попал в обмен, достаточно указать его имя метаданных в настройках продюсера — фильтрация выполняется автоматически при регистрации.

Обход подписок

Если требуется обойти подписки (нестандартный сценарий или ручное управление), используйте программный API:

// Поместить объект в очередь исходящих сообщений вручную
кфкИнтеграция.ПоместитьВОчередьИсходящих(СсылкаНаОбъект);

// Исключить объект из обмена при записи (вызывать в обработчике перед записью)
кфкИнтеграция.Отключить(ЭтотОбъект);

Реализация собственного обработчика сообщений

Для исходящих и входящих сообщений поддерживаются два типа обработчиков (перечисление кфкТипыОбработчиков):

  1. КД 3.1 — преобразование через правила 1С:Конвертации данных 3.1.
  2. Произвольный — собственная процедура/функция прикладного решения.

Произвольный обработчик указывается в настройках продюсера или консьюмера.

Контракты обработчиков:

Примеры:

Обработчик типа «КД 3.1»

При выборе типа обработчика КД 3.1 адаптер передаёт данные через модуль обмена, сгенерированный в 1С:Конвертации данных 3.1.

Что требуется

  • XDTO-пакет — описывает XML-структуру передаваемых данных.
  • Модуль обмена — генерируется в КД 3.1 и реализует правила преобразования в XDTO и обратно.

Пакетная модель для регистров по регистратору

Регистры, подчинённые регистратору

Адаптер выполняет запрос записей по регистратору и применяет правила к каждой записи. Результат — одно сообщение, тело которого содержит массив объектов (пакетная модель). Чтение через набор с отбором не используется по соображениям производительности.

Варианты XDTO-пакета

1. Стандартный XDTO (EnterpriseData)

Используется формат EnterpriseData — стандарт 1С для межсистемного обмена. Пакет XDTO входит в состав платформы, отдельная разработка не требуется.

Документация: Формат EnterpriseData.

Подходит, когда принимающая сторона работает с типовыми конфигурациями 1С и понимает формат EnterpriseData.

2. Произвольный XDTO

Используется XDTO-пакет под конкретный контракт данных. Пакет можно создать двумя способами:

а) Вручную в EDT или Конфигураторе — стандартными средствами платформы.

б) Из AsyncAPI-спецификации — с помощью скрипта asyncapi2xsd.py — см. Генерация XSD из AsyncAPI.

Расширение КД

Для работы КД 3.1 с произвольным XDTO (не EnterpriseData) может потребоваться расширение КД 3.1.

Смотрите также