При разработке правил обмена в 1С:Конвертация данных 2.1 (КД 2.1) программисты часто сталкиваются с ситуацией: в основную конфигурацию через расширение добавлены новые реквизиты, описание метаданных выгружено и загружено в базу конвертации, но при создании правил конвертации свойств (ПКС) эти реквизиты отсутствуют в списке выбора. Кажется, что система игнорирует изменения, хотя в самой конфигурации-источнике всё работает корректно. Разберем детально причины этого поведения и пошагово восстановим процесс синхронизации.
Первая и самая частая причина — использование устаревшей или неподходящей версии обработки MD82Exp.epf. Рассмотрим, на что нужно обратить внимание при подготовке файла описания конфигурации:
MD82Exp.epf, входящая в комплект поставки вашего релиза КД 2.1. Старые версии обработки, выпущенные до появления механизмов расширений, физически не умеют обращаться к объектам, которые не входят в состав основной конфигурации.Чтобы исключить ошибку на стороне «Конвертации данных», проанализируем сам файл описания метаданных. Для этого выполним следующие действия:
.xml любым текстовым редактором (например, Notepad++).Когда файл описания готов, мы загружаем его в конфигурацию КД 2.1. На этом этапе часто совершается ошибка в настройках загрузки. Рассмотрим правильный алгоритм:
При использовании обработки Загрузка описания конфигурации обязательно проверьте установку флага «Обновлять существующие объекты». Если этот флаг снят, а объект (например, справочник Контрагенты) уже существует в базе КД, система просто пропустит его, не обновляя состав его свойств. В результате новые реквизиты из расширения не будут добавлены в справочник Свойства внутри базы конвертации. Для автоматизации выгрузки и обновления состава объектов без ручных действий с файлами можно использовать инструмент для групповой загрузки метаданных в Конвертацию данных 2.1.
Часто разработчики замечают, что реквизиты появляются в списке только «на следующий день» или после перезагрузки. Это объясняется особенностями кэширования платформы «1С:Предприятие» и интерфейсными механизмами КД 2.1. Проанализируем, как ускорить этот процесс:
Объекты конфигурации внутри КД, найдем нужный объект и проверим вкладку Свойства. Если реквизит там есть, значит, загрузка прошла успешно.Существует мнение, что отсутствие префикса у реквизитов расширения может мешать КД 2.1. На самом деле, технически для Конвертации это не имеет значения. Проанализируем ситуацию:
Для КД 2.1 реквизит — это просто строка с именем. Если в XML-файле свойство называется НовыйРеквизит, оно будет загружено именно так. Однако использование префиксов (например, ПРФ_НовыйРеквизит) является критически важным стандартом разработки 1С. Это предотвращает конфликты имен, если в будущем фирма «1С» добавит реквизит с таким же именем в типовое решение. Рекомендуется всегда использовать префиксы, даже если КД «видит» свойства и без них.
Если метаданные загружены, но реквизит упорно не отображается в списке выбора ПКС, мы можем прибегнуть к «ручному» способу настройки. Посмотрим, как это сделать:
В форме настройки ПКС поле Свойство приемника или Свойство источника можно заполнить вручную, просто вписав туда программное имя реквизита (с учетом регистра и префикса). Если в объекте метаданных этот реквизит фактически существует, выгрузка и загрузка данных отработают корректно. КД 2.1 при выполнении обмена обращается к свойствам объектов через обращение к свойству по имени или через Выполнить(), поэтому наличие реквизита именно в визуальном списке выбора не является жестким техническим ограничением для работы обмена. Чтобы не выполнять повторную выгрузку всей конфигурации, для быстрого создания нужного реквизита подойдёт обработка для добавления и изменения свойств метаданных прямо в базе конвертации.
Проанализировав все этапы — от выгрузки метаданных актуальной обработкой MD82Exp.epf с включенным флагом расширений до корректной загрузки в базу КД с обновлением существующих объектов — вы сможете успешно использовать любые дополнительные реквизиты в своих правилах обмена.