Синхронизация данных между 1С:Управление торговлей 11 (УТ 11) и 1С:Розница 2 — одна из самых сложных тем для администраторов и программистов 1С. Основная причина "глюков" заключается в том, что эти конфигурации имеют принципиально разную глубину учета. УТ 11 — это мощная система планирования с ордерными складами и графиками оплат, а Розница — упрощенный фронт-офис для быстрой регистрации продаж. В этом материале мы подробно разберем основные проблемы, с которыми сталкиваются пользователи при обмене, и выясним пути их решения.
Рассмотрим ситуацию, когда в Рознице создается Расходный ордер на товары на основании реализации. При переходе в УТ 11 документ часто оказывается непроведенным, а система выдает ошибки: "Поле Получатель не заполнено" или "Не заполнена колонка Распоряжение". Проанализируем причину.
В УТ 11 ордерная схема работает строго: складской ордер не может существовать "сам по себе", ему всегда нужно Распоряжение (например, Реализация товаров и услуг или Заказ на перемещение). Если в настройках синхронизации или в правилах конвертации не прописан жесткий поиск соответствия между документом-основанием в Рознице и УТ, связь теряется. Чтобы решить эту проблему, проанализируем настройки склада в УТ 11:
ПриЗагрузкеОбъекта будет программно искать документ-основание и подставлять его в поле Распоряжение.Разберем случай, когда Расходный кассовый ордер с операцией "Прочий расход" из Розницы превращается в УТ в "Выдачу подотчетнику". В УТ 11 справочник Хозяйственные операции гораздо сложнее. Если в документе указано Физическое лицо, система по умолчанию сопоставляет его с подотчетником и требует дату отчета, которой в Рознице просто не существует.
Для исправления ситуации выполним следующие действия:
ВидОперации документа РасходныйКассовыйОрдер.Проанализируем проблему, когда Реализация товаров и услуг не проводится в УТ из-за незаполненных этапов оплаты. В УТ 11 контроль дебиторской задолженности завязан на соглашения и графики оплаты. В Рознице этого функционала нет в принципе.
Выясним, как это работает "под капотом": при загрузке реализации УТ ищет Соглашение. Если соглашение не найдено или в нем не указан график, система блокирует проведение. Решение:
Посмотрим на ситуацию: документ в Рознице пометили на удаление, он распровелся. После обмена в УТ 11 документ помечен на удаление, но движения по регистрам остались. Это происходит из-за особенностей платформы 8.3 и формата Enterprise Data.
Пометка на удаление — это лишь изменение реквизита ПометкаУдаления. Если документ в УТ заблокирован (например, датой запрета редактирования или другим пользователем), процедура ПередЗаписью, отвечающая за снятие с проведения, может не сработать или завершиться с ошибкой, которую обмен проигнорирует, просто установив флаг пометки. Рекомендуется:
Разберем ситуацию, когда кредит из Розницы попадает в УТ как наличная оплата. В Рознице кредит — это отдельный вид оплаты, а в УТ 11 — это вид Эквайринговой операции. Если в УТ не настроен Эквайринговый терминал, привязанный к той же кассе ККМ, что и в Рознице, система "схлопывает" сумму в наличку.
Чтобы данные ложились корректно:
Эквайринговый терминал.СпособОплаты "Кредит" из Розницы сопоставлен с соответствующей настройкой эквайринга в УТ.Как показывает практика, типовой обмен редко работает идеально без доработок. Вместо правки правил конвертации (которые затрутся при обновлении), лучше использовать Расширение конфигурации. Рассмотрим пример кода, который можно разместить в модуле расширения для дозаполнения документов при загрузке:
&После("ПриЗагрузкеОбъекта")
Процедура Инт_ПриЗагрузкеОбъекта(Объект, ДанныеXDTO, КомпонентаОбмена)
Если ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
// Проверяем, если соглашение пустое, подставляем типовое
Если Объект.Соглашение.Пустая() Тогда
Объект.Соглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("Розничное (типовое)");
КонецЕсли;
// Автоматическое заполнение этапов оплаты
Если Объект.ЭтапыГрафикаОплаты.Количество() = 0 Тогда
НоваяСтрока = Объект.ЭтапыГрафикаОплаты.Добавить();
НоваяСтрока.ВариантОплаты = Перечисления.ВариантыОплатыКлиентом.ПолнаяОплата;
НоваяСтрока.ПроцентПлатежа = 100;
НоваяСтрока.СуммаПлатежа = Объект.СуммаДокумента;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Если типовая синхронизация через XML/XDTO работает слишком медленно или нестабильно, профессиональные команды переходят на обмен через брокеры сообщений (RabbitMQ, Kafka). В этом случае данные передаются не огромными пакетами раз в час, а поштучно: один документ — одно сообщение в формате JSON. Это позволяет:
Подводя итог, можно сказать: связка УТ 11 и Розница 2 вполне работоспособна, но она требует тщательной настройки Соглашений, Статей ДДС и Эквайринга на стороне УТ. В большинстве случаев вам также потребуется написать небольшое расширение для автоматического заполнения тех реквизитов, которых физически нет в Рознице, но которые критически важны для бизнес-логики УТ.