В практике торговых предприятий часто возникает ситуация, когда на определенный товар необходимо установить специальную цену на короткий промежуток времени (акцию), после чего цена должна автоматически вернуться к исходному значению. В типовой конфигурации 1С:Управление торговлей 11.5 (а также в ERP и Комплексной автоматизации) механизм цен реализован на базе периодического регистра сведений ЦеныНоменклатуры. Особенность этого регистра заключается в том, что запись в нем не имеет «даты окончания» — цена действует с момента установки и до тех пор, пока не будет введена новая запись.
Проанализируем ситуацию, когда менеджеры сталкиваются с трудностями при ручном возврате цен, и разберем несколько эффективных способов решения этой задачи, от стандартных методических приемов до небольших доработок системы.
Самый простой и надежный способ, предусмотренный архитектурой 1С, — это создание двух документов Установка цен номенклатуры. Рассмотрим этот процесс по шагам:
Установка цен номенклатуры с датой начала акции (например, 10.06). В нем указываем акционную цену (700 руб.).Преимущество: Это типовой механизм, который сохраняет полную историю изменений и не требует программирования. Система всегда будет знать актуальную цену на любую дату в прошлом и будущем.
Минус: Менеджерам приходится выполнять двойную работу, что часто вызывает «бунт» среди персонала. Однако это единственный способ корректно отразить историю цен в типовом регистре.
Если цель — не изменить саму базовую цену в прайс-листе, а временно снизить ее для покупателей, правильнее использовать механизм Скидок (наценок). Скидки в 1С:УТ имеют встроенный механизм периода действия.
Разберем, как реализовать автоматическую отмену через маркетинговые мероприятия:
Как только текущая дата выйдет за рамки периода маркетингового мероприятия, скидка перестанет рассчитываться в документах Заказ клиента и Реализация товаров и услуг. Цена вернется к базовому значению автоматически, без создания новых документов установки цен.
Для компаний, использующих индивидуальные или типовые соглашения, существует еще один встроенный механизм с ограничением по времени. Рассмотрим его подробнее:
В справочнике Соглашения с клиентами на вкладке Уточнение цен по товарам можно добавить конкретные позиции номенклатуры. В табличной части для каждой позиции можно указать не только цену, но и Период действия (дата начала и дата окончания). Это едва ли не единственное место в типовой конфигурации, где цена имеет явную дату завершения в рамках одного объекта.
Проанализируем этот метод: он удобен для точечных акций для определенных групп клиентов, но может быть трудозатратным, если соглашений в базе сотни. В этом случае поможет использование Типовых соглашений для сегментов партнеров.
Рассмотрим оригинальный подход, который позволяет автоматизировать выбор цены без лишних документов. Для этого настроим два вида цен:
Цена розничная (базовая) — устанавливается на постоянной основе.Цена акционная (полочная) — устанавливается только на период акций.Затем создадим результирующий вид цены, например, Цена продажи, и настроим его расчет по формуле. Проанализируем пример логики:
Если мы хотим, чтобы система сама выбирала минимальную из двух цен, можно использовать функцию Мин() в конструкторе формул (доступно при использовании расширенных возможностей ценообразования):
Мин(ЦенаРозничная, ЦенаАкционная)
Чтобы «выключить» акционную цену, достаточно документом Установка цен номенклатуры установить для нее заведомо огромное значение (например, миллион) на дату окончания акции. Система сравнит базовую цену (1000) и акционную (1 000 000) и выберет минимальную — 1000.
Если менеджеры категорически отказываются вводить два документа, можно реализовать механизм отложенного проведения через расширение конфигурации. Рассмотрим алгоритм реализации:
УстановкаЦенНоменклатуры новый статус — Запланировано.ЦеныНоменклатуры.Это позволит менеджеру заранее создать «пачку» документов на весь месяц (на понижение и на повышение), а система сама будет активировать их в нужный момент. Посмотрим на пример кода для регламентного задания:
Процедура АктивацияЗапланированныхЦен() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаЦенНоменклатуры.Ссылка КАК Ссылка
|ИЗ
| Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры
|ГДЕ
| УстановкаЦенНоменклатуры.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыУстановокЦен.Запланировано)
| И УстановкаЦенНоменклатуры.ДатаНачалаДействия <= &ТекущаяДата";
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
ОбъектДок.Статус = Перечисления.СтатусыУстановокЦен.Действует;
ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
КонецПроцедуры
При использовании любого из методов важно помнить, что 1С:УТ при подборе товаров в Заказ клиента берет цену на дату документа. Если менеджер создал заказ 15-го числа (во время акции), а потом перенес дату отгрузки на 25-е (когда акция закончилась), цена в табличной части автоматически не изменится. Это сделано для того, чтобы зафиксированные условия сделки не «поплыли» без ведома менеджера. Для актуализации цен необходимо нажать кнопку Цены и скидки — Пересчитать цены по виду цен.
Подводя итог, можно сказать, что наиболее стабильным и прозрачным решением является комбинация Способа 1 (плановое изменение цен двумя документами) и Способа 2 (использование скидок для краткосрочных промо-акций). Это позволяет избежать хаоса в истории цен и удовлетворить требования руководства к отчетности.