При настройке обмена данными между 1С:Розница (2.3) и 1С:Управление торговлей (11.5) через формат EnterpriseData часто возникает специфическая проблема: в документе Отчет о розничных продажах, загруженном в УТ, табличная часть «Оплата платежными картами» оказывается заполненной не полностью — поле Вид оплаты остается пустым. При этом повторная ручная регистрация документа к обмену и повторная синхронизация решают проблему. Давайте вместе разберемся, почему так происходит, и как настроить систему для корректной работы в автоматическом режиме.
Для начала проанализируем, как эти данные представлены в обеих конфигурациях. В 1С:Розница оплата привязана к справочнику Виды оплат. Однако в 1С:Управление торговлей логика иная: ключевым объектом является Эквайринговый терминал, который жестко связан с Эквайером (Партнером) и Договором эквайринга.
Рассмотрим процесс выгрузки через EnterpriseData. Система передает не просто название «Платежная карта», а ссылку на ЭквайринговыйТерминал. Если в УТ при загрузке документа система не может однозначно найти или создать терминал с привязкой к договору, поле Вид оплаты (которое в УТ является производным от настроек терминала) остается пустым.
Выясним причину, почему повторная загрузка документа исправляет ситуацию, особенно если обмен переполнен документами. Здесь срабатывает конфликт последовательности транзакций в автоматическом обмене:
Отчет о розничных продажах обрабатывается системой раньше, чем завершилась запись и индексация нового Эквайрингового терминала, механизм поиска в УТ «не видит» объект в базе данных.Соответствия объектов информационных баз отрабатывает мгновенно и корректно.Проанализируем настройки в 1С:Управление торговлей. Для того чтобы вид оплаты подставился автоматически, документ требует четкой цепочки данных. Выполним следующие действия:
Эквайринговые терминалы.Банк-эквайер и, что критически важно, действующий Договор эквайринга.Отчет о розничных продажах будет заблокирована логикой УТ.Одной из скрытых причин может быть дублирование записей в регистре сведений Соответствия объектов информационных баз. Разберем ситуацию: если одному терминалу в Рознице случайно сопоставлено два разных объекта в УТ (или наоборот), автоматический поиск при загрузке через фоновое задание может вернуть неопределенное значение.
Рекомендуется выполнить «чистку» сопоставлений:
Эквайринговые терминалы и через Помощник интерактивной синхронизации проверим, как выполнено сопоставление.В релизах УТ 11.5 (включая 11.5.25.x) замечена особенность: при запуске синхронизации регламентным заданием (под системным пользователем) иногда не инициализируются параметры сеанса, отвечающие за поиск соответствий объектов XDTO. В то время как при ручном запуске под обычным пользователем всё работает корректно.
Если вы столкнулись с этим «багом» обновления, можно применить программное решение для принудительного сопоставления. Рассмотрим пример кода, который можно использовать в расширении для модуля загрузки данных МенеджерОбменаЧерезУниверсальныйФормат:
Процедура ПередЗаписьюПолученногоОбъекта(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена) Экспорт
Если ТипЗнч(ДанныеИБ) = Тип("ДокументОбъект.ОтчетОРозничныхПродажах") Тогда
Для Каждого СтрокаОплаты Из ДанныеИБ.ОплатаПлатежнымиКартами Цикл
Если Не ЗначениеЗаполнено(СтрокаОплаты.ВидОплаты) Тогда
// Логика принудительного поиска вида оплаты по терминалу
СтрокаОплаты.ВидОплаты = ПолучитьВидОплатыПоТерминалу(СтрокаОплаты.ЭквайринговыйТерминал);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
В данном примере функция ПолучитьВидОплатыПоТерминалу должна обращаться к реквизитам выбранного терминала и возвращать связанный с ним тип оплаты.
Проанализируем справочник Виды оплат в конфигурации 1С:Розница. У каждого элемента есть реквизит Тип оплаты. Убедитесь, что для терминальных оплат выбран системный тип Платежная карта. Если вы создали новый тип оплаты вручную и он не сопоставлен с правилами XDTO (EnterpriseData), Управление торговлей просто «отбросит» эти данные при загрузке, так как не поймет, к какой категории их отнести.
Подводя итог, можно сказать, что проблема чаще всего кроется в несинхронности записи справочников и документов в рамках одной транзакции обмена. Чтобы решить проблему раз и навсегда:
GUID жестко прописались в базе 1С:Управление торговлей.