FlowPOS · tochka
hi-fi · схема L1 · BPMN

E-16 — УРВ · учёт рабочего времени

Табель Волны 3, отдельный от кассовой смены. Пересобран D-40: добавлен гейт G2 «Есть непогашенный долг?» при Punch Out и выгрузка в 1С:ЗУП. Граф 1:1 с Mermaid-каноном hr/time-tracking.md. Не в объёме (D-67): график (план) смен, типы явок и payroll — их система не строит; по сотруднику обещаны ровно две вещи — сколько часов отработал и сколько продал.

ДисплейFraunces
ИнтерфейсHanken Grotesk
Цифры / кодыJetBrains Mono
1 · Роль · внешние · danger-оп Контекст процесса Роль-исполнитель, внешние акторы/системы и оценка опасных операций. Источник: ответ эксперта E-16 + схема 14.
Роль-исполнитель Сотрудник — прокатывает MSR-карту и открывает/закрывает личную смену (табель).
Внешние Нет внешних акторов/систем. Табель отдельный от кассовой смены (E-01).
△ Опасная операция Одна. Закрытие смены при непогашенном долге сотрудника — гейт G2 → авториз-шлюз AUTH (право «подтверждать закрытие личной смены при задолженности», RBAC S-19). Внесено D-40.
Toggle-логика Один жест — прикладывание MSR-карты на кассе — трактуется гейтом G1: ещё не на смене → Punch In; уже на смене → гейт G2: нет долга → Punch Out; есть долг → авториз-шлюз AUTHPunch Out. Все ветки сходятся в событие «Табель обновлён» → выгрузка в 1С:ЗУП. Альтитуда → слой 4/5: расчёт отработанных часов, привязка табеля к периоду ЗП, идемпотентность прокатки.
2 · Пулы-дорожки Дорожки-исполнители Один пул канона: роль-исполнитель. Тип узла = цвет + метка-kicker + значок-форма (не цветом одним).
Сотрудникроль-исполнитель
◆ событие + гейты + задачи
S1Приложить MSR-карту на кассевход-событие процессасобытие
G1Уже на личной смене?гейт
PINОткрыть личную смену (Punch In)ветка «нет»задача
G2Есть непогашенный долг сотрудника?ветка «да» от G1гейт
POUTЗакрыть личную смену (Punch Out)задача
D1Табель обновлёнслияние веток · финишсобытие
Авторизацияавториз-шлюз (D-40)
◆ авториз-шлюз
AUTHПодтвердить закрытие смены при задолженностиправо из RBAC-матрицы, S-19авториз
1С:ЗУПвнешняя система (Этап 2)
◆ message flow
ZUPВыгрузка в 1С:ЗУП (табельный номер)часы за период · интеграция Этап 2система
3 · BPMN-граф Поток процесса Режим fallback-mermaid (§5/§7): тёплая тема поверх канона. Связи — sequence сплошная.
событие задача / шаг гейт (решение) авториз-шлюз внешняя система sequence flow message flow
%%{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;
        
◍ fallback-mermaid Режим рендера, утверждённый для всех L1-схем: тематизированный Mermaid в тёплой оболочке. Единственный CDN — mermaid@jsdelivr.
!
Danger-ветка есть — одна. Обычный ход процесса — чистый toggle: приложил карту → открыл или закрыл личную смену. Опасная ветка ровно одна: закрытие смены при непогашенном долге сотрудника — гейт G2 уводит на подтверждение уполномоченной ролью (право из RBAC-матрицы, S-19). Провенанс — дословно из прав эксперта: «подтверждать закрытие личной смены если у сотрудника уже есть задолженность». Внесено D-40.