После обновления конфигурации «Бухгалтерия предприятия» (начиная с релиза 3.0.44.123 и выше) многие пользователи сталкиваются с полной остановкой привычной синхронизации с базой «Управление торговлей 11.1». В журнале регистрации появляются ошибки, регламентные задания перестают выгружать данные, а типовая настройка обмена в пользовательском интерфейсе теряет правила конвертации или полностью блокируется.
Разберем причины такого поведения платформенных механизмов и рассмотрим пошаговые способы восстановления обмена данными без масштабного переписывания конфигурации торговли.
Выясним причину проблемы. Начиная с версий 3.0.44.x, фирма «1С» перевела типовые обмены конфигурации Бухгалтерия предприятия на обмен через EnterpriseData (универсальный формат обмена данными на базе правил Конвертации данных 3.0). В типовом решении этот функционал опирается на план обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
Для работы с базой Управление торговлей 11.1 исторически использовался специализированный план обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30, функционирующий на базе правил Конвертации данных 2.0. При установке обновления разработчики исключили данный план обмена из состава активных планов подсистемы «Обмен данными» Библиотеки стандартных подсистем (БСП).
В момент обновления информационной базы происходят следующие процессы:
ОбменДаннымиПереопределяемый.ПравилаДляОбменаДанными автоматически очищаются или затираются правила конвертации (КД) и правила регистрации (ПРО).Рассмотрим основной способ решения, предложенный на практике. Он позволяет вернуть работоспособность обмена без перевода базы УТ на старшие релизы.
Разберем реализацию по шагам:
ОбменДаннымиПереопределяемый.ПолучитьПланыОбмена и вернем в массив наш план обмена. Посмотрим на пример кода:
Процедура ПолучитьПланыОбмена(ПланыОбменаПодсистемы) Экспорт
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.Обмен1С_КАМИН_ЗарплатаБухгалтерия30);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.Полный);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ПоОрганизации);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлей103БухгалтерияПредприятия30);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.АвтономнаяРабота);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменЗарплата3Бухгалтерия3);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат);
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменРозница1Бухгалтерия3);
// Возвращаем поддержку плана обмена с УТ 11.1
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);
УчетОбособленныхПодразделений.ПолучитьПланыОбмена(ПланыОбменаПодсистемы);
КонецПроцедуры
Обратите внимание: если в процедуре ПолучитьПланыОбмена вызывается метод ОбменДаннымиУТУП.СписокПлановОбмена, значит, открыт конфигуратор конфигурации Управление торговлей или решения на ее основе. В Бухгалтерии предприятия список планов обмена заполняется непосредственно в общем модуле ОбменДаннымиПереопределяемый.
Проанализируем альтернативный путь без изменения основной конфигурации. Если информационная база работает на платформе 1С:Предприятие 8.3.9 или выше, а режим совместимости конфигурации позволяет переопределять процедуры общих модулей, доработку можно выполнить через механизм расширений.
Для этого добавим общий модуль ОбменДаннымиПереопределяемый в расширение и переопределим процедуру с помощью директивы &После:
&После("ПолучитьПланыОбмена")
Процедура Расш_ПолучитьПланыОбмена(ПланыОбменаПодсистемы)
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);
КонецПроцедуры
Такой подход сохраняет типовую конфигурацию на полной поддержке и упрощает установку будущих обновлений.
Рассмотренный способ возврата плана обмена является эффективным временным решением, однако при его использовании важно учитывать технические риски:
Для долгосрочной стабильной работы рекомендуется рассмотреть два варианта:
Управление торговлей до актуальных релизов (ветка 11.2, 11.3 или 11.4), где обмен через универсальный формат EnterpriseData реализован штатно.V8Exchan83.epf (Универсальный обмен данными в формате XML), запуская ее по расписанию в пакетном режиме с сохраненными правилами КД 2.0 по зарегистрированным на узле изменениям.