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

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

В процессе работы в рабочем месте кассира (РМК) конфигурации «1С:Розница» пользователи нередко сталкиваются с ситуацией, когда система позволяет добавить марку от одного вида алкоголя (например, вина) в позицию чека, соответствующую совершенно другому товару (например, водке). Это происходит в момент, когда программа запрашивает сканирование акцизной марки после считывания штрихкода EAN-13. Если кассир по ошибке или умышленно отсканирует марку с другой бутылки, система в старых релизах может принять её без проверки на соответствие номенклатуре. Рассмотрим подробно, почему это происходит и как настроить систему для исключения подобных ошибок.

Анализ причин возникновения проблемы в старых релизах

Для начала разберем механизм работы «1С:Розница» версии 2.2.7 и ниже. В этот период интеграция с ЕГАИС в основном опиралась на партионный учет. Процесс продажи выглядел следующим образом: кассир сканирует линейный штрихкод (EAN-13), программа находит товар в справочнике Номенклатура и, понимая, что товар подакцизный, открывает модальное окно для ввода марки. В этом окне ожидается получение данных в формате PDF417 или DataMatrix.

Проблема заключалась в том, что в окне «Множественного ввода марок» алгоритм проверки зачастую ограничивался лишь проверкой формата самой марки (ее длины и структуры), но не сверял алкокод, зашитый в марке, с алкокодом, привязанным к карточке номенклатуры. В результате система «проглатывала» любую валидную марку, увеличивая количество в уже выбранной строке чека. Проанализируем ситуацию: если мы продаем водку, а сканируем марку вина, программа просто фиксирует факт продажи «какой-то» единицы алкоголя, что ведет к серьезным нарушениям в отчетности ЕГАИС и потенциальным штрафам.

Решение 1: Обновление конфигурации и переход на поштучный учет

Выясним причину, по которой обновление является приоритетным способом решения. Начиная с релизов 2.2.8 и 2.2.9, фирма «1С» кардинально переработала механизмы взаимодействия с ЕГАИС, внедрив полноценную поддержку ЕГАИС 3.0 (поштучный учет). Рассмотрим основные изменения:

  1. Автоматическое сопоставление: В новых версиях реализован механизм, при котором сканирование марки сразу идентифицирует товар. Если марка уже была считана при приемке и привязана к конкретной номенклатуре через ШтрихкодыУпаковок, система просто не позволит подставить её под другой товар.
  2. Расшифровка алкокода на лету: Современные релизы при сканировании марки в окне подбора выполняют поиск сопоставленного кода алкогольной продукции. Если алкокод марки не соответствует алкокоду выбранной номенклатуры, система выдаст предупреждение: «Марка не принадлежит выбранному товару».

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

Решение 2: Настройка сканирования «Только марка»

Рассмотрим способ, который значительно упрощает работу кассира и минимизирует риск ошибки. Вместо последовательности «Штрихкод EAN -> Акцизная марка», мы можем настроить систему на работу по принципу «Только акцизная марка». Разберем, как это реализовать:

В настройках РМК и подключаемого оборудования следует убедиться, что сканер корректно передает префиксы. При сканировании марки программа должна обращаться к регистру сведений ШтрихкодыУпаковокТоваров. Если марка уникальна и ранее была зарегистрирована в системе (при получении ТТН), товар добавится в чек автоматически с правильным наименованием. В этом случае ситуация «вино вместо водки» исключена физически, так как кассир вообще не выбирает товар предварительно.

Решение 3: Блокировка окна множественного ввода марок

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

Посмотрим на примерную логику проверки, которую можно внедрить в процедуру ОбработкаОповещения или специализированный модуль работы с ЕГАИС (в зависимости от релиза):


// Пример логики проверки соответствия марки и номенклатуры
АлкокодМарки = ПолучитьАлкокодИзМарки(ДанныеМарки);
АлкокодТовара = ПолучитьАлкокодНоменклатуры(ТекущаяСтрокаЧек.Номенклатура);

Если АлкокодМарки <> АлкокодТовара Тогда
    ТекстОшибки = "Ошибка! Марка принадлежит другой продукции!";
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
    Отказ = Истина;
КонецЕсли;

Данный код позволяет на лету сравнить данные, зашитые в PDF417, с реквизитами карточки товара. Важно помнить, что для новых марок (DataMatrix без явного алкокода) такая проверка возможна только через запрос к локальному кэшу или сервисам ЕГАИС.

Решение 4: Использование режима эмуляции COM-порта

Часто ошибки сканирования связаны с тем, что сканер работает в режиме «разрыва клавиатуры» (Keyboard Wedge). В этом режиме данные влетают в активное поле ввода так, будто они набраны на клавиатуре. Если в момент сканирования фокус ввода сместился или окно множественного ввода открылось с задержкой, часть данных марки может попасть не по назначению.

Рассмотрим переход на режим Native POS (эмуляция COM-порта):

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

Риски и административные последствия

Проанализируем ситуацию с точки зрения законодательства. Продажа вина по марке водки — это не просто техническая ошибка, а нарушение порядка учета алкогольной продукции. Росалкогольтабакконтроль (РАР) через систему УТМ моментально получает данные о чеке. Если в чеке указан один тип продукции (по EAN-13), а марка соответствует другому — это прямой повод для проверки.

Кроме того, существует контроль МРЦ (минимальной розничной цены). Если водка продается по цене вина, которая ниже установленного законом минимума для крепкого алкоголя, УТМ просто заблокирует такой чек и не выдаст слип-чек с QR-кодом. Это приведет к невозможности легальной продажи на кассе.

Рекомендации по организации работы

Подводя итог, для исключения продажи «пересорта» алкоголя, мы рекомендуем выполнить следующие шаги:

  1. Обновите «1С:Розница» минимум до версии 2.3: Это снимет большинство вопросов по автоматизации проверок марок.
  2. Настройте сканирование только марок: Обучите кассиров не сканировать штрихкод EAN-13 вообще, если марка позволяет однозначно идентифицировать товар.
  3. Проведите сопоставление: Убедитесь, что для всей номенклатуры в базе заполнены справочники сопоставления с классификатором ЕГАИС.
  4. Контролируйте статусы: Используйте функционал проверки статусов марок в УТМ перед пробитием чека.

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

← На главную