Как реализовать обмен данными на КД 3.0, не изменяя типовые правила обмена?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с обменами в современных конфигурациях 1С на базе БиблиотекиСтандартныхПодсистем (БСП) часто возникает задача добавить собственный сценарий синхронизации, не затрагивая при этом существующие типовые механизмы. В отличие от КонвертацииДанных 2.1, где правила представляют собой XML-файл, КонвертацияДанных 3.0 генерирует готовый программный код 1С. Рассмотрим, как правильно интегрировать этот код в конфигурацию.

Понимание архитектуры КД 3.0

Важно помнить, что КД 3.0 работает по принципу передачи данных через универсальный формат EnterpriseData. В процессе разработки в конфигурации Конвертация данных 3.0 вы настраиваете соответствия объектов метаданных формату, после чего система генерирует модули. Эти модули содержат логику сериализации и десериализации, которую необходимо встроить в вашу информационную базу.

Интеграция кода через переопределение модуля менеджера обмена

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

  1. Создание модуля: Создайте отдельный общий модуль в расширении конфигурации. В этом модуле вы разместите сгенерированный код КД 3.0, который отвечает за выгрузку и загрузку данных.
  2. Регистрация модуля: В расширении конфигурации переопределите процедуру ПриПолученииДоступныхВерсийФормата общего модуля ОбменДаннымиПереопределяемый. В этой процедуре вы должны указать, что для вашей версии формата обмена ответственным является ваш новый модуль.

Рассмотрим пример того, как это выглядит программно:


Процедура ПриПолученииДоступныхВерсийФормата(ВерсииФорматов) Экспорт
    // Добавляем свою версию формата и указываем модуль менеджера
    ОписаниеВерсии = ВерсииФорматов.Добавить();
    ОписаниеВерсии.ВерсияФормата = \"1.0.0.1\";
    ОписаниеВерсии.МодульМенеджераОбмена = МойМодульОбменаПовтИсп;
КонецПроцедуры

Почему это лучшее решение?

Использование этого подхода дает нам несколько преимуществ:

Рекомендации по развитию обмена

В процессе работы вы можете столкнуться с необходимостью обновления формата данных. В этом случае порядок действий остается прежним:

  1. Обновляете правила в конфигурации Конвертация данных 3.0.
  2. Генерируете новый код модуля.
  3. Обновляете содержимое модуля в расширении.
  4. При необходимости меняете версию формата в процедуре ПриПолученииДоступныхВерсийФормата.

Если же ваш обмен становится сложным и требует многопоточной обработки, помните, что стандартный механизм БСП позволяет разбивать данные на пакеты. При необходимости вы можете реализовать вызов фоновых заданий непосредственно из методов вашего модуля менеджера обмена, что позволит эффективно распараллелить нагрузку на сервер 1С.

Таким образом, использование БСП для интеграции КД 3.0 является наиболее профессиональным и безопасным способом расширения возможностей обмена данными, обеспечивающим стабильность и легкость в дальнейшем сопровождении вашей системы.

← На главную