При необходимости настроить обмен данными между конфигурациями на разных платформах, например, 1С:Предприятие 8.1 и 1С:Предприятие 8.3, специалисты часто сталкиваются с техническим тупиком. Основная сложность заключается в несовместимости форматов выгрузки метаданных в разных версиях инструмента Конвертация данных (КД). Попробуем разобраться, почему возникает ошибка преобразования XML и как корректно загрузить структуры обеих баз в одну информационную базу КД.
Рассмотрим типичную ситуацию: при попытке загрузить структуру метаданных, выгруженную из 8.1 с помощью обработки MD81Exp.epf от версии КД 2.0, в современную КД 2.1.8.x, система выдает ошибку: «Ошибка преобразования данных XML». Это происходит из-за того, что формат XML-описания структуры метаданных существенно изменился при переходе от КД 2.0 к КД 2.1.
Проблема усугубляется тем, что обработки выгрузки метаданных (MD82Exp.epf, MD83Exp.epf), идущие в комплекте с новыми версиями КД, ориентированы на использование свойств платформы 8.2 и 8.3 (например, управляемые формы, новые типы метаданных), и они могут просто не запуститься на старой платформе 8.1.
Проанализируем историю версий программного продукта. Как показывает практика, поддержка платформы 8.1 в явном виде была прекращена в релизах КД, начиная с 2.1.8. Для решения нашей задачи наиболее эффективным будет использование версии КД 2.1.7.1. Выясним, почему это помогает:
MD81Exp.epf, адаптированная под требования формата 2.1.Рассмотрим пошаговый алгоритм действий:
Конвертация данных версии 2.1.7.1.MD81Exp.epf из комплекта поставки этой версии КД и запустим ее в базе на платформе 8.1. Выгрузим структуру в файл XML.MD83Exp.epf (можно из текущего актуального релиза КД) и выгрузим структуру из базы 8.3.После этого у нас в одной базе будут описания обеих конфигураций, и мы сможем приступить к созданию правил обмена (ПКО, ПКС и т.д.).
Если нам критически важно работать в самой последней версии Конвертации данных (например, 2.1.8.2), но она отказывается принимать файлы от 8.1, применим метод «апгрейда» данных:
.cf) этой базы до версии 2.1.8. В процессе обновления структуры данных самой КД, загруженные метаданные будут сконвертированы во внутренний формат новой версии.MD83Exp.epf.Часто программист сталкивается с административными ограничениями, когда доступ в Конфигуратор закрыт. Разберем, как получить структуру метаданных в таких условиях. Для работы обработки MD81Exp.epf (или любой другой MD...Exp) не требуется режим Конфигуратора. Достаточно прав на запуск внешних обработок в режиме «Предприятие».
Если же стоит задача выгрузки данных по правилам, обратите внимание на используемые обработки обмена:
V8Ex20.epf.V8Ex30.epf.Важно помнить, что V8Ex30.epf (универсальный обмен данными в формате XML) обычно сохраняет обратную совместимость. Ее можно запустить на платформе 8.1 в режиме обычного приложения. Это позволит выполнять выгрузку данных из старой базы по правилам, созданным в современной КД 2.1.
В некоторых случаях, чтобы избежать проблем с XML-файлами, можно попробовать загрузить структуру через COM-соединение прямо из интерфейса Конвертации данных (вкладка «Загрузка метаданных» -> «Из информационной базы»). Для этого на компьютере, где запущена КД, должен быть установлен COM-connector соответствующей версии платформы.
Проанализируем пример кода, который КД использует внутри себя для инициализации соединения с базой 8.1 (условно):
// Пример инициализации COM-соединения для платформы 8.1
ПутьКБазе = "Srvr='ServerName';Ref='BaseName';";
Попытка
COMСоединитель = Новый COMОбъект("V81.ComConnector");
База81 = COMСоединитель.Connect(ПутьКБазе + "Usr='Админ';Pwd='пароль';");
Сообщить("Соединение успешно установлено!");
Исключение
Сообщить("Не удалось установить соединение: " + ОписаниеОшибки());
КонецПопытки;
Использование прямого подключения часто позволяет обойти ошибки формата XML, так как данные передаются напрямую между объектами платформ.
Мы выяснили, что основной причиной проблем является резкое изменение схемы XML в версии КД 2.1.8. Для успешной работы со старыми конфигурациями 8.1 рекомендуется придерживаться стратегии использования КД 2.1.7 как промежуточного звена. Также не забывайте, что обработка MD81Exp.epf может работать на платформе 8.3 в режиме толстого клиента (обычного приложения), что иногда позволяет выгрузить структуру «проблемной» базы, просто запустив ее на более свежем движке платформы (если это технически возможно в конкретной инфраструктуре).
Главный совет: всегда храните дистрибутив КД 2.1.7.1, так как это единственный инструмент, обеспечивающий надежный мост между эпохой 1С 8.1 и современными стандартами разработки.