При переходе с устаревших конфигураций на базе 1С:Предприятие 7.7 или при необходимости организации регулярного переноса в современную 1С:Бухгалтерию предприятия 3.0 разработчики часто сталкиваются с техническими трудностями. Привычные правила обмена перестают работать из-за разницы в структуре метаданных. При попытке выгрузить структуру современной конфигурации и загрузить ее в базу «Конвертации данных» возникает ошибка разбора XML. Разберем по шагам, как правильно организовать процесс выгрузки структуры, какие инструменты использовать и как устранить типичные ошибки.
Проанализируем архитектуру версий конфигурации «Конвертация данных»:
EnterpriseData (на основе форматов XDTO) с использованием Библиотеки стандартных подсистем (БСП). Платформа 1С 7.7 не поддерживает интеграционные модули БСП и объекты метаданных 8.3. Соответственно, создать прямое сопоставление метаданных между 7.7 и 8.3 в КД 3.0 штатным образом невозможно.Таким образом, для связки «1С 7.7 — 1С:Бухгалтерия 3.0» стандартом является использование КД 2.1.
При попытке загрузить файл с метаданными БП 3.0 в «Конвертацию данных» нередко появляется исключение платформы:
{Обработка.ЗагрузкаСтруктурыМетаданных(297)}: Ошибка при вызове метода контекста (ПрочитатьXML)
Объект = ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XML
Выясним причину такого поведения системы. Данная ошибка возникает из-за рассинхронизации версий. Если обработка выгрузки структуры MD83Exp.epf берется из свежего дистрибутива или конфигурация БП 3.0 работает на новой версии платформы, в XML-файл попадают новые типы метаданных (например, общие реквизиты с разделением, специфические свойства табличных частей или интеграционные объекты). Если при этом сама конфигурация «Конвертация данных 2» не обновлена до актуального релиза, ее внутренние схемы и справочники не знают новых типов и процедура ПрочитатьXML завершается сбоем.
Главное решение: необходимо обновить базу «Конвертация данных» до актуального релиза (не ниже 2.1.8). Обработка MD83Exp.epf должна быть взята строго из шаблона поставки установленной версии КД.
Разберем весь алгоритм действий для получения рабочей схемы конвертации.
Откроем БП 3.0 в режиме «1С:Предприятие». Через главное меню запустим внешнюю обработку MD83Exp.epf. Чтобы избежать раздувания файла и ускорить чтение, снимем флаги с элементов, не используемых в обмене: Движения документов, Права, Формы, Интерфейсы. Выгрузим файл метаданных (например, BP3_metadata.xml).
Запустим базу 7.7 в монопольном или разделенном режиме. Через пункт меню «Файл» — «Открыть» вызовем обработку MD77Exp.ert (из каталога поставки КД). Сформируем XML-файл структуры 7.7.
Откроем актуальную базу «Конвертация данных 2». Перейдем в список конфигураций и с помощью штатной обработки Загрузка структуры метаданных последовательно загрузим полученные XML-файлы для конфигурации-источника (7.7) и конфигурации-приемника (БП 3.0).
После настройки правил конвертации объектов (ПКО) и правил конвертации свойств (ПКС) необходимо подготовить рабочий комплект для регулярной передачи информации:
V8Ex77.ert, которая считывает созданные в КД 2.1 правила обмена и формирует итоговый XML-файл с данными. При выгрузке строковых полей помним, что 7.7 использует кодировку Windows-1251, в то время как результирующий XML должен корректно восприниматься средой 8.3 в UTF-8.УниверсальныйОбменДаннымиXML.epf (на управляемых формах) или через встроенный механизм обмена данными в подсистеме БСП.Рассмотрим важные тонкости переноса, которые предотвращают логические ошибки учета:
В конфигурациях 7.7 бухгалтерские итоги и проводки генерировались программным кодом проведения непосредственно в момент сохранения документа. Структура регистров бухгалтерии и счетов в БП 3.0 существенно отличается жесткой типизацией субконто через планы видов характеристик. Переносить движения напрямую не рекомендуется.
Оптимальный подход — выгружать только шапку и табличные части документов, сопоставляя счета учета и обязательную аналитику (номенклатурные группы, статьи затрат, договоры) по правилам ПКС. Проведение документов следует инициировать на стороне приемника в обработчике события «После загрузки» правила конвертации объектов:
Если Не Параметры.НеПроводитьДокументыПриЗагрузке Тогда
Попытка
Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Исключение
ЗаписьЖурналаРегистрации("Ошибка загрузки из 7.7", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Соблюдение соответствия релизов КД и правильное отключение лишних метаданных гарантируют корректную загрузку структуры и стабильную работу обмена между поколениями платформ 1С.