Почему в новых релизах УТ 11 и БП 3.0 пропали файлы правил обмена и как теперь настраивать синхронизацию?

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

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

В этой статье мы подробно разберем причины таких изменений в архитектуре решений 1С, выясним, куда исчезли правила, как устроена современная синхронизация и какими способами теперь можно решать задачи по адаптации обменов под уникальные требования бизнеса.

Причина изменений: переход на EnterpriseData и Конвертацию данных 3.0

Фирма «1С» планомерно отказывается от классической технологии обмена «точка-точка» на базе КД2. Ранее обмен строился на жестком сопоставлении метаданных источника и приемника. Если в одной из баз менялась структура метаданных (например, удалялся или переименовывался реквизит справочника), обмен мгновенно ломался, требуя от разработчика оперативного обновления правил XML.

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

  1. База-источник выгружает свои данные во внешний файл (или поток данных) в строго стандартизированном формате XML/XDTO, который называется EnterpriseData.
  2. База-приемник считывает этот файл и транслирует стандартизованные сущности формата в свои внутренние объекты.

Поскольку формат стандартизирован и поддерживается платформой на уровне XDTO-пакетов, жесткая связка между реквизитами баз разорвана. Это позволяет обновлять конфигурации независимо друг от друга без риска сломать интеграционные процессы.

Где физически находятся правила обмена в новых релизах?

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

Рассмотрим подробнее, где искать эти правила:

Как теперь дорабатывать правила обмена?

Если перед нами стоит задача передать нестандартный реквизит или изменить алгоритм заполнения документа при обмене, старый сценарий («открыть XML-правила в КД2, дописать код в обработчик и загрузить обратно») больше не применим. Рассмотрим два основных сценария решения этой задачи.

Способ 1. Использование расширений конфигурации (рекомендуемый метод)

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

Разберем по шагам, как переопределить логику обмена в расширении:

  1. Создаем новое расширение конфигурации в режиме Конфигуратора.
  2. Добавляем в расширение общий модуль ОбменДаннымиПереопределяемый или создаем собственный обработчик событий.
  3. Для изменения алгоритмов заполнения свойств мы можем использовать аннотации (&Вместо, &После, &Перед) для процедур общего модуля МенеджерОбменаЧерезУниверсальныйФормат.

Проанализируем пример кода. Предположим, нам необходимо при выгрузке номенклатуры передавать в поле описания формата EnterpriseData значение нашего дополнительного реквизита. Для этого мы можем переопределить обработчик события конвертации объекта в расширении:


&После("ПриВыгрузкеСправочника_Номенклатура_В_ДанныеФормата")
Процедура Расш1_ПриВыгрузкеСправочника_Номенклатура_В_ДанныеФормата(Источник, ДанныеФормата, КомпонентыОбмена)
    
    // Проверим наличие нашего дополнительного реквизита у источника
    Если ОбщегоНазначения.ЕстьРеквизитИлиСвойствоОбъекта(Источник, "ДополнительноеОписание") Тогда
        ДанныеФормата.Описание = Источник.ДополнительноеОписание;
    КонецЕсли;

КонецПроцедуры

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

Способ 2. Использование программного продукта «Конвертация данных 3.0»

Если доработки масштабные (требуется добавить новые объекты обмена, изменить структуру сопоставления десятков полей), писать код вручную в расширении становится трудоемко. В этом случае целесообразно использовать КД3.

Разберем алгоритм работы с КД3:

  1. Выгружаем структуру метаданных наших баз данных (с помощью встроенных инструментов выгрузки конфигурации в файлы).
  2. Выгружаем схемы XDTO-пакетов используемых версий формата EnterpriseData.
  3. Загружаем эти данные в базу «Конвертация данных 3.0».
  4. Настраиваем правила конвертации объектов (ПКО) и правила обработки данных (ПОД) в визуальном интерфейсе КД3.
  5. Генерируем из КД3 готовый программный код модуля обмена. Полученный текст модуля мы можем перенести в нашу конфигурацию или оформить в виде расширения.

Что делать с правилами регистрации объектов (ПРО)?

Правила регистрации объектов определяют, при изменении каких именно документов или справочников они должны регистрироваться к отправке на узлах планов обмена. Здесь разработчиков ждет приятный сюрприз: правила регистрации по-прежнему работают на технологиях КД2.

Посмотрим, как их можно изменить:

  1. Мы можем выгрузить типовые правила регистрации объектов прямо из режима «1С:Предприятие». Для этого переходим в меню «Администрирование» — «Синхронизация данных» — «Настройки синхронизации», выбираем нужную настройку и находим пункт «Параметры синхронизации данных» — «Загрузить правила регистрации объектов». В открывшейся форме можно сохранить типовые правила во внешний файл XML.
  2. Открываем полученный XML-файл в программе «Конвертация данных 2.0».
  3. Вносим необходимые изменения в правила регистрации (например, отключаем авторегистрацию для определенных видов документов или добавляем жесткие условия по организациям или складам).
  4. Сохраняем измененные правила в XML-файл.
  5. Загружаем их обратно в информационную базу через ту же форму настройки синхронизации, выбрав пункт «Загрузить из файла».

Таким образом, для простой фильтрации отправляемых данных изучать КД3 и программировать модули обмена не требуется — достаточно использовать привычный инструментарий КД2 для изменения ПРО.

Резюме

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

Использование расширений конфигурации совместно с переопределением процедур в МенеджерОбменаЧерезУниверсальныйФормат позволяет реализовывать любые кастомные алгоритмы обмена, сохраняя при этом конфигурации полностью типовыми и простыми в обслуживании.

← На главную