6. Сканирование
Оборудование
Поддерживаются два типа сканеров:
- USB (HID, «клавиатурный») — включён всегда, эмулирует набор текста с Enter в конце. Настраивать не нужно.
- COM-порт (RS-232) — включается в настройках (раздел 3): порт, скорость, при необходимости раскладка.
Скан работает в редакторе документа и в окне «Проверка агрегата». Приложение отличает скан от ручного набора по скорости ввода и шаблону кода, поэтому клавиатура продолжает работать обычным образом (набранные символы появляются с задержкой в доли секунды).
Если сканер «переводит» символы в неверной раскладке, укажите раскладку в настройках — приложение скорректирует символы автоматически.
Ручной ввод
Код можно ввести вручную в поле «Ввод вручную» и нажать Enter (или кнопку ⏎). Это поле исключено из перехвата сканера — здесь печать идёт как обычно. Обработка введённого кода полностью совпадает с обработкой скана.
Что происходит при скане
Приложение обрабатывает код в следующем порядке:
- Поиск в дереве документа. Если код уже собран (совпадение полного кода, короткого CIS или DataMatrix, начинающегося с уже известного кода), позиция помечается согласно текущему режиму: принято (✅) или отбраковано (⛔). Повторный скан той же марки не создаёт дубликат.
- Дозагрузка агрегата (только в режиме сбора). Если отсканирована коробка или паллета, уже имеющаяся в документе, — приложение запросит её актуальное содержимое на сервере и добавит недостающие марки. Ответ с одной позицией или пустой считается «агрегат не найден».
- Режим отбраковки. Если код не найден в дереве, в этом режиме обработка заканчивается сообщением «Не найдено среди отбракованных: {код}» — новые позиции в режиме отбраковки не добавляются.
- Россыпная марка (DataMatrix). Код, начинающийся с
01(GTIN), добавляется в документ без обращения к серверу как одиночная марка с группировкой по товару (GTIN). Такие «россыпные» группы не учитываются как коробки. - Кэш производственных задач. Прочие коды (SSCC, КИТУ, АТК, КИГУ) сначала ищутся в уже загруженных производственных задачах (раздел 8). Если агрегат найден в задаче, но внутри нет марок — сообщение «Агрегат повреждён — нет марок внутри».
- Запрос на сервер. Приложение запрашивает агрегат с содержимым (
aggregateWithAttachments) и добавляет его в дерево: паллеты, коробки и марки выстраиваются по иерархии, новые позиции сразу помечаются как принятые. - Не найдено. Появляется сообщение «Агрегат не найден: {код}» и кнопка 🏭 Получить с производства (раздел 8).
Во время обработки поле поиска показывает «Идёт поиск агрегата: {код}», на время операций ввод блокируется.
Сообщения в строке статуса
| Сообщение | Значение |
|---|---|
| Скан: {код} | Код найден в дереве, статус обновлён |
| Добавлено: {код} | Агрегат или марка добавлены в документ |
| Агрегат найден в задаче: {код} | Код добавлен из кэша производственной задачи |
| Обновление агрегата: {код} | Идёт дозагрузка содержимого коробки/паллеты |
| Агрегат повреждён — нет марок внутри: {код} | В агрегате нет марок — добавление отклонено |
| Не найдено среди отбракованных: {код} | Режим отбраковки: код в дереве не найден |
| Агрегат не найден: {код} | Код не найден; доступно «Получить с производства» |
| Ошибка: {код} — {текст} | Ошибка сети/сервера; можно повторить или получить с производства |
Каждое событие дублируется записью в журнале (вкладка «📜 Журнал»).
Практические советы
- Сканируйте коробку целиком — приложение подтянет все марки внутри; не нужно сканировать каждую единицу.
- Если коробка изменилась (доложили марки), просто отсканируйте её снова — недостающее добавится.
- Отбраковку выполняйте кнопкой или через режим отбраковки — см. раздел 9.
