Покупатель кладёт на прилавок пачку молока, кассир сканирует DataMatrix — и через пару секунд чек пробит. За эти секунды код маркировки совершает целое путешествие. Понимание этого маршрута объясняет, почему касса иногда «тормозит» или отказывает, и где именно ломается цепочка.
Секунда 1: сканирование и разбор кода
Сканер (или камера) считывает DataMatrix. Кассовая программа разбирает строку на части: GTIN (что за товар), серийный номер (какая единица), криптохвост (подпись подлинности). Если код порван или замылен и не разбирается — всё заканчивается на этом шаге: «код не читается».
Секунда 2: запрос в «Честный знак»
Касса отправляет код в ГИС МТ на проверку. Проверяются три вещи:
- Подлинность — криптохвост соответствует GTIN и серийнику. Подделку система узнает сразу.
- Статус — код должен быть «в обороте». Выбывший, списанный или невведённый код продать нельзя.
- Легальность оборота — цепочка документов ведёт к продавцу, который пробивает чек.
Это и есть разрешительный режим: без «да» от системы чек не формируется. Подробнее о нём — в отдельной статье.
Секунда 3: чек и выбытие
Разрешение получено — касса пробивает чек. В фискальных данных сохраняется код маркировки, и оператор фискальных данных передаёт его в «Честный знак»: код выбывает из оборота по причине «розничная продажа». С этой секунды единица официально у покупателя, а не у вас.
Почему касса иногда «думает»
- Связь. Запрос идёт по интернету до серверов ЧЗ и обратно. Плохой канал на точке = очередь у кассы. Держите резервный интернет (хотя бы раздачу с телефона).
- Пиковые нагрузки. В часы пик система отвечает медленнее. Обычно терпимо, но заметно.
- Очередь на кассе из промокодов. Шутка, но кассир, который пять раз подряд сканирует один и тот же нечитаемый код, создаёт пять запросов и пять отказов в логах.
Что важно понимать владельцу
1. Касса — последний рубеж, а не первый. Если мёртвый код дошёл до кассы, значит, приёмка его пропустила. Дешевле поймать его у машины поставщика, чем у покупателя на руках.
2. «Пробить без кода» — не обход системы, а нарушение. Свободная цена вместо скана DataMatrix оставляет код висеть на вас и создаёт почву для штрафа.
3. Возврат ≠ просто положить обратно. Выбывший через чек код мёртв. Возврат оформляется отдельной операцией — иначе на полке окажется единица, которую касса не пустит.
Коротко
На кассе код проходит три шага: разбор → запрос в ЧЗ → чек с выбытием. Отказ почти всегда означает: код не читается, код мёртв или код не ваш. Всё это решается раньше — на приёмке и складе, а касса остаётся просто светофором.