Часто при работе с конфигурацией «Конвертация данных 2» (КД2) разработчики сталкиваются с неприятной ситуацией: при загрузке описания структуры конфигурации (метаданных) регистры сведений загружаются некорректно и отображаются в дереве объектов как <Объект не найден ...>. Рассмотрим подробнее, почему возникает такая ошибка и разберем по шагам все возможные способы ее решения.
Проанализируем ситуацию: если в базе Конвертации данных объект принимает вид битой ссылки, это означает, что система пытается ссылаться на элемент, описания которого физически нет в загружаемом XML-файле. То есть проблема возникает не на этапе загрузки структуры в КД2, а еще на этапе формирования файла в базе-источнике. Выясним причину, почему стандартная обработка выгрузки игнорирует регистры сведений.
Разберем основные факторы, влияющие на полноту выгружаемых метаданных, и посмотрим, как их устранить.
Самая банальная, но частая причина. Внимательно посмотрим на интерфейс обработки выгрузки метаданных. Убедитесь, что перед формированием файла установлен флажок «Выгружать регистры сведений». Если флаг снят, обработка проигнорирует целый класс объектов.
Рассмотрим скрытые программные ограничения. В некоторых версиях обработок выгрузки структуры метаданных (особенно скачанных со сторонних ресурсов или поставляемых с другими инструментами) выгрузка регистров сведений может быть отключена принудительно на уровне программного кода. Откроем обработку в Конфигураторе, перейдем в модуль формы и проанализируем алгоритм формирования списка объектов. Если вы найдете условие, исключающее регистры сведений из обхода метаданных, закомментируйте его и сохраните обработку.
Разберем ситуацию с правами. Если вы запускаете выгрузку под пользователем, у которого нет прав на чтение структуры определенных регистров сведений, платформа просто не отдаст эти метаданные обработке, и они будут молча пропущены. Всегда выполняйте выгрузку структуры метаданных под пользователем с ролью «Полные права».
Проанализируем особенности современных конфигураций. Многие объекты (или их отдельные измерения и ресурсы) жестко привязаны к функциональным опциям. Если в базе-источнике конкретная функциональная опция отключена, платформа может скрывать зависящие от нее объекты метаданных, из-за чего они не попадают в итоговый XML-файл. Проверьте, включена ли функциональность, связанная с нужным регистром.
Убедитесь, что вы используете правильную обработку. Использование старой версии MD82Exp.epf для конфигураций на управляемых формах иногда приводит к некорректному чтению новых типов метаданных. Обязательно используйте актуальную MD83Exp.epf из шаблона вашего релиза КД2.
Если нужный регистр сведений был добавлен не в основную конфигурацию, а через расширение, стандартная обработка может его не увидеть. В этом случае требуется доработка самой обработки выгрузки для обхода метаданных расширений, либо временный перенос объекта в основную конфигурацию для генерации структуры.
Если получить метаданные проблемного регистра типовым путем все же не удается, разберем по шагам альтернативный вариант. В Конвертации данных можно настроить перенос информации вообще без прямого обращения к объекту-источнику.
Для этого выполним следующие действия:
ВыборкаДанных.ВыборкаДанных.Таким образом, мы полностью обходим проблему отсутствия метаданных источника в КД2, делегируя чтение данных программному коду.
Совет: Прежде чем тратить время на пересоздание правил конвертации и загрузку файлов, откройте полученный файл XML с метаданными в любом текстовом редакторе (например, Notepad++) и поиском проверьте наличие имени вашего регистра. Если узла с регистром нет в файле — проблема на стороне выгрузки из источника, и мучить саму Конвертацию данных бесполезно.