При работе с обменами в современных конфигурациях 1С на базе БиблиотекиСтандартныхПодсистем (БСП) часто возникает задача добавить собственный сценарий синхронизации, не затрагивая при этом существующие типовые механизмы. В отличие от КонвертацииДанных 2.1, где правила представляют собой XML-файл, КонвертацияДанных 3.0 генерирует готовый программный код 1С. Рассмотрим, как правильно интегрировать этот код в конфигурацию.
Важно помнить, что КД 3.0 работает по принципу передачи данных через универсальный формат EnterpriseData. В процессе разработки в конфигурации Конвертация данных 3.0 вы настраиваете соответствия объектов метаданных формату, после чего система генерирует модули. Эти модули содержат логику сериализации и десериализации, которую необходимо встроить в вашу информационную базу.
Чтобы не снимать конфигурацию с поддержки и не модифицировать типовые объекты, мы будем использовать возможности расширений 1С и механизмы БСП. Основная задача — подменить или дополнить логику выполнения обмена через процедуру ПриПолученииДоступныхВерсийФормата, расположенную в общем модуле ОбменДаннымиПереопределяемый.
КД 3.0, который отвечает за выгрузку и загрузку данных.ПриПолученииДоступныхВерсийФормата общего модуля ОбменДаннымиПереопределяемый. В этой процедуре вы должны указать, что для вашей версии формата обмена ответственным является ваш новый модуль.Рассмотрим пример того, как это выглядит программно:
Процедура ПриПолученииДоступныхВерсийФормата(ВерсииФорматов) Экспорт
// Добавляем свою версию формата и указываем модуль менеджера
ОписаниеВерсии = ВерсииФорматов.Добавить();
ОписаниеВерсии.ВерсияФормата = \"1.0.0.1\";
ОписаниеВерсии.МодульМенеджераОбмена = МойМодульОбменаПовтИсп;
КонецПроцедуры
Использование этого подхода дает нам несколько преимуществ:
КД 3.0 генерирует исполняемый код, а не интерпретируемые XML-правила, скорость работы обмена значительно выше.В процессе работы вы можете столкнуться с необходимостью обновления формата данных. В этом случае порядок действий остается прежним:
Конвертация данных 3.0.ПриПолученииДоступныхВерсийФормата.Если же ваш обмен становится сложным и требует многопоточной обработки, помните, что стандартный механизм БСП позволяет разбивать данные на пакеты. При необходимости вы можете реализовать вызов фоновых заданий непосредственно из методов вашего модуля менеджера обмена, что позволит эффективно распараллелить нагрузку на сервер 1С.
Таким образом, использование БСП для интеграции КД 3.0 является наиболее профессиональным и безопасным способом расширения возможностей обмена данными, обеспечивающим стабильность и легкость в дальнейшем сопровождении вашей системы.