EN RU PL
На сайт IceFleet

Паттерны смен, защита правок и конфликты

Обновлено: 29 августа 2026 г.

Паттерны смен — опциональный модуль: если его нет в меню, значит он ещё не включён для вашей компании (см. статью про видимость модулей в разделе решения проблем).

Создание паттерна

Паттерн — это именованный цикл (например, ротация «5/2») с длиной цикла в днях и временем начала/окончания на каждый день цикла. Проверки при сохранении:

  • Длина цикла должна быть положительным числом.
  • Индекс каждого дня должен укладываться в длину цикла.
  • Время окончания каждого дня должно быть позже времени начала.

Дальше вы назначаете сотрудников на паттерн: сотрудник + точка + опционально должность + дата начала + опционально дата окончания. Генератор сам создаёт реальные записи расписания на будущее из этого назначения.

Пересечение назначений отклоняется сразу

У сотрудника не может быть двух активных назначений на паттерн с пересекающимися датами — создание или правка с пересечением сразу отклоняется с «EMPLOYEE_HAS_OVERLAPPING_ASSIGNMENT». Тихого слияния нет: сначала завершите старое назначение (задайте дату «действует до»), прежде чем начинать новое пересекающееся. Назначение уволенного сотрудника на паттерн отклоняется так же, с «EMPLOYEE_DISMISSED».

Главное правило: защита manually_modified

Как только вы вручную правите сгенерированную смену за конкретный день — или этот день уже прошёл — система больше никогда не тронет именно этот день. Ни добавить/убрать сотрудников, ни пересчитать конверт времени, ничего. Это сделано намеренно: защищает вашу ручную правку от того, чтобы её тихо перезаписали при следующей генерации по паттерну.

Практический вывод: если вы вручную поправили смену за один день, дальнейшие изменения паттерна или назначений больше не затронут автоматически именно этот день — с этого момента его нужно будет поддерживать вручную. По этой же причине правка часов паттерна (с тем же индексом дня) сразу пересчитывает и перегенерирует каждую будущую, незащищённую смену по этому паттерну — но не трогает дни, которые вы уже правили вручную.

Конфликты

Если сотрудник отмечает себя недоступным на день, на который паттерн уже сгенерировал ему смену, система не убирает смену — она остаётся в расписании, помечается как конфликт, и вам (или менеджеру этой точки) приходит уведомление. Регулярно проверяйте список конфликтов на странице паттернов, если активно ими пользуетесь — там появляется каждый помеченный слот в горизонте генерации, ожидающий переназначения или решения. Уведомления о конфликтах можно включить или выключить для себя.

Настройки, которые стоит знать

  • Авторасширение и горизонт генерации (на сколько дней вперёд создаются смены) настраиваются — если задать горизонт больше допустимого максимума, вернётся «HORIZON_DAYS_OUT_OF_RANGE».
  • Сейчас у записи расписания нет статуса «завершена» — завершение отслеживается отдельно, на стороне активной смены, а прошедшие записи расписания физически удаляются через несколько минут после того, как прошли. Управлять этим не нужно, но полезно знать, если старая запись вдруг «исчезла».