← На главную
При переносе данных и разработке правил обмена с помощью конфигурации «Конвертация данных» (редакции 2.x) первым шагом является выгрузка описания структуры метаданных исходной и приемной баз. Для платформы 1С:Предприятие 7.7 для этих целей используется внешняя обработка MD77Exp.ert. Однако на этапе загрузки полученного XML-файла в базу «Конвертации данных» разработчики нередко сталкиваются со сбоем:
Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XML: [file://...][2,5955]
Разберем подробнее, почему возникает данное исключение платформы 1С:Предприятия 8 и какими способами можно успешно загрузить структуру метаданных 7.7.
Причины возникновения ошибки
Проанализируем основные факторы, вызывающие сбой при вызове метода ПрочитатьXML():
- Несоответствие версий обработки и конфигурации «Конвертация данных». Формат выгрузки схемы метаданных и XDTO-пакеты регулярно обновляются разработчиками 1С. Если выгрузка сформирована обработкой
MD77Exp.ert из старого (или, наоборот, более нового) комплекта поставки, структура тегов в XML не совпадет с ожиданиями алгоритма загрузки.
- Недопустимые символы в метаданных 1С 7.7. Платформа 7.7 менее строго контролирует наличие спецсимволов и управляющих байтов (ASCII 0x00–0x1F) в синонимах, комментариях или наименованиях объектов. Наличие неэкранированных знаков
&, <, >, кавычек или переводов строк приводит к нарушению синтаксиса XML-файла.
- Проблемы с библиотекой
v7plus.dll. Обработка MD77Exp.ert для формирования файла использует объект XMLАнализатор из внешней компоненты v7plus.dll. Устаревшая или поврежденная версия библиотеки может записывать весь XML в одну сплошную строку с некорректным экранированием или сбоем в кодировке.
- Нарушение ссылочной целостности конфигурации 7.7. Наличие битых ссылок в метаданных (например, реквизитов удаленных видов субконто или периодических реквизитов с неопределенным типом) может приводить к генерации пустых или некорректных узлов в схеме.
Способ 1. Синхронизация версий обработки MD77Exp.ert и базы «Конвертация данных»
Рассмотрим самое частое и простое решение. Обработку MD77Exp.ert необходимо брать строго из того дистрибутива конфигурации «Конвертация данных», в которую планируется выполнять загрузку.
- Перейдем в каталог шаблонов установки «Конвертации данных» (по умолчанию:
tmplts\1c\Conversion\...) актуального релиза.
- Найдем в папке шаблона файл
MD77Exp.ert и соответствующую ему библиотеку v7plus.dll.
- Скопируем эти файлы в каталог информационной базы 1С 7.7 или каталог
BIN платформы.
- Запустим 1С 7.7, откроем обновленную обработку через меню Файл — Открыть и повторно выполним выгрузку структуры метаданных.
- Повторим загрузку XML-файла в «Конвертации данных».
Способ 2. Локализация ошибки по координатам и исправление метаданных
Если обновление обработки не помогло, выясним причину сбоя, опираясь на координаты в тексте ошибки. Например, при ошибке вида [file://D:/V77Data.xml][2,5955] сбой произошел во 2-й строке на 5955-й позиции символа.
- Откроем полученный XML-файл в текстовом редакторе для разработчиков (например, Notepad++ или VS Code).
- Если файл записан в одну длинную строку, выполним форматирование XML (Pretty Print / Форматировать XML), либо перейдем по абсолютному смещению к указанному символу.
- Проанализируем проблемный узел: найдем имя реквизита, справочника или документа, на описании которого парсер выдал ошибку.
- Откроем конфигурацию 1С 7.7 в Конфигураторе, найдем проблемный объект метаданных и проверим его синоним, комментарий и состав типов. Удалим из описания любые служебные символы (
&, <, >, спецсимволы псевдографики).
- Сохраним конфигурацию 7.7 и сформируем файл описания структуры заново.
Способ 3. Тестирование и исправление информационной базы 7.7
При повреждении внутренних таблиц описания метаданных необходимо выполнить проверку базы штатными средствами:
- Запустим 1С:Предприятие 7.7 в режиме Конфигуратор под пользователем с административными правами.
- В главном меню перейдем в пункт Администрирование — Тестирование и исправление ИБ.
- Установим флаги Проверка физической целостности, Реиндексация и Проверка ссылочной целостности.
- Выполним тестирование, после чего повторим выгрузку через
MD77Exp.ert.
Способ 4. Выгрузка структуры через промежуточную конвертацию конфигурации в 1С 8.2 / 8.3
Если конфигурация 7.7 сильно изменена и исправить ошибки формирования XML в среде 7.7 не удается, можно воспользоваться штатным конвертером платформы 1С 8:
- Создадим пустую информационную базу на платформе 1С:Предприятие 8.2 или 8.3 (в режиме совместимости с 8.2).
- Откроем Конфигуратор и выполним пункт меню Конфигурация — Загрузить из файлов... или используем штатную утилиту конвертации файла
1Cv7.MD в конфигурацию 1С 8.
- После успешного преобразования структуры конфигурации в формат 1С 8 воспользуемся стандартной обработкой
MD82Exp.epf (или встроенной выгрузкой структуры метаданных конфигурации 1С 8).
- При загрузке структуры в «Конвертацию данных» укажем, что конфигурация-источник соответствует платформе 7.7, а загруженные объекты сопоставим по именам.
Альтернативные способы формирования XML
Если ошибка вызвана некорректной работой библиотеки v7plus.dll в современных операционных системах (например, Windows 10/11 или 64-битных версиях Windows Server), можно использовать доработанные варианты обработки MD77Exp.ert. В них формирование XML-документа выполняется не через объект XMLАнализатор, а посредством системного COM-объекта MSXML2.DOMDocument либо прямой записью текста через встроенный объект Текст с ручным экранированием спецсимволов.