При доработке обмена через универсальный формат (EnterpriseData) в конфигурации «Конвертация данных 3.0» (КД 3.0) специалисты часто сталкиваются с ситуацией, когда сформированный программой модуль менеджера обмена получается усеченным. В выгруженном коде отсутствуют пользовательские функции, сервисные алгоритмы или обработчики событий (например, ПередКонвертацией...), из-за чего при синтаксическом контроле или в процессе работы обмена возникают ошибки вызова необнаруженных процедур.
Рассмотрим подробно причины возникновения этой проблемы и проанализируем варианты её решения.
Проанализируем базовые причины, по которым парсер КД 3.0 прогоняет код модуля менеджера обмена без выгрузки всех необходимой логики:
#Область Алгоритмы или удалены управляющие комментарии, обработчик загрузки пропускает данные процедуры.Основное и наиболее корректное решение заключается в использовании актуального релиза конфигурации КД 3.0 и строгом соблюдении порядка загрузки правил синхронизации.
Разберем процесс исправления по шагам:
Выгрузка правил синхронизации.epf из комплекта поставки используемого релиза КД 3.0. Выгрузку необходимо делать отдельно для каждого используемого формата и версии БСП.При таком подходе формируемый КД 3.0 модуль менеджера обмена полностью совпадает по составу процедур с исходным модулем типовой конфигурации.
Если нет возможности оперативно обновить релиз КД 3.0 или требуется срочно внести точечную правку, можно воспользоваться механизмом ручной подстановки или хранения кода алгоритмов.
Выясним, как это реализовать:
#Область Алгоритмы из исходного модуля менеджера обмена вашей конфигурации (например, из общего модуля МенеджерОбменаЧерезУниверсальныйФормат...).#Область Алгоритмы обратно в выгруженный модуль обмена конфигурации.Пример структуры вызова процедуры алгоритма в модуле менеджера обмена:
#Область Алгоритмы
Процедура ПередКонвертациейУТКАУП(КомпонентыОбмена) Экспорт
// Пользовательская логика обработки данных перед конвертацией
КонецПроцедуры
#КонецОбласти
Также можно внести заголовки процедур вручную на вкладке «Алгоритмы» в КД 3.0 (с указанием галочки Экспорт и параметров), однако этот процесс трудоемок, если процедур больше десятка, и рекомендуется использовать только при отказе автоматической загрузки.
Поскольку в современных конфигурациях на базе БСП весь модуль обмена через универсальный формат представляет собой стандартный BSL-код в общем модуле, не всегда обязательно дорабатывать правила через КД 3.0.
Выполнить корректировку алгоритмов конвертации можно напрямую в конфигураторе или через расширение конфигурации, переопределив необходимые процедуры в событии ПередКонвертациейОбъекта или добавив собственные обработки в модуль обмена без риска перезаписи логики при выгрузке из КД 3.0.