Что выбрать для обмена данными между 1С:Управление холдингом и 30 базами БП 3.0: Конвертация данных 2.1 или 3.0?

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

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

Проблема сопровождения при большом количестве узлов

Одной из ключевых сложностей в холдингах является «зоопарк» релизов или необходимость синхронного обновления всех узлов. Разберем ситуацию: представьте, что в типовой конфигурации переименовали реквизит (например, Склад стал МестоХранения). Проанализируем трудозатраты для обеих технологий:

  1. В случае КД 2.1: Нам придется обновить правила обмена (ПКО, ПКС) как на стороне источника, так и на стороне приемника. Если у нас 30 баз БП и 1 база УХ, и правила в них даже частично отличаются, количество правок возрастает лавинообразно. Требуется актуализировать файлы правил (xml), загрузить их в каждую базу и протестировать. Сопровождение становится дорогим и трудоемким.
  2. В случае КД 3.0: Технология EnterpriseData отделяет структуру данных конфигурации от формата обмена. Мы вносим изменения только на той стороне, где изменились метаданные. Центральная база (УХ) продолжает обмениваться данными через фиксированный формат XDTO. Для нее ничего не изменилось: она как выгружала объект в формат, так и выгружает. Обновить придется только модуль менеджера обмена в той базе, где произошло переименование.

Особенности разработки на КД 3.0 и работа с XDTO

Многие разработчики опасаются КД 3.0 из-за кажущейся жесткости формата EnterpriseData. Однако выясним, как решается задача передачи нетиповых данных. Выделим два основных пути:

Использование AdditionalInfo (Дополнительные данные). Рассмотрим этот механизм как самый простой способ передать специфические реквизиты, такие как ваши Ссылка_локальная или Ссылка_общая, без изменения структуры XDTO-пакета. Это свойство есть практически у каждого объекта в формате EnterpriseData. Мы можем упаковать туда любые данные в виде структуры или XML-строки и разобрать их на стороне приемника в процедуре ПослеЗагрузкиОбъекта.

Доработка XDTO-пакета. Если планируется масштабное расширение состава передаваемых данных, создадим собственный XDTO-пакет на основе типового EnterpriseData. Посмотрим на алгоритм действий:

  1. Создаем расширение конфигурации.
  2. Добавляем свой XDTO-пакет, заимствуя структуру из основного.
  3. Вносим необходимые изменения (добавляем новые сущности или реквизиты).
  4. Настраиваем правила конвертации в Конвертации данных 3.1 для работы с этим новым пакетом.

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

Аргументация выбора: почему КД 3.0 предпочтительнее для 1С:УХ

Проанализируем технические преимущества КД 3.0, которые критичны для централизации НСИ в 1С:Управление холдингом:

  1. Прозрачная отладка. Код обмена в КД 3.0 — это обычный код на языке 1С в модуле менеджера или общем модуле. Мы можем использовать стандартную точку останова в Конфигураторе, чтобы посмотреть, какие значения принимают реквизиты в момент выгрузки или загрузки. В КД 2.1 для этого часто приходится прибегать к сложным схемам отладки внешних обработок.
  2. Производительность. КД 3.0 работает быстрее на больших объемах данных, так как платформа 1С быстрее исполняет скомпилированный код модуля, чем интерпретирует огромные XML-файлы правил обмена КД 2.1.
  3. Интеграция с подсистемами. В современных версиях БСП (Библиотека стандартных подсистем), на которых построены БП 3.0 и УХ, механизмы синхронизации данных через планы обмена «заточены» именно под формат EnterpriseData. Использование КД 2.1 в этих конфигурациях — это шаг назад в сторону «самописок».

Решение для специфического меппинга (ДДС БУХ и ДДС УУ)

В вашем кейсе есть задача «Натурального меппинга» для статей ДДС. Посмотрим, как это реализовать в рамках КД 3.0. При согласовании заявки в УХ заполняются два реквизита. Чтобы передать нужное значение в типовой реквизит СтатьяДДС в БП 3.0, воспользуемся алгоритмом в модуле менеджера обмена.

Пример логики в процедуре выгрузки:


Процедура ПКО_Документ_ПлатежноеПоручение_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена)
    // Передаем значение из нашего самодельного справочника ДДС_БУХ 
    // в стандартное поле формата СтатьяДвиженияДенежныхСредств
    Если ЗначениеЗаполнено(ДанныеИБ.СтатьяДДС_БУХ) Тогда
        ДанныеXDTO.СтатьяДвиженияДенежныхСредств = СформироватьСсылкуВФорматеEnterpriseData(ДанныеИБ.СтатьяДДС_БУХ);
    КонецЕсли;
КонецПроцедуры

Гибридный подход: Использование промежуточного регистра

Рассмотрим альтернативную стратегию, предложенную опытными архитекторами. Чтобы минимизировать риски при обновлении 30 баз, можно реализовать следующую схему:

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

Это позволяет полностью изолировать логику бизнес-процессов от процесса доставки данных. Если в БП 3.0 изменится логика проведения документа, вам нужно будет поправить только одну локальную обработку «Генератор документов», не трогая правила обмена.

Итоговые рекомендации

Для проекта с 1С:Управление холдингом и 30 узлами БП 3.0 наиболее разумным выбором является КД 3.0 (EnterpriseData). Выясним основные причины для финального обоснования перед заказчиком:

Таким образом, мы рекомендуем использовать КД 3.0, а специфические реквизиты для однозначной идентификации (Ссылка общая) передавать через расширение типового XDTO-пакета или свойство AdditionalInfo. Это обеспечит стабильность обмена и легкость будущих обновлений конфигураций.

← На главную