Обнаружение и устранение конфликтов (при формировании расписания)
Omniscol обнаруживает конфликты непрерывно во время подготовки расписания и при каждом ручном размещении. Диагностика различает блокирующие конфликты, несоблюдённые ограничения и предупреждения, требующие решения, и обозначает эту степень серьёзности цветом — на возможных временных слотах и в списках выбора, когда вы размещаете занятие, и на каждой строке панели диагностики. Автоматическое формирование расписания — отдельный расчёт (алгоритм размещает занятия с учётом ограничений или оставляет занятие неразмещённым): его диагностика описана на странице Диагностика неудачного формирования расписания.
Что проверяет диагностика
- Занятость (двойное бронирование) — преподаватель, класс, группа, ученик, кабинет или ресурс не могут участвовать в двух занятиях, которые пересекаются по времени, если только это не задано в модели явно (совместимые группы, разделения, большие кабинеты).
- Доступность и временные ограничения — период, объявленный недоступным, или несоблюдённое временное ограничение (преподавателя, класса, группы, кабинета, курса, площадки), уровень которого зависит от приоритета ограничения. Заданное окно дат всегда блокирует.
- Вместимость и рабочие часы — превышение вместимости кабинета, ресурс, запрошенный в большем количестве экземпляров, чем есть, неподходящий кабинет (вместимость, специализация, площадка) или превышение рабочих часов преподавателя.
- Переполнение сетки — часы занятий, которые нужно разместить, превышают число открытых временных слотов сетки или приближаются к нему, для преподавателя или для класса в целом.
- Места и поездки — недостаточное время в пути между двумя площадками для преподавателя или класса, либо две дисциплины, объявленные несовместимыми, в одно и то же время.
- Календарь — занятие, поставленное на отсутствие (преподавателя или класса), на закрытый день или каникулы, либо на несовместимое событие.
- Модель — нарушенное совмещение (совмещённые группы без общего занятия), разное число занятий у групп одного разделения или одного совмещения, отсутствующий преподаватель или кабинет, либо неполная настройка (площадка, сетка, параметр, нужный до формирования расписания).
Конфликты с другим расписанием
В модуле Управление расписанием, при реорганизации и при редактировании календарного расписания, диагностика сверяет расписание также с другими опубликованными расписаниями на те же даты и со связанными учётными записями — теми, которые отмечены в меню Синхронизация. Преподаватель, класс или кабинет, уже занятые в одном из них, создают конфликт, даже если в текущем расписании в это время других занятий нет.
В описании конфликта занятие из другого расписания после названия своего класса помечено значком и названием этого расписания. Занятие из связанной учётной записи помечено значком и названием этой учётной записи. Omniscol распознаёт один и тот же класс, кабинет или ресурс в разных расписаниях по внешнему идентификатору, а если его нет — по названию: см. распознавание одного и того же класса в разных расписаниях.
Уровни серьёзности
Одна и та же шкала серьёзности — зелёный, жёлтый, оранжевый, красный — окрашивает несколько мест при редактировании.
На возможных временных слотах, когда вы размещаете занятие (см. Ручное размещение). И на каждом варианте в списках выбора: когда вы выбираете для занятия преподавателя, кабинет, ресурс, группу или участников, каждая запись получает значок календаря, окрашенный по её уровню на выбранный временной слот, — зелёный, если объект свободен, красный, если занят, — а подробности видны при наведении. Выбрать невозможно только при красной недоступности (занято, период закрыт); слишком маленький или неподходящий по специализации кабинет остаётся доступным для выбора, но с предупреждением.
| Цвет | Значение |
|---|---|
| зелёный | конфликтов нет — объект свободен (или ресурс не превышает лимит) |
| жёлтый | небольшое неудобство, не блокирующее (временное ограничение среднего приоритета, полностью замещённое отсутствие, кабинет подходит, но не идеален) |
| оранжевый | жёсткое ограничение (временное ограничение высокого приоритета, кабинет заполнен до 110 % вместимости, рабочие часы до 110 %, слишком короткое время в пути между площадками, несовместимые дисциплины, закрытый день) |
| красный | блокирующий конфликт (двойное бронирование, обязательное временное ограничение или заданное окно дат, кабинет заполнен более чем на 110 % вместимости, отсутствие без замещения, нарушенное совмещение) |
На панели диагностики. Каждая перечисленная проблема имеет уровень, который используется в фильтре. Панель объединяет оранжевый и жёлтый в один уровень «важное» и добавляет уровень «совет» для неблокирующей информации:
| Уровень | Смысл | Соответствующие цвета временных слотов |
|---|---|---|
| красный | Блокирующий конфликт | красный |
| жёлтый | Несоблюдённое ограничение / Предупреждение | оранжевый + жёлтый |
| синий | Совет / Близко к пределу | нагрузка на сетку, разделения |
Когда включён параметр Блокировка конфликтующих вариантов (жёсткие ограничения), Omniscol не допускает варианты, которые создали бы жёсткое ограничение; в противном случае оповещение остаётся на виду, чтобы администратор принял решение.
Переполнение и нагрузка на сетку
Omniscol постоянно сравнивает часы занятий, которые нужно разместить, с числом открытых временных слотов сетки — для каждого преподавателя (по классам и по площадкам) и для каждого класса в целом. В сообщении указаны оба значения, например «18 ч / 16 ч». Три ступени, в зависимости от заполнения:
| Ступень | Заполнение | Как читать |
|---|---|---|
| синий — нагрузка | сетка заполнена на 90–100 % | пределы скоро будут достигнуты; размещать уже непросто |
| оранжевый — небольшое переполнение | 100–110 % (часов больше, чем временных слотов, до 110 %) | допустимое расписание, вероятно, невозможно |
| красный — сильное переполнение | свыше 110 % | допустимое расписание почти наверняка невозможно |
Этот расчёт выполняется, только если настроена хотя бы одна площадка, и ничего не сообщает, пока заполнение сетки ниже 90 %. Он сопоставляет требуемые часы с доступными временными слотами — не путайте его с превышением рабочих часов преподавателя (проведённые часы против часов по договору): оно окрашивается теми же цветами, но остаётся отдельной проверкой.
Все проверки
| Проверка | Семейство фильтра | Уровень |
|---|---|---|
| Преподаватель, класс или группа уже заняты | Конфликты | красный |
| Кабинет уже занят | Конфликты | красный |
| Нарушенное совмещение (совмещённые группы без общего занятия) | Конфликты | красный (оранжевый, если различается только кабинет или ресурс) |
| Несоблюдённое временное ограничение (преподаватель, класс, группа, кабинет, курс, площадка) | Временные ограничения | обязательное → красный, высокий → оранжевый, средний → жёлтый (окно дат → всегда красный) |
| Превышение вместимости кабинета | Вместимость | оранжевый до 110 % вместимости, красный выше |
| Ресурсов больше, чем есть | Вместимость | оранжевый |
| Неподходящий кабинет (вместимость, специализация, площадка) | Вместимость | жёлтый — можно разрешить принудительно |
| Превышены рабочие часы преподавателя | Вместимость | оранжевый до 110 %, красный выше |
| Переполнение / нагрузка на сетку | Переполнение сетки | синий → оранжевый → красный (см. выше) |
| Недостаточное время в пути между площадками (преподаватель, класс) | Расстояние | оранжевый |
| Несовместимые дисциплины в одно и то же время | Совместимость | оранжевый |
| Нет свободного кабинета среди разрешённых | Отсутствует кабинет | жёлтый (красный, если нет ни одного) |
| Отсутствует преподаватель (курс без назначенного преподавателя) | Отсутствует преподаватель | жёлтый |
| Отсутствует кабинет (занятие размещено без нужного кабинета) | Отсутствует кабинет | жёлтый |
| Разное число занятий у групп разделения | Разделения | синий (информационно) |
| Разное число занятий у совмещённых групп | Совмещения | красный (блокирующая настройка) |
| Преподаватель отсутствует на своём занятии | Отсутствия | без замещения → красный, с замещением → жёлтый, частичное замещение (совместное преподавание) → оранжевый |
| Класс отсутствует | Отсутствия | красный |
| Занятие в закрытый день / на каникулах | Календарь | оранжевый (иногда принудительно красный) |
| Неполная настройка (площадка, сетка, параметр) | — | блокирует до формирования расписания |
Переход от оповещения
Каждая строка панели кликабельна: лупа ведёт прямо к соответствующему занятию, группе или классу — это самый быстрый способ выделить контекст конфликта. Для конфликта групп (разделение, совмещение) значок оставляет только связанные группы, и ограничение становится заметнее, когда необработанной диагностики недостаточно.
Фильтрация диагностики
Кнопка Фильтры диагностики (треугольник-предупреждение в верхней части панели) открывает меню, где можно оставить только оповещения, полезные для текущего анализа. Пока какой-либо фильтр активен, её значок оранжевый. В меню настраивается:
- Уровни — показать или скрыть красный (блокирующий), жёлтый (важное / требует проверки), синий (совет / близко к пределу).
- Объекты — классы, преподаватели, кабинеты, ресурсы, группы и типы календарных событий (события, каникулы, отсутствия).
- Уровни классов, подразделения, площадки — ограничить выборку. Подразделение выделяет организационную единицу (филиал, факультет, центр); площадка относится к физическому месту.
- Причины — включение или отключение каждого семейства проверок: временные ограничения, конфликты, вместимость, расстояние, отсутствующий преподаватель, отсутствующий кабинет, совместимость, разделения, совмещения.
- Интервал (календарное расписание) — ограничить ближайшими неделями или месяцами и скрыть прошедшее.
- Поведение — параметр Блокировка конфликтующих вариантов (жёсткие ограничения) активно не допускает размещений, которые создали бы жёсткий конфликт.
- Сбросить — показать всё снова.
Фильтр не устраняет конфликт: он лишь скрывает то, что не помогает текущему анализу.
Устранение конфликта
Чаще всего помогают такие исправления:
- перенести занятие;
- сменить преподавателя, кабинет или ресурс;
- скорректировать слишком жёсткое ограничение;
- исправить недоступность или отсутствие, внесённые по ошибке;
- создать или исправить группы, разделения или совмещения;
- добавить подходящий кабинет, вместимость или специализацию;
- заблокировать занятие, которое должно остаться на месте, прежде чем заново запускать формирование расписания.
Если формирование расписания не находит полного решения, оно может вернуть частичное расписание: неразмещённые занятия остаются на панели стикеров занятий, которые нужно разместить. Исправьте самые важные проблемы диагностики, затем запустите формирование снова или разместите оставшиеся занятия вручную.
Случаи, требующие решения
Некоторые сигналы отражают организационное решение, а не ошибку ввода. Например:
- экзамен с основным кабинетом и кабинетом для учеников с дополнительным временем;
- заявленная вместимость больше введённого числа мест, когда образовательная организация знает, что часть записанных не придёт;
- дополнительный кабинет, не заданный в Omniscol.
В таких случаях, если возможно, лучше явно описать ситуацию в модели: несколько кабинетов, адаптированные группы, исправленная вместимость или отдельное событие. Оставленное намеренно оповещение должно быть решением, известным команде, а не постоянным шумом.
Инструкция
- Откройте диагностику расписания.
- При необходимости отфильтруйте по уровню, подразделению, площадке, объекту или типу проблемы.
- Сначала устраните блокирующие конфликты.
- Откройте описание проблемы, чтобы увидеть, какие занятия и ресурсы в неё вовлечены.
- Исправьте занятие, ограничение или модель.
- Запустите диагностику или формирование расписания заново, чтобы убедиться, что проблема исчезла.