Как настроить автоматическую скидку для конкретной строки чека в 1С:Розница 2.2

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

При работе в розничной торговле часто возникают ситуации, когда стандартных автоматических акций на весь чек недостаточно. Представим ситуацию: в одном чеке покупатель приобретает новый товар со склада и товар с витрины (или б/у экземпляр). На витринный образец должна действовать специфическая скидка, которая не должна суммироваться с общими акциями или накопительными картами, и при этом она должна применяться только к одной позиции, а не ко всему документу. В этой статье мы подробно разберем, как реализовать такой механизм в конфигурации 1С:Розница 2.2, не прибегая к созданию дублей в справочнике Номенклатура и не ломая синхронизацию с УПП или ERP.

Механизм управляемых скидок: выбор кассира внутри автоматики

Первым делом проанализируем инструмент, который штатно заложен в систему, но часто игнорируется — это Управляемые скидки. Многие путают их с ручными скидками, однако между ними есть принципиальная разница. Ручная скидка — это произвольный процент или сумма, которую вводит кассир. Управляемая скидка — это заранее созданная в справочнике «Скидки (наценки)» автоматическая скидка, которую кассир лишь активирует в нужный момент.

Рассмотрим по шагам, как настроить такую скидку для товара с витрины:

  1. Перейдем в раздел Маркетинг — Скидки (наценки).
  2. Создадим новый элемент. В поле «Тип скидки» выберем нужный нам вариант (например, «Процент»).
  3. В поле Способ предоставления укажем процент скидки, например, 15%.
  4. Критически важный момент: в поле «Область предоставления» необходимо выбрать значение В строке. Это позволит применять скидку индивидуально к каждой выбранной позиции в списке товаров.
  5. На вкладке «Условия предоставления» создадим новое условие с типом Вручную. Именно это условие превращает автоматическую скидку в «управляемую».

Теперь в РМК (рабочем месте кассира) при выборе строки с товаром и нажатии кнопки «Скидки» (или горячей клавиши), программа предложит список доступных управляемых скидок. Кассир выберет «Скидка за витринный экземпляр», и она рассчитается только для этой строки.

Исключение лишних акций через группы совместного применения

Проанализируем ситуацию, когда на товар с витрины уже действует какая-то общая акция или у клиента есть дисконтная карта. Бизнес-логика обычно требует, чтобы специальная скидка (витрина/уценка) была окончательной и не суммировалась с остальными. Для этого нам нужно настроить Группы совместного применения скидок.

Выясним, как правильно выстроить иерархию:

  1. Создадим группу с типом совместного применения Вытеснение.
  2. Поместим нашу управляемую скидку «Витринный экземпляр» внутрь этой группы.
  3. В этой же группе должны находиться все остальные скидки (розничные акции, накопительные и т.д.).
  4. Установим для скидки «Витринный экземпляр» самый высокий приоритет (самое верхнее положение в списке).

Разберем, что произойдет в момент продажи: если кассир назначает управляемую скидку на строку, система видит правило вытеснения. Поскольку у «Витринной» скидки приоритет выше, все остальные автоматические скидки для этой конкретной строки будут проигнорированы. Это идеальное решение для контроля маржинальности.

Связка с УПП и вопрос характеристик

Часто программисты сталкиваются с проблемой: в УПП (Управление производственным предприятием) учет ведется по «Качеству» (Новый, Б/У, Брак), а в Рознице такого реквизита в типовом обмене нет. Плодить номенклатуру — плохой путь, так как это засоряет аналитику в головной базе. Рассмотрим альтернативные варианты идентификации б/у товара без изменения справочника Номенклатура.

Вариант А: Использование серий.
Если в УПП серии не используются, мы можем включить их в Рознице локально. Присваивая серию конкретному экземпляру, мы можем помечать его как «Витринный». В правилах обмена с УПП можно настроить игнорирование серий, чтобы в центральную базу данные падали на общую карточку товара, но в Рознице мы имели четкое разделение.

Вариант Б: Дополнительные сведения.
Мы можем добавить объекту Номенклатура или Характеристика дополнительное сведение «Состояние товара». В Рознице можно программно доработать условия предоставления скидок, чтобы они анализировали это сведение.

Программная реализация сложных условий через внешние обработки

Если стандартных условий «Вручную» недостаточно, и мы хотим, например, чтобы скидка «Б/У» применялась только если товар числится на определенном виртуальном складе или имеет определенный комментарий, воспользуемся механизмом внешних обработок.

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


Функция ВыполнитьПроверкуУсловия(ПараметрыУсловия) Экспорт
    Результат = Ложь;
    // Получаем текущую строку чека
    СтрокаЧека = ПараметрыУсловия.ТекущаяСтрока;
    
    // Пример логики: скидка доступна только если в комментарии к строке 
    // кассир написал "Витрина"
    Если Найти(СтрокаЧека.ТекстовоеПояснение, "Витрина") > 0 Тогда
        Результат = Истина;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

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

Контроль и аналитика

Чтобы исключить злоупотребления со стороны персонала, в 1С:Розница рекомендуется настроить Причины предоставления ручных скидок. Даже если скидка является «управляемой автоматической», в системе можно настроить обязательное заполнение комментария или выбор причины из списка. Это позволит в конце месяца сформировать отчет и увидеть, сколько скидок было дано по причине «Витрина», а сколько по причине «Уценка (износ)».

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

← На главную