Сравнение Конвертации данных 2.1 и 3.0: что выбрать и как использовать КД2 в современных конфигурациях?

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

В среде разработчиков 1С не утихают споры о целесообразности перехода с проверенной временем Конвертации данных 2.1 (КД2) на современную Конвертацию данных 3.0 (КД3). Многие специалисты задаются вопросом: действительно ли КД3 «хоронит» идею универсального обмена или же это необходимый виток эволюции? Разберем подробно концептуальные различия, сильные и слабые стороны обеих систем, а также выясним, как продолжать использовать привычные механизмы КД2 в конфигурациях, построенных на последних версиях Библиотеки стандартных подсистем (БСП).

Концептуальное различие: Шоссе против лесных троп

Для понимания разницы между версиями часто используют удачную аналогию с дорогами. Представим ситуацию, когда у нас есть две базы (две деревни). Чтобы наладить обмен между ними, достаточно построить одну дорогу. Если деревень становится пять, количество дорог между всеми парами резко возрастает. Если же количество информационных систем в холдинге исчисляется десятками, то классический подход КД2 «точка-точка» превращается в паутину, которую невозможно поддерживать.

КД2 работает по принципу прямого сопоставления: Источник -> Приемник. Вы пишете правила, в которых объект «СправочникСсылка.Контрагенты» напрямую превращается в «СправочникСсылка.Партнеры». Это гибко, позволяет использовать произвольный код на 1С в обработчиках событий, но требует создания отдельного файла правил для каждой пары баз.

КД3 внедряет промежуточный слой — универсальный формат обмена (EnterpriseData). Схема меняется на: Источник -> Формат -> Приемник. Теперь база-источник ничего не знает о структуре базы-приемника. Она просто умеет выгружать свои данные в стандартизированный XML-вид. База-приемник, в свою очередь, умеет этот стандарт читать и превращать в свои объекты. Это значительно упрощает поддержку при обновлении релизов: если изменилась структура в одной базе, вам нужно поправить только её «выход» в формат, не трогая правила обмена с другими десятью системами.

Преимущества и недостатки КД3

Рассмотрим подробнее, почему переход на КД3 вызывает столько дискуссий. Основная сложность заключается в использовании технологии XDTO и жесткой привязке к БСП.

Плюсы КД3:

  1. Версионирование формата: Использование EnterpriseData позволяет базам разных релизов обмениваться данными, выбирая наиболее подходящую версию формата.
  2. Централизация логики: В КД3 правила обмена (модули менеджера обмена) хранятся внутри самой конфигурации, а не во внешнем XML-файле. Это позволяет использовать проверку синтаксиса и типизацию при написании кода.
  3. Снижение сложности N*M: При большом количестве баз количество необходимых настроек сокращается в разы.

Минусы КД3:

  1. Высокий порог входа: Разработчику необходимо понимать механизмы XDTO-пакетов, уметь работать с пространством имен и структурой EnterpriseData.
  2. Сложность кастомизации: Если вам нужно передать поле, которого нет в типовом формате, вам придется расширять XDTO-пакет в обеих базах, что гораздо сложнее, чем просто добавить ПКС (Поле Конвертации Свойств) в КД2.
  3. Производительность: Обработка через промежуточный слой XDTO может быть медленнее прямой сериализации, особенно на больших объемах данных.

Как использовать КД2 в современных типовых конфигурациях?

Вопреки распространенному мнению, фирма 1С не «вырезала» поддержку КД2 полностью. В современных конфигурациях (БСП 3.0 и выше) механизмы обмена по правилам КД2 (через УниверсальныйОбменДаннымиXML) скрыты, но доступны. Проанализируем, как активировать этот режим:

В БСП существует режим УОП (Универсальный Обмен по Правилам). Чтобы использовать свои правила КД2, выполните следующие шаги:

  1. Откройте настройки синхронизации данных.
  2. При создании нового обмена выберите вариант использования правил из файла.
  3. В коде подсистемы обмена за это отвечает макет ПравилаРегистрацииОбъектов и настройки в модуле менеджера обмена.

Проанализируем техническую деталь из документации ИТС: если в конфигурации используется БСП версии 3.0.3 и выше, вы можете настроить обмен в режиме «По правилам конвертации», даже если основной формат обмена в данной версии — EnterpriseData. Для этого необходимо в макете настроек обмена указать режим РежимУниверсальногоОбмена.

Производительность и альтернативы: JSON и HTTP-сервисы

Важным аргументом против использования как КД2, так и КД3, является «тяжеловесность» формата XML. В современных высоконагруженных системах программисты всё чаще обращаются к HTTP-сервисам и формату JSON. Разберем, почему это эффективно:

JSON — гораздо менее избыточный формат по сравнению с XML. Парсинг JSON в платформе 1С реализован на низком уровне через объекты ЧтениеJSON и ЗаписьJSON, что работает значительно быстрее, чем построение дерева DOM или обработка через ФабрикаXDTO.

Пример кода для быстрой передачи данных через JSON:


ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(ПараметрыЗаписи);
ЗаписатьJSON(Запись, СтруктураДанных);
РезультатСтрокой = Запись.Закрыть();

Такой подход позволяет обходить ограничения «курвы обучения» КД3 и создавать быстрые, легковесные обмены. Однако стоит помнить, что при использовании самописных веб-сервисов вы теряете стандартные механизмы БСП по регистрации изменений, контролю коллизий и гарантированной доставке сообщений.

Будущее интеграции: 1С:Шина

Разберем новый инструмент, который 1С предлагает для решения проблем интеграции — 1С:Шина. Это отдельный продукт, который реализует паттерн ESB (Enterprise Service Bus). В отличие от классических конвертаций, Шина позволяет:

Шина использует новую технологию 1С:Предприятие.Элемент и является следующим шагом после КД3 для крупных корпоративных систем.

Резюме: стоит ли хоронить КД2?

Проанализировав ситуацию, можно сделать вывод, что Конвертация данных 2.1 остается незаменимым инструментом для разовых переносов данных и синхронизации небольших, специфических баз, где затраты на развертывание EnterpriseData неоправданно высоки. Конвертация данных 3.0 — это стандарт для типовых решений 1С, который неизбежен при работе с ERP, УТ 11 или БП 3.0, если вы хотите оставаться в рамках типовой поддержки.

Выбор технологии должен зависеть от масштаба задачи: для «двух деревень» КД2 всё еще эффективнее, но для построения «федеральной сети дорог» придется осваивать КД3 или современные интеграционные шины.

← На главную