В процессе автоматизации розничной торговли перед компаниями часто встает задача реализации сложных, гибких программ лояльности. Одним из частых сценариев является предоставление скидки на определенные позиции при выполнении условий (например, легендарная акция «каждый 5-й товар в чеке со скидкой 10%»). При этом бизнес хочет, чтобы кассир самостоятельно решал, применять эту акцию в конкретном чеке или нет (управляемая скидка), но система при этом жестко контролировала выполнение условий акции (автоматическая проверка).
В этой статье мы подробно разберем, как устроена логика управляемых скидок в экосистеме 1С, выясним причины, по которым созданные скидки могут не отображаться на рабочем месте кассира (РМК), и рассмотрим современные и классические способы настройки сложных скидочных механик.
Для начала проанализируем ключевое различие между автоматическими, ручными и управляемыми скидками в программных продуктах 1С (таких как «1С:Розница», «1С:Управление торговлей» и «1С:УНФ»).
Рассмотрим частую ошибку понимания этого механизма. Если мы создали управляемую скидку и привязали к ней условие «Количество товара в строке не менее 5», то кассир не сможет применить ее к строке, где указано 3 единицы товара. Система либо вообще скроет эту скидку из списка доступных управляемых скидок для этой строки, либо рассчитает её с нулевым результатом. Кассир выполняет роль «запускного механизма», а сама логика обработки остается автоматической.
Часто специалисты сталкиваются с ситуацией: управляемая скидка создана, условия прописаны, но при открытии РМК кассир не видит кнопку скидки или список доступных акций пуст. Рассмотрим основные причины этой проблемы и алгоритм их устранения.
В конфигурациях «1С:Розница» версии 2.3 и аналогичных решениях создание самой скидки в справочнике СкидкиНаценки является лишь подготовкой шаблона. Чтобы скидка начала действовать в конкретных магазинах и отображаться в РМК, её необходимо обязательно привязать к документу маркетинговой активности. Выполним следующие действия:
Кнопка управляемых скидок в интерфейсе РМК может быть неактивна или скрыта из-за ограничений прав кассира. Проверим настройки безопасности системы:
Право ручная скидка РМК или аналогичное разрешение на применение управляемых скидок. Без этого права система будет блокировать вызов окна скидок.В современных конфигурациях на платформе «1С:Предприятие 8.3» (например, «1С:Розница 3.0» и «1С:УНФ») новый движок РМК может на системном уровне приравнивать управляемые (назначаемые вручную) скидки к обычным ручным скидкам. Если в настройках программы установлен нулевой лимит ручных скидок, кассир получит ошибку: «Максимальная величина ручной скидки 0%, скидка не применяется».
Для исправления этой настройки выполним следующие шаги:
Проанализируем классическую задачу автора темы: скидка 10% должна предоставляться на каждый пятый товар в строке чека. В старых конфигурациях («1С:Розница 2.2 / 2.3») для реализации подобных сложных алгоритмов стандартного конструктора часто не хватало, поэтому разработчики использовали механизм внешних обработок условий.
Выясним, как задействовать этот функционал. В каталоге шаблонов установленной конфигурации 1С всегда поставляются примеры внешних обработок. Найти файл-пример можно по следующему пути на диске компьютера (в зависимости от версии релиза):
..\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\tmplts\1c\Retail\2_2_x_x\Discount УсловиеПредоставленияПоНомеруСтроки.epf
На базе этого шаблона программисты могут написать любую сложную логику проверки табличной части. Посмотрим на упрощенную программную структуру обработки, которая анализирует количество товаров в корзине и возвращает результат применимости скидки:
// Пример экспортной функции во внешней обработке условий скидок
Функция ПроверитьУсловие(ПараметрыРасчета) Экспорт
Результат = Новый Структура("УсловиеВыполнено, КоличествоПрименений", Ложь, 0);
// Получаем табличную часть товаров из параметров расчета чека
ТабличнаяЧастьТовары = ПараметрыРасчета.Объект.Товары;
ОбщееКоличество = 0;
Для Каждого СтрокаТовара Из ТабличнаяЧастьТовары Цикл
ОбщееКоличество = ОбщееКоличество + СтрокаТовара.Количество;
КонецЦикла;
// Проверяем условие на кратность пяти единицам товара
Если ОбщееКоличество >= 5 Тогда
Результат.УсловиеВыполнено = Истина;
Результат.КоличествоПрименений = Цел(ОбщееКоличество / 5);
КонецЕсли;
Возврат Результат;
КонецФункции
Зарегистрировав эту обработку в справочнике Дополнительные отчеты и обработки и выбрав ее в качестве условия предоставления в карточке скидки-наценки, мы получим идеальное сочетание: кассир нажимает кнопку управляемой скидки, а программа обращается к алгоритму внешней обработки, рассчитывая точную скидку только при достижении кратности товара в чеке. При необходимости можно использовать готовое решение для скидок кратно количеству товаров.
Если мы работаем в актуальных версиях программных продуктов на платформе «1С:Предприятие 8.3» (например, управляемое приложение «1С:Розница 3.0»), писать внешний программный код больше нет необходимости. Разработчики добавили мощный встроенный конструктор автоматических и управляемых скидок.
Рассмотрим, как быстро настроить акцию «Каждый 5-й товар со скидкой» через стандартный интерфейс:
Теперь при оформлении чека в новом РМК кассиру достаточно будет нажать кнопку «Скидки» и активировать созданную акцию — система сама проверит кратность позиций в строках и начислит скидку строго на нужное количество товаров.
Разберем важные изменения в интерфейсе работы со скидками, которые появились в последних версиях единого «1С:РМК» и встроенных кассовых модулей «1С:Розница 3.0.5+».
Ранее кассиры часто сталкивались с проблемой, когда примененная ручная или управляемая скидка ошибочно распределялась на все позиции в чеке вместо одной конкретной строки. В новом интерфейсе эта проблема решена кардинально:
При внедрении управляемых скидок на предприятии важно учитывать системные ограничения платформы 1С, которые могут повлиять на бизнес-процессы оптовых и розничных продаж:
Заказ покупателя, а кассир в РМК формирует Чек ККМ или Расходную накладную на его основании, то ручной выбор управляемых скидок на кассе будет заблокирован. Вся работа по подбору акций, подарков и скидок должна проводиться на этапе согласования исходного заказа менеджером.Счет на оплату.Проанализировав эти механизмы, мы можем сделать вывод, что управляемые скидки в решениях 1С — это гибкий и надежный инструмент контроля продаж. Корректная настройка маркетинговых акций, прав доступа и лимитов позволит вашим кассирам легко управлять лояльностью покупателей прямо на кассе, исключая при этом человеческий фактор и ошибки в расчетах. Для контроля и проверки правильности начислений по чекам подойдёт отчет по предоставленным скидкам и наценкам.