Почему при загрузке структуры в Конвертацию Данных регистры сведений загружаются как «Объект не найден» и как это исправить?

Программист IT и автоматизация бизнеса
← На главную

Часто при работе с конфигурацией «Конвертация данных 2» (КД2) разработчики сталкиваются с неприятной ситуацией: при загрузке описания структуры конфигурации (метаданных) регистры сведений загружаются некорректно и отображаются в дереве объектов как <Объект не найден ...>. Рассмотрим подробнее, почему возникает такая ошибка и разберем по шагам все возможные способы ее решения.

Проанализируем ситуацию: если в базе Конвертации данных объект принимает вид битой ссылки, это означает, что система пытается ссылаться на элемент, описания которого физически нет в загружаемом XML-файле. То есть проблема возникает не на этапе загрузки структуры в КД2, а еще на этапе формирования файла в базе-источнике. Выясним причину, почему стандартная обработка выгрузки игнорирует регистры сведений.

Основные причины проблемы и их решения

Разберем основные факторы, влияющие на полноту выгружаемых метаданных, и посмотрим, как их устранить.

  1. Не установлены флаги в обработке выгрузки

    Самая банальная, но частая причина. Внимательно посмотрим на интерфейс обработки выгрузки метаданных. Убедитесь, что перед формированием файла установлен флажок «Выгружать регистры сведений». Если флаг снят, обработка проигнорирует целый класс объектов.

  2. Ограничения в коде самой обработки (MD83Exp.epf / MD82Exp.epf)

    Рассмотрим скрытые программные ограничения. В некоторых версиях обработок выгрузки структуры метаданных (особенно скачанных со сторонних ресурсов или поставляемых с другими инструментами) выгрузка регистров сведений может быть отключена принудительно на уровне программного кода. Откроем обработку в Конфигураторе, перейдем в модуль формы и проанализируем алгоритм формирования списка объектов. Если вы найдете условие, исключающее регистры сведений из обхода метаданных, закомментируйте его и сохраните обработку.

  3. Нехватка прав доступа у пользователя

    Разберем ситуацию с правами. Если вы запускаете выгрузку под пользователем, у которого нет прав на чтение структуры определенных регистров сведений, платформа просто не отдаст эти метаданные обработке, и они будут молча пропущены. Всегда выполняйте выгрузку структуры метаданных под пользователем с ролью «Полные права».

  4. Влияние функциональных опций платформы

    Проанализируем особенности современных конфигураций. Многие объекты (или их отдельные измерения и ресурсы) жестко привязаны к функциональным опциям. Если в базе-источнике конкретная функциональная опция отключена, платформа может скрывать зависящие от нее объекты метаданных, из-за чего они не попадают в итоговый XML-файл. Проверьте, включена ли функциональность, связанная с нужным регистром.

  5. Несоответствие версии обработки типу приложения

    Убедитесь, что вы используете правильную обработку. Использование старой версии MD82Exp.epf для конфигураций на управляемых формах иногда приводит к некорректному чтению новых типов метаданных. Обязательно используйте актуальную MD83Exp.epf из шаблона вашего релиза КД2.

  6. Объекты добавлены через расширения

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

Альтернативный подход: настройка правил без структуры регистра

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

Для этого выполним следующие действия:

  1. В КД2 создаем Правило Выгрузки Данных (ПВД). В качестве объекта-источника оставляем пустое значение (или выбираем произвольный алгоритм).
  2. В обработчике ПВД пишем произвольный запрос к базе-источнику, который собирает необходимые данные из регистра. Результат выполнения запроса выгружаем в специальный параметр ВыборкаДанных.
  3. Создаем Правило Конвертации Объектов (ПКО) также с пустым источником, а в качестве приемника указываем наш регистр сведений (структура приемника обычно загружается без проблем).
  4. В настройках ПКО настраиваем программное заполнение реквизитов приемника из значений, переданных через параметр ВыборкаДанных.

Таким образом, мы полностью обходим проблему отсутствия метаданных источника в КД2, делегируя чтение данных программному коду.

Совет: Прежде чем тратить время на пересоздание правил конвертации и загрузку файлов, откройте полученный файл XML с метаданными в любом текстовом редакторе (например, Notepad++) и поиском проверьте наличие имени вашего регистра. Если узла с регистром нет в файле — проблема на стороне выгрузки из источника, и мучить саму Конвертацию данных бесполезно.

← На главную