Почему в КД 3.0 при выгрузке модуля менеджера обмена отсутствуют процедуры алгоритмов и как это исправить

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

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

Рассмотрим подробно причины возникновения этой проблемы и проанализируем варианты её решения.

Причины неполной выгрузки алгоритмов и процедур

Проанализируем базовые причины, по которым парсер КД 3.0 прогоняет код модуля менеджера обмена без выгрузки всех необходимой логики:

  1. Устаревшая версия «Конвертации данных 3.0». В ранних релизах конфигурации (например, 3.0.2.1 и старше) механизмы разбора исходного текста правил обмена имели ограничения и не всегда корректно считывали области алгоритмов из XML-файлов правил.
  2. Потеря разметки служебных областей. Парсер КД 3.0 опирается на строгую структуру кода модуля менеджера обмена. Если в процессе доработки модуля в конфигураторе была нарушена область #Область Алгоритмы или удалены управляющие комментарии, обработчик загрузки пропускает данные процедуры.
  3. Несоответствие настроек конвертации и версий формата. При создании или импорте конвертации в КД 3.0 могли быть ошибочно выбраны несоответствующие версии формата EnterpriseData или версии Библиотеки стандартных подсистем (БСП).

Способ 1. Обновление КД 3.0 и правильная повторная загрузка правил (Рекомендуемый)

Основное и наиболее корректное решение заключается в использовании актуального релиза конфигурации КД 3.0 и строгом соблюдении порядка загрузки правил синхронизации.

Разберем процесс исправления по шагам:

  1. Обновите «Конвертацию данных 3.0» до последнего актуального релиза. В свежих версиях загрузчик правил корректно распознает все экспортные и локальные процедуры алгоритмов.
  2. Выгрузите правила из конфигураций. Используйте специализированную обработку Выгрузка правил синхронизации.epf из комплекта поставки используемого релиза КД 3.0. Выгрузку необходимо делать отдельно для каждого используемого формата и версии БСП.
  3. Укажите поддерживаемые версии формата. В КД 3.0 в карточке конвертации убедитесь, что корректно заведены и выбраны используемые версии формата EnterpriseData базы-источника и базы-приемника.
  4. Загрузите правила в КД 3.0. Загрузите полученные файлы правил поочередно для каждой версии формата. Парсер корректно заполнит вкладку «Алгоритмы».

При таком подходе формируемый КД 3.0 модуль менеджера обмена полностью совпадает по составу процедур с исходным модулем типовой конфигурации.

Способ 2. Ручное восстановление или перенос области алгоритмов (Быстрый обходной путь)

Если нет возможности оперативно обновить релиз КД 3.0 или требуется срочно внести точечную правку, можно воспользоваться механизмом ручной подстановки или хранения кода алгоритмов.

Выясним, как это реализовать:

  1. Скопируйте целиком область кода #Область Алгоритмы из исходного модуля менеджера обмена вашей конфигурации (например, из общего модуля МенеджерОбменаЧерезУниверсальныйФормат...).
  2. После внесения нужных правок в КД 3.0 и генерирования нового модуля выгрузите получившийся текст кода.
  3. Вставьте ранее сохраненную область #Область Алгоритмы обратно в выгруженный модуль обмена конфигурации.

Пример структуры вызова процедуры алгоритма в модуле менеджера обмена:


#Область Алгоритмы

Процедура ПередКонвертациейУТКАУП(КомпонентыОбмена) Экспорт
    
    // Пользовательская логика обработки данных перед конвертацией
    
КонецПроцедуры

#КонецОбласти

Также можно внести заголовки процедур вручную на вкладке «Алгоритмы» в КД 3.0 (с указанием галочки Экспорт и параметров), однако этот процесс трудоемок, если процедур больше десятка, и рекомендуется использовать только при отказе автоматической загрузки.

Способ 3. Доработка обмена через расширение конфигурации

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

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

← На главную