Как доработать правила обмена и передачу аналитики между УТ 11 и БП 3.0?

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

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

Где находятся правила обмена в современных конфигурациях

В типовых решениях УТ 11 и БП 3.0 привычные XML-файлы правил конвертации объектов отсутствуют. Обмен выполняется через универсальный формат данных XDTO (EnterpriseData). Вся логика выгрузки и загрузки объектов описана программно на языке 1С и расположена внутри базовых объектов конфигурации:

Отладка процессов выгрузки и загрузки

Поскольку вся логика выгрузки и конвертации перенесена в программный код общего модуля, отладка выполняется стандартными средствами конфигуратора платформы «1С:Предприятие 8.3». Разберем, как проанализировать работу обмена:

  1. Откроем общий модуль МенеджерОбменаЧерезУниверсальныйФормат.
  2. Найдем обработчики отправки или получения нужного документа. Например, для документа «Списание с расчетного счета» используются процедуры вида ПКО_Документ_СписаниеСРасчетногоСчета_Отправка_ПриОтправкеДанных или ПКО_Документ_СписаниеСРасчетногоСчета_Получение_ПриОбработкеДанныхXDTO.
  3. Поставим точку останова в нужной процедуре и запустим интерактивный обмен или фоновое задание в режиме отладки.

В отличие от устаревших правил в XML-файлах, отладка чистого кода 1С позволяет оперативно смотреть значения переменных и структуру выгружаемого XDTO-объекта прямо в табло отладчика.

Доработка обмена без снятия конфигурации с поддержки

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

1. Использование расширений конфигурации

Создадим расширение конфигурации и заимствуем в него модуль МенеджерОбменаЧерезУниверсальныйФормат. Добавим аннотацию &После или &Перед к нужному обработчику ПКО:


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

2. Передача аналитики через свойство AdditionalInfo

Схема EnterpriseData содержит универсальное поле AdditionalInfo в типе Object. Это позволяет передать произвольную текстовую информацию, JSON или XML-структуру без изменения схемы XDTO-пакета.

При получении данных на стороне приемника в аналогичной процедуре обработчика загрузки считываем значение из AdditionalInfo и заполняем соответствующие реквизиты документа или таблицы ИБ.

3. Использование переопределяемых модулей БСП

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

4. Использование конфигурации «1С:Конвертация данных 3.1»

Чтобы не писать структуры XDTO и условия конвертации вручную в коде, разберем подход с использованием специализированного инструмента — «1С:Конвертация данных 3.1» (КД 3.1):

  1. Выгрузим структуры конфигураций УТ 11 и БП 3.0 в файлы параметров.
  2. Загрузим их в «1С:Конвертацию данных 3.1» вместе с текущими правилами работы универсального формата.
  3. В визуальном режиме доработаем ПКО (Правила конвертации объектов) и ПКС (Правила конвертации свойств).
  4. Сформируем из КД 3.1 готовый программный код модуля обмена и вставим его в расширение конфигурации.

Важные технические нюансы при доработке

← На главную