Как настроить одновременную работу фиксированной и накопительной скидки в 1С:Управление торговлей 10.3?

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

В типовой конфигурации 1С:Управление торговлей 10.3 пользователи часто сталкиваются с проблемой: несмотря на включенные флаги в учетной политике «Использовать скидки по дисконтной карте» и «Использовать накопительные скидки по дисконтным картам», система применяет только один вид льготы. Разберем, почему так происходит, и как настроить программу, чтобы карта давала одновременно и фиксированный процент, и накопительный бонус.

Анализ причин конфликта механизмов скидок

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

Вариант 1. Настройка через пороги накопительных скидок (без программирования)

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

  1. Откроем регистр сведений Пороги накопительных скидок.
  2. Создадим первую запись для нужного вида карты, где укажем нижний порог (значение накопления) равным 0 рублей. В поле процента укажем тот фиксированный минимум, который должен получать клиент сразу при выдаче карты.
  3. Создадим последующие записи для более высоких порогов (например, от 10 000 руб., от 50 000 руб. и так далее) с соответствующим увеличением процента.

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

Вариант 2. Использование механизма «Автоматические скидки»

Выясним причину, по которой прямое указание скидки в карточке вида дисконтной карты может блокировать другие расчеты. В УТ 10.3 механизмы скидок по картам и автоматических скидок работают параллельно, но не всегда суммируются автоматически.

Чтобы добиться суммирования, рекомендуется:

  1. Не указывать фиксированный процент непосредственно в справочнике Виды дисконтных карт.
  2. Перейти в справочник Скидки и наценки и создать там две разные автоматические скидки.
  3. Для первой скидки установить условие «По дисконтной карте» (фиксированная часть).
  4. Для второй скидки настроить накопительную систему через условия порогов.
  5. В настройках порядка применения скидок выбрать вариант Суммирование.

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

Программное решение проблемы округления скидок

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

Для этого нам понадобится внести изменения в общий модуль ОбработкаТабличныхЧастей. Найдем процедуру ПроверкаМинимальнойЦены и вставим алгоритм округления в цикл обработки строк товаров.

Посмотрим на пример кода:


// Добавление округления скидок в процедуре ПроверкаМинимальнойЦены
Если СтрокаТовара.Сумма <> СтрокаТовара.СуммаБезСкидки Тогда
    СтрокаТовара.Сумма = Окр(СтрокаТовара.Сумма);
КонецЕсли;

Если УчитыватьНДС Тогда
    // Рассчитаем сумму НДС строки таблицы значений после округления суммы
    СтрокаТовара.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(
        СтрокаТовара.Сумма, 
        УчитыватьНДС, 
        СуммаВключаетНДС, 
        УчетНДС.ПолучитьСтавкуНДС(СтрокаТовара.СтавкаНДС)
    );
КонецЕсли;

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

Резюме для администратора системы

Подведем итоги. Чтобы скидки работали корректно, проверьте следующие моменты:

← На главную