13. Поиск кодов и списание («потерянные» коды)
Окно «Поиск кодов» (кнопка 🔎 в главном окне) отвечает на вопрос: какие агрегаты и марки есть в задачах агрегации, но отсутствуют в свободных задачах — то есть были произведены/агрегированы, но так и не были собраны ни в один документ сбора. Это и есть «потерянные» коды.
Выполнение анализа
- Задайте два диапазона дат:
— Свободные задачи (синяя карточка) — период, в котором ищутся «известные» коды (по умолчанию последние 120 дней);
— Задачи агрегации (красная карточка) — период документов, которые проверяются на потерянные коды.
Если начало больше конца, значения переставляются автоматически.
- При необходимости настройте отображение:
— ☑ Показывать только отсутствующие коды (включено по умолчанию) — скрывать найденные коды и оставлять только потерянные;
— ☐ Отображать пустые агрегаты — показывать паллеты/коробки без марок.
- Нажмите 🔎 Анализировать. Ход загрузки виден в статусе: «Загрузка свободных задач… 12/45…», затем «Загрузка документов агрегации…».
Результаты
Итоговая строка (красным):
- «Документов с отсутствующими кодами: N. Отсутствует агрегатов: A, марок: M» — есть потерянные коды;
- «Все коды из документов агрегации присутствуют в свободных задачах» — потерь нет.
Дерево результатов: 📄 задача агрегации → 📁 паллеты → 📦 коробки → 🏷 марки.
- Отсутствующие коды выделены красным жирным с бейджем ✗.
- У агрегатов — деталь «(внутри отсутствует: X из Y)», у задачи — «— агрегатов нет: X из Y, марок нет: X из Y».
- Синий бейдж у задачи — её код производственной задачи (DocumentCodeId).
- Строка фильтра «Фильтр (код или имя):» мгновенно отбирает узлы по подстроке; совпадение раскрывает родителей.
Действия над результатами
Кнопки справа на строке и контекстное меню (правый щелчок):
| Действие | Описание |
|---|---|
| 📋 Копировать | Полный код узла в буфер обмена («Код скопирован») |
| 📤 Списать | Создать на сервере задачу списания «Dropout» с отсутствующими марками (см. ниже) |
| Удалить из списка | Убрать узел только из локального списка результатов (на сервер не влияет; повторный анализ вернёт его) |
Списание
Нажмите 📤 Списать на агрегате или марке с отсутствующими кодами:
- Подтверждение: «Создать задачу списания «Dropout» для агрегата {код} с N неиспользованными марками?».
- Приложение создаёт на сервере новую свободную задачу с названием «Dropout» и кодом исходной задачи агрегации; в неё включаются все отсутствующие марки узла.
- Сообщения: «Создана задача списания «Dropout» (N марок)», «Нет неиспользованных марок для списания», «Не удалось создать задачу списания».
Созданную задачу затем видно в списке свободных задач — её можно открыть и обработать как обычный документ (например, целиком отбраковать).
Что считается «отсутствующим»
- Марка отсутствует, если ни её короткий код (CIS), ни полный (FullCIS) не встречаются среди принятых марок свободных задач.
- Агрегат (паллета/коробка) отсутствует, если не найден его код и ни одна марка внутри не принята ни в одной свободной задаче.
- Непринятые марки свободных задач считаются «ещё не использованными» и коды не «закрывают».
