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