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

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

В процессе работы розничного магазина часто возникает необходимость предоставить кассиру определенную гибкость — например, разрешить продажу товара по «свободной цене» (когда стоимость вводится вручную непосредственно в РМК). Однако такая свобода несет в себе риски: человеческий фактор может привести к продаже товара ниже себестоимости или закупочной цены. В программе 1С:Розница 2.2 (и более поздних версиях) предусмотрены механизмы контроля, но их настройка имеет ряд нюансов. Разберем подробно, как реализовать запрет на продажу ниже установленного минимума.

Настройка вида минимальных цен для магазина

Первым делом нам необходимо определить, какая именно цена будет считаться минимально допустимой. Обычно это закупочная цена или цена с минимальной наценкой. Для того чтобы система понимала, на что ориентироваться, выполним следующие шаги:

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

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

Регистрация цен документами

Механизм минимальных цен опирается на данные в регистре сведений. Рассмотрим, как правильно зафиксировать эти данные:

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

Выясним причину, если цены установлены, но не работают: проверьте актуальность даты документа. Цена должна быть установлена на дату продажи или ранее.

Настройка дополнительных прав пользователей

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

  1. Перейдем в раздел Администрирование — Пользователи и права — Дополнительные права пользователей.
  2. Выберем пользователя или группу (например, «Кассиры»).
  3. В подразделе Продажи найдем флаг Разрешить продажу ниже минимальной цены.
  4. Внимание: для того чтобы ограничение работало, этот флаг должен быть снят.

Если галочка установлена, система считает, что вы доверяете сотруднику самостоятельно принимать решение о скидках, и не блокирует пробитие чека.

Свободная цена против ручных скидок

Посмотрим на разницу в логике работы РМК при разных способах изменения цены. Это критически важный момент для понимания работы конфигурации 1С:Розница.

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

Технический анализ контроля (для программистов)

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

Рассмотрим процедуру в модуле менеджера или в специализированных общих модулях РМК (в зависимости от релиза):


Процедура ПроверитьМинимальныеЦеныПослеРасчетаСкидок(ОбъектДокумента)
    // Алгоритм обходит строки табличной части "Товары"
    // Сравнивает ТекущуюЦенуСУчетомСкидок с данными из регистра
    // Если Цена < МинимальнаяЦена, то корректирует сумму или выводит ошибку
КонецПроцедуры

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

Использование расширений для гарантированного контроля

В ситуациях, когда типовой механизм не удовлетворяет потребностям бизнеса (например, нужно проверять цену именно в момент нажатия кнопки «Оплатить», независимо от того, как была введена цена), оптимальным решением будет использование расширений конфигурации (cfe).

Преимущества расширения:

  1. Не нужно изменять типовую конфигурацию (сохраняется легкость обновлений).
  2. Можно добавить проверку в процедуру ПередЗаписью или ПередПробитиемЧека.
  3. Возможность реализовать индивидуальную логику (например, разрешить продажу ниже закупки только для бракованного товара).

Резюме и план действий

Для успешной реализации задачи «не продавать дешевле закупки» придерживайтесь следующего плана:

  1. Убедитесь, что вид цен для минимальной продажи назначен в карточке Магазина.
  2. Проверьте, что цены по этому виду цен установлены документом Установка цен номенклатуры.
  3. В Дополнительных правах пользователя обязательно снимите галочку Разрешить продажу ниже минимальной цены.
  4. Проинструктируйте кассиров использовать механизм скидок вместо прямой правки цены, если это возможно.
  5. Если стандартный контроль обходится ручным вводом цены, рассмотрите установку небольшого расширения, блокирующего проведение чека с некорректными суммами.

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

← На главную