При сопровождении связки программ 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0 специалисты нередко сталкиваются с ситуацией, когда УТ 11.1 значительно переписана прошлыми разработчиками, а БП 3.0 регулярно обновляется для сдачи регламентированной отчетности. Начиная с релизов ветки 3.0.44, фирма «1С» перевела типовую синхронизацию на универсальный формат (EnterpriseData, технология КД 3) и отключила поддержку прямого плана обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30, работавшего по правилам «Конвертации данных 2.1» (КД 2).
В результате после очередного обновления БП 3.0 привычный обмен перестает функционировать. Выясним причину этой проблемы и подробно разберем проверенные способы восстановления обмена данными без необходимости экстренного и дорогостоящего обновления сильно доработанной УТ 11.1.
Проанализируем техническую сторону ситуации, чтобы понимать, почему попытки настроить обмен «из коробки» приводят к ошибкам:
БП 3.0 процедура регистрации планов обмена больше не включает устаревший узел ОбменУправлениеТорговлейБухгалтерияПредприятия30 в массив обслуживаемых подсистемой обмена. Механизм БСП считает его выведенным из эксплуатации.ПравилаДляОбменаДанными. В журнале регистрации появляется системная ошибка: Не заданы правила конвертации для плана обмена ОбменУправлениеТорговлейБухгалтерияПредприятия30. Выгрузка данных отменена.УТ 11.1 еще не было полноценной инфраструктуры для синхронизации через универсальный формат EnterpriseData (она появилась значительно позже, в ветках 11.2 и 11.3). Поэтому попытка создать в БП 3.0 обмен через универсальный формат с нуля для УТ 11.1 обречена на неудачу: формат EnterpriseData требует совершенно иной структуры данных (например, строгого деления кассовых ордеров по видам операций вместо прямого переноса документа ПриходныйКассовыйОрдер).Рассмотрим основной способ решения, позволяющий сохранить автоматический обмен по расписанию или через прямое подключение на стороне БП 3.0. Для этого нам потребуется вернуть план обмена в состав рабочих объектов подсистемы обмена данными и перезагрузить правила конвертации.
Разберем по шагам порядок действий:
1С:Бухгалтерия предприятия 3.0 включим возможность изменения конфигурации с сохранением поддержки (меню Конфигурация — Поддержка — Настройка поддержки).ОбменДаннымиПереопределяемый и найдем экспортную процедуру ПолучитьПланыОбмена(ПланыОбменаПодсистемы).
// Добавление устаревшего плана обмена для синхронизации с УТ 11.1
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30);
БП 3.0 в режиме «1С:Предприятие» и откроем регистр сведений ПравилаДляОбменаДанными через меню Функции для технического специалиста (или «Все функции»).ОбменУправлениеТорговлейБухгалтерияПредприятия30 с типом правил Правила конвертации объектов. Переключим режим источника правил в значение Загружены из файла и загрузим файл правил обмена (в формате XML), выгруженный из предыдущей рабочей версии базы до обновления.ExchangeRules и CorrespondentExchangeRules).Важное ограничение: При каждом последующем обновлении конфигурации БП 3.0 типовые процедуры обновления будут сбрасывать строку в модуле ОбменДаннымиПереопределяемый и очищать регистр правил. Поэтому после каждого релиза бухгалтерии потребуется повторно контролировать наличие вызова в коде и актуальность записей в регистре ПравилаДляОбменаДанными.
Если снимать конфигурацию БП 3.0 с типовой поддержки нежелательно, проанализируем альтернативный вариант обмена в обход типовых механизмов БСП.
Разберем регламент настройки:
УниверсальныйОбменДаннымиXML.epf (поставляется в составе конфигурации «Конвертация данных 2.1» или на дисках ИТС).УТ 11.1 запускаем обработку, выбираем заранее сохраненный XML-файл правил конвертации (КД 2), задаем период выгрузки и формируем файл с данными.БП 3.0 запускаем ту же обработку на вкладке Загрузка данных, выбираем полученный файл данных и выполняем загрузку объектов.Этот способ полностью исключает зависимость от обновлений подсистем БСП в бухгалтерии, однако требует ручного запуска либо настройки отдельного регламентного задания через запуск сеанса «1С:Предприятия» с параметрами командной строки.
Посмотрим на ситуацию, которая неминуемо возникнет при дальнейшем обновлении БП 3.0. Даже если обмен технически запускается, в процессе загрузки могут возникать ошибки записи объектов из-за добавления в новых релизах БП обязательных реквизитов или изменения табличных частей (например, при изменениях учета НДС, договоров или прослеживаемости товаров).
Для устранения таких ошибок правила конвертации потребуется поддерживать в конфигурации Конвертация данных, редакция 2.1:
БП 3.0 в файл XML с помощью внешней обработки MD83Exp.epf (обработка идет в комплекте поставки конфигурации «Конвертация данных 2.1»).ПередЗагрузкой или ПриЗагрузке алгоритмы заполнения по умолчанию (например, заполнение обязательных реквизитов договоров контрагентов или счетов учета).ПравилаДляОбменаДанными конфигурации БП 3.0.Таким образом, комбинируя возврат плана обмена в ОбменДаннымиПереопределяемый и точечную корректировку правил в КД 2, можно поддерживать работоспособность обмена между сильно измененной УТ 11.1 и актуальными релизами БП 3.0 в течение необходимого периода до планового перевода торговли на современную редакцию.