Как восстановить синхронизацию между БП 3.0 и нетиповой УТ 11.1 после обновления бухгалтерии

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

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

В результате после очередного обновления БП 3.0 привычный обмен перестает функционировать. Выясним причину этой проблемы и подробно разберем проверенные способы восстановления обмена данными без необходимости экстренного и дорогостоящего обновления сильно доработанной УТ 11.1.

Анализ причин сбоя обмена данными

Проанализируем техническую сторону ситуации, чтобы понимать, почему попытки настроить обмен «из коробки» приводят к ошибкам:

  1. Исключение плана обмена из состава БСП: При обновлении конфигурации БП 3.0 процедура регистрации планов обмена больше не включает устаревший узел ОбменУправлениеТорговлейБухгалтерияПредприятия30 в массив обслуживаемых подсистемой обмена. Механизм БСП считает его выведенным из эксплуатации.
  2. Очистка правил конвертации: При обновлении на новый релиз очищаются или перестают сопоставляться записи в служебном регистре сведений ПравилаДляОбменаДанными. В журнале регистрации появляется системная ошибка: Не заданы правила конвертации для плана обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30. Выгрузка данных отменена.
  3. Несовместимость УТ 11.1 с КД 3: В релизах УТ 11.1 еще не было полноценной инфраструктуры для синхронизации через универсальный формат EnterpriseData (она появилась значительно позже, в ветках 11.2 и 11.3). Поэтому попытка создать в БП 3.0 обмен через универсальный формат с нуля для УТ 11.1 обречена на неудачу: формат EnterpriseData требует совершенно иной структуры данных (например, строгого деления кассовых ордеров по видам операций вместо прямого переноса документа ПриходныйКассовыйОрдер).

Способ 1. Возврат плана обмена в БСП и загрузка правил КД 2

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

Разберем по шагам порядок действий:

  1. В конфигураторе 1С:Бухгалтерия предприятия 3.0 включим возможность изменения конфигурации с сохранением поддержки (меню Конфигурация — Поддержка — Настройка поддержки).
  2. Откроем общий модуль ОбменДаннымиПереопределяемый и найдем экспортную процедуру ПолучитьПланыОбмена(ПланыОбменаПодсистемы).
  3. Добавим выведенный из эксплуатации план обмена обратно в массив зарегистрированных планов подсистемы БСП:
    
    // Добавление устаревшего плана обмена для синхронизации с УТ 11.1
    ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);
    
  4. Сохраним изменения и применим конфигурацию базы данных.
  5. Запустим БП 3.0 в режиме «1С:Предприятие» и откроем регистр сведений ПравилаДляОбменаДанными через меню Функции для технического специалиста (или «Все функции»).
  6. Найдем строку, соответствующую нашему плану обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30 с типом правил Правила конвертации объектов. Переключим режим источника правил в значение Загружены из файла и загрузим файл правил обмена (в формате XML), выгруженный из предыдущей рабочей версии базы до обновления.
  7. Аналогичным образом проверим вторую запись для этого же плана обмена — Правила регистрации объектов. Загрузим соответствующий XML-файл правил регистрации, иначе механизм БСП не сможет регистрировать изменения метаданных на узле.
  8. Если используется обмен с передачей правил корреспондента, загрузим правила в макеты или регистр корреспондента (ExchangeRules и CorrespondentExchangeRules).

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

Способ 2. Обмен через универсальную обработку выгрузки и загрузки XML

Если снимать конфигурацию БП 3.0 с типовой поддержки нежелательно, проанализируем альтернативный вариант обмена в обход типовых механизмов БСП.

Разберем регламент настройки:

  1. Воспользуемся внешней обработкой УниверсальныйОбменДаннымиXML.epf (поставляется в составе конфигурации «Конвертация данных 2.1» или на дисках ИТС).
  2. На стороне УТ 11.1 запускаем обработку, выбираем заранее сохраненный XML-файл правил конвертации (КД 2), задаем период выгрузки и формируем файл с данными.
  3. На стороне БП 3.0 запускаем ту же обработку на вкладке Загрузка данных, выбираем полученный файл данных и выполняем загрузку объектов.

Этот способ полностью исключает зависимость от обновлений подсистем БСП в бухгалтерии, однако требует ручного запуска либо настройки отдельного регламентного задания через запуск сеанса «1С:Предприятия» с параметрами командной строки.

Корректировка правил в «Конвертации данных 2.1» при расхождении метаданных

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

Для устранения таких ошибок правила конвертации потребуется поддерживать в конфигурации Конвертация данных, редакция 2.1:

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

Таким образом, комбинируя возврат плана обмена в ОбменДаннымиПереопределяемый и точечную корректировку правил в КД 2, можно поддерживать работоспособность обмена между сильно измененной УТ 11.1 и актуальными релизами БП 3.0 в течение необходимого периода до планового перевода торговли на современную редакцию.

← На главную