Как правильно выбрать версию «Конвертации данных» для переноса данных из 1С 8.2 в 1С 8.3?

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

При переходе с устаревших конфигураций на платформе 1С:Предприятие 8.2 (использующих обычные формы) на современные решения на платформе 8.3 (управляемые формы), специалисты часто сталкиваются с вопросом: какую версию программного продукта «Конвертация данных» (КД) использовать? Существует мнение, что более новая версия КД 3.0 предпочтительнее, однако технические реалии диктуют свои правила.

В этой статье мы подробно проанализируем ситуацию, разберем фундаментальные различия в технологиях обмена и выясним, почему для систем на базе 8.2 классическая версия КД 2.1 остается единственным рациональным выбором.

Различие в архитектурных подходах версий 2.1 и 3.0

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

  1. Конвертация данных 2.1: Работает по принципу прямой связи «Объект Источника — Объект Приемника». Мы создаем правила обмена (XML), где жестко прописываем, что СправочникСсылка.Номенклатура из старой базы должна превратиться в СправочникСсылка.Номенклатура в новой базе с соответствующим сопоставлением реквизитов. Это идеальный вариант для разового переноса остатков, документов и справочной информации.
  2. Конвертация данных 3.0: Базируется на технологии XDTO и использует концепцию универсального формата обмена — EnterpriseData. Здесь логика иная: база-источник преобразует свои данные в некий «общий язык» (универсальный формат), а база-приемник считывает этот формат и создает объекты у себя.

Проанализируем ситуацию пользователя: имеется база на 8.2 (обычные формы), которую нужно выгрузить в 8.3. Использование КД 3.0 в данном случае наталкивается на серьезные технические барьеры.

Почему КД 3.0 сложно применить для платформы 8.2?

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

1. Отсутствие поддержки EnterpriseData в старых конфигурациях.
Для того чтобы КД 3.0 заработала, в конфигурации-источнике должен быть реализован механизм работы с форматом EnterpriseData. В типовых решениях на 8.2 (таких как УПП 1.3 или Бухгалтерия предприятия 2.0) этого механизма «из коробки» не существует. Его внедрение потребует колоссальной доработки программного кода.

2. Зависимость от Библиотеки стандартных подсистем (БСП).
Механизмы КД 3.0 тесно интегрированы с современными версиями БСП (начиная с 2.3 и выше). В системах на 8.2 либо используется очень старая версия БСП, либо она отсутствует вовсе. Попытка «подружить» логику КД 3.0 со старой базой приведет к необходимости написания огромного количества кода вручную в Модуле менеджера обмена.

3. Программные интерфейсы и XDTO.
Платформа 8.2 имеет ограничения при работе с современными XDTO-пакетами. Многие методы, на которые полагается код, генерируемый КД 3.0, просто не реализованы в старых версиях платформы. Это вызовет ошибки времени выполнения при попытке выгрузки данных.

Решение проблемы: использование Конвертации данных 2.1

Выясним, почему для нашей задачи (выгрузка из 8.2 в 8.3) КД 2.1 является оптимальным решением. Процесс работы в этом случае выглядит следующим образом:

  1. Мы выгружаем метаданные обеих конфигураций (источника на 8.2 и приемника на 8.3) с помощью обработки MD82Exp.epf.
  2. Загружаем метаданные в конфигурацию «Конвертация данных 2.1».
  3. Создаем «Правила обмена данными». Поскольку КД 2.1 не требует наличия EnterpriseData, мы можем свободно описывать логику преобразования объектов в специальных обработчиках событий, таких как ПередВыгрузкой, ПриВыгрузке или ПоляПоиска.

Рассмотрим пример кода, который часто используется в КД 2.1 для трансформации данных при переходе со старых систем. Например, если в базе 8.2 у нас был реквизит типа Число, а в 8.3 он стал типом ПеречислениеСсылка, мы легко можем написать обработчик в правилах (ПКО):


// Пример обработчика "Перед выгрузкой" в КД 2.1
Если Источник.Статус = 1 Тогда
    Значение = "Активен";
ИначеЕсли Источник.Статус = 2 Тогда
    Значение = "Заблокирован";
КонецЕсли;

Такая гибкость позволяет быстро адаптировать данные старой базы под структуру новой конфигурации без изменения программного кода самих баз. В случае с КД 3.0 весь этот код пришлось бы писать внутри конфигурации, что усложняет поддержку и обновление.

Выводы и рекомендации

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

Таким образом, несмотря на то что прямой связи между версией КД и наличием управляемых форм нет, программная среда 8.2 диктует использование КД 2.1 как наиболее стабильного и экономически эффективного инструмента для миграции данных.

← На главную