При попытке загрузить файл выгрузки информационной базы (.dt), созданный в платформе 1С:Предприятие 8.3, в более старую версию платформы 1С:Предприятие 8.1, конфигуратор выдает ошибку: «Неверный формат файла для загрузки информационной базы». Проанализируем, почему возникает данная ситуация, почему изменение режима совместимости не помогает и какими способами можно корректно перенести данные в обратном направлении (выполнить даунгрейд).
Платформа 1С:Предприятие изначально проектируется с поддержкой обратной совместимости только снизу вверх (в сторону повышения версии). Это означает, что база данных 8.1 автоматически конвертируется при открытии в 8.3, но обратный процесс на уровне двоичных файлов не предусмотрен.
Выделим ключевые технические причины несовместимости:
.dt, .cf и .epf в платформе 8.3 кардинально отличаются от алгоритмов платформы 8.1. Платформа 8.1 не умеет читать более новую структуру контейнеров..dt — выгрузка все равно формируется движком 8.3.Таким образом, прямое разворачивание файла .dt или файла .cf из 8.3 в 8.1 технически невозможно. Перенос возможен только на уровне выгрузки и загрузки прикладных данных в предварительно подготовленную конфигурацию 8.1.
Поскольку файл структуры .cf из 8.3 нельзя загрузить в 8.1, конфигурация в базе-приемнике 8.1 должна быть подготовлена заранее одним из способов:
Рассмотрим основные практические способы переноса накопленной информации из базы 8.3 в базу 8.1.
Это самый надежный и универсальный метод, особенно если структуры метаданных в базах различаются или требуется настроить сложные правила сопоставления объектов.
Разберем процесс настройки по шагам:
MD83Exp.epf выгружаем структуру метаданных из базы-источника 8.3 в файл XML.MD81Exp.epf выгружаем структуру метаданных из базы-приемника 8.1.ПравилаОбмена.xml.V8ExFormat.epf (Универсальный обмен данными в формате XML) выполняем выгрузку данных по сформированным правилам.V8ExFormat.epf для платформы 8.1 и загружаем полученный XML-файл.Если структура метаданных в исходной базе 8.3 и целевой базе 8.1 абсолютно идентична (например, конфигурация не менялась, а лишь запускалась в 8.3), можно использовать обработку прямого переноса объектов без создания правил.
Порядок действий:
ВыгрузкаЗагрузкаДанныхXML.epf (версию для 8.3).ВыгрузкаЗагрузкаДанныхXML.epf, предназначенную для платформы 8.1.Рассмотрим программный способ переноса, когда необходимо выборочно перенести определенные справочники или документы без промежуточных файлов.
Для этого можно запустить внешнюю обработку в базе 8.1, подключиться к базе 8.3 через V83.COMConnector и программно создать объекты в базе-приемнике:
// Пример подключения к базе 8.3 из базы 8.1
Коннектор = Новый COMОбъект("V83.COMConnector");
СтрокаПодключения = "File=""C:\Bases\Base83"";Usr=""Администратор"";Pwd="""";";
Попытка
Соединение83 = Коннектор.Connect(СтрокаПодключения);
Исключение
Сообщить("Ошибка подключения к базе 8.3: " + ОписаниеОшибки());
Возврат;
КонецПопытки;
// Чтение данных из источника через COM
Запрос83 = Соединение83.NewObject("Запрос");
Запрос83.Текст =
"ВЫБРАТЬ
| Контрагенты.Код КАК Код,
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
Выборка83 = Запрос83.Выполнить().Выбрать();
// Запись данных в локальной базе 8.1
Пока Выборка83.Следующий() Цикл
КонтрагентОбъект = Справочники.Контрагенты.СоздатьЭлемент();
КонтрагентОбъект.Код = Выборка83.Код;
КонтрагентОбъект.Наименование = Выборка83.Наименование;
КонтрагентОбъект.ИНН = Выборка83.ИНН;
КонтрагентОбъект.Записать();
КонецЦикла;
Штатного механизма автоматической обратной конвертации базы из 1С 8.3 в 1С 8.1 не существует. Решением задачи является подготовка пустой конфигурации 8.1 из архива и перенос накопленных данных с помощью XML-выгрузок, конфигурации «Конвертация данных 2.1» или прямого COM-соединения.