В розничной торговле крайне популярна механика стимулирования сбыта: при покупке двух единиц одной номенклатуры покупатель получает скидку на вторую единицу (например, 10% или 50%). При покупке четырех единиц скидка должна предоставиться уже на две из них, а при покупке нечетного количества (3 или 5 единиц) непарный товар должен продаваться по полной стоимости.
Рассмотрим конкретный расчет: если стол стоит 100 рублей, то:
Разберем, почему стандартная процентная скидка в конфигурации 1С:Розница 2.1 / 2.2 не справляется с такой задачей «из коробки», и проанализируем доступные способы реализации подобной акции.
Выясним причину сложности типовой настройки. В конфигурациях 1С:Розница 2.1 и 1С:Розница 2.2 механизм автоматических скидок работает со строкой документа целиком:
Разберем рабочий обходной путь без программирования, который подходит для небольшого ассортимента товаров с фиксированными ценами.
Идея заключается в создании группы скидок с вариантом совместного применения Вытеснение, где под каждое четное и нечетное пороговое количество задается отдельная фиксированная скидка суммой на строку:
Сумма, значение — 10 руб. На вкладке «Условия предоставления» укажем условие: «Количество в строке не менее 2 шт.». В фильтре по номенклатуре выберем акционную позицию.Сумма, значение — 20 руб. Условие: «Количество в строке не менее 4 шт.».Посмотрим на особенности этого решения: система последовательно проверяет условия. Если покупатель берет 4 стола, скидка 20 рублей вытеснит скидку 10 рублей, и покупатель заплатит ровно 380 рублей.
Важные ограничения метода:
Проанализируем профессиональный способ, который полностью автоматизирует расчет для любого количества и не зависит от изменения цен. В типовой конфигурации предусмотрен механизм подключения внешних алгоритмов расчета скидок.
Внешняя обработка встраивается через справочник дополнительных отчетов и обработок и переопределяет расчет скидки. Алгоритм вычисляет количество полных пар товара и начисляет скидку исходя из текущей цены:
КоличествоПар = Цел(КоличествоВСтроке / 2);
СуммаСкидки = КоличествоПар * (Цена * 0.10);
Преимущества такого подхода:
Если акция носит разовый характер или внешние доработки недоступны, рассмотрим альтернативу через использование комплектов:
Набор-пакет (или Комплект).При использовании этого варианта кассир сканирует комплект при покупке четного количества товара. Однако данный метод требует дисциплины от персонала на кассе и не обеспечивает автоматического пересчета, если кассир отсканирует две раздельные позиции.
Разберем важный нюанс фискализации скидок. Согласно требованиям 54-ФЗ и протоколам формата фискальных данных (ФФД 1.05, 1.1, 1.2), чек онлайн-кассы не может содержать скидку одной общей суммой на итог всего чека без расшифровки по позициям. В фискальном накопителе каждая товарная строка должна содержать конечную стоимость и итоговую сумму с учетом всех примененных акций (тег 1079).
В типовых конфигурациях 1С:Розница встроен корректный механизм распределения: даже если скидка рассчитывается на документ, программа пропорционально распределяет рубли и копейки по строкам товаров перед отправкой команды на печать в ККТ.
При использовании суммовых скидок с нечетным делением рекомендуем включить в программе штатную настройку округления чека в пользу покупателя. Это предотвратит расхождения на копейки между суммой строк и общим итогом чека при фискализации.