Почему в 1С:Розница происходит двойное списание бонусов при разделении чека по разным СНО?

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

При работе в 1С:Розница пользователи часто сталкиваются с критической ошибкой: если в одном чеке РМК присутствуют товары с разными системами налогообложения (например, УСН и Патент), система автоматически разделяет документ на несколько фискальных чеков. В этот момент бонусная программа может сработать некорректно, дважды списывая сумму оплаты бонусами. Давайте разберемся, почему это происходит и как минимизировать риски для бизнеса.

Анализ проблемы: почему бонусы списываются дважды

Основная причина заключается в архитектуре механизма РМК. Когда вы оформляете продажу, система создает общее событие оплаты бонусами для всего чека. Однако при разделении по СНО, логика обработки документа «рассыпается» на несколько отдельных чеков. Типовой механизм не всегда корректно распределяет уже рассчитанную сумму списания пропорционально стоимости товаров в каждом «дочернем» чеке.

Вместо того чтобы разделить 15 бонусов на два чека (например, 10 и 5 согласно сумме товаров), система передает параметр списания 15 бонусов в каждый чек. В итоге клиент теряет баллы в двойном размере, а баланс его бонусного счета может уйти в глубокий минус.

Разбор процесса: почему маркетинговые акции не спасают ситуацию

Многие пользователи пытаются решить проблему через настройки маркетинговых акций: Вытеснение, Максимум или Минимум. Важно понимать, что эти настройки отвечают только за этап расчета бонусов (начисление). Ошибка же происходит на этапе регистрации оплаты в фискальном регистраторе. Даже если расчет прошел идеально, процедура записи данных в чек при разделении СНО берет общую сумму списания как константу для каждой части чека.

Как временно решить проблему и обезопасить базу клиентов

Поскольку исправление этой ошибки требует серьезной модификации типового кода, рассмотрим доступные способы обхода, которые позволят кассирам работать без потерь:

  1. Ручное разделение чеков: Это самый надежный способ на текущий момент. Если кассир видит товары с разными СНО и оплату бонусами, необходимо пробивать их строго по отдельности. Сначала оформляется продажа товаров по одной СНО с применением бонусов, затем — по другой.
  2. Программное распределение через расширение: Если у вас есть возможность доработки системы, рекомендуем создать Расширение конфигурации. В нем необходимо переопределить процедуру, отвечающую за разделение чеков. Суть доработки заключается в расчете коэффициента распределения:

    СуммаСписанияНаЧек = (СуммаТоваровВЧеке / ОбщаяСуммаЧека) * ОбщаяСуммаБонусовКСписанию

    Этот коэффициент позволит пропорционально распределить оплату бонусами между чеками до отправки данных на фискализацию.

  3. Контроль баланса: Как дополнительная мера, реализуйте проверку баланса при попытке пробития чека. Если общая сумма списания по всем дочерним чекам превышает текущий остаток бонусов на карте клиента, система должна выдавать предупреждение и блокировать операцию до исправления ручным способом.

Важные рекомендации для работы

Для предотвращения ошибок в учете, проанализируем следующие шаги:

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

← На главную