Расширение адаптера¶
Как расширять функциональность подсистемы — добавлять новые объекты в обмен, писать свои обработчики, использовать КД 3.1.
Подключение новых объектов к автоматическому обмену¶
Автоматическая регистрация выполняется через подписки на события. В адаптере уже определены четыре подписки, охватывающие все ссылочные объекты и наборы записей регистров.
Вручную добавлять объекты в подписки не нужно
Подписки уже подписаны на все объекты соответствующих типов. Чтобы конкретный объект попал в обмен, достаточно указать его имя метаданных в настройках продюсера — фильтрация выполняется автоматически при регистрации.
Обход подписок¶
Если требуется обойти подписки (нестандартный сценарий или ручное управление), используйте программный API:
// Поместить объект в очередь исходящих сообщений вручную
кфкИнтеграция.ПоместитьВОчередьИсходящих(СсылкаНаОбъект);
// Исключить объект из обмена при записи (вызывать в обработчике перед записью)
кфкИнтеграция.Отключить(ЭтотОбъект);
Реализация собственного обработчика сообщений¶
Для исходящих и входящих сообщений поддерживаются два типа обработчиков (перечисление кфкТипыОбработчиков):
- КД 3.1 — преобразование через правила 1С:Конвертации данных 3.1.
- Произвольный — собственная процедура/функция прикладного решения.
Произвольный обработчик указывается в настройках продюсера или консьюмера.
Контракты обработчиков:
Примеры:
Обработчик типа «КД 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.