В процессе эксплуатации 1С:Розница многие пользователи сталкиваются с вопросом корректности работы бонусной системы при применении ручных скидок. Суть проблемы заключается в том, что стандартный алгоритм программы рассчитывает базу для начисления бонусных баллов исходя из полной стоимости товаров в чеке, игнорируя факт применения продавцом ручной скидки.
Рассмотрим, почему это происходит. В архитектуре 1С:Розница механизм начисления бонусов базируется на настройках Правила начисления бонусов. Типовой программный код системы настроен так, что в качестве Расчетной базы выступает сумма документа, зафиксированная до применения корректировок, таких как ручные скидки. Система воспринимает ручную скидку как изменение итоговой цены реализации, но не пересчитывает при этом параметры бонусной программы в автоматическом режиме.
При использовании автоматических скидок ситуация выглядит иначе: если в системе настроено последовательное применение скидок, можно задать приоритет, при котором скидка уменьшает стоимость товара, а бонусы начисляются на скорректированную сумму. Однако, когда дело касается ручного ввода скидки продавцом, система считает такую операцию «финальной» и бонусы начисляются с первоначальной суммы чека.
Проанализируем возможные пути выхода из сложившейся ситуации. Если перед вами стоит задача учитывать ручные скидки, рассмотрим следующие подходы:
Последовательного применения скидок, который корректно взаимодействует с бонусной системой 1С:Розница.Если вы решили модифицировать конфигурацию, рассмотрим, что именно необходимо проанализировать. Основная логика начисления бонусов скрыта в модулях, отвечающих за проведение Чека. В частности, необходимо обратить внимание на процедуры пересчета скидок в момент закрытия чека.
При доработке кода важно учитывать следующий принцип:
// Пример логики, которую необходимо учитывать при кастомизации:
// Получение суммы после скидок для расчета бонусов
СуммаДляРасчетаБонусов = Объект.СуммаДокумента - Объект.СуммаСкидок;
// Применение этой суммы в функции начисления
НачислитьБонусы(Клиент, СуммаДляРасчетаБонусов * КоэффициентБонусов);
Однако помните, что внесение изменений в типовой код модуля расчета лояльности усложняет дальнейшее обновление конфигурации. Перед началом работ создайте резервную копию базы и проведите тестирование на тестовой копии (РИБ), чтобы убедиться, что изменения не влияют на другие участки бонусного механизма, такие как Оплата бонусами или Возврат товаров.
Итак, мы выяснили, что в базовой поставке 1С:Розница расчет бонусов с учетом ручных скидок не автоматизирован. Если вы столкнулись с этим ограничением, рекомендуем:
Чек.Работа с бонусами требует внимательного подхода к приоритетам скидок, поэтому всегда тестируйте любые изменения в изолированной среде, прежде чем применять их на рабочей базе 1С.