Одной из частых задач при автоматизации розничной торговли табачными изделиями является корректная работа с МРЦ — максимальной розничной ценой. Поскольку в систему могут поступать партии одного и того же товара с разными МРЦ, возникает вопрос: как настроить программу так, чтобы цена подставлялась автоматически при сканировании марки и не вызывала ошибок?
Рассмотрим несколько подходов к решению этой задачи, которые помогут вам оптимизировать работу кассиров и правильно настроить учет.
Если вы хотите видеть четкие остатки в разрезе каждой цены в складских отчетах, оптимальным решением будет использование характеристик. При таком подходе для одной позиции номенклатуры создается несколько характеристик, соответствующих разным значениям МРЦ.
Преимущества данного метода:
Этот метод считается более «чистым» с точки зрения методологии учета 1С, так как он опирается на штатный функционал конфигурации.
Стандартный механизм 1С содержит проверки, которые блокируют изменение цены при сканировании марки, если новая цена сильно отличается от уже установленной в базе (обычно в пределах 25%). Чтобы обойти это ограничение, можно использовать расширение конфигурации.
Суть решения заключается в модификации функции ЗаполнитьЦенуМРЦВСтрокеТЧСервер. Мы можем принудительно отключить проверку вхождения цены в диапазон. Рассмотрим пример кода, который делает это возможным:
&ИзменениеИКонтроль("ЗаполнитьЦенуМРЦВСтрокеТЧСервер")
Процедура МРЦТ_ЗаполнитьЦенуМРЦВСтрокеТЧСервер(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения)
Перем СтруктураПараметровДействия;
Если СтруктураДействий.Свойство("ЗаполнитьЦенуМРЦ", СтруктураПараметровДействия) Тогда
Если ТекущаяСтрока.Свойство("ВидПродукцииИС") Тогда
Если ТекущаяСтрока.ВидПродукцииИС = Перечисления.ВидыПродукцииИС.Табак Тогда
Если ШтрихкодированиеИСРТ.ЭтоМарка(ТекущаяСтрока.Штрихкод) Тогда
ДанныеТабачнойПродукции = ШтрихкодированиеИС.НоваяСтруктураОбработкиШтрихкода(ТекущаяСтрока.Штрихкод);
СоставКодаМаркировки = ДанныеТабачнойПродукции.СоставКодаМаркировки;
Если СоставКодаМаркировки.Свойство("МРЦСтрокой") Тогда
МРЦ = СоставКодаМаркировки.МРЦ;
// Здесь мы удаляем или комментируем проверку вхождения цены
#Удаление
Если ТекущаяСтрока.Цена > МРЦ ИЛИ ТекущаяСтрока.Цена < МинимумОтМРЦ Тогда
// Логика блокировки
КонецЕсли;
#КонецУдаления
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важные замечания при использовании расширения:
Интеграция c ИС МП включено автоматическое считывание данных из маркировки.При выборе стратегии учета проанализируйте ваши бизнес-процессы:
Если в вашем магазине ассортимент табака меняется часто и вы хотите минимальных трудозатрат — использование характеристик с автоматическим созданием является лучшим выбором. Если же вы хотите, чтобы кассир просто сканировал пачку, а программа «подхватывала» цену без лишних вопросов — используйте расширение для снятия блокировок цен.
Помните, что создание отдельных позиций номенклатуры для каждой МРЦ — это худший вариант, который неизбежно приведет к хаосу в справочниках и невозможности корректного ведения инвентаризации.
Всегда поддерживайте конфигурацию в актуальном состоянии, так как требования законодательства к обороту маркированной продукции постоянно меняются. Корректная настройка Видов продукции ИС — это фундамент, на котором строится вся дальнейшая работа с табаком в 1С.