Приветствуем вас! В оптовой и розничной торговле часто возникает необходимость гибкой настройки автоматических скидок. Очень распространен сценарий, когда в одном документе продажи или соглашении с клиентом должно действовать сразу несколько скидок. Например, клиенту предоставляется базовая скидка за объем закупки и дополнительная скидка по маркетинговой акции на определенную ценовую группу товаров.
Логично предположить, что эти скидки должны применяться последовательно — то есть по принципу математического умножения, когда каждая следующая скидка рассчитывается от суммы, уже уменьшенной предыдущей скидкой. Однако многие пользователи программ 1С:Управление торговлей, 1С:ERP или 1С:Комплексная автоматизация сталкиваются с проблемой: даже если скидки находятся в специальной папке совместного применения «Умножение» (в новых редакциях она называется «Последовательное применение»), система все равно их складывает. Вместо умножения процентов менеджеры получают обычное суммирование, что ведет к некорректному расчету цен и потере маржинальности.
Давайте подробно разберем, почему так происходит, проанализируем логику работы механизмов ценообразования в 1С и по шагам настроим систему так, чтобы скидки действительно умножались.
Для начала проанализируем математическую разницу между двумя этими механизмами на конкретном примере. Представим, что у нас есть товар базовой стоимостью 100 рублей. К нему применяются две автоматические скидки: 2% и 3%.
Вариант 1. Сложение скидок (простое суммирование)
При сложении процентов система рассчитывает каждую скидку отдельно от первоначальной (базовой) стоимости товара:
Вариант 2. Последовательное применение (умножение)
При последовательном расчете каждая следующая скидка должна рассчитываться от остатка стоимости после применения предыдущих скидок:
Математически это выглядит как перемножение коэффициентов: 100 * (1 - 0.02) * (1 - 0.03) = 100 * 0.98 * 0.97 = 95.06.
Почему же в 1С при создании группы совместного применения «Умножение» сумма все равно получается равной 95,00 рублям? Выясним причину.
Дело в том, что сама по себе группа совместного применения с типом «Умножение» лишь разрешает совместное действие скидок и определяет их очередность. Но по умолчанию алгоритм расчета каждой конкретной скидки внутри этой группы продолжает брать в качестве базы **первоначальную стоимость товара**, игнорируя результаты работы «соседей» по папке.
Чтобы скидка «видела» результаты работы предыдущих скидок и рассчитывалась от остатка, необходимо включить специальную опцию в карточке самой скидки.
Решение: В карточке каждой процентной скидки, участвующей в последовательном расчете, необходимо установить флаг «С учетом суммы примененных скидок» (в некоторых версиях конфигураций этот реквизит называется «С учетом суммы применяемых скидок»).
Если этот флаг НЕ установлен, то даже внутри группы «Умножение» программа посчитает скидки от исходной цены, что фактически превратит расчет в обычное сложение. Если флаг установлен — расчет пойдет строго по принципу последовательного умножения.
Рассмотрим процесс настройки системы с нуля, чтобы исключить любые ошибки при вводе документов.
Перейдите в раздел CRM и маркетинг — Цены и скидки — Скидки (наценки). Создайте новую группу совместного применения (папку). В поле «Вариант совместного применения» выберите значение «Умножение» (в новых релизах — «Последовательное применение»).
Откройте карточку каждой скидки, которая должна входить в эту группу. Нажмите кнопку изменения настроек и обязательно установите флаг «С учетом суммы примененных скидок». Сохраните изменения. Перенесите эти скидки внутрь созданной на первом шаге папки.
Поскольку при умножении важен порядок расчета, расположите скидки внутри папки сверху вниз в нужной последовательности. Скидка, находящаяся на самом верху списка, рассчитается первой от полной стоимости. Каждая следующая скидка, расположенная ниже, будет рассчитываться от остатка. Порядок применения можно регулировать с помощью стрелок «Вверх» и «Вниз» на панели инструментов списка скидок.
Откройте индивидуальное или типовое соглашение с клиентом, перейдите на вкладку Скидки (наценки), добавьте туда созданную группу совместного применения и установите для нее статус «Действует».
Проанализируем технические особенности работы данного функционала, которые важно учитывать при автоматизации ценообразования:
Если по каким-то причинам стандартная настройка совместного применения вам не подходит или кажется слишком сложной для менеджеров, можно использовать альтернативные подходы:
Вариант А. Создание готовых результирующих процентов
Если перечень комбинаций скидок фиксирован (например, менеджеры всегда комбинируют только 2% и 3%), вы можете отказаться от динамического перемножения двух скидок в системе. Вместо этого рассчитайте итоговый процент заранее математически (в нашем примере это 4,94%) и создайте одну фиксированную скидку с этим значением. Это существенно упростит администрирование базы данных и исключит путаницу у пользователей.
Вариант Б. Использование внешних обработок
В случаях, когда алгоритм умножения скидок завязан на сложную внешнюю логику (например, зависит от региона партнера, истории его оплат или специфических свойств номенклатуры), стандартного конструктора 1С может не хватить. В конфигурациях ERP и УТ предусмотрена возможность подключения внешних обработок для расчета скидок. Привлечение программиста 1С позволит написать собственный алгоритм расчета на встроенном языке программирования, который будет отрабатывать автоматически при проведении документов продажи.