Доопрацювання BAS ERP — Штрихкодування виробничого циклу
0Огляд
Мета. Запровадити повний штрихкодний облік руху листа стальної сировини від моменту запуску у виробництво до випуску готового виробу. Облік ведеться через мобільний додаток (Android) на виробничих дільницях та через типовий BAS-клієнт на планшеті у ОТК.
Принцип. Дві критичні точки контролю — вхід (1-й виробничий етап, «Фрезерування») і вихід (ОТК). Між ними — легка реєстрація проходження ШК через дільниці без створення документів. На основі цих даних формується звіт для нарахування ЗП. Можливість при рекламації від клієнта швидко знайти, з якого листа і від якого постачальника зроблений конкретний виріб, забезпечується типовим механізмом BAS — окремих звітів для цього у проекті НЕ робимо.
Ідентифікація. Один пристрій можуть використовувати різні робітники протягом зміни на різних етапах — персональна аутентифікація НЕ потрібна. Пристрій ідентифікується за Device ID, у BAS веде довідник «Пристрої сканування» з людським іменем.
Етап у BAS = Вид робочого центру. Адміністратор активує потрібні Види робочих центрів. У мобільний додаток передаються тільки активні. Прив'язка ШК-події до зміни визначається автоматично за часом сканування і графіком підрозділу.
1Ролі користувачів
Робітник 1-го етапу
Робітник проміжного етапу
Працівник ОТК
Майстер / контролер
Адміністратор
2Архітектура
2.1. Загальна схема
Фрезерування] W2[Робітник проміжного
етапу] end subgraph OTK["Відділ ОТК"] OW[Працівник ОТК] end subgraph Mobile["Mobile Android"] APP[Kotlin + CameraX + ML Kit
SQLite буфер] end subgraph Tablet["ОТК планшет"] BC[BAS Client + USB сканер] end subgraph BAS["BAS ERP сервер"] HTTP[HTTP сервіс
MobileScanner] D1[Документ
«Передача матеріалів
до комори»] R1[Регістр
«Журнал
проходження ШК»] D2[Документ
«Виробнича
операція»] REP[Звіти:
ЗП, Трасування] end W1 -.використовує.-> APP W2 -.використовує.-> APP OW --> BC APP -- 1-й етап --> HTTP APP -- проміжний --> HTTP HTTP -- автозаповнення --> D1 HTTP -- запис події --> R1 BC -- скан у формі --> D2 D1 --> REP R1 --> REP D2 --> REP style W1 fill:#d1fae5 style W2 fill:#dbeafe style OW fill:#ede9fe style D1 fill:#fef3c7 style D2 fill:#ede9fe style R1 fill:#dbeafe
2.2. Технологічний стек
3Сценарії використання
3.1. Точка ВХОДУ — сканування на 1-му етапі
(оприбутковані + неоприбутковані) B-->>H: Список ШК у Прийманні H-->>A: 200 OK [ШК...] W->>A: Сканує ШК листа A->>A: Перевірка у списку «Приймання листа» alt ШК у Прийманні A->>A: Автозапис у буфер A-->>W: Показ характеристик листа Note over A: Записи у буфері можна
редагувати / видаляти
до синхронізації W->>A: Тисне "Синхронізувати" A->>H: POST /RegisterEntryScan {sheets + Device ID} H->>B: Створити/доповнити «Передача матеріалів до комори» B-->>H: 200 OK + doc_id H-->>A: 200 OK A->>A: Записи → read-only (архів) else ШК НЕ у Прийманні A-->>W: Поле підсвічується ЧЕРВОНИМ.
Кнопка «Оновити дані» end
3.2. Проміжний етап — реєстрація проходження
лише факт проходження W->>A: "Синхронізувати" A->>H: POST /RegisterTransitScan {events} H->>B: Записати у регістр «Журнал проходження ШК» B->>B: Авто-прив'язка до зміни через графік B-->>H: 200 OK H-->>A: 200 OK A->>A: Події → read-only (архів)
3.3. Точка ВИХОДУ — ОТК у виробничій операції
вкладкою «Забезпечення» етапу alt Серії співпадають B->>B: Готовий виріб ↔ 2 листи
(стандартним функціоналом BAS) else Не співпадають B-->>T: Помилка/попередження:
лист не у Забезпеченні етапу end
4Ескізи екранів мобільного додатку
Грубі ескізи для розуміння інтерфейсу. Фінальний дизайн — на стадії розробки.
5Функціональні вимоги
5.1. Серверна частина BAS (F-SRV)
5.2. Мобільний клієнт Android (F-MOB)
5.3. ОТК у BAS (F-OTK)
5.4. Адміністратор (F-ADM)
6Звіт «Виконання операцій» (приклад для аналізу та ЗП)
Звіт «Виконання операцій робітниками» — основа для нарахування ЗП і аналізу продуктивності. Доступний майстру, обліковцю, фінансовому директору.
Параметри: період (з/по). Структура: Дата (якщо період > 1 день) → Етап (Вид робочого центру) → Зміни (якщо підрозділ працює по змінам) → ШК. Підрозділ — опціональне групування для етапів.
| Дата | Етап | Зміна | Підрозділ | Пристрій | Час | ШК листа |
|---|---|---|---|---|---|---|
| 22.05.2026 | Фрезерування | Зміна-1 | Цех №1 | Цех №1 — Сканер А | 08:32 | 5901234123457 |
| 22.05.2026 | Фрезерування | Зміна-1 | Цех №1 | Цех №1 — Сканер А | 08:48 | 5901234123458 |
| 22.05.2026 | Плазмовий різ | Зміна-1 | Цех №2 | Цех №2 — Сканер Б | 09:15 | 5901234123457 |
| 22.05.2026 | Зварювання | Зміна-1 | Цех №2 | Цех №2 — Сканер Б | 11:42 | 5901234123457 |
| 22.05.2026 | Плазмовий різ | Зміна-2 | Цех №2 | Цех №2 — Сканер Б | 14:08 | 5901234123458 |
Додатково — Audit log (повний журнал подій сканування у BAS, для розслідування інцидентів).
7Нефункціональні вимоги
| Категорія | Вимога |
|---|---|
| Продуктивність | Скан → підтвердження ≤ 2 с (з мережею) |
| Продуктивність | Синхронізація 50 ШК ≤ 5 с |
| Надійність | Offline-режим — буфер до 100 ШК без втрати |
| Унікальність | ШК листа унікальний у системі (є у залишках / уже у виробництві) |
| Read-only | Після синхронізації ШК недоступний для редагування у додатку |
| Сумісність | Android 9.0+ |
| Безпека | HTTPS TLS 1.2+, Basic Auth з обмеженим BAS-користувачем; Device ID валідується через довідник «Пристрої сканування» |
| UI/UX | Кнопки ≥ 60×60 dp, контрастна палітра, звук+вібрація на скан |
| Локалізація | Українська мова інтерфейсу |
| Підтримка | Усі події у журналі подій BAS |
8Приймальні критерії
- Точка ВХОДУ: робітник сканує ШК → у BAS формується «Передача матеріалів до комори» з автозаповненою номенклатурою
- Проміжні: скан ШК → запис у журнал → видно у звіті з auto-прив'язкою до зміни
- ОТК: у «Виробнича операція» «використані листи» через сканування ШК
- Звіт «Трасування»: готовий виріб → 2 листи → постачальник
- Offline: телефон у режимі польоту → 10 сканувань → синхронізація → 10 у BAS, ШК read-only
- Перевірка валідності: спроба ШК поза залишками → помилка, запису не відбувається
- Зміна етапу: робітник обирає інший етап → подальші скани як проходження через новий етап
- Документація: користувача (робітник, ОТК, адмін)
9Ризики
| ID | Ризик | Серйозність | Зменшення |
|---|---|---|---|
| R1 | Слабкий Wi-Fi у цехах | Висока | Offline-режим (передбачено архітектурно) |
| R2 | Старі/брудні ШК не зчитуються | Середня | Опція ручного введення |
| R3 | Несумісність формату ШК з ML Kit | Низька | Перевірка на стадії розробки; запас — ZXing |
| R4 | Опір робітників | Висока | Простий UX, тренінг, поетапне впровадження |
| R5 | Невідповідність API різних редакцій BAS | Низька | Уточнити редакцію перед розробкою |
| R6 | Дублювання сканувань | Низька | Дедуплікація в буфері + перевірка на сервері |
10Відкриті питання (потребують уточнення)
11Глосарій
12Об'єкти у BAS — огляд
Доопрацювання у вигляді розширення конфігурації (.cfe). Типова не модифікується.
| Тип об'єкта | Назва | Призначення |
|---|---|---|
| Регістр відомостей | ЖурналПроходженняШК | Запис кожної події сканування на проміжному етапі. Основа для звіту ЗП |
| Довідник | ПристроїСканування | Перелік дозволених мобільних пристроїв з людськими іменами |
| HTTP-сервіс | МобільнийСканер | 4 операції для інтеграції з мобільним |
| Загальний модуль | МобільнийСканерAPI | Бізнес-логіка обробки запитів |
| Обробка | НалаштуванняЕтапівМобільного | Адмін активує які Види РЦ є етапами |
| Звіт | ВиконанняОпераційДляЗП | На основі регістра з групуваннями |
Доопрацювання типових об'єктів: документ «Виробнича операція» — обробник ПередЗаписом для звіряння з вкладкою «Забезпечення».
13Регістр «ЖурналПроходженняШК»
Зберігає кожну подію сканування на проміжних виробничих етапах.
| Реквізит | Категорія | Тип | Опис |
|---|---|---|---|
| Період | (стандартний) | Дата | Час сканування з мобільного. Не округлюється |
| ШК | Вимірювання | Рядок (50) | Штрихкод листа. Унікальний |
| Етап | Вимірювання | ВидРобочогоЦентру | На якій дільниці зафіксовано |
| Підрозділ | Ресурс | СтруктураПідприємства | Підрозділ із реквізиту Виду РЦ (auto) |
| Пристрій | Ресурс | ПристроїСканування | Який пристрій передав подію |
| Зміна | Ресурс | Рядок (50) | Назва зміни — auto за часом і графіком підрозділу |
| КоментарПомилки | Ресурс | Рядок (250) | Якщо подія записана з валідаційною помилкою |
Періодичність: у межах секунди (щоб не агрегувати події у межах одного запису).
Хто пише: тільки модуль «МобільнийСканерAPI» при обробці RegisterTransitScan. Ручне редагування — тільки адмін.
14Довідник «ПристроїСканування»
| Реквізит | Тип | Опис |
|---|---|---|
| Код | Рядок (64) | Унікальний ID пристрою (Android ANDROID_ID) |
| Назва | Рядок (150) | Людське ім'я: «Цех №1 — Сканер А» |
| Активний | Булево | Якщо false — пристрій блокується |
| ДатаПершогоВходу | Дата | Auto при першому запиті |
| ДатаОстанньоїАктивності | Дата | Auto при кожному запиті |
| Коментар | Рядок (500) | Вільне поле адміна |
Auto-додавання нових пристроїв
При першому запиті від невідомого Code:
- Створюється елемент з
Активний = false - Назва = «НОВИЙ: <Code> (підтвердити адміну)»
- HTTP-сервіс повертає 403 з повідомленням
- Мобільний показує «Зверніться до адміна, ID: ...»
- Адмін заходить, перейменовує і ставить
Активний = true
15Налаштування Етапів (= Видів робочих центрів)
«Етап мобільного» = «Вид робочого центру» у BAS (типовий обʼєкт). Адмін активує які саме ВРЦ доступні мобільному.
Обробка «НалаштуванняЕтапівМобільного»:
- Таблична частина: Вид робочого центру · Активний у мобільному (галочка) · Точка входу (тільки одна може бути true) · Підрозділ (auto, read-only)
- Кнопка «Перевірити налаштування» валідує: є хоча б 1 точка входу, всі активні мають підрозділ
- Зміни зберігаються у регістр «АктивніЕтапиМобільного»
Як використовується: метод GetActiveStages повертає лише ті ВРЦ де Активний = true. Якщо адмін відключає етап — мобільний через ~1 хв (TTL кешу) перестає його показувати.
16Документ «Передача матеріалів до комори»
Типовий BAS-документ. Структура НЕ змінюється. HTTP-сервіс програмно створює і заповнює.
Що заповнює HTTP-сервіс
| Поле | Звідки |
|---|---|
| Дата | Поточний час сервера |
| Організація | З налаштувань HTTP-сервісу |
| СкладВідправник | З «Приймання листа» де знайдено ШК |
| СкладОдержувач | Підрозділ точки входу |
| Коментар | «Створено автоматично з мобільного: <Назва пристрою>» |
| Таблична частина | Один рядок на кожен ШК з номенклатурою з «Приймання» |
Підтягування номенклатури
- За ШК шукаємо документ «Приймання листа»
- Беремо: Номенклатура, Характеристика, Серія (= ШК)
- Кількість = 1, ціна — пусто
Проведення: за замовч. НЕ проводимо — зберігаємо як чернетку для перевірки обліковцем. Якщо у налаштуваннях «Авто-проводити» — провести в момент створення.
17Документ «Виробнича операція» — звіряння через Забезпечення
Типовий BAS-документ. Доопрацювання — обробник ПередЗаписом + кнопка «Сканувати ШК» на формі.
Що додаємо у форму
- На вкладці «Використані листи» — кнопка «Сканувати ШК»
- Сканований ШК → додається рядок з auto-заповненням Номенклатури/Серії
Логіка звіряння при збереженні
- Беремо ШК з таблиці «Використані листи»
- Беремо ШК з вкладки «Забезпечення» етапу
- Перевіряємо що кожен «Використаний» є у «Забезпеченні»
- Якщо ні — попередження: «Лист <ШК> не у Забезпеченні етапу, продовжити? Так/Ні»
- У «Жорсткому» режимі (налаштування) — замість попередження видаємо помилку, документ не записується
- За замовч. — «Попередження» (не блокувати, але повідомити)
18HTTP-сервіс «МобільнийСканер» — структура
4 операції. JSON через POST або GET. Авторизація — Basic Auth з користувачем «МобільнийСканерAPI».
Загальні правила обробки
- Кожен запит містить
device_id - Сервіс шукає пристрій у «ПристроїСканування» за Code
- Не знайдено — auto-додає як новий, повертає 403
- Знайдено, але Активний=false — 403 з повідомленням
- ОК — оновлюємо «ДатаОстанньоїАктивності», обробляємо
- Лог запиту у регламентний журнал BAS
Формат помилок: JSON з error_code (константа), message (українською), details (об'єкт).
Приклади запитів і відповідей (4 методи)
{
"sheets": [
{ "code": "5901234123457", "nomenklatura": "Лист 1420×6000×12",
"supplier": "ТОВ Метінвест", "in_stock": true },
{ "code": "5901234123458", "nomenklatura": "Лист 1220×6000×10",
"supplier": "ТОВ Метінвест", "in_stock": true }
],
"as_of": "2026-05-22T10:15:00Z"
}
{
"stages": [
{ "code": "FREZ", "name": "Фрезерування", "is_entry_point": true },
{ "code": "PLAZMA", "name": "Плазмовий різ", "is_entry_point": false },
{ "code": "WELD", "name": "Зварювання", "is_entry_point": false }
]
}
{
"device_id": "abc123def456",
"stage": "FREZ",
"sheets": ["5901234123457", "5901234123458"],
"timestamps": ["2026-05-22T10:32:14Z", "2026-05-22T10:33:02Z"]
}
{
"ok": true,
"document_id": "ПМК-2026-05-22-00018",
"accepted_sheets": 2,
"rejected": []
}
{
"device_id": "abc123def456",
"stage": "PLAZMA",
"events": [
{ "sheet": "5901234123457", "ts": "2026-05-22T14:05:23Z" },
{ "sheet": "5901234123458", "ts": "2026-05-22T14:08:11Z" }
]
}
{
"ok": true,
"registered": 2,
"shift_resolved": "Зміна-2 (14:00-22:00)"
}
19Звіт «Виконання операцій для ЗП»
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| Період з / по | Дата | Обов'язковий. За замовч. — поточний місяць |
| Підрозділ (фільтр) | Список | Опційно |
| Етап (фільтр) | Список ВРЦ | Опційно |
| Пристрій (фільтр) | Список | Опційно |
Структура виводу
- Якщо період > 1 дня → перше групування за Датою
- Друге — Етап
- Якщо підрозділ зі змінами — третє за Зміною
- У рядках — ШК, час, ім'я пристрою
- Колонка-підсумок «Кількість листів» по групах
Експорт: стандартні Excel / PDF.
20Алгоритм: сканування на точці ВХОДУ
Послідовність при обробці RegisterEntryScan:
- Перевірити device_id. Якщо не пройшло — 403
- Перевірити що
stageвідповідає ВРЦ зТочка входу = true. Якщо ні — 400 - Перевірити що
sheetsне порожній. Інакше — 400 - Для кожного ШК:
- Знайти документ «Приймання листа»
- Не знайдено →
rejectedз причиною «not_in_receiving» - ШК уже у регістрі за 24 год →
rejectedз «already_in_production» + інформація з якого пристрою/коли - Інакше →
accepted
- Якщо accepted порожній — 409 з переліком rejected
- Створити документ «Передача матеріалів до комори»: один документ на всі accepted ШК, заповнення з «Приймання»
- Записати документ (без проведення, якщо «Авто-проведення» вимкнено)
- Повернути 200 з
document_idі списками accepted/rejected
Транзакційність: кроки 5-7 — в одній транзакції BAS. Якщо запис впав — нічого не зберігається, повертаємо 500.
21Алгоритм: сканування на проміжному етапі
Обробка RegisterTransitScan:
- Перевірити device_id
- Перевірити
stage— активний ВРЦ? Інакше — 404 - Перевірити
events: не порожній, кожна подія маєsheet+ts - Для кожної події:
- Перевірити чи ШК існує у системі (у «Прийманні листа»). Не існує →
rejected - Визначити зміну за часом і графіком підрозділу етапу (див. §23)
- Створити запис у «ЖурналПроходженняШК»
- Перевірити чи ШК існує у системі (у «Прийманні листа»). Не існує →
- Повернути 200 з
registeredіrejected
Дедуплікація: дублювання одного ШК на одному етапі в межах 60 секунд — один запис. Другий ігноруємо, мобільному не повідомляємо помилку.
22Алгоритм: ОТК + звіряння з Забезпеченням
Виконується у BAS-формі документа «Виробнича операція», без мобільного.
- ОТК відкриває документ → вкладка «Використані листи»
- Натискає «Сканувати ШК» → відкривається допоміжна форма з полем введення (приймає Enter — стандарт USB-сканера у HID-режимі)
- На кожен сканований ШК:
- Шукаємо лист у системі
- Знайдено → додаємо рядок у таблицю з номенклатурою/серією
- Не знайдено → повідомлення «Лист не знайдено»
- «Закрити» — закриває форму сканування
- ОТК натискає «Провести і закрити»
- Обробник
ПередЗаписомробить звіряння з Забезпеченням (див. §17) - Якщо все ОК — документ проводиться, готовий виріб має зв'язок до листів
- Якщо є невідповідність — попередження (або помилка у «Жорсткому» режимі)
23Прив'язка події до зміни — алгоритм
Як автоматично визначається «Зміна» при запису у регістр:
- З Етапу події → отримуємо Підрозділ (реквізит ВРЦ)
- З Підрозділу → Графік роботи (типовий реквізит)
- Тип графіку:
- «Без змін» → у «Зміна» записуємо «—»
- «Зі змінами» → для часу події знаходимо зміну з інтервалом що включає цей час. Записуємо назву
- Якщо подія потрапляє у пересмінку → записуємо попередню зміну + коментар: «Пересмінка (наступна Зміна-3)»
- Графік не налаштований → «Зміна не визначена», подія потрапляє у звіт як аномалія
24Поведінка мобільного додатку (бізнес-вимоги)
Це НЕ архітектура. Описуємо що робить додаток, без подробиць як закодовано. Розробник вирішить технічну реалізацію.
При першому запуску
- Додаток отримує і зберігає свій ідентифікатор (Android ANDROID_ID)
- Першим екраном — налаштування адреси HTTP-сервісу + тест зʼєднання
- При першому з'єднанні — пристрій авто-додається у BAS у статусі «потребує підтвердження»
- До підтвердження адміном — додаток показує «Зверніться до адміна» і не дає сканувати
При повторних запусках
- Підтверджений пристрій → показується останній етап і кнопка «Сканувати»
- Якщо є несинхронізовані сканування — індикатор «N не синхронізовано»
При втраті мережі
- Нові сканування зберігаються локально зі статусом «не синхронізовано»
- UI показує що мережі нема, але дозволяє продовжувати сканувати
- Список дозволених ШК — використовується останній відомий
При відновленні мережі
- Авто-синхронізація накопичених сканувань (без участі робітника)
- Після синхронізації — сканування → read-only
- Якщо BAS повернув валідаційну помилку — статус «відхилено» з причиною українською
Переключення етапу
- Робітник у налаштуваннях обирає інший етап з активних
- Незавершені сканування з попереднього — не втрачаються, синхронізуються як були
- Нові сканування пишуться у новий етап
25Межові випадки
| Ситуація | Поведінка |
|---|---|
| Камера не зчитує ШК (брудний/пошкоджений) | Кнопка «Ввести вручну» — поле для введення цифр |
| Робітник відсканував той самий ШК двічі поспіль | 1-й етап: показати «вже у буфері». Проміжний: ігнорувати (дедуплікація на сервері) |
| BAS повернув 5xx | Сканування залишаються у буфері. Спроби з інтервалом 1, 2, 4, 8, 16 хв |
| Адмін заблокував етап під час роботи | При наступній синхронізації або через 1 хв (TTL) — етап зникає. Незавершені синхронізуються, нові недоступні |
| Адмін заблокував пристрій | 403 на наступному запиті. «Пристрій заблоковано адміном», сканування недоступне |
| ШК належить листу, який видалили з BAS | 404 на синхронізації. «Відхилено: лист видалено з системи» |
| Час на пристрої не синхронізований з сервером | BAS використовує СВІЙ час для регістра. Час з мобільного — тільки для логу |
| Робітник закрив додаток в момент сканування | Сканування у буфері зберігається. При наступному відкритті — продовжується синхронізація |
26Тестові сценарії
Описи українською для перевірки реалізації. Формат: ситуація — дії — очікуваний результат.
1. Перше використання нового пристрою
Ситуація: новий планшет, адмін не додав у BAS. Дії: робітник встановлює додаток, налаштовує адресу HTTP. Очікується: у BAS з'явився новий пристрій (Активний=false). Додаток показує «Не активований, ID: ...». Сканування недоступне.
2. Підтвердження пристрою адміном
Дії: адмін перейменовує («Цех №1 — Сканер А»), ставить Активний=true. Очікується: робітник перезапускає (або чекає 1 хв) — пристрій працює, доступний вибір етапу.
3. Успішне сканування на точці ВХОДУ
Дії: робітник на Фрезеруванні сканує ШК «5901234123457» (валідний). Синхронізує. Очікується: у BAS створений документ «Передача матеріалів до комори» у чернетках з 1 рядком (Лист 1420×6000×12). У мобільному ШК → «синхронізовано».
4. ШК не знайдено у Прийманні
Дії: сканує «9999999999999» (нема у Прийманні). Очікується: поле червоне, «Лист не знайдено у Прийманні». У буфер НЕ додається.
5. Конфлікт — лист уже у виробництві
Ситуація: робітник №1 о 09:00 відсканував ШК і синхронізував. Робітник №2 о 09:15 теж сканує цей ШК. Очікується: BAS повертає 409. ШК → «відхилено» з причиною «Лист уже у виробництві, пристрій Цех №1 — Сканер А о 09:00».
6. Робота без мережі і подальша синхронізація
Дії: у цеху без Wi-Fi робітник сканує 10 ШК. Виходить у зону з Wi-Fi. Очікується: авто-синхронізація. У BAS у регістрі 10 записів зі зміною за часом і графіком підрозділу.
7. Дублювання сканування на проміжному етапі
Дії: ШК о 14:00 і 14:00:30 (помилково). Очікується: у регістрі — один запис (другий через дедуплікацію). Мобільний показує обидва успішні скани.
8. Звіряння у ОТК — успіх
Ситуація: у Забезпеченні листи «5901234123457» і «5901234123458». Дії: ОТК сканує обидва, проводить документ. Очікується: документ проводиться, готовий виріб має зв'язок з 2 листами.
9. Звіряння у ОТК — невідповідність
Ситуація: у Забезпеченні «5901234123457». ОТК сканує «9999999999999». Очікується (Попередження): «Лист 9999999999999 не у Забезпеченні, продовжити?». Жорстко: документ не проводиться.
10. Звіт за період
Дії: запустити звіт за період 01.05–31.05. Очікується: групування Дата → Етап → Зміна → ШК. У підсумках — кількість листів. Фільтри за підрозділом і пристроєм.
11. Адмін відключає етап під час роботи
Дії: адмін знімає галочку «Активний у мобільному» для одного етапу. Очікується: робітник може закінчити поточне сканування і синхронізувати. Через 1 хв — етап зникає зі списку.
12. Запит з неактивованого пристрою
Ситуація: хтось викачав APK і налаштував з'єднання. Очікується: BAS отримує запит з невідомим device_id, auto-додає у довідник зі статусом «потребує підтвердження», повертає 403.
27Що НЕ входить у проект
- Інтерфейс друку етикеток зі ШК для нових листів — типовий механізм BAS
- Звіт «Трасування виробу» (виріб → листи-сировина → постачальник) — типовий BAS
- Звіт «Незавершені листи» — типовий BAS
- iOS-додаток — тільки Android
- Push-нотифікації робітнику — не передбачено у першій черзі
- Інтеграція з Google Play Store — внутрішнє розповсюдження APK
- Технологічний стек мобільного (Android API level, фреймворки, бібліотеки) — окремий артефакт «Engineering choices», оновлюється перед стартом розробки