При работе в розничной торговле часто возникают ситуации, когда стандартных автоматических акций на весь чек недостаточно. Представим ситуацию: в одном чеке покупатель приобретает новый товар со склада и товар с витрины (или б/у экземпляр). На витринный образец должна действовать специфическая скидка, которая не должна суммироваться с общими акциями или накопительными картами, и при этом она должна применяться только к одной позиции, а не ко всему документу. В этой статье мы подробно разберем, как реализовать такой механизм в конфигурации 1С:Розница 2.2, не прибегая к созданию дублей в справочнике Номенклатура и не ломая синхронизацию с УПП или ERP.
Первым делом проанализируем инструмент, который штатно заложен в систему, но часто игнорируется — это Управляемые скидки. Многие путают их с ручными скидками, однако между ними есть принципиальная разница. Ручная скидка — это произвольный процент или сумма, которую вводит кассир. Управляемая скидка — это заранее созданная в справочнике «Скидки (наценки)» автоматическая скидка, которую кассир лишь активирует в нужный момент.
Рассмотрим по шагам, как настроить такую скидку для товара с витрины:
В строке. Это позволит применять скидку индивидуально к каждой выбранной позиции в списке товаров.Теперь в РМК (рабочем месте кассира) при выборе строки с товаром и нажатии кнопки «Скидки» (или горячей клавиши), программа предложит список доступных управляемых скидок. Кассир выберет «Скидка за витринный экземпляр», и она рассчитается только для этой строки.
Проанализируем ситуацию, когда на товар с витрины уже действует какая-то общая акция или у клиента есть дисконтная карта. Бизнес-логика обычно требует, чтобы специальная скидка (витрина/уценка) была окончательной и не суммировалась с остальными. Для этого нам нужно настроить Группы совместного применения скидок.
Выясним, как правильно выстроить иерархию:
Разберем, что произойдет в момент продажи: если кассир назначает управляемую скидку на строку, система видит правило вытеснения. Поскольку у «Витринной» скидки приоритет выше, все остальные автоматические скидки для этой конкретной строки будут проигнорированы. Это идеальное решение для контроля маржинальности.
Часто программисты сталкиваются с проблемой: в УПП (Управление производственным предприятием) учет ведется по «Качеству» (Новый, Б/У, Брак), а в Рознице такого реквизита в типовом обмене нет. Плодить номенклатуру — плохой путь, так как это засоряет аналитику в головной базе. Рассмотрим альтернативные варианты идентификации б/у товара без изменения справочника Номенклатура.
Вариант А: Использование серий.
Если в УПП серии не используются, мы можем включить их в Рознице локально. Присваивая серию конкретному экземпляру, мы можем помечать его как «Витринный». В правилах обмена с УПП можно настроить игнорирование серий, чтобы в центральную базу данные падали на общую карточку товара, но в Рознице мы имели четкое разделение.
Вариант Б: Дополнительные сведения.
Мы можем добавить объекту Номенклатура или Характеристика дополнительное сведение «Состояние товара». В Рознице можно программно доработать условия предоставления скидок, чтобы они анализировали это сведение.
Если стандартных условий «Вручную» недостаточно, и мы хотим, например, чтобы скидка «Б/У» применялась только если товар числится на определенном виртуальном складе или имеет определенный комментарий, воспользуемся механизмом внешних обработок.
В справочнике «Условия предоставления скидок» выберем тип Внешняя обработка. Рассмотрим пример структуры такой обработки. Нам необходимо реализовать функцию, которая будет проверять строку чека:
Функция ВыполнитьПроверкуУсловия(ПараметрыУсловия) Экспорт
Результат = Ложь;
// Получаем текущую строку чека
СтрокаЧека = ПараметрыУсловия.ТекущаяСтрока;
// Пример логики: скидка доступна только если в комментарии к строке
// кассир написал "Витрина"
Если Найти(СтрокаЧека.ТекстовоеПояснение, "Витрина") > 0 Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
Использование ТекстовоеПояснение или дополнительных реквизитов строк чека позволяет гибко управлять процессом без изменения структуры метаданных, что крайне важно для стабильного обмена с другими конфигурациями 1С.
Чтобы исключить злоупотребления со стороны персонала, в 1С:Розница рекомендуется настроить Причины предоставления ручных скидок. Даже если скидка является «управляемой автоматической», в системе можно настроить обязательное заполнение комментария или выбор причины из списка. Это позволит в конце месяца сформировать отчет и увидеть, сколько скидок было дано по причине «Витрина», а сколько по причине «Уценка (износ)».
Подводя итог, отметим, что для решения задачи автора не нужно разбивать продажу на разные чеки. Достаточно использовать комбинацию из Управляемой скидки с областью действия В строке и правильно настроенной Группы вытеснения. Это сохранит клиентоориентированность, обеспечит прозрачность учета и не создаст проблем при обмене данными с УПП.