Табель Волны 3, отдельный от кассовой смены. Пересобран D-40: добавлен гейт G2 «Есть непогашенный долг?» при Punch Out и выгрузка в 1С:ЗУП. Граф 1:1 с Mermaid-каноном hr/time-tracking.md. Не в объёме (D-67): график (план) смен, типы явок и payroll — их система не строит; по сотруднику обещаны ровно две вещи — сколько часов отработал и сколько продал.
%%{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}
}}%%
flowchart TD
subgraph Emp["Сотрудник"]
S1(["Приложить MSR-карту на кассе"]) --> G1{"Уже на личной смене?"}
G1 -->|нет| PIN["Открыть личную смену (Punch In)"]
G1 -->|да| G2{"Есть непогашенный долг сотрудника?"}
G2 -->|нет| POUT["Закрыть личную смену (Punch Out)"]
PIN --> D1(["Табель обновлён"])
POUT --> D1
end
subgraph Auth["Авторизация"]
G2 -->|да| AUTH["Подтвердить закрытие смены при задолженности"]
AUTH --> POUT
end
D1 -.->|"часы за период"| ZUP[/"Выгрузка в 1С:ЗУП (табельный номер)"/]
classDef ext fill:#fdf0d5,stroke:#d99a2b,color:#7a4d06;
classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10;
classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30;
classDef task fill:#f6e6cd,stroke:#d5842a,color:#241b12;
classDef auth fill:#ede7f6,stroke:#7e57c2,color:#4527a0;
class PIN,POUT task;
class G1,G2 gate;
class S1,D1 event;
class AUTH auth;
class ZUP ext;
style Emp fill:#fbf7ef,stroke:#e2d6c1;
style Auth fill:#f7f4fd,stroke:#d9cdf3;
G2 уводит на подтверждение уполномоченной ролью (право из RBAC-матрицы, S-19). Провенанс — дословно из прав эксперта: «подтверждать закрытие личной смены если у сотрудника уже есть задолженность». Внесено D-40.