Для чего нужна обработка MD83EXP в Конвертации данных 3.1 и как правильно загрузить структуру конфигурации

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

При работе с программным продуктом 1С:Конвертация данных 3.1 (КД 3.1) многие разработчики, привыкшие к классической версии 2.1, сталкиваются с определенной путаницей. В дистрибутиве по-прежнему присутствует знакомая обработка MD83EXP.epf, однако при попытке загрузить созданный ею файл в КД 3.1 система часто выдает ошибку о нехватке файла Configuration.xml. Разберем подробно, почему так происходит, для чего на самом деле нужна эта обработка сегодня и каким методом следует пользоваться для настройки современных обменов.

Два мира конвертации: XML и EnterpriseData

Прежде всего, проанализируем архитектурную разницу. Конвертация данных 3.1 — это не просто обновление версии 2.1, это инструмент, ориентированный на работу с технологией EnterpriseData (обмен через формат XDTO). В то время как КД 2.1 использовала «линейные» правила обмена, где объект источника напрямую конвертировался в объект приемника, КД 3.1 использует промежуточный формат данных.

Рассмотрим, почему в составе КД 3.1 все еще находится MD83EXP.epf:

  1. Обратная совместимость: Фирма «1С» встроила механизмы старой Конвертации данных 2.1 непосредственно в интерфейс КД 3.1. Это позволяет вести старые проекты обмена в той же базе.
  2. Правила регистрации объектов: Даже если сам обмен данными идет по новой технологии через EnterpriseData, правила регистрации (определяющие, какие именно изменения объектов должны выгружаться) часто настраиваются по старой технологии. Для их формирования в КД 3.1 может потребоваться структура, выгруженная именно через MD83EXP.epf.
  3. Поддержка классического обмена: Если вам необходимо поправить правила для обработки УниверсальныйОбменВФорматеXML, вы фактически работаете в парадигме КД 2.1, и здесь обработка выгрузки структуры остается актуальной.

Загрузка структуры для обмена EnterpriseData (КД 3.1)

Если ваша задача — создать или изменить правила обмена для современной конфигурации (например, ЗУП 3.1 или ЕРП 2.5), использующей формат EnterpriseData, то использование MD83EXP.epf будет ошибкой. Рассмотрим правильный алгоритм действий.

Выясним причину требования файла Configuration.xml. КД 3.1 для создания «Версии формата» требует полной информации о пространстве имен XDTO и структуре объектов. Эту информацию невозможно получить из сокращенного файла, который формирует внешняя обработка. Поэтому мы должны использовать штатный механизм платформы.

Разберем процесс по шагам:

  1. Откроем информационную базу (например, ЗУП) в режиме Конфигуратор.
  2. В главном меню выберем пункт Конфигурация -> Выгрузить конфигурацию в файлы....
  3. Укажем пустой каталог на диске. Система создаст там сотни или тысячи XML-файлов, среди которых будет и тот самый Configuration.xml, выполняющий роль карты всей выгрузки.
  4. Вернемся в базу «Конвертация данных 3.1».
  5. Перейдем в раздел настроек структуры конфигураций и нажмем Загрузить структуру конфигурации.
  6. В поле «Способ загрузки» выберем из файлов XML.
  7. Укажем путь к каталогу, в который только что выполнили выгрузку из Конфигуратора.

При таком подходе КонвертацияДанных корректно прочитает все метаданные, включая пакеты XDTO, что критически важно для настройки сопоставления с форматом обмена.

Работа с MD83EXP для правил регистрации и старых обменов

Если же вы намеренно используете КД 3.1 для работы со старым форматом XML (аналог КД 2.1), то обработка MD83EXP.epf остается вашим рабочим инструментом. Однако помните, что загружать полученный файл нужно не в общий список «Версий конфигураций», а в специализированные разделы, предназначенные для «Конвертаций» (в терминологии КД 2.1).

Проанализируем типичный сценарий использования MD83EXP.epf:

  1. Запускаем обработку в целевой базе.
  2. Выбираем необходимые типы объектов (Справочники, Документы и т.д.).
  3. Нажимаем Выгрузить, получаем один компактный файл в формате XML.
  4. В КД 3.1 убеждаемся, что включен функционал использования старых правил (Администрирование -> Используемый функционал).
  5. Загружаем структуру через специализированный помощник для КД 2.1.

Проблема фатальных сбоев при загрузке структуры (на примере ЗУП)

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

Рассмотрим подробнее методы борьбы с этой проблемой:

Метод 1: Очистка выгрузки. После того как вы выгрузили конфигурацию в файлы из Конфигуратора, можно вручную удалить папки с объектами, которые заведомо не будут участвовать в обмене. Например, если вам нужны только справочники и документы, можно удалить каталоги InformationRegisters, AccumulationRegisters и другие. После этого Configuration.xml все равно позволит загрузить оставшееся, но нагрузка на память при чтении в КД значительно снизится.

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

Метод 3: Использование 1C:EDT. Если база разрабатывается в среде EDT, КД 3.1 поддерживает прямую загрузку структуры из проекта EDT. Это часто работает стабильнее, чем чтение тысяч мелких XML-файлов.

Пример кода для программного анализа структуры

Иногда программисту требуется понять, какие объекты попали в выгрузку, не дожидаясь окончания долгого процесса импорта в КД. Рассмотрим пример простейшего кода на языке 1С, который позволяет прочитать заголовочный файл выгрузки конфигурации:


Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьККаталогу + "\Configuration.xml");
Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.ЛокальноеИмя = "ChildObjects" Тогда
        // Здесь начинается перечисление всех объектов конфигурации
        Пока Чтение.Прочитать() Цикл
            Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Сообщить("Найден объект метаданных: " + Чтение.ЛокальноеИмя + " - " + Чтение.ПолучитьАтрибут("name"));
            КонецЕсли;
            Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента И Чтение.ЛокальноеИмя = "ChildObjects" Тогда
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
КонецЦикла;
Чтение.Закрыть();

Этот фрагмент кода демонстрирует, что Configuration.xml является корневым узлом, содержащим ссылки на все дочерние объекты. Именно поэтому КД 3.1 не может начать загрузку без этого файла — он служит оглавлением всей структуры метаданных.

Резюме и рекомендации

Проанализировав ситуацию, мы можем сделать следующие выводы:

Таким образом, наличие MD83EXP.epf в составе КД 3.1 — это дань универсальности инструмента, позволяющего работать как с современными, так и с проверенными временем технологиями обмена данными в экосистеме 1С.

← На главную