Отсутствия сотрудников — отпуска, больничные, командировки, отгулы и т.п.
ARMS выступает хабом-агрегатором: отсутствия приходят из нескольких
источников (SAP, 1С, ручной ввод) и выгружаются наружу (SAPsync → Bitrix).
Маршрут тот же, что у оргструктуры и сотрудников:
SAP/1C/ручной ввод → ARMS → Bitrix.
Каждая запись привязана к конкретному трудоустройству сотрудника,
имеет нормализованный тип и период. Организация у отсутствия не хранится —
она однозначно определяется сотрудником (его юрлицом). Тип хранится стабильным строковым кодом,
совпадающим со словарём XML_ID типов отсутствия в Bitrix, чтобы выгрузка
отображала тип один-в-один без второго словаря.
Актуальные отсутствия — идущее сейчас и ещё не начавшиеся — видны одним списком прямо на карточке сотрудника (а идущее сейчас там же выводит предупреждение об отсутствии на рабочем месте); полный список, включая прошедшие, живёт здесь.
Поле источник (sap / c1 / manual) разделяет владение записями:
синхронизация из источника обновляет только свои записи и не затирает
ручной ввод и записи других источников. Пара источник + внешний ключ
уникальна и обеспечивает идемпотентный upsert из источника; у ручного ввода
внешний ключ пуст (под ограничение уникальности такие записи не попадают).
Маппинг кодов конкретного источника (для SAP — коды Awart) в нормализованный
тип выполняется на стороне приёма (SAPsync); ARMS хранит уже нормализованные
данные, о кодах источника не знает.
Записи, исчезнувшие из источника, удаляются обратным проходом синхронизации (по паре источник + сотрудник), не затрагивая ручной ввод и другие источники.
Доступен через общий CRUD ARMS. Фильтрация (поля под заголовками) по сотруднику, типу, источнику и периоду; сортировка — клик по заголовку.
Ручной ввод отсутствия: выбираются
сотрудник,
тип из списка,
период (с — по)
и, при необходимости,
комментарий. Источник таких записей —
manual, внешний ключ не заполняется.