Путь роли по экранам (user-flow). Узлы — экраны S-NN, события и решения; тип кодируется цветом (словарь §5). Внешние системы — пунктиром. Граф 1:1 с Mermaid-каноном hr-timesheet-punch.md.
user-flows/hr-timesheet-punch.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"},"flowchart":{"curve":"basis","nodeSpacing":40,"rankSpacing":52,"htmlLabels":true,"useMaxWidth":false,"padding":16}}}%%
flowchart TD
Start(["Сотрудник: отметить приход / уход"]) --> METHOD{"Устройство отметки?"}
METHOD -->|"личный телефон (self-service)"| S30["S-30 · Сотрудник — УРВ
(self-service, телефон)"]
METHOD -->|"касса / POS"| MSR["MSR-скан карты сотрудника
(на кассе/POS)"]
S30 --> PINGATE["PIN-подтверждение
(на телефоне нет MSR-ридера)"]
PINGATE --> STATE{"Сотрудник уже
на личной смене?"}
MSR --> STATE
STATE -->|"нет"| PUNCHIN["Punch In — запись «Открыта»"]
STATE -->|"да"| PUNCHOUT["Punch Out — запись
«На утверждении»"]
PUNCHIN --> S30
PUNCHOUT -. "запись падает в табель" .-> S20["S-20 · Табель УРВ
(бэк-офис)"]
S20 --> REVIEW["HR-менеджер просматривает запись"]
REVIEW --> ADJQ{"Нужна ручная
корректировка?"}
ADJQ -->|"да"| ADJUST["Шаг: «Скорректировать»
(авториз-шлюз)"]
ADJUST --> REVIEW
ADJQ -->|"нет"| APPROVEQ{"Утвердить или отклонить?"}
APPROVEQ -->|"Утвердить"| APPROVED(["«Утверждено» — используется
в расчёте ФОТ (🟡 1С:ЗУП)"])
APPROVEQ -->|"Отклонить"| REJECTED["Возврат к «На утверждении» +
флаг спорной записи"]
REJECTED --> REVIEW
APPROVED --> S20
classDef screen fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f;
classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10;
classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30;
classDef warn fill:#faedd0,stroke:#d99a2b,color:#7a4d06;
classDef auth fill:#ede7f6,stroke:#7e57c2,color:#4527a0;
class S30,S20,PUNCHIN,PUNCHOUT,REVIEW screen;
class METHOD,STATE,ADJQ,APPROVEQ gate;
class Start,APPROVED event;
class REJECTED warn;
class PINGATE,MSR,ADJUST auth;