Как в 1С:Розница 2.3 реализовать выбор между розничной и оптовой ценами в чеке ККМ?

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

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

В данной статье мы подробно разберем, как обойти ограничение типового функционала и настроить систему для работы с несколькими прайс-листами в одном чеке.

Способ 1. Использование механизма «Скидка по виду цен» (Штатный функционал)

Самый правильный путь с точки зрения сохранения возможности обновления программы — это использование маркетинговых акций. Мало кто знает, что скидка в 1С может не только уменьшать цену на процент, но и полностью замещать текущую цену ценой из другого справочника. Разберем по шагам, как это настроить.

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

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

Способ 2. Автоматизация через дисконтные карты (Сегментация)

Чтобы исключить человеческий фактор и риск того, что кассир по ошибке продаст товар по оптовой цене не тому клиенту, лучше привязать выбор цены к дисконтной карте. Рассмотрим этот сценарий подробнее:

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

Способ 3. Оформление продажи через «Заказ покупателя»

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

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

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

Способ 4. Реализация через расширение конфигурации (Для программистов)

Если бизнес-процесс требует именно наличия кнопки в РМК «Выбрать вид цены», нам потребуется создать расширение. В расширении необходимо перехватить форму РМК и добавить на нее команду, которая будет пересчитывать цены в табличной части Товары.

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


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

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

Настройка прав доступа

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

Необходимо зайти в раздел Администрирование — Пользователи и права — Дополнительные права пользователей. Там, в разделе «Маркетинговые акции», проверьте флажки «Применение ручных скидок» и «Редактирование цен в документе». Без этих разрешений кассир не сможет активировать выбор оптовой цены вручную.

Риски и рекомендации

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

Рекомендации по контролю:

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

Рассмотренные методы позволяют гибко настроить 1С:Розница 2.3 под нужды бизнеса, обеспечивая удобство работы кассира и сохраняя прозрачность учета.

← На главную