При работе с программным продуктом 1С:Конвертация данных 3.1 (КД 3.1) многие разработчики, привыкшие к классической версии 2.1, сталкиваются с определенной путаницей. В дистрибутиве по-прежнему присутствует знакомая обработка MD83EXP.epf, однако при попытке загрузить созданный ею файл в КД 3.1 система часто выдает ошибку о нехватке файла Configuration.xml. Разберем подробно, почему так происходит, для чего на самом деле нужна эта обработка сегодня и каким методом следует пользоваться для настройки современных обменов.
Прежде всего, проанализируем архитектурную разницу. Конвертация данных 3.1 — это не просто обновление версии 2.1, это инструмент, ориентированный на работу с технологией EnterpriseData (обмен через формат XDTO). В то время как КД 2.1 использовала «линейные» правила обмена, где объект источника напрямую конвертировался в объект приемника, КД 3.1 использует промежуточный формат данных.
Рассмотрим, почему в составе КД 3.1 все еще находится MD83EXP.epf:
MD83EXP.epf.УниверсальныйОбменВФорматеXML, вы фактически работаете в парадигме КД 2.1, и здесь обработка выгрузки структуры остается актуальной.Если ваша задача — создать или изменить правила обмена для современной конфигурации (например, ЗУП 3.1 или ЕРП 2.5), использующей формат EnterpriseData, то использование MD83EXP.epf будет ошибкой. Рассмотрим правильный алгоритм действий.
Выясним причину требования файла Configuration.xml. КД 3.1 для создания «Версии формата» требует полной информации о пространстве имен XDTO и структуре объектов. Эту информацию невозможно получить из сокращенного файла, который формирует внешняя обработка. Поэтому мы должны использовать штатный механизм платформы.
Разберем процесс по шагам:
Configuration.xml, выполняющий роль карты всей выгрузки.При таком подходе КонвертацияДанных корректно прочитает все метаданные, включая пакеты XDTO, что критически важно для настройки сопоставления с форматом обмена.
Если же вы намеренно используете КД 3.1 для работы со старым форматом XML (аналог КД 2.1), то обработка MD83EXP.epf остается вашим рабочим инструментом. Однако помните, что загружать полученный файл нужно не в общий список «Версий конфигураций», а в специализированные разделы, предназначенные для «Конвертаций» (в терминологии КД 2.1).
Проанализируем типичный сценарий использования MD83EXP.epf:
Посмотрим на ситуацию, описанную в сообщениях темы: при загрузке структуры ЗУП система может зависать или выдавать фатальные ошибки. Это происходит из-за колоссального объема метаданных в современных типовых решениях (особенно это касается регистров сведений и расчетов).
Рассмотрим подробнее методы борьбы с этой проблемой:
Метод 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. Используйте только выгрузку конфигурации в файлы через Конфигуратор.MD83EXP.epf вам пригодится, но загружать её результат нужно в соответствующие разделы КД 3.1.КонвертацияДанных, в то время как обработка MD83EXP.epf продолжает обновляться для поддержки новых типов данных платформы 8.3.Таким образом, наличие MD83EXP.epf в составе КД 3.1 — это дань универсальности инструмента, позволяющего работать как с современными, так и с проверенными временем технологиями обмена данными в экосистеме 1С.