Одно-акторный процесс Волны 1 (Кассир) — по канону без дорожек. Экран блокировки, гейт авторизации PIN / MSR-карта, гейт «смена открыта?» и Forced Flow открытия смены (разменный фонд → нулевой X-отчёт). Ветка отказа доступа возвращает на экран блокировки. Граф 1:1 с Mermaid-каноном front/open-shift.md.
%%{init:{
"theme":"base",
"themeVariables":{
"fontFamily":"Hanken Grotesk, ui-sans-serif, sans-serif",
"fontSize":"14px",
"lineColor":"#5a4d3d",
"primaryColor":"#f6e6cd",
"primaryBorderColor":"#d5842a",
"primaryTextColor":"#241b12",
"clusterBkg":"#fbf7ef",
"clusterBorder":"#d0c1a6",
"edgeLabelBackground":"#fbf7ef",
"tertiaryColor":"#f6efe2"
},
"flowchart":{"curve":"basis","nodeSpacing":42,"rankSpacing":52,"htmlLabels":true}
}}%%
%% E-01 Открытие смены · Источник: ответ E-01 + схемы 16,20,21
flowchart TD
Start(["Сотрудник подошёл к кассе"]) --> Lock["Экран блокировки"]
Lock --> Auth{"PIN или MSR-карта"}
Auth -->|"не найден / нет доступа"| Err["Отказ доступа"]
Err --> Lock
Auth -->|успешно| Shift{"Кассовая смена открыта?"}
Shift -->|да| Menu(["Меню доступно — работа"])
Shift -->|нет| Closed["Доступ к меню закрыт
(Forced Flow)"]
Closed --> Open["Открыть смену"]
Open --> Float["Внести разменный фонд"]
Float --> XReport["Печать нулевого X-отчёта"]
XReport --> Menu
classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30;
classDef task fill:#f6e6cd,stroke:#d5842a,color:#241b12;
classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10;
classDef actor fill:#fbf7ef,stroke:#94866f,color:#241b12,stroke-dasharray:5 3;
classDef ext fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f;
classDef danger fill:#f6dcd5,stroke:#bc3f2b,color:#7a241c;
class Lock,Closed,Open,Float,XReport task;
class Auth,Shift gate;
class Start,Menu event;
class Err danger;
Отказ доступа, затем возврат на Экран блокировки — цикл повторной авторизации. При «успешно» — переход к гейту «Кассовая смена открыта?»; при «нет» запускается Forced Flow (открыть смену → разменный фонд → нулевой X-отчёт), обязательный перед доступом к меню.