Как устранить типичные ошибки синхронизации между 1С:Управление торговлей 11 и 1С:Розница 2.0?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Синхронизация данных между 1С:Управление торговлей 11 (УТ 11) и 1С:Розница 2 — одна из самых сложных тем для администраторов и программистов 1С. Основная причина "глюков" заключается в том, что эти конфигурации имеют принципиально разную глубину учета. УТ 11 — это мощная система планирования с ордерными складами и графиками оплат, а Розница — упрощенный фронт-офис для быстрой регистрации продаж. В этом материале мы подробно разберем основные проблемы, с которыми сталкиваются пользователи при обмене, и выясним пути их решения.

1. Ошибки заполнения Расходных ордеров в УТ 11

Рассмотрим ситуацию, когда в Рознице создается Расходный ордер на товары на основании реализации. При переходе в УТ 11 документ часто оказывается непроведенным, а система выдает ошибки: "Поле Получатель не заполнено" или "Не заполнена колонка Распоряжение". Проанализируем причину.

В УТ 11 ордерная схема работает строго: складской ордер не может существовать "сам по себе", ему всегда нужно Распоряжение (например, Реализация товаров и услуг или Заказ на перемещение). Если в настройках синхронизации или в правилах конвертации не прописан жесткий поиск соответствия между документом-основанием в Рознице и УТ, связь теряется. Чтобы решить эту проблему, проанализируем настройки склада в УТ 11:

  1. Перейдем в настройки склада и проверим использование ордерной схемы. Если выбрано "При отражении излишков и недостач", а документ пришел как полноценный расходный ордер, возникнет конфликт.
  2. Проверим настройку "Заполнять распоряжение автоматически при загрузке" в узле синхронизации.
  3. Если типовые средства не помогают, наиболее эффективным решением будет создание Расширения в УТ 11, которое в процедуре ПриЗагрузкеОбъекта будет программно искать документ-основание и подставлять его в поле Распоряжение.

2. РКО и неожиданная "Выдача подотчетнику"

Разберем случай, когда Расходный кассовый ордер с операцией "Прочий расход" из Розницы превращается в УТ в "Выдачу подотчетнику". В УТ 11 справочник Хозяйственные операции гораздо сложнее. Если в документе указано Физическое лицо, система по умолчанию сопоставляет его с подотчетником и требует дату отчета, которой в Рознице просто не существует.

Для исправления ситуации выполним следующие действия:

  1. В УТ 11 создадим отдельную статью движения денежных средств (ДДС) специально для обмена с Розницей.
  2. В настройках синхронизации (сопоставление данных) укажем, что статья "Прочий расход" из Розницы должна соответствовать именно этой новой статье в УТ с видом операции "Прочие расходы" (а не выдача подотчетнику).
  3. Если маппинг не помогает, придется вмешаться в код правил конвертации данных (XDTO), чтобы принудительно устанавливать ВидОперации документа РасходныйКассовыйОрдер.

3. Отсутствие этапов оплаты в Реализациях

Проанализируем проблему, когда Реализация товаров и услуг не проводится в УТ из-за незаполненных этапов оплаты. В УТ 11 контроль дебиторской задолженности завязан на соглашения и графики оплаты. В Рознице этого функционала нет в принципе.

Выясним, как это работает "под капотом": при загрузке реализации УТ ищет Соглашение. Если соглашение не найдено или в нем не указан график, система блокирует проведение. Решение:

4. Коллизии при удалении документов

Посмотрим на ситуацию: документ в Рознице пометили на удаление, он распровелся. После обмена в УТ 11 документ помечен на удаление, но движения по регистрам остались. Это происходит из-за особенностей платформы 8.3 и формата Enterprise Data.

Пометка на удаление — это лишь изменение реквизита ПометкаУдаления. Если документ в УТ заблокирован (например, датой запрета редактирования или другим пользователем), процедура ПередЗаписью, отвечающая за снятие с проведения, может не сработать или завершиться с ошибкой, которую обмен проигнорирует, просто установив флаг пометки. Рекомендуется:

  1. Сначала вручную распроводить документы в Рознице, выполнять обмен, и только после подтверждения в УТ помечать их на удаление.
  2. Использовать регламентное задание "Исправление последствий удаления объектов", которое помогает вычистить "битые" движения.

5. Проблема оплаты в кредит (Эквайринг)

Разберем ситуацию, когда кредит из Розницы попадает в УТ как наличная оплата. В Рознице кредит — это отдельный вид оплаты, а в УТ 11 — это вид Эквайринговой операции. Если в УТ не настроен Эквайринговый терминал, привязанный к той же кассе ККМ, что и в Рознице, система "схлопывает" сумму в наличку.

Чтобы данные ложились корректно:

  1. В УТ 11 создадим Эквайринговый терминал.
  2. Настроим договор с банком-кредитором (вид договора "Прочее").
  3. В настройках обмена убедимся, что СпособОплаты "Кредит" из Розницы сопоставлен с соответствующей настройкой эквайринга в УТ.

6. Архитектурное решение: доработка через расширение

Как показывает практика, типовой обмен редко работает идеально без доработок. Вместо правки правил конвертации (которые затрутся при обновлении), лучше использовать Расширение конфигурации. Рассмотрим пример кода, который можно разместить в модуле расширения для дозаполнения документов при загрузке:


&После("ПриЗагрузкеОбъекта")
Процедура Инт_ПриЗагрузкеОбъекта(Объект, ДанныеXDTO, КомпонентаОбмена)
    Если ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда
        // Проверяем, если соглашение пустое, подставляем типовое
        Если Объект.Соглашение.Пустая() Тогда
            Объект.Соглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("Розничное (типовое)");
        КонецЕсли;
        
        // Автоматическое заполнение этапов оплаты
        Если Объект.ЭтапыГрафикаОплаты.Количество() = 0 Тогда
            НоваяСтрока = Объект.ЭтапыГрафикаОплаты.Добавить();
            НоваяСтрока.ВариантОплаты = Перечисления.ВариантыОплатыКлиентом.ПолнаяОплата;
            НоваяСтрока.ПроцентПлатежа = 100;
            НоваяСтрока.СуммаПлатежа = Объект.СуммаДокумента;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

7. Альтернатива: Брокеры сообщений и JSON

Если типовая синхронизация через XML/XDTO работает слишком медленно или нестабильно, профессиональные команды переходят на обмен через брокеры сообщений (RabbitMQ, Kafka). В этом случае данные передаются не огромными пакетами раз в час, а поштучно: один документ — одно сообщение в формате JSON. Это позволяет:

Подводя итог, можно сказать: связка УТ 11 и Розница 2 вполне работоспособна, но она требует тщательной настройки Соглашений, Статей ДДС и Эквайринга на стороне УТ. В большинстве случаев вам также потребуется написать небольшое расширение для автоматического заполнения тех реквизитов, которых физически нет в Рознице, но которые критически важны для бизнес-логики УТ.

← На главную