Удаление и связи

Почему запись справочника не удаляется, что означают счётчики связей и где искать нагрузки и уроки, которые держат запись.

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

Где находится

Боковое меню → «Справочники» → «Классы», «Предметы», «Учителя», «Кабинеты» или «Типы занятий» → меню строки (три точки в конце строки) → «Удалить запись». Деления удаляются на вкладке «Деления» внутри «Классов», корпуса — на вкладке «Корпуса» внутри «Кабинетов».

Проверить, можно ли удалить запись

  1. Откройте нужный справочник, например «Справочники» → «Предметы».
  2. Откройте меню строки и выберите «Удалить запись». Заголовок окна будет «Удалить предмет?» (для класса — «Удалить класс?», для учителя — «Удалить учителя?»).
  3. Дождитесь, пока окно посчитает связи, и прочитайте цветную плашку вверху.
  4. Посмотрите на низ окна. Кнопки «Отмена» и «Удалить» означают, что удаление разрешено, а одинокая кнопка «Закрыть» — что удалить сейчас нельзя.
  • Зелёная плашка «Предмет можно удалить» означает, что связей нет. Её текст: «Уроков, нагрузок, замен и инцидентов, которые блокируют удаление, не найдено.».
  • Жёлтая плашка «Удаление заблокировано» означает, что запись занята. Её текст: «Предмет используется в расписании, нагрузках, заменах или инцидентах. Уберите связи перед удалением.». В других справочниках плашка называет свою запись: «Класс используется…», «Учитель используется…» и так далее.
  • Над кнопками «Отмена» и «Удалить» стоит предупреждение «Обратите внимание, что восстановить данные после удаления будет невозможно.».

Прочитать счётчики связей

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

СчётчикЧто считаетОсобенности
«Нагрузки»Строки нагрузки, которые ссылаются на запись, по всем расписаниям приложенияСчитается отдельно от уроков: удаление строки нагрузки не обнуляет «Уроки»
«Уроки»Уроки, расставленные в сеткеСчитается отдельно от нагрузок: пока в сетке стоит хотя бы один урок, запись занята, даже если нагрузку вы уже убрали
«Инциденты»Инциденты, заведённые на конкретные датыУ предмета и типа занятия всегда 0: инциденты заводятся на класс, учителя и кабинет
«Замены»Замены, заведённые на конкретные датыНенулевое значение блокирует удаление, но в блок «Где используется» замены не попадают

Кабинеты, указанные в карточках класса, предмета и учителя, ни на один счётчик не влияют. Это предпочтения для подбора кабинета, а не связь. Поэтому кабинет может удалиться без единого предупреждения, даже если он перечислен в десятке карточек. После удаления загляните в них и подберите замену.

Найти, где запись используется

Ниже счётчиков идёт блок «Где используется». Он появляется, если у записи есть хотя бы одна нагрузка или хотя бы один урок. В блоке перечислены расписания: слева название, справа строка вида «Нагрузки: 12 · Уроки: 30». Расписание без своего имени показано по номеру, например «Расписание #12».

  • Под названием расписания стоит серая плашка с его периодом и числом уроков за этот период. По ней видно, куда попали уроки. У расписания, которое держит запись только нагрузкой, такой плашки не будет, а в строке справа встанет «Уроки: 0».
  • Связи ищутся по всем расписаниям приложения, а не только по тому, которое открыто у вас сейчас. В списке может оказаться расписание прошлого полугодия.
  • Если запись держат только «Инциденты» и «Замены», блока «Где используется» в окне не будет: эти связи привязаны к датам, а не к расписанию.

Убрать связи и удалить запись

  1. Откройте расписание из блока «Где используется» и перейдите в раздел «Нагрузка», чтобы убрать строки нагрузки с этой записью.
  2. Снимите уроки в разделе «Сетка уроков» того же расписания.
  3. Снимите инциденты в разделе «Календарь» на вкладке «Инциденты», а замены на конкретные даты — там же, в календарной неделе.
  4. Повторите шаги для каждого расписания из списка. Затем снова откройте «Удалить запись» в справочнике: когда плашка станет зелёной, нажмите «Удалить».

Удалить несколько записей сразу

  1. Выделите нужные строки чекбоксами, как описано в разделе «Выбрать несколько записей» страницы Таблицы, поиск и фильтры.
  2. В панели внизу экрана нажмите иконку корзины с подсказкой «Удалить» — откроется окно проверки для всей выборки сразу.
  3. Разверните блок «Какие классы заблокированы» (у предметов — «Какие предметы заблокированы» и так далее). По каждой записи там показаны её связи и список расписаний.
  4. Нажмите «Закрыть», снимите чекбоксы с заблокированных строк и повторите удаление для оставшихся.
  • Дословный текст в окне зависит от справочника. У классов, учителей, кабинетов и типов занятий это «Выбрано записей: 3», а если что-то заблокировано, ещё и «Не удастся удалить записей: 1». У предметов формулировка склоняется: «Выбрано 3 предмета.» и «Не удастся удалить 1 предмет.».
  • Массовое удаление есть не везде. У корпусов нет ни чекбоксов, ни панели выбора, на вкладке «Деления» его тоже нет. В обоих местах записи удаляются по одной через меню строки.

Удалить деление или корпус

Деление удаляется на вкладке «Деления» внутри «Классов» пунктом «Удалить» в меню строки. Корпус — на вкладке «Корпуса» внутри «Кабинетов» пунктом «Удалить запись». Оба подтверждения выглядят как короткое меню с кнопкой «Да, удалить». Окна со счётчиками здесь нет.

  • Подтверждение «Удалить деление?» поясняет: «Группы деления будут удалены. Если они используются в нагрузках, уроках или заменах, удаление будет отклонено.». Если группы заняты, появится предупреждение «Деление нельзя удалить, пока его группы используются в расписаниях, нагрузках или заменах», и строка останется на месте.
  • Такая же проверка срабатывает при редактировании деления. Уменьшаете количество групп, а лишние уже заняты — приложение откажет предупреждением «Деление нельзя изменить: удаляемые группы используются в расписаниях, нагрузках или заменах».
  • Подтверждение «Удалить корпус?» предупреждает: «Кабинеты, привязанные к корпусу, останутся без корпуса.». Сами кабинеты не удаляются, у них очищается поле «Корпус».

Если что-то выглядит не так

  • В окне удаления вообще нет кнопки «Удалить» — только «Закрыть».
    • Почему: Кнопка не отключается, а скрывается. Приложение нашло хотя бы одну связь, и плашка вверху показывает «Удаление заблокировано».
    • Что делать: Не ищите кнопку. Читайте счётчики «Нагрузки», «Уроки», «Инциденты», «Замены» и блок «Где используется», снимайте связи там и возвращайтесь в справочник.
  • Кнопка «Удалить» была, вы её нажали, а запись осталась в таблице, и сверху появилось предупреждение «Предмет нельзя удалить, пока он используется в расписании, нагрузках, заменах или инцидентах».
    • Почему: Перед фактическим удалением связи проверяются ещё раз. Если кто-то из коллег успел поставить урок, пока окно было открыто, удаление отклоняется.
    • Что делать: Окно остаётся открытым с обновлёнными счётчиками. Посмотрите, какое расписание добавилось в блок «Где используется», и уберите новую связь.
  • Из десяти отмеченных записей заблокирована одна, но кнопки «Удалить» нет ни для одной.
    • Почему: Массовое удаление работает по принципу «всё или ничего». Строка «Не удастся удалить записей: 1» означает, что не будет удалена вся выборка.
    • Что делать: Нажмите «Закрыть», снимите чекбоксы с записей из блока «Какие … заблокированы» и повторите удаление для оставшихся.
  • Вместо счётчиков показано «Не удалось проверить зависимости» и кнопка «Повторить».
    • Почему: Данные о связях не загрузились, поэтому приложение не может гарантировать безопасность удаления.
    • Что делать: Нажмите «Повторить». Пока проверка не прошла, кнопки «Удалить» не будет — это защита, а не ошибка.
  • Корпус удалился сразу после «Да, удалить», без окна со счётчиками.
    • Почему: Корпуса — единственный справочник без проверки связей: они не участвуют в нагрузке и уроках напрямую.
    • Что делать: Перед удалением убедитесь, что готовы потерять привязку кабинетов к корпусу. У них очистится поле «Корпус», а заданное время перемещения между корпусами перестанет учитываться.

Дальше

  • Нагрузка — где убрать строки нагрузки, которые держат запись.
  • Сетка уроков — где снять уроки того же расписания.
  • Инциденты — где закрыть инциденты и замены на конкретные даты.
  • Корпуса — что ещё завязано на корпус, кроме поля «Корпус» у кабинета.