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

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

При работе с маркированной табачной продукцией пользователи часто сталкиваются с ситуацией, когда при сканировании марки система автоматически подставляет карточку номенклатуры с неактуальной ценой (старой МРЦ). Давайте разберем, почему это происходит и как настроить систему для корректной работы.

Причины возникновения проблемы

Основная причина заключается в механизме поиска товара в 1С. Когда вы сканируете DataMatrix (марку), система ищет соответствие в своих внутренних регистрах (например, АкцизныеМарки или ШтрихкодыУпаковокТоваров). Если ранее марка или штрихкод EAN-13 были привязаны к определенной карточке номенклатуры, 1С при сканировании будет отдавать приоритет именно этой записи.

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

Способ 1: Использование характеристик (Рекомендуемый метод)

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

  1. Создайте одну карточку товара (например, «Сигареты Марка А»).
  2. Для каждого уровня МРЦ создайте отдельную характеристику (например, «МРЦ 117 руб.», «МРЦ 123 руб.»).
  3. В момент приемки или настройки цен устанавливайте розничную цену именно на уровне характеристик.

При такой настройке при сканировании марки система будет идентифицировать не просто товар, а конкретную связку Номенклатура + Характеристика, что исключает путаницу в ценах.

Способ 2: Корректное управление штрихкодами

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

Способ 3: Настройка процесса приемки

Разберем, почему важно выполнять корректную приемку. Если вы используете прямой акцепт (ЭДО), информация о марках поступает в систему вместе с документами от поставщика. 1С автоматически понимает, к какой партии и по какой цене пришел товар.

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


// Пример проверки привязки марки в регистре
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	АкцизныеМарки.Номенклатура,
    |	АкцизныеМарки.Марка
    |ИЗ
    |	РегистрСведений.АкцизныеМарки КАК АкцизныеМарки
    |ГДЕ
    |	АкцизныеМарки.Марка = &Марка";
Запрос.УстановитьПараметр("Марка", ТекущаяМарка);
Результат = Запрос.Выполнить();

Если вы видите, что результат запроса возвращает не ту номенклатуру, которую ожидаете — это прямое подтверждение того, что в базе накоплены некорректные записи, требующие ручной очистки.

Заключение: чек-лист для предотвращения ошибок

Чтобы работа с МРЦ была стабильной, проанализируем следующие шаги:

Соблюдение этих рекомендаций позволит вам избежать «закрашивания» позиций красным цветом в РМК и обеспечит корректную передачу данных в Честный знак через ОФД.

← На главную