Как вернуть классический обмен через КД 2 между УТ 11 и БП 3 после обновления?

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

При регулярном обновлении типовых конфигураций разработчики постепенно выводят устаревшие механизмы из эксплуатации. Начиная с релиза Бухгалтерия предприятия 3.0.44, из интерфейса и типовых алгоритмов подсистемы синхронизации данных был исключен классический обмен на базе технологии «Конвертация данных 2.1» (КД 2) с «Управление торговлей 11». В результате пользователи сталкиваются с ситуацией, когда ранее созданная и стабильно работавшая настройка обмена пропадает из списка синхронизаций, а в интерфейсе предлагается только универсальный формат (EnterpriseData).

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

Почему пропал классический обмен на КД 2

В типовых конфигурациях на платформе «1С:Предприятие 8.3» на базе Библиотеки стандартных подсистем (БСП) обмен между УТ 11 и БП 3 переведен на EnterpriseData. План обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 был признан устаревшим разработчиками «1С». В релизе БП 3.0.44 разработчики удалили его регистрацию из перечня используемых планов обмена подсистемы.

Из-за этого графический интерфейс настройки и регламентные задания БСП перестают распознавать данный план обмена, хотя сам объект метаданных и правила в базе еще могут присутствовать. При этом файл выгрузки из УТ 11 (Message_...) продолжает формироваться, но база-приемник БП 3 больше не может принять его в автоматическом режиме.

Способ 1. Быстрое программное включение плана обмена в БП 3

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

Откроем конфигуратор и обратимся к общему модулю ОбменДаннымиПереопределяемый. Найдем экспортную процедуру ПолучитьПланыОбмена. Чтобы вернуть поддержку обмена, добавим метаданные плана обмена в передаваемый массив:


Процедура ПолучитьПланыОбмена(ПланыОбменаПодсистемы) Экспорт
    
    // Добавляем ранее отключенный план обмена КД 2
    ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);

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

Если база находится на официальной поддержке без возможности редактирования модулей, крайне не рекомендуется снимать ее с поддержки ради одной строки. Вместо этого применим механизм расширений конфигурации:

  1. Создадим новое расширение конфигурации (с отключенным безопасным режимом и защитой от опасных действий).
  2. Добавим в расширение общий модуль ОбменДаннымиПереопределяемый.
  3. Перехватим процедуру ПолучитьПланыОбмена с аннотацией &После:

&После("ПолучитьПланыОбмена")
Процедура Расш_ПолучитьПланыОбмена(ПланыОбменаПодсистемы)
    
    ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);
    
КонецПроцедуры

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

Временный ручной обмен через обработку без изменения кода

Если внести изменения в код базы оперативно невозможно, но требуется срочно загрузить данные и получить подтверждение (квитанцию), рассмотрим работу со встроенной обработкой Универсальный обмен данными в формате XML (ОбменДаннымиЧерезXML):

  1. Откроем обработку через функцию «Все функции» (или «Функции для технического специалиста»).
  2. Перейдем на вкладку «Обмен по плану обмена» (а не на вкладку загрузки по произвольным правилам).
  3. Выберем соответствующий узел плана обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30.
  4. Укажем файл обмена, поступивший из УТ 11, и выполним загрузку.

При использовании режима обмена по плану обмена номера сообщений фиксируются корректно, а механизм квитирования формирует ответный пакет с квитанцией, благодаря чему в УТ 11 очистятся зарегистрированные изменения.

Долгосрочные риски использования КД 2

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

Способ 2. Правильное решение задачи: переход на EnterpriseData с отбором

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

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

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

После загрузки персональных правил регистрации в данный узел УТ 11 начнет регистрировать к отправке исключительно выбранный тип документов, а основной узел синхронизации с первой базой продолжит работать по полным типовым правилам.

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

← На главную