Как загрузить структуру метаданных из 1С:Предприятие 8.0 в современную Конвертацию данных 2.1

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

При переносе данных из устаревших систем, таких как «1С:Зарплата и Управление Персоналом» версии 1.0 на платформе 8.0, специалисты часто сталкиваются с техническим барьером. Современная конфигурация «Конвертация данных 2.1» (КД 2.1) и её встроенные алгоритмы загрузки ориентированы на форматы XML, принятые в версиях 8.2 и 8.3. Попытка использовать стандартную обработку MD80.epf для выгрузки структуры метаданных из базы 8.0 и последующая загрузка этого файла в КД 2.1.8 часто заканчивается ошибкой преобразования данных XML.

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

Анализ проблемы: почему возникает ошибка ПрочитатьXML

Основная причина неудачи при прямой загрузке заключается в эволюции платформы 1С. Выясним причину технического сбоя. В старой обработке MD80.epf формирование XML-файла происходило по правилам, существовавшим более 15 лет назад. В частности, теги объектов метаданных могли использовать локализованные (русские) наименования, такие как <Синоним>, в то время как современные парсеры в «Конвертации данных 2.1» ожидают строго стандартизированную структуру, соответствующую более поздним схемам XML.

Проанализируем пример типичной ошибки, возникающей в модуле объекта обработки ЗагрузкаСтруктурыМетаданных:


{Обработка.ЗагрузкаСтруктурыМетаданных.МодульОбъекта(73)}: Ошибка при вызове метода контекста (ПрочитатьXML)
            ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML: [sfile://C:/Temp/80.xml][167,2]

Ошибка указывает на то, что метод ПрочитатьXML наталкивается на узел, который не описан в текущей схеме данных КД 2.1. В старых файлах 80.xml часто встречаются узлы квалификаторов (строки, числа, даты) и специфические ссылки, которые в современных версиях платформы обрабатываются иначе.

Способ 1: Последовательная конвертация платформы (Рекомендуемый)

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

  1. Подготовка копии: Все действия выполняем только на копии базы! Поскольку база на 8.0 «сильно доработана», риск её повреждения при реструктуризации существует, хотя для целей выгрузки метаданных это не критично.
  2. Переход на 8.1: Открываем базу на платформе 8.0 в режиме Конфигуратора, используя платформу версии 8.1. При запуске система предложит выполнить конвертацию. Соглашаемся и дожидаемся завершения реструктуризации таблиц.
  3. Переход на 8.2: Аналогично открываем полученную базу в Конфигураторе платформы 8.2. После завершения этого этапа база фактически становится совместимой с современными инструментами выгрузки.
  4. Запуск на 8.3: Теперь базу можно запустить даже на актуальной платформе 8.3. Обратите внимание, что режим совместимости в свойствах конфигурации останется старым, но объектная модель метаданных станет доступна для современных обработок.

После проведения этих манипуляций мы можем использовать обработку MD82.epf (или MD83.epf), которая входит в состав дистрибутива КД 2.1.8. Эта обработка выгрузит метаданные в формате, который КД 2.1 прочитает без единой ошибки.

Способ 2: Использование промежуточной версии КД 2.0

Если по каким-то причинам последовательная конвертация платформы невозможна (например, база повреждена или отсутствуют дистрибутивы промежуточных платформ), можно попробовать использовать «архивные» инструменты. Рассмотрим этот вариант подробнее.

Конфигурация «Конвертация данных 2.0.16» была выпущена в период активного использования платформ 8.0 и 8.1. Её механизмы загрузки гораздо более лояльны к старому формату XML. Алгоритм действий в этом случае следующий:

Тонкости выбора обработки: MD81, MD82 или MD83?

Выясним разницу между обработками выгрузки метаданных, чтобы не совершить типичных ошибок:

  1. MD80.epf: Работает исключительно на платформе 8.0. Использует устаревший формат выгрузки, плохо совместимый с КД 2.1.
  2. MD81.epf: Предназначена для 8.1. Не запустится на базе 8.0, так как будет пытаться обращаться к свойствам объектов (например, к коллекциям общих модулей или новым типам), которых в 8.0 физически не существует в объектной модели.
  3. MD82.epf: Оптимальный выбор для «классических» конфигураций на обычных формах, запущенных на современных платформах.
  4. MD83.epf: В первую очередь необходима для работы с новыми объектами 8.3 (внешние источники данных, расширения) и корректной обработки свойств управляемых форм. Для старой ЗУП 1.0 на платформе 8.3 обработки MD82.epf будет достаточно.

Заключение

Разберем итог: если вы столкнулись с ошибкой преобразования XML при загрузке структуры метаданных «Предприятие 8.0», не пытайтесь править XML-файл вручную. Это может привести к потере связей между объектами. Лучшее решение — последовательный апгрейд платформы базы-источника до 8.2 или 8.3. Это гарантирует, что MD82.epf создаст корректный файл, содержащий все необходимые идентификаторы типов, которые «Конвертация данных 2.1» сможет корректно сопоставить и загрузить.

← На главную