Как правильно перевести конфигурацию с платформы 1С 8.1 на платформу 1С 8.3?

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

При сопровождении устаревших прикладных решений нередко возникает необходимость переноса конфигурации с платформы 1С:Предприятие 8.1 на актуальную платформу 8.3. Основная цель такого перехода — использование современных инструментов разработки, серверных механизмов и запуск базы в режиме совместимости с обычными формами без необходимости полной переработки интерфейса под управляемые формы.

Разберем по шагам, почему прямая конвертация завершается ошибкой, как технически правильно выполнить переход и какие нюансы работы кода и СУБД следует учесть.

Архитектурные ограничения: почему не работает прямая конвертация

Платформа 8.3 не поддерживает прямое открытие информационных баз формата 8.1. Внутренние структуры хранения метаданных и таблиц СУБД версии 8.1 кардинально отличаются от формата 8.3, а механизмы прямой конвертации из 8.1 были исключены еще на этапе развития ветки 8.3. Попытка открыть файл базы или загрузить файл выгрузки .dt из 8.1 напрямую в конфигураторе 8.3 приводит к аварийному завершению работы или ошибкам несовместимости формата.

Корректный переход выполняется исключительно через промежуточный шаг — платформу 1С:Предприятие 8.2 (рекомендуется релиз 8.2.14 или выше).

Подготовка исходной базы в платформе 8.1

Перед началом любых манипуляций обязательно создадим резервную копию рабочей базы. Если база повреждена или содержит логические ошибки ссылочной целостности, процесс конвертации гарантированно прервется с ошибкой. Проанализируем обязательные шаги подготовки:

  1. Для файловых баз запустим утилиту проверки целостности таблиц chdbfl.exe из каталога bin установленной платформы 8.1 и исправим найденные ошибки.
  2. Запустим конфигуратор 8.1 и выполним процедуру Администрирование — Тестирование и исправление... со всеми включенными проверками (включая реиндексацию, проверку логической и ссылочной целостности, а также реструктуризацию таблиц).
  3. Выгрузим файл конфигурации (.cf) и файл информационной базы (.dt) для сохранения резервного слепка.

Вариант 1. Поэтапная последовательная конвертация базы целиком

Если требуется перенести информационную базу со всеми накопленными данными и историей, применим двухшаговую схему обновления:

  1. Шаг 1: Конвертация 8.1 в 8.2. Установим платформу 1С 8.2. Добавим копию базы 8.1 в список баз платформы 8.2 и откроем ее в режиме конфигуратора. Платформа предложит выполнить конвертацию формата информационной базы. Подтверждаем операцию. После успешного открытия конфигуратора проверяем, что в свойствах конфигурации установлен режим совместимости с версией 8.1, и сохраняем изменения конфигурации базы данных (клавиша F7).
  2. Шаг 2: Конвертация 8.2 в 8.3. Установим целевую платформу 8.3. Добавим уже сконвертированную на предыдущем шаге базу в список запуска 8.3. Открываем базу конфигуратором 8.3 и соглашаемся на повторную конвертацию. Конфигурация успешно откроется в среде 8.3 в режиме совместимости с версией 8.2.13 или 8.2.16.
  3. Шаг 3: Проверка внешних компонентов. Выгрузим и заново пересохраним внешние отчеты, печатные формы и обработки заполнения табличных частей, чтобы обновить их внутренний формат под платформу 8.3.

Вариант 2. Перенос структуры (CF) и загрузка данных через XML

В ситуациях, когда база содержит сильные повреждения таблиц или конвертация целиком дает сбой, разберем альтернативный путь: перенос чистой структуры метаданных и последующая перекачка данных обработками.

  1. Открываем файл .cf конфигурации в платформе 8.2, сохраняем его, затем открываем и сохраняем в 8.3.
  2. Создаем пустую информационную базу на платформе 8.3 и загружаем полученный файл конфигурации .cf через меню Конфигурация — Загрузить конфигурацию из файла....
  3. Для переноса данных используем внешнюю обработку ВыгрузкаЗагрузкаДанныхXML.epf:
    1. В исходной базе на платформе 8.1 запускаем версию обработки, адаптированную под обычные формы 8.1, и выгружаем данные в XML-файл.
    2. В целевой базе на платформе 8.3 открываем соответствующую версию обработки для 8.3 и загружаем полученный XML-файл.
  4. Если между структурами метаданных есть различия, воспользуемся конфигурацией Конвертация данных 2.1: выгрузим описания структур через MD81Exp.epf и MD83Exp.epf, сформируем правила прямого переноса объектов («один в один») и выполним перенос через универсальный обмен в формате XML.

Особенности адаптации кода и окружения в режиме 8.3

После успешного запуска информационной базы на платформе 8.3 в режиме совместимости необходимо проверить ключевые технические моменты:

  1. Разрядность и COM-объекты: Если старая конфигурация 8.1 работала с 32-битными внешними библиотеками (торговое оборудование, генераторы штрихкодов, прямая работа с Microsoft Office), клиентское приложение 8.3 также должно запускаться в 32-разрядной версии (x86), иначе вызовы COM-объектов завершатся системной ошибкой.
  2. Режимы блокировок: В 8.1 стандартом были автоматические блокировки. При работе на современных версиях СУБД (MS SQL Server, PostgreSQL) рекомендуется перевести режим управления блокировками данных в свойствах конфигурации в положение Управляемый или Автоматический и управляемый для предотвращения взаимоблокировок (deadlocks).
  3. Синтаксис запросов и зарезервированные имена: Платформа 8.3 строже относится к неявным приведениям типов в секциях ПО и ГДЕ. Кроме того, проверьте код модулей на совпадение локальных переменных с новыми глобальными свойствами платформы 8.3 (например, Сеанс, ПараметрыКлиента, Криптография).
  4. Полнотекстовый поиск: После завершения перехода очистим и перестроим индекс полнотекстового поиска, выполнив в коде или консоли разработчика:
    
    ПолнотекстовыйПоиск.Очистить();
    ПолнотекстовыйПоиск.Обновить(Истина);
    

Соблюдение описанной цепочки конвертации позволяет быстро запустить старое прикладное решение на платформе 8.3 без потери данных и без необходимости экстренного переписывания обычных форм в управляемые.

← На главную