Как настроить маркетинговую акцию «Каждый второй товар со скидкой» в 1С:Розница?

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

В розничной торговле крайне популярна механика стимулирования сбыта: при покупке двух единиц одной номенклатуры покупатель получает скидку на вторую единицу (например, 10% или 50%). При покупке четырех единиц скидка должна предоставиться уже на две из них, а при покупке нечетного количества (3 или 5 единиц) непарный товар должен продаваться по полной стоимости.

Рассмотрим конкретный расчет: если стол стоит 100 рублей, то:

  1. 1 стол = 100 руб.
  2. 2 стола = 100 руб. + 90 руб. = 190 руб. (скидка 10 руб. на чек).
  3. 3 стола = 100 руб. + 90 руб. + 100 руб. = 290 руб. (скидка 10 руб. на чек).
  4. 4 стола = 100 руб. + 90 руб. + 100 руб. + 90 руб. = 380 руб. (скидка 20 руб. на чек).

Разберем, почему стандартная процентная скидка в конфигурации 1С:Розница 2.1 / 2.2 не справляется с такой задачей «из коробки», и проанализируем доступные способы реализации подобной акции.

Ограничения типового механизма скидок

Выясним причину сложности типовой настройки. В конфигурациях 1С:Розница 2.1 и 1С:Розница 2.2 механизм автоматических скидок работает со строкой документа целиком:

  1. Если создать скидку 10% с условием «Количество в строке не менее 2 шт.», система применит 10% ко всему количеству в строке. При покупке двух столов чек составит 180 руб. вместо запланированных 190 руб.
  2. Типовое действие «Подарок» рассчитано на стопроцентную скидку (схема «1+1=3» или «2=1»), но не позволяет штатными переключателями назначить частичный процент на акционную единицу.
  3. Процентная скидка не имеет встроенного параметра кратности применения внутри одной строки.

Вариант 1. Настройка ступенчатых скидок фиксированной суммой (типовой метод)

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

Идея заключается в создании группы скидок с вариантом совместного применения Вытеснение, где под каждое четное и нечетное пороговое количество задается отдельная фиксированная скидка суммой на строку:

  1. Перейдем в раздел Маркетинг — Скидки (наценки, ограничения).
  2. Создадим папку скидок и установим правило совместного применения: Вытеснение. Приоритеты внутри группы настраиваются от большего количества к меньшему.
  3. Создадим скидку для покупки 2 или 3 шт.: вид скидки — Сумма, значение — 10 руб. На вкладке «Условия предоставления» укажем условие: «Количество в строке не менее 2 шт.». В фильтре по номенклатуре выберем акционную позицию.
  4. Создадим скидку с более высоким приоритетом для покупки 4 или 5 шт.: вид скидки — Сумма, значение — 20 руб. Условие: «Количество в строке не менее 4 шт.».
  5. При необходимости продолжим шкалу для 6 шт. (скидка 30 руб.) и так далее.

Посмотрим на особенности этого решения: система последовательно проверяет условия. Если покупатель берет 4 стола, скидка 20 рублей вытеснит скидку 10 рублей, и покупатель заплатит ровно 380 рублей.

Важные ограничения метода:

  1. При переоценке товара суммы скидок придется пересчитывать и менять вручную, иначе акция будет рассчитываться по старым ценам.
  2. Метод неудобен при широком акционном ассортименте, так как требует создания множества условий и скидок под каждый товар и каждую кратность.
  3. Если покупатель возьмет количество товара, превышающее максимальное описанное в правилах (например, 10 штук при настроенных правилах только до 6 штук), сумма скидки перестанет увеличиваться.

Вариант 2. Подключение внешней обработки расчета скидки (рекомендуемый способ)

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

Внешняя обработка встраивается через справочник дополнительных отчетов и обработок и переопределяет расчет скидки. Алгоритм вычисляет количество полных пар товара и начисляет скидку исходя из текущей цены:


КоличествоПар = Цел(КоличествоВСтроке / 2);
СуммаСкидки = КоличествоПар * (Цена * 0.10);

Преимущества такого подхода:

  1. Универсальность: акция настраивается один раз для целой группы товаров (например, для всей категории «Мебель»).
  2. Динамический расчет: если цена товара изменится со 100 до 120 рублей, обработка автоматически рассчитает скидку 12 рублей на пару без необходимости ручной корректировки условий.
  3. Любой объем в чеке: алгоритм корректно обработает покупку как 2, так и 20 единиц товара.

Вариант 3. Использование номенклатуры типа «Набор»

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

  1. В справочнике Номенклатура создадим карточку товара с типом Набор-пакет (или Комплект).
  2. В состав набора включим 2 штуки акционного стола.
  3. Назначим специальную розничную цену набора — 190 рублей.

При использовании этого варианта кассир сканирует комплект при покупке четного количества товара. Однако данный метод требует дисциплины от персонала на кассе и не обеспечивает автоматического пересчета, если кассир отсканирует две раздельные позиции.

Требования законодательства (54-ФЗ) и фискализация чека

Разберем важный нюанс фискализации скидок. Согласно требованиям 54-ФЗ и протоколам формата фискальных данных (ФФД 1.05, 1.1, 1.2), чек онлайн-кассы не может содержать скидку одной общей суммой на итог всего чека без расшифровки по позициям. В фискальном накопителе каждая товарная строка должна содержать конечную стоимость и итоговую сумму с учетом всех примененных акций (тег 1079).

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

При использовании суммовых скидок с нечетным делением рекомендуем включить в программе штатную настройку округления чека в пользу покупателя. Это предотвратит расхождения на копейки между суммой строк и общим итогом чека при фискализации.

← На главную