Симптомы
Как проверяется код на валидность?
Решение
Как это выглядит по шагам
- Камера прочитала коды (или не прочитала).
- Если чтение «нормальное» — линия спрашивает учётную систему, можно ли этот продукт.
- Учётная система разбирает состав каждого кода, сверяет его с шаблоном и правилами, затем проверяет марки по бизнес-правилам.
- Учёт отвечает: да (с комментарием) или нет (с текстом причин).
- Линия по ответу ведёт продукт дальше как годный или как брак.
Если ответ от учёта не пришёл вовремя (ожидание около 5 секунд) или некому ответить — это отдельный сбой связи/клиентов, не «брак по марке».
Слой 1. Пока продукт ещё у камеры
Пока учёт даже не вызывали, отсекается плохое чтение:
| Ситуация | Смысл для линии |
|---|---|
| Камера ничего не вернула / пустой результат | Нет кода — продукт нельзя считать прочитанным |
| «Не прочитано» (noread) | Код не распознан |
| Неверный формат при noread | Прочиталось что-то, но формат не тот |
| Качество/оценка кода ниже порога | Код есть, но «оценка» (grade/score) слишком слабая — как негодное чтение |
Только после нормального чтения продукт переходит к проверке в учёте. Если к этому моменту продукт уже не в состоянии «прочитан» — запрос в учёт не уходит.
Ошибка отправки запроса в учёт — тоже сбой линии (на «часовой» сериализации конвейер могут остановить).
Слой 2. Контроль состава прочитанного кода
Это отдельный, очень важный этап: система не просто «увидела строку», а пытается понять, из каких частей состоит код и полный ли он.
Зачем это нужно
Код маркировки — не «просто штрихкод». В нём обычно есть:
- товарный идентификатор (GTIN) — «какой это товар»;
- серийный номер — «какой именно экземпляр»;
- иногда вес, даты, МРЦ и другие поля;
- для многих типов упаковки — криптохвост (код проверки) — «хвост» после основных полей, без которого код считается неполным.
Пока состав не разобран, нельзя надёжно сказать: это своя марка, полный ли код, тот ли тип упаковки.
Как система «разбирает» код
- Сначала смотрит, не хелпер-код ли это (служебный код, не полноценная марка).
- Если нет — пытается разобрать код по шаблонам для нужных видов продукции:
- есть ли в нужных местах идентификаторы применения (например, признаки полей GTIN и серии);
- совпадают ли длины кусков с описанием шаблона;
- допустимы ли символы (алфавит) в каждом куске;
- для части товарных групп — отдельные правила (табак/МРЦ, мех и т.п.).
- Если полный разбор по шаблонам уже делали для похожего кода, может сработать упрощённый повтор: та же длина, то же начало, та же длина серии — состав копируется быстрее.
- Из разбора собирается состав: GTIN, серия, признак криптохвоста, нормализованный вид кода, при наличии — вес и др.
Если код не лёг ни на один шаблон, в сведениях о марке выставляется признак: «не соответствует шаблону».
Если в разобранном составе есть криптохвост — признак: «включает криптохвост».
Что именно контролируется в составе
| Что смотрят | Смысл простым языком |
|---|---|
| Код узнаётся шаблоном | Строка похожа на настоящую марку нужного формата, а не на «мусор»/обрезок |
| На местах стоят нужные поля | Например, есть зона GTIN и зона серии, а не сдвиг «на символ» |
| Длины частей верные | Серия не короче/длиннее, чем допускает шаблон; общий код не «обрезан» камерой |
| Алфавит частей допустим | В полях нет запрещённых символов |
| Есть/нет криптохвоста | Для потребительской, групповой упаковки и набора криптохвост обычно нужен; без него код неполный |
| Особые товарные правила | Например, для табака — корректность МРЦ в составе; отдельные форматы для меха, SSCC (00)… и т.д. |
Когда на сериализации это превращается в брак
На основной форме сериализации (линия с камерой) после получения сведений о марке действует жёсткое правило:
если код не соответствует шаблону
или
код не включает криптохвост
→ продукт отклоняют с текстом вроде: «Не соответствует шаблону» (в причине показывают представление марки).
То есть для линии это выглядит одинаково: «код кривой / неполный», даже если технически причины две:
- Шаблон — формат/набор полей не сошёлся.
- Криптохвост — формат мог частично читаться, но нет кода проверки (часто камера «отрезала хвост», плохая печать, неполный Data Matrix).
Важно:
- На сериализации со взвешиванием в том же виде эта пара «шаблон + криптохвост» не дублируется — там упор на вес и одну марку, плюс остальные бизнес-проверки.
- На агрегации по заданию отдельно могут сказать проще: «Код маркировки не соответствует шаблону», если уже выставлен признак несоответствия.
- При печати этикеток неполный код (без кода проверки) могут запретить печатать — это соседний контур, но тот же смысл «без хвоста нельзя».
- В приёмке логика мягче по смыслу «нужен ли хвост»: для потребительской / групповой / набора криптохвост требуется; для прочих видов — можно без него. На сериализации линии правило жёстче: смотрят готовые признаки «шаблон / криптохвост» в сведениях о марке.
Что оператор видит на практике
| Симптом на линии | Частая суть по составу кода |
|---|---|
| «Не соответствует шаблону» | Обрезанный код, чужой формат, сдвиг полей, нет криптохвоста (на сериализации оба случая часто в одной фразе) |
| Код «короткий» глазами / в логе | Не дочитали Data Matrix до конца — нет хвоста или части серии |
| Печать есть, камера «почти» читает | Grade/score ещё на камере, а если дочитали криво — уже шаблон/хвост в учёте |
| SSCC / логистика | Другой состав (часто без «обычного» GTIN+серия как у штуки) — шаблоны другие |
Где это стоит в общей очереди проверок
На линии порядок такой:
- Камера: есть ли вообще читаемый код.
- Состав кода: шаблон + полнота (в т.ч. криптохвост).
- Дальше — «чья марка», задание, повтор, срок, товар/характеристика/упаковка, число кодов в такте.
Если состав не прошёл — до «своей/чужой в базе» и задания часто даже не доходят с успехом: продукт уже в браке по формату.
Слой 3. Учёт: бизнес-проверки по маркам
Считанные с камеры вещи делятся так:
- Даты (если камера отдала даты) — не считаются марками, идут отдельно.
- Коды маркировки — основной объект проверки.
- При включённых хелпер-кодах — отдельно служебные коды (ожидается ровно один).
Повтор и «уже было»
| Когда | Что не так | Смысл |
|---|---|---|
| Режим только валидации | Эта марка уже валидировалась | Повтор: «марка уже валидировалась в …» |
| Обычная сериализация | Марка уже принята из производства | Повторный проход той же марки |
Хелпер-коды (если включены)
| Проверка | Смысл |
|---|---|
| Хелпер уже привязан | Повторная/лишняя привязка |
| Прочитали не ровно один хелпер | Должен быть один служебный код на такт |
Сама марка (после контроля состава)
| Проверка | Смысл |
|---|---|
| Марка неизвестна (и неизвестные не разрешены) | Такого кода в базе нет |
| Не соответствует шаблону / нет криптохвоста | См. слой 2 — неполный или «не тот» формат |
| Потоковая печать и марки нет в задании | Код не из текущего задания |
| Номенклатура не определена | Непонятно, какой товар |
| Срок жизни марки прошёл | Просроченный код |
| Разная номенклатура / характеристика / упаковка в такте или не как в задании | Смешали разные товары или уровни упаковки |
| Слишком много / мало кодов за такт | Не попали в норму «за один раз» |
Если все проверки прошли — продукт принимают. В ответе — представление марок; при агрегации на участке — ещё счётчик вроде «N из M» и код агрегата, если он уже есть.
После «принято»
- В режиме сериализации: марку регистрируют как принятую из производства, при необходимости с серией.
- Счётчик на экране растёт (сериализация или успешная валидация).
- Хелперы: один хелпер + одна марка → привязка.
- Если есть агрегация и отказов не было: коды в состав агрегата, при необходимости код агрегата, регистрация, проверка автозавершения.
Слой 4. Ответ линии: «годен» или «брак»
| Решение учёта | Что чувствует линия |
|---|---|
| Принят | Продукт валидный; в сообщении — марки/комментарий |
| Отклонён | Продукт невалидный; в сообщении — текст причин (может быть несколько) |
Если линия со взвешиванием
До обычных проверок марки:
| Проверка | Смысл |
|---|---|
| Число марок ≠ число весовых ШК | Неполная пара «марка + вес» |
| Ожидали 1 продукт, прочитали иначе | В кадре/на весах не один продукт |
| Продукт не взвешивался | Сначала вес, потом марка |
Дальше по одной марке: неизвестна, нет в задании, нет номенклатуры, уже из производства, просрочена, не сходится слой.
Отдельной жёсткой пары «шаблон + криптохвост», как на основной сериализации, здесь нет.
Причина
Опишите причину появления проблемы - необязательное поле
































































