Настройка одностороннего обмена данными между «Управление торговлей 11.2» и «Бухгалтерия 3.0». Обмен данными через универсальный формат EnterpriseData.

По условию нужно было сделать так, чтобы данные выгружались из «Управление торговлей» в «Бухгалтерия предприятия». В обратном направлении ничего передаваться не должно.

При настройке обмена по условию возникли проблемы:

  • Если в БП делаются изменения в данных, а затем эти же данные выгружаются из УТ, то все изменения в БП перезаписываются без предупреждения.
  • Подсистема «Конфликты», которая должна показывать коллизии – не работает. Она всегда пустая, как будто коллизий нет.

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

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

В конфигурацию внесены следующие изменения:

Общий модуль ОбменДаннымиXDTOСервер
Процедура ПроизвестиВыгрузкуДанных

Закомментированы строки:

Попытка
ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерОтправленного);
Исключение
КомпонентыОбмена.СтрокаСообщенияОбОшибке = "";
ЗаписатьВПротоколВыполнения(КомпонентыОбмена, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

Этот код отвечает за выгрузку данных из БП.

Общий модуль МенеджерОбменаЧерезУниверсальныйФормат
Процедура ПередКонвертацией

В самом начале процедуры добавлены строки:

Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("ER");
ПланыОбмена.ЗарегистрироватьИзменения(Узел, Неопределено);

Этот код регистрирует в БП все данные к выгрузке.
«ER» – префикс базы, с которой производится обмен данными.

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

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *