Как в 1С:Розница 2.* установить скидку 30% на определенный тип цен?

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

При работе в программе 1С:Розница 2.* пользователи часто сталкиваются с ситуацией, когда стандартные механизмы скидок кажутся недостаточно гибкими. Типичный пример: в базе ведется несколько типов цен (например, «Розничная» и «Цена для сотрудников»), и необходимо запустить праздничную акцию со скидкой 30%, но строго для основной розничной цены, не затрагивая специальные цены сотрудников. В этой статье мы подробно разберем, как реализовать такую задачу, проанализируем внутреннюю логику системы и рассмотрим несколько рабочих сценариев.

Понимание логики ценообразования в 1С:Розница

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

Рассмотрим по шагам основные способы решения этой задачи.

Способ №1: Использование механизма «Специальная цена»

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

  1. Создание расчетного вида цены: Перейдем в справочник Виды цен. Создадим новый элемент, назовем его, например, «Розничная (акция -30%)». В способе задания цены укажем «Рассчитывать по другим видам цен». В поле формулы пропишем зависимость от базовой цены: [Розничная] * 0.7.
  2. Настройка автоматической скидки: Теперь перейдем в раздел Маркетинг — Скидки (наценки). Создадим новую скидку. В поле «Тип скидки» выберем значение Использовать вид цены. В появившемся поле выбора укажем наш созданный ранее вид цены «Розничная (акция -30%)».
  3. Условия предоставления: Если скидка должна действовать только на определенную группу товаров, добавим соответствующее условие в табличную часть Условия предоставления.
  4. Создание маркетинговой акции: Оформим документ Маркетинговая акция, укажем период проведения (например, с 21 по 23 февраля), выберем магазины и добавим нашу скидку.

Результат: Когда кассир пробьет товар, система увидит действующую акцию и вместо математического вычисления процентов просто подставит цену из типа «Розничная (акция -30%)».

Способ №2: Разделение цен через группы совместного применения (Вытеснение)

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

Рассмотрим настройку группы скидок:

  1. Создадим в справочнике Скидки (наценки) новую группу с вариантом совместного применения Вытеснение.
  2. Поместим в эту группу две скидки:
    • Скидка №1: «Акция 23 февраля» (процентная, 30%).
    • Скидка №2: «Цена сотрудников».
  3. Установим приоритет. Скидке для сотрудников нужно назначить более высокий приоритет (например, 10), а праздничной акции — более низкий (например, 5).

При такой настройке программа сначала проверит условия для более приоритетной скидки. Если применяется цена сотрудника, то акция 30% будет «вытеснена» и не применится. Однако стоит помнить, что в 1С:Розница автоматические скидки работают лучше всего, когда и цена сотрудника заведена не как отдельный тип цены в документе, а как скидка по дисконтной карте.

Рекомендованная схема работы с ценами сотрудников

Для стабильной работы системы рекомендуется пересмотреть подход к выбору типов цен. Рассмотрим идеальную схему:

Программа работает по одной основной Розничной цене. Все отклонения (опт, сотрудники, праздники) оформляются через механизм скидок. Для сотрудников создается Информационная карта. В настройках скидок создается элемент с типом Использовать вид цены (где указан вид цены «Сотрудники»), а в условиях предоставления указывается За предъявление карты.

Теперь, объединив праздничную скидку и скидку по карте сотрудника в группу Максимум или Вытеснение, мы получим автоматизированную систему, где программа сама выберет наиболее выгодную (или приоритетную) цену без участия кассира.

Технические нюансы и использование сегментов

Выясним причину, почему иногда скидка не срабатывает. Часто это связано с тем, что товар не входит в область действия акции. Чтобы скидка 30% применялась только к определенным товарам по розничной цене, используйте Сегменты номенклатуры.

Например, создадим сегмент «Товары к празднику». В настройках скидки укажем этот сегмент. Это позволит ограничить действие акции, даже если в документе выбраны разные типы цен для разных строк.

Проанализируем пример логики в коде (для разработчиков, создающих внешние условия):


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

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

Подведение итогов

Мы рассмотрели несколько вариантов решения задачи. Подведем итог: наиболее надежным и простым способом в 1С:Розница 2.* является создание расчетного вида цены (базовая цена минус 30%) и использование его в скидке с типом Использовать вид цены. Это избавляет от сложных расчетов в момент продажи и минимизирует ошибки округления. Не забывайте использовать Маркетинговые акции для фиксации периода действия ваших скидок, чтобы автоматизация работала корректно и прозрачно для учета.

← На главную