# Содержание — пользовательская документация Omniscol Canonical Omniscol user documentation, generated from the maintained `help/ru/` corpus. This is the authoritative reference and supersedes any older PDF manual. Authoring directives (UI labels, i18n strings, feature gating) are resolved to their real ru wording. Internal cross-references link to `#page-` anchors within this file. Interactive step-by-step walkthroughs are omitted. ## Contents **1. Начало работы** - [1.1 Что такое Omniscol?](#page-overview.what-is-omniscol) - [1.2 Общая философия Omniscol](#page-overview.philosophy) - [1.3 Обзорный тур за пять минут](#page-overview.quick-tour) - [1.4 Архитектура, модули и роли](#page-overview.architecture-and-roles) - [1.5 Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - [1.6 Выбор типа расписания: недельное, цикл, календарь](#page-overview.timetable-modes) - [1.7 Первый вход](#page-getting-started.first-login) - [1.8 Настройка аккаунта школы](#page-getting-started.setup-school) - [1.9 Приглашение и активация пользователей](#page-getting-started.inviting-users) - [1.10 Подготовка данных к массовому (пакетному) импорту](#page-getting-started.preparing-data) - [1.11 Пошаговое знакомство с системой (6 шагов модуля «Главная страница»)](#page-getting-started.onboarding-tour) **2. Основные понятия** - [2.1 Организация данных: дисциплины, преподаватели, классы, расписание](#page-core-concepts.data-model) - [2.2 Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [2.3 Разделение класса](#page-core-concepts.class-divisions) - [2.4 Совмещение групп](#page-core-concepts.alignments) - [2.5 Группы групп](#page-core-concepts.groups-of-groups) - [2.6 Иерархия групп: родительские и дочерние группы, унаследованные ограничения](#page-core-concepts.group-hierarchy) - [2.7 Свободные группы](#page-core-concepts.free-groups) - [2.8 Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types) - [2.9 Сложные занятия: чередующиеся, сдвоенные, связанные, совместные](#page-core-concepts.complex-lessons) - [2.10 Подразделения, площадки, кабинеты, ресурсы, несколько кабинетов](#page-core-concepts.sites-rooms-resources) - [2.11 Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) - [2.12 Специализации кабинетов](#page-core-concepts.classroom-specializations) - [2.13 Доступность и временные ограничения преподавателей](#page-core-concepts.wishes-and-availability) - [2.14 Временные ограничения: классы, курсы, группы, кабинеты и временная сетка](#page-core-concepts.time-constraints) - [2.15 Учебный год, чередование недель, каникулы](#page-core-concepts.school-year) - [2.16 Шкала времени и навигация по периодам](#page-core-concepts.timeline-navigation) - [2.17 Поиск и фильтры в списках](#page-core-concepts.search-and-filter) - [2.18 Совместная работа администраторов](#page-core-concepts.collaboration) **3. Составление расписания (модуль «Управление расписанием»)** - [3.1 Обзор модуля «Управление расписанием»](#page-timetables.overview) - [3.2 Что нужно для создания расписания](#page-timetables.prerequisites) - [3.3 Режим календаря — расширенные опции](#page-timetables.calendar-mode) - [3.4 Доступность и ограничения в режиме календаря](#page-timetables.calendar-wishes) - [3.5 Временные окна](#page-timetables.date-windows) - [3.6 Шаг 1 — Общие параметры](#page-timetables.general-settings) - [3.7 Шаг 2 — Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [3.8 Шаг 3 — Назначить преподавателей](#page-timetables.assigning-teachers) - [3.9 Шаг 4 — Создание классов и их групп](#page-timetables.creating-classes) - [3.10 Шаг 5 — Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) - [3.11 Шаг 6 — Распределить часы и создать занятия](#page-timetables.hour-distribution) - [3.12 Политика распределения часов](#page-timetables.distribution-policy) - [3.13 Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) - [3.14 Шаг 6а — Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [3.15 Шаг 7 — Автоматическое формирование расписания](#page-timetables.generation) - [3.16 Шаг 8 — Публикация расписания](#page-timetables.publication) - [3.17 Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [3.18 Ручное размещение занятий](#page-timetables.manual-placement) - [3.19 Редактирование занятия](#page-timetables.lesson-edit) - [3.20 Занятия и классы вне сетки](#page-timetables.off-grid-lessons) - [3.21 Блокировка положения занятия](#page-timetables.lesson-lock) - [3.22 Обнаружение и устранение конфликтов (при формировании расписания)](#page-timetables.conflicts) - [3.23 Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) - [3.24 Визуализировать, копировать, преобразовать расписание](#page-timetables.visualize-duplicate) - [3.25 Подготовка к следующему учебному году](#page-timetables.next-school-year) **4. Сводная панель** - [4.1 Обзор модуля «Сводная панель»](#page-dashboard.overview) - [4.2 Работа с таблицами и графиками](#page-dashboard.tools-and-filters) - [4.3 Статистика преподавателей](#page-dashboard.teachers) - [4.4 Статистика кабинетов](#page-dashboard.classrooms) - [4.5 Статистика по дисциплинам](#page-dashboard.subjects) - [4.6 Статистика по классам](#page-dashboard.classes) - [4.7 Статистика по ученикам и ресурсам](#page-dashboard.students-resources) **5. Ежедневное использование (модуль «Расписание»)** - [5.1 Просмотр и фильтрация расписаний](#page-schedules.consult-and-filter) - [5.2 Отображение расписаний: сетка, список, таблица, планирование, месяц, параллельный просмотр](#page-schedules.schedule-display) - [5.3 Разовые изменения опубликованного расписания](#page-schedules.ad-hoc-changes) - [5.4 Разовые события (вне расписания)](#page-schedules.events) - [5.5 Печать и общий доступ](#page-schedules.print-and-export) - [5.6 Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) **6. Отсутствия и замещения** - [6.1 Обзор модуля «Управление отсутствиями»](#page-absences.overview) - [6.2 Как объявить об отсутствии (администратор / преподаватель / ученик)](#page-absences.declaring) - [6.3 Политики замещений](#page-absences.substitution-policies) - [6.4 Разовое замещение занятия](#page-absences.single-lesson-replacement) - [6.5 Многодневные отсутствия](#page-absences.multi-day) - [6.6 Отсутствия классов и учеников](#page-absences.class-and-student-absences) - [6.7 Контроль и экспорт отсутствий](#page-absences.statistics) **7. Управление персоналом** - [7.1 Обзор модуля «Управление персоналом»](#page-staffing.overview) - [7.2 Построение сетки дежурств](#page-staffing.building-grids) - [7.3 Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [7.4 Назначение сотрудников](#page-staffing.planner) - [7.5 Создание графиков дежурств и общий доступ к ним](#page-staffing.roster) **8. Администрирование** - [8.1 Пользователи и роли](#page-admin.users-and-roles) - [8.2 Управление администраторами](#page-admin.admins) - [8.3 Настраиваемые роли администрирования](#page-admin.customroles) - [8.4 Области планирования](#page-admin.planning-domains) - [8.5 Управление преподавателями](#page-admin.teachers) - [8.6 Управление учениками](#page-admin.students) - [8.7 Управление сотрудниками](#page-admin.staff) - [8.8 Управление дисциплинами (официальными и собственными)](#page-admin.subjects) - [8.9 Типы занятий](#page-admin.lesson-types) - [8.10 Учебный год и каникулы](#page-admin.school-year) - [8.11 Общие параметры школы](#page-admin.parameters) - [8.12 Расширенные параметры и персонализация](#page-admin.advanced-parameters) - [8.13 Ограничения видимости и входа](#page-admin.visibility-restrictions) - [8.14 Второй фактор аутентификации (MFA)](#page-admin.second-factor) - [8.15 Импорт и экспорт](#page-admin.import-export) - [8.16 Точки резервного копирования](#page-admin.snapshots) - [8.17 Журналы активности (логи)](#page-admin.logs) **9. Интеграции** - [9.1 Обзор интеграций](#page-integrations.overview) - [9.2 Как устроен Omniscol — один API, один источник истины](#page-integrations.architecture) - [9.3 iCal — подписка и динамическая ссылка](#page-integrations.ical) - [9.4 API Omniscol — токены аутентификации](#page-integrations.api-tokens) - [9.5 OAuth2 / OIDC — подключение сервиса к Omniscol](#page-integrations.oauth-server) - [9.6 Настройка API: переопределение конечных точек и вебхуки](#page-integrations.api-customization) - [9.7 Полная модель данных: сущности JSON, связи и онтология](#page-integrations.data-model-full) - [9.8 Расширенные запросы — фильтрация, проекция и постраничный вывод в API](#page-integrations.advanced-queries) - [9.9 API занятий — получение занятий на любую дату](#page-integrations.lessons-api) - [9.10 MCP — подключение внешнего ИИ-агента к Omniscol](#page-integrations.mcp) - [9.11 Встроенный ИИ-ассистент](#page-integrations.ai-assistant) - [9.12 OIDC / SSO — вход через поставщика удостоверений](#page-integrations.oauth2) - [9.13 Синхронизация с внешними системами (ERP)](#page-integrations.extsync) - [9.14 OneRoster (1.2 и расширенные группы)](#page-integrations.oneroster) - [9.15 Связанные учётные записи и общие ресурсы](#page-integrations.linked-accounts) - [9.16 Коннектор Edusign](#page-integrations.edusign) **10. Порталы** - [10.1 Портал ученика](#page-portal.student-portal) - [10.2 Портал преподавателя](#page-portal.teacher-portal) - [10.3 Гостевой портал (публичные ссылки)](#page-portal.guest-portal) - [10.4 Публичные ссылки общего доступа](#page-portal.share-links) **11. Информационные панели** - [11.1 Настройка информационной панели для холла или коридора](#page-panels.lobby-panel) - [11.2 Настройка информационной панели у кабинета](#page-panels.room-panel) - [11.3 Визуальная настройка информационных панелей](#page-panels.customization) **12. Миграция с другой программы** - [12.1 Переход с другого программного обеспечения — обзор](#page-migration.overview) - [12.2 Переход с Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [12.3 Переход с EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [12.4 Переход с aSc Timetables](#page-migration.from-asc) - [12.5 Миграция из ADE / ADE Campus](#page-migration.from-ade) - [12.6 Миграция из самодельной таблицы Excel](#page-migration.from-spreadsheet) **13. Особенности высшего образования** - [13.1 Особенности высшего образования — обзор](#page-higher-ed.overview) - [13.2 Учебные периоды, когорты, программа обучения, траектории](#page-higher-ed.sessions-and-tracks) - [13.3 Внешние преподаватели (почасовики, приглашённые лекторы)](#page-higher-ed.external-faculty) - [13.4 Дублирующие залы и экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams) - [13.5 Совместное преподавание и поочерёдное участие преподавателей](#page-higher-ed.co-teaching) - [13.6 Режим календаря для неповторяющихся форм обучения](#page-higher-ed.calendar-mode) - [13.7 Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links) - [13.8 Несколько площадок в высшем образовании](#page-higher-ed.multi-site) **14. Особенности начального / среднего образования (школа)** - [14.1 Особенности начальной и средней школы — обзор](#page-k12.overview) - [14.2 Половины класса и дисциплины по выбору с разделением](#page-k12.half-classes-and-options) - [14.3 Самоподготовка под присмотром (школа)](#page-k12.study-halls) - [14.4 Разновозрастные классы](#page-k12.multi-grade-classes) **15. Примеры сценариев использования** - [15.1 Сценарии использования — обзор](#page-use-cases.overview) - [15.2 Сценарии — Создание и формирование расписания](#page-use-cases.creation-and-generation) - [15.3 Сценарии — Размещение и изменение в повседневной работе](#page-use-cases.placement-and-modification) - [15.4 Сценарии — несколько групп, несколько кабинетов, несколько преподавателей](#page-use-cases.multi-entities) - [15.5 Сценарии — Массовые операции](#page-use-cases.mass-operations) - [15.6 Сценарии — Экзамены и события](#page-use-cases.exams-and-events) - [15.7 Сценарии — отсутствия и замещения](#page-use-cases.absences-and-substitutions) - [15.8 Сценарии — отчётность и статистика](#page-use-cases.reporting-and-stats) - [15.9 Сценарии — Распространение и общий доступ](#page-use-cases.diffusion-and-sharing) **16. FAQ — часто задаваемые вопросы** - [16.1 FAQ — общие вопросы](#page-faq.general) - [16.2 FAQ — Создание расписаний](#page-faq.timetables) - [16.3 FAQ — Импорт данных](#page-faq.data-import) - [16.4 FAQ — Поведение алгоритма формирования расписания](#page-faq.solver-behavior) - [16.5 FAQ — Отображение и интерфейс](#page-faq.display-and-ux) - [16.6 FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) - [16.7 FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) - [16.8 FAQ — Безопасность и хостинг](#page-faq.security-and-hosting) - [16.9 FAQ — Тарифы и лицензии](#page-faq.pricing-and-licenses) - **[Глоссарий](#chapter-glossary)** (55 terms) - **[Index](#chapter-index)** --- ## 1. Начало работы ### 1.1 Что такое Omniscol? *Source: `help/ru/overview/what-is-omniscol.md` · id: overview.what-is-omniscol · Updated: 2026-06-13* Omniscol — это **онлайн-программа для планирования с учётом ограничений**, рассчитанная на учебные заведения от начальной школы до высшего образования и дополнительного профессионального образования. Она позволяет создавать недельные, циклические и календарные расписания (с датами, без повторения) и публиковать их для соответствующих пользователей. Продукт сочетает ручной ввод, диагностику конфликтов и автоматическое формирование расписания [алгоритмом](#page-glossary.solver). Подробности по предметной области изложены на специализированных страницах. #### Как это работает в целом Стандартный порядок работы с Omniscol: ``` 1. Ввести данные (пользователи, дисциплины, площадки/кабинеты, классы) ↓ 2. Настроить расписание (объёмы часов, совмещения, ограничения) ↓ 3. Сформировать или разместить (автоматическое формирование или ручное размещение) ↓ 4. Проверить и урегулировать (конфликты, корректировки, блокировки) ↓ 5. Опубликовать (его занятия попадают во все остальные модули) ↓ 6. Работать с расписанием (ежедневные изменения, отсутствия, замещения) ``` У каждого этапа есть свой модуль. Этапы с 1 по 5 выполняются эпизодически (перед началом учебного года, семестра или перестройкой расписания). Этап 6 — это повседневная работа. #### Типы расписаний Omniscol поддерживает **три типа** расписаний. Доступность каждого типа зависит от подключённого плана. - **Недельное** — повторяющиеся занятия в рамках типовой недели, с чередованием недель A/B или без него. Это стандартный случай для начальной и средней школы. Доступно на всех планах. - **Циклическое** — повторяющиеся занятия в рамках цикла из N пронумерованных дней (как правило, 6 или 8), отличающегося от недели из 5 или 7 дней. Часто встречается в североамериканских системах. Доступно на аккаунтах Премиум. - **Календарь** — занятия с датами, назначаемые по одному, без повторения. Основной режим высшего образования и дополнительного профессионального образования. Доступно на аккаунтах Премиум. На аккаунте Премиум можно использовать все три типа. Функция [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables), включённая в Премиум, позволяет даже сочетать их на одних и тех же периодах. Как выбрать подходящий тип, см. [Выбор типа расписания](#page-overview.timetable-modes). #### Философия: сначала данные Omniscol исходит из того, что расписание — это не таблица для заполнения, а **задача оптимизации с ограничениями**. Программа построена на пяти принципах: 1. **Данные раньше расчёта**: площадки, кабинеты, преподаватели, классы, группы, дисциплины и объёмы часов должны быть достоверными до запуска формирования расписания. 2. **Разделение структуры и повседневной работы**: составление расписания и управление изменениями текущего дня — разные виды деятельности с разными интерфейсами. 3. **Явные ограничения**: невозможные случаи отображаются в виде [конфликтов](#page-glossary.conflict) или неразмещённых занятий; прикладные решения остаются за пользователем. 4. **Черновики и версии**: неопубликованное расписание можно тестировать, дублировать или перестраивать, не меняя то, что видят пользователи. 5. **Контроль над данными**: экспорт в JSON или во внутреннюю электронную таблицу, обратимость. Справочная страница: [Общая философия Omniscol](#page-overview.philosophy). #### Входные и выходные данные **Ввод** данных в Omniscol возможен так: - поштучный ввод в интерфейсе; - массовый импорт копированием и вставкой из электронной таблицы, с проверкой перед применением; - сопровождаемая миграция, в зависимости от того, какие экспортные данные доступны в исходной системе; - коннекторы к ERP и информационным системам (Aurion, Auriga, Edusign; новая система добавляется по проекту), см. [синхронизация с внешними системами](#page-integrations.extsync); - [API Omniscol](#page-integrations.api-tokens) — в зависимости от прав и опций аккаунта; - [OIDC / SSO](#page-integrations.oauth2) — в зависимости от договора и настроек. **Вывод** данных: - адаптивный веб-просмотр; - подписки [iCal](#page-integrations.ical); - подписанные публичные ссылки с ограниченным сроком действия; - информационные панели; - экспорт в Excel / CSV / PDF / JSON, в зависимости от экрана; - документированный REST API, объём доступа к которому ограничен разрешёнными эндпоинтами и опциями; - [MCP](#page-integrations.mcp) для совместимых ИИ-агентов на аккаунтах Премиум. #### Модульная организация Программа состоит из модулей двух семейств. ##### Модули повседневной работы - **Главная страница** — сводка на текущий день и чек-лист для начала работы. - **Расписание** — просмотр и разовые изменения. - **Сводная панель** — статистика загруженности и учебной нагрузки. - **Управление отсутствиями и замещения** — объявления о недоступности и назначение замещающих. ##### Модули настройки - **Управление расписанием** — создание, настройка, формирование и публикация расписаний. - **Администрирование** — пользователи, дисциплины, учебные годы, параметры, импорт / экспорт и интеграции. - **Управление персоналом** — планирование работы персонала по задачам, если модуль подключён; его можно также приобрести как отдельное предложение. #### Роли и доступ Доступ на стороне школы определяют четыре профиля. **Администраторы** (ответственные за планирование, руководство, ИТ-служба) настраивают аккаунт и составляют расписания. Профиль **Преподаватели**: просмотр своего расписания, ввод доступности и объявление об отсутствии. Профиль **Ученики**: просмотр личного расписания. Роль **Сотрудник** (воспитательная служба, дежурные) задействуется, когда используется модуль Управление персоналом. Кроме того, подписанные ссылки общего доступа открывают доступ без аккаунта к определённому объёму данных. Роли можно совмещать: преподаватель, участвующий в планировании, может иметь одновременно роль Преподавателя и роль Администратора. Подробно роли описаны на странице [Архитектура и роли](#page-overview.architecture-and-roles). Опция [Настраиваемые роли](#page-admin.customroles) позволяет ограничить права учётной записи администратора по модулям и по отдельным операциям. #### Планы и опции Omniscol предлагает несколько планов: **Lite** (самозанятые, индивидуальные преподаватели, очень небольшие учреждения), **Staffing** (только модуль Управление персоналом), **Standard** (обычное учебное заведение), **Standard Plus** (Standard + Управление персоналом) и **Премиум** (высшее образование, дополнительное профессиональное образование, сложные организации с несколькими площадками). Некоторые функции входят в Премиум в базовой комплектации — циклический и календарный типы расписаний, доступность в режиме календаря, несколько одновременно опубликованных расписаний — тогда как другие включаются по договору (точки резервного копирования, журналы, совместная работа в реальном времени, связанные аккаунты, настраиваемые роли…). Подробности о планах, опциях и порядке их подключения собраны на странице [Тарифные планы и опции Omniscol](#page-overview.plans-and-options). #### Чем Omniscol отличается - **Автоматическое формирование**: алгоритм размещает занятия, соблюдая жёсткие ограничения и оптимизируя пожелания. - **Ручной контроль**: пользователь всегда может просмотреть, переместить, заблокировать или урегулировать спорный случай. - **Распространение по разным каналам**: веб, iCal, экспорт, публичные ссылки и информационные панели. - **Отчётность**: сводные панели и экспорт для контроля часов, загрузки кабинетов и показателей, нужных для аудита. #### Архитектура и хостинг Архитектура, безопасность и хостинг описаны на страницах [Архитектура и роли](#page-overview.architecture-and-roles) и [FAQ — Безопасность и хостинг](#page-faq.security-and-hosting). #### Что дальше - Для интерактивного обзора: [Обзорный тур за пять минут](#page-overview.quick-tour). - Чтобы настроить аккаунт: [Первый вход](#page-getting-started.first-login), затем [Настройка аккаунта школы](#page-getting-started.setup-school). - Чтобы разобраться в понятиях предметной области: [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups). - Чтобы создать первое расписание: [Модуль Управление расписанием](#page-timetables.overview). - Ответы на частые вопросы: [FAQ — общие вопросы](#page-faq.general). #### См. также - [Общая философия Omniscol](#page-overview.philosophy) - [Архитектура и роли](#page-overview.architecture-and-roles) - [Выбор типа расписания: недельное, цикл, календарь](#page-overview.timetable-modes) - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - [Обзорный тур за пять минут](#page-overview.quick-tour) ### 1.2 Общая философия Omniscol *Source: `help/ru/overview/philosophy.md` · id: overview.philosophy · Updated: 2026-09-29* Прежде чем переходить к функциям, стоит назвать несколько принципов, на которых строится работа в Omniscol и которые объясняют, почему программа принимает одни решения, а не другие. #### Профессиональный контекст Расписание — это не просто таблица, которую нужно заполнить. Это **задача оптимизации при ограничениях**: - ограничений много, и они часто неявные; - ограничения иногда противоречат друг другу; - высокая практическая значимость: начало учебного года, семестр или период должны пройти без сбоев. Omniscol задуман как **помощник в планировании при ограничениях**: он ускоряет работу, указывает на невыполнимое и оставляет решение по существу за пользователем. #### Omniscol и другие программы учебного заведения | Область | Что она охватывает | С Omniscol | | --- | --- | --- | | Школьная информационная система, SIS / SMS, ERP учебного заведения | Зачисление, личные дела учеников, оценки и табели успеваемости, дисциплина, журнал, дневник, общение с семьями, выставление счетов и финансы, отчётность перед финансирующими организациями (OPCO во Франции) | Специализированные программы, к которым Omniscol подключается. У партнёров Omniscol запланированные занятия автоматически передаются в их программу. | | Образовательная среда / LMS | Обучение, учебные материалы, общение | Подключаются через API, [OneRoster](#page-integrations.oneroster), iCal или единый вход. | | Учёт посещаемости | Присутствие, подписи | С коннектором [Edusign](#page-integrations.edusign) Omniscol отправляет свои занятия и получает отмеченную посещаемость. | | Omniscol | Организация времени: кто, что, где, когда | Его основная задача — для учебных заведений любого типа по всему миру. | Omniscol занимается расписанием, а для остального работает со специализированными разработчиками, нередко местными партнёрами. Он взаимодействует с их программами так: импорт и экспорт, iCal, документированный REST API, OIDC / SSO по договору, [синхронизация с внешними системами](#page-integrations.extsync). Учебное заведение сохраняет доступ к своим данным и их защиту благодаря полному экспорту, отзываемым токенам доступа и правам, назначаемым по ролям. См. также [integrations.partners](#page-integrations.partners). #### Пять основополагающих принципов ##### 1. Сначала данные, потом расчёт Надёжное расписание невозможно сформировать без корректных данных: площадок, кабинетов, преподавателей, классов, групп, дисциплин, почасовой нагрузки, доступности и ограничений. ##### 2. Структура и повседневная жизнь разделены Составление расписания и жизнь с опубликованным расписанием — это два разных занятия. Первое выполняется в основном в разделе [Управление расписанием](#page-timetables.overview), второе — в разделах [Расписание](#page-schedules.consult-and-filter), [Управление отсутствиями](#page-absences.overview) и [Сводная панель](#page-dashboard.overview). ##### 3. Жёсткие ограничения и ограничения оптимизации Одни ограничения делают расписание недопустимым и считаются строгими: преподаватель в один момент времени находится только в одном месте, у класса нет наложений (кроме групп, образующих разделение), обычный кабинет отводится только под одно занятие, а также периоды недоступности, вместимость, материальные ресурсы и перемещения между площадками. Другие ограничения служат для улучшения решения: нежелательные периоды доступности, окна, равномерность учебных дней, педагогический порядок дисциплин, максимум или минимум часов, число дней присутствия. Они оцениваются как штрафы, которые алгоритм формирования расписания стремится уменьшить. ##### 4. Черновики и версии Неопубликованное расписание не влияет на то, что видят пользователи. Вы можете дублировать его, тестировать, сравнивать, блокировать некоторые занятия, перезапускать формирование и публиковать расписание только тогда, когда результат вас устраивает. Точки резервного копирования, если они включены, дают дополнительную защиту: можно вернуться назад или восстановить часть данных. ##### 5. Данные остаются под контролем пользователя Omniscol позволяет выполнить полный экспорт в JSON и прикладной экспорт на разных экранах, а также обеспечивает обратимость данных. Автоматизация не заменяет решение человека. #### Конфликты — это информация, а не ошибка При ручном вводе Omniscol сообщает о конфликтах, но решение остаётся за пользователем. Это удобно в реальных особых случаях: кабинет для ученика с дополнительным временем на экзамене, сознательное превышение расчётной вместимости, назначение кабинета вне специализации по местной причине. При автоматическом формировании алгоритм намеренно не создаёт серьёзных наложений. Если полное решение найти не удалось, он сохраняет лучшее рассчитанное расписание, а занятия, которые невозможно разместить, оставляет в списке неразмещённых стикеров. [Блокировка занятия](#page-timetables.lesson-lock) позволяет удержать нужное размещение: при следующем формировании остальные занятия подстраиваются вокруг этой блокировки. #### Несколько расписаний как принцип моделирования Omniscol изначально поддерживает **несколько расписаний**. Для одного учебного заведения может существовать сразу несколько расписаний: - разные учебные годы; - семестры или периоды; - логическое разделение по подразделениям, кафедрам или ступеням обучения; - сочетание разных типов, например недельное повторяющееся расписание и календарное расписание с датами. В Premium несколько расписаний можно [публиковать параллельно](#page-timetables.multiple-active-timetables); для некоторых аккаунтов Standard возможна и специальная активация. Бизнес-школа может вести подготовительную программу в двух недельных расписаниях — по одному на каждый семестр, основную программу в неповторяющемся календарном расписании и одновременно программу ExecMBA на 18 месяцев, которая начинается и заканчивается не в одно время с остальными расписаниями и учебным годом. В Omniscol каждое расписание можно создавать отдельно, но при планировании учитывать конфликты между расписаниями, а затем опубликовать всё параллельно и одновременно, так что итог будет сводным представлением, прозрачным для конечных пользователей. #### ИИ-оптимизация и внешние агенты [Алгоритм формирования расписания](#page-glossary.solver) — это ИИ для оптимизации, **нейросимволическая метаэвристика Монте-Карло**. Он перебирает варианты размещения при ограничениях, ищет допустимое решение, а затем оптимизирует штрафы, причём работает очень быстро (например, менее минуты для средней школы с 16 классами). Если допустимое решение найти не удаётся, система ослабления ограничений разумно жертвует частью занятий и всё равно оптимизирует результат. Omniscol — AI-first компания, выросшая из долгого этапа исследований и разработок в области «deeptech». В Omniscol есть и другие алгоритмы символьного ИИ: они проверяют конфликты, обнаруживают несогласованность настроек, предлагают улучшения или предупреждают о проблемах конфигурации, заранее отбирают лучшее решение из списка предложений, а также автоматически подбирают подмножеству занятий подмножество кабинетов — и всё это прямо в браузере, мгновенно. Omniscol также предоставляет инструменты API совместимым агентам через [MCP](#page-integrations.mcp), когда включены опция и права. Это позволяет общаться с Omniscol на естественном языке, расширять возможности графического интерфейса и получать нужные данные непосредственно с сервера Omniscol. Эти агенты действуют в пределах объёма доступа выданного токена; безопаснее всего использовать их для просмотра, а любое действие по записи должно проверяться пользователем. Сейчас лучший ИИ-агент для работы с Omniscol — Claude в версии Desktop. #### См. также - [Что такое Omniscol?](#page-overview.what-is-omniscol) - [Архитектура и роли](#page-overview.architecture-and-roles) - [Выбор типа расписания](#page-overview.timetable-modes) - [Конфликт](#page-glossary.conflict) - [Формирование](#page-glossary.solver) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) ### 1.3 Обзорный тур за пять минут *Source: `help/ru/overview/quick-tour.md` · id: overview.quick-tour · Updated: 2026-06-25* Этот обзорный тур за несколько минут проведёт вас по основным модулям Omniscol. Если вы впервые знакомитесь с программой, начните отсюда. #### Меню модулей слева Слева на каждом экране находится вертикальное меню со списком модулей, доступных для вашей роли. Сверху вниз, в порядке ежедневного использования: 1. **Главная страница** (значок [house]) — руководство по началу работы, пока ни одно расписание не опубликовано, а затем персональный начальный экран. 2. **Расписание** — ваш основной экран в повседневной работе. 3. **Сводная панель** — статистика. 4. **Управление отсутствиями** — управление отсутствиями и замещениями. 5. **Управление расписанием** — создание расписаний и их структура. 6. **Администрирование** — пользователи, дисциплины, параметры. В зависимости от вашего договора могут появиться и другие модули, например **Управление персоналом** (графики задач и надзора, для сотрудников, отвечающих за надзор). #### Шкала времени В верхней части большинства экранов **шкала времени** (по неделям или по месяцам) отображает учебный год. С её помощью вы перемещаетесь по датам и сразу видите периоды, на которые опубликованы расписания (цветные недели), и каникулы (серые недели). У шкалы времени много настроек и вариантов использования. Её можно переключить на отображение по месяцам или годам (или явно задать период от даты до даты). В модуле «Управление расписанием» она окрашивается по опубликованным расписаниям, а пробелы — это незакрашенные недели. Когда открыто расписание в режиме «Календарь», светло-синие отметки вверху показывают, где на отображаемых на экране видах планирования находятся занятия. Стрелки `◀` и `▶︎` по краям переключают учебные годы. #### Следуйте за гидом! Добро пожаловать в Omniscol. Этот обзор знакомит вас с модулями программы и показывает, как они связаны между собой. 1. **Кнопка справки** в правом верхнем углу открывает эту справку в любой момент на любом экране. Она знает, на каком экране вы находитесь, и предлагает наиболее подходящую страницу. Рядом находится кнопка аннотирования экрана: она показывает описание элементов на экране. 2. **Главная страница** (значок [house]): пока вы не опубликовали первое расписание, этот модуль ведёт вас шаг за шагом. Следуйте [инструкциям](#page-getting-started.setup-school), отмечайте выполненное и возвращайтесь, когда вам удобно. 3. **Расписание**: ежедневный просмотр. Все фильтры (класс, преподаватель, кабинет, группа, дисциплина, ученик). Несколько режимов отображения: стандартная сетка, список, таблица в стиле электронной таблицы, планирование, планирование по часам, день, месяц и сопоставление. Планирование появляется только после публикации первого расписания с размещёнными занятиями. 4. **Сводная панель**: статистика действующего (рабочего) расписания. Часы по преподавателям, классам, кабинетам и дисциплинам. Можно отфильтровать по периоду. Экспорт в CSV и Excel. API даёт ещё более подробные данные. 5. **Управление отсутствиями**: централизованное управление. Об отсутствии объявляют преподаватели или ученики (с подтверждением администрацией) либо сама администрация напрямую. Назначение замещающих отсутствующим преподавателям. Отсутствие класса (практика, экскурсия...). 6. **Управление расписанием**: создание самих расписаний. Площадки, классы, группы, преподаватели, дисциплины, курсы. Автоматическое формирование или ручная расстановка. Публикация, чтобы теоретическое расписание стало рабочим. 7. **Управление персоналом** (если модуль подключён): планирование работы дежурных (помощников по надзору). Определение задач и их особенностей, назначение сотрудников. Лист назначений для раздачи. 8. **Администрирование**: пользователи, дисциплины, учебные годы, параметры, импорт и экспорт. В основном в начале работы с аккаунтом. #### Что дальше - Чтобы настроить аккаунт с нуля, см. [Первый вход](#page-getting-started.first-login). - Чтобы разобраться в понятиях предметной области (класс, группа, разделение, совмещение и т. д.), см. [Понятия предметной области](#page-core-concepts.classes-and-groups). - Чтобы создать первое расписание, см. [Обзор модуля «Управление расписанием»](#page-timetables.overview). - Чтобы узнать, как Omniscol встраивается в вашу информационную систему, см. [Обзор интеграций](#page-integrations.overview). #### См. также - [Что такое Omniscol?](#page-overview.what-is-omniscol) - [Архитектура и роли](#page-overview.architecture-and-roles) ### 1.4 Архитектура, модули и роли *Source: `help/ru/overview/architecture-and-roles.md` · id: overview.architecture-and-roles · Updated: 2026-08-07* На этой странице кратко описаны архитектура приложения Omniscol и роли, которые видны на стороне школы. Точные договорные обязательства (доступность, резервное копирование, сроки хранения, мониторинг) определяются утверждёнными юридическими или коммерческими документами. #### Хостинг и надёжность Omniscol размещён в Европейском союзе, а именно на AWS Paris и Scaleway Paris. В продукте используются механизмы резервного копирования, мониторинга и логической изоляции учётных записей учебных заведений; подробности, применимые к конкретной учётной записи, зависят от договора и от соответствующей среды. Подробности для пользователей см. на странице [FAQ — Безопасность и хостинг](#page-faq.security-and-hosting). #### Архитектура программного обеспечения - **Веб-приложение**: приложение загружается один раз, затем экраны отображаются динамически, обмен идёт по REST/JSON (Single Page Application). - **CouchDB** как основная база данных. - **Redis** как база данных для синхронизации на стороне приложения и для логов. - **TypeScript** для интерфейса (webapp). - **Бэкенд на Node.js / Express**, управляющий внутренними движками (api, webapp, portal, panel, ical, mcp, oauth2 и др.). - **C++** для алгоритма формирования расписания, который выполняется на выделенных виртуальных машинах, запускаемых по требованию. #### Безопасность - **HTTPS** для коммуникаций, доступных извне. - **Cloudflare** как единственная точка входа (защита от DDoS-атак). - **Пароли предварительно хешируются на стороне клиента с помощью scrypt**, затем повторно хешируются и солятся на сервере. Они не хранятся и не передаются в открытом виде. - **Аутентификация JWT** с ключами подписи и коротким сроком действия; ротация или отзыв ключа могут сделать подписанные токены недействительными. - **[Ссылки общего доступа](#page-glossary.share-link)** подписаны, ограничены по сроку, привязаны к учётной записи, которая их создала, и становятся недействительными при смене пароля или деактивации этой учётной записи. - **[Токены API](#page-glossary.api-token)** с корневым ключом и производными токенами, скоупами эндпоинтов и сроками действия. - **OIDC / SSO** доступны в зависимости от договора и настроек учётной записи. - **Экспорт и внутренние резервные копии в формате JSON** для обратимости данных. #### Роли пользователей В Omniscol на стороне школы есть несколько ролей: | Роль | Типичное использование | | --- | --- | | Администратор | Ответственные за расписание, руководство, ИТ-служба | | Преподаватель | Преподаватели, лекторы, инструкторы | | Ученик | Ученики, студенты, обучающиеся | | Сотрудник | Воспитательная служба, дежурные, сотрудники надзора, если активен модуль Управление персоналом | | Ссылка общего доступа | Доступ по подписанной ссылке к точно заданному набору данных | Соответствие этих названий техническим идентификаторам ролей описано на странице [Пользователи и роли](#page-admin.users-and-roles). Один и тот же пользователь может **иметь несколько ролей**. Например, преподаватель, участвующий в составлении расписания, может одновременно иметь роли «Преподаватель» и «Администратор». Роль «Ссылка общего доступа» не соответствует обычной учётной записи пользователя. Это подписанные ссылки: веб-ссылки на расписание открывают его только для чтения, а некоторые целевые ссылки могут разрешать ограниченное действие, например ввод доступности преподавателя до даты истечения срока действия. Кроме того, существуют внутренние роли, предназначенные для команды Omniscol: администрирование платформы, перевод, коммерческая работа и партнёры-реселлеры. Некоторым из этих учётных записей разрешено входить в учётные записи школ в целях технического обслуживания. Тогда они действуют как суперадминистраторы школы, и у них больше возможностей, чем у администратора: импорт необработанных данных в базу данных, включение и отключение платных опций, вход от имени пользователя. Такой доступ вызывает заметные оповещения о входе, а его токены очень быстро истекают. Большие возможности налагают большую ответственность. > _Option: Настраиваемые роли_ #### Настраиваемые роли Опция [Настраиваемые роли](#page-admin.customroles) позволяет ограничить права учётной записи администратора по модулям и по операциям. Она позволяет делегировать часть администрирования, не предоставляя все глобальные права. Эта же опция открывает ещё один механизм — [области](#page-admin.planning-domains): роль ограничивает операции, а область ограничивает данные — какие классы, какие площадки и какие расписания может изменять планировщик. #### Модули Модули, видимые в стандартной учётной записи: - **Главная страница** (`home`) — стартовая страница и сводка дня. - **Расписание** (`schedules`) — просмотр и разовые изменения. - **Сводная панель** (`dashboard`) — статистика занятости и нагрузки. - **Управление отсутствиями** (`absences`) — объявления об отсутствии и замещения. - **Управление расписанием** (`timetables`) — составление, формирование и публикация расписаний. - **Администрирование** (`admin`) — пользователи, параметры, импорт / экспорт и интеграции. В зависимости от договора могут появиться и другие модули, в частности **Управление персоналом** для планирования задач воспитательной службы и надзора. #### Несколько школ Каждая школа логически изолирована на стороне сервера и работает в собственном домене. Данные одной школы не видны другим школам из приложения. Однако по запросу можно включить канал связи между отдельными учётными записями, чтобы обмениваться сведениями о конфликтах занятости кабинетов и преподавателей. Это очень полезно, когда здания используются совместно, или для группы школ, совместно использующих ресурсы. #### См. также - [Что такое Omniscol?](#page-overview.what-is-omniscol) - [Ознакомительный тур](#page-overview.quick-tour) - [Пользователи и роли](#page-admin.users-and-roles) - [Настраиваемые роли](#page-admin.customroles) - [Области](#page-admin.planning-domains) - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - [Безопасность и хостинг](#page-faq.security-and-hosting) ### 1.5 Тарифные планы и опции Omniscol *Source: `help/ru/overview/plans-and-options.md` · id: overview.plans-and-options · Updated: 2026-08-07* Omniscol продаётся по простой модели: **несколько тарифных планов**, **базовые функции Премиум**, отдельные **подключения по договору** и самостоятельное предложение **«Управление персоналом»**. Стоимость и точный состав зависят от договора с вашим учебным заведением. #### Тарифные планы | План | Для кого | Что включено | | --- | --- | --- | | **Lite** | Очень небольшие учебные заведения, независимые специалисты, частные преподаватели, тестирование | Формирование расписания и печать. **Без публикации, без учебных годов, без нескольких площадок, без ведения учеников**, ограниченное число ресурсов. Видимые модули: Управление расписанием и Администрирование в минимальной версии. | | **Staffing** | Учебные заведения, которым нужно только управление персоналом | Только модуль Управление персоналом: надзор, дежурства и сопровождение | | **Standard** | Обычное учебное заведение (школа, лицей), единая команда планирования, недельное расписание | Lite + публикация, учебные годы, несколько площадок, ведение учеников, ежедневное расписание, отсутствия, сводная панель, информационные панели, iCal, ограниченный API только для чтения | | **Standard Plus** | Учебные заведения, которым нужны Standard и модуль Управление персоналом | Standard + Управление персоналом | | **Премиум** | Высшее и дополнительное профессиональное образование, более сложные организации с несколькими площадками или несколькими траекториями обучения | Расписание недельного, циклического или календарного типа, доступность по датам, несколько параллельно опубликованных расписаний, больше параметров настройки (статус занятий, размещение вне сетки, разовые события, формат проведения занятий, ссылки на видеоконференции и т. д.), полный API с токенами API, MCP, OIDC / SSO, внешняя синхронизация, расширенные опции по договору (совместная работа, точки резервного копирования, настраиваемые роли). | Функции подключаются по-разному: - одни функции **входят в Премиум изначально** (режим календаря, доступность по календарю, несколько параллельно опубликованных расписаний); - другие **подключаются по вашему договору**, чаще всего на учётных записях Премиум; - несколько случаев можно **в порядке исключения подключить** на учётной записи Standard при конкретной потребности; - у модуля **«Управление персоналом»** также своя логика, поскольку его можно продавать отдельно. #### Самостоятельное предложение «Управление персоналом» Модуль Управление персоналом продаётся также **отдельно от остального Omniscol** для учебных заведений, которым нужно только управление надзором и сопровождением. В таком случае учётная запись содержит лишь модуль Управление персоналом, отсутствия сотрудников, которых можно назначать, и необходимые пользовательские экраны. Без расписания, без педагогической сводной панели, без информационных панелей. См. [Обзор модуля «Управление персоналом»](#page-staffing.overview). #### Подключения по договору | Функция | Описание | Подключение | | --- | --- | --- | | Настраиваемые роли | Настраиваемые роли с детальной матрицей прав. | По договору учётной записи | | Области планирования | Набор данных и связанные права, выдаваемые администратору, чтобы делегировать подразделение, направление подготовки или учебное заведение. | Учётные записи Премиум, по договору учётной записи | | Точки резервного копирования | Точки резервного копирования, сводка, восстановление и ротация в рамках квоты по договору, которую подключает Omniscol. | По договору учётной записи | | Совместная работа | Совместная работа администраторов, отображение присутствия в реальном времени в зависимости от настройки. | По договору учётной записи | | Журналы | Экран просмотра журналов с глубиной хранения, которую подключает Omniscol по договору. | По договору учётной записи | | Связанные учётные записи | Связь разных учётных записей Omniscol, чтобы делиться занятостью кабинетов, преподавателей или классов между учебными заведениями, у каждого из которых отдельный поддомен Omniscol. | По запросу, после согласования рамок | | Несколько параллельно опубликованных расписаний на учётной записи Standard | Исключительный случай для действительно раздельных школьных учётных записей (например, самостоятельная основная и старшая школа или школа с 1-го по 11-й класс). | Особое подключение с согласованием рамок и подходящим выставлением счетов | | Прямое распределение учеников по классам и группам в расписаниях | Обычно школы планируют, не имея точного списка учеников и их распределения. Они работают с классами и группами по ожидаемой расчётной численности, уточняя организационную логику; когда расписание готово, учеников (при необходимости) распределяют по классам и группам уже после этого. Однако есть и другой порядок работы, частый в учебных центрах: точный список учеников каждого класса и каждой группы нужен заранее, при составлении расписания; тогда Omniscol сам выводит логику отсутствия конфликтов между группами (взаимное исключение). Это меняет модель данных и способ работы, поэтому подключается только как опция командой Omniscol. | По запросу, после оценки конкретного способа планирования | | Управление персоналом | Модуль управления надзором и сопровождением (экзамены, дежурства). Продаётся также отдельно. | Отдельным предложением, в Standard Plus или по договору | | Дополнительные модули | Возможные дополнительные модули. | В зависимости от модуля и договора | #### Основные функции подробнее ##### Режим календаря Позволяет размещать занятия **по датам**, а не на типовой неделе. Эта функция **входит в Премиум изначально** и необходима для высшего образования, дополнительного профессионального образования и учебных центров. См. [Режим календаря](#page-glossary.calendar-mode). ##### Группы групп Сведение нескольких групп — одного класса или разных классов — в одну единицу, которую можно планировать целиком. **Доступно на всех учётных записях, независимо от плана**, и для всех типов расписания (недельного, циклического, календарного); отдельного подключения не требуется. См. [Группы групп](#page-core-concepts.groups-of-groups). ##### Несколько параллельно опубликованных расписаний Публикация нескольких расписаний одновременно на одни и те же недели с динамическим объединением. В Премиум это входит изначально. Omniscol может также в порядке исключения подключить это на некоторых учётных записях Standard или смешанных школьных учётных записях, когда это оправдано потребностью и выставлением счетов. См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). ##### Связанные учётные записи Связь нескольких учётных записей Omniscol, чтобы делиться занятостью общих ресурсов: преподавателей, кабинетов, зданий или классов, в зависимости от случая. Подключает Omniscol по запросу, так как нужно согласовать связываемые учётные записи и общие ресурсы. См. [Связанные учётные записи и общие ресурсы](#page-integrations.linked-accounts). ##### Настраиваемые роли Детальное ограничение прав учётной записи администратора — по каждому модулю, с выбором операций (просмотр / изменение / удаление) и отключением целого модуля одним щелчком. См. [Настраиваемые роли](#page-admin.customroles). ##### Области планирования Назначение администратору набора данных — подразделения, дисциплины, расписания, площадки, кабинеты, классы, группы — и прав, которые он в нём имеет. Каждый планировщик работает со своей частью, не затрагивая чужую, при этом чтение остаётся открытым. См. [Области](#page-admin.planning-domains). ##### Точки резервного копирования Сохранение состояния учётной записи на определённый момент с возможностью восстановить его позже. Полезно перед рискованной операцией (масштабная переработка, большой импорт, начало года). См. [Точки резервного копирования](#page-admin.snapshots). ##### Совместная работа в реальном времени Несколько администраторов могут работать в одной учётной записи с индикаторами присутствия, если опция подключена. См. [Совместная работа администраторов](#page-core-concepts.collaboration). ##### MCP **MCP** позволяет подключить совместимого ИИ-агента, например Claude (рекомендуется), с идентификацией учётной записи через OAuth2. См. [MCP](#page-integrations.mcp). ##### Журналы Когда опция подключена со стороны Omniscol, экран «Журналы» позволяет просматривать и экспортировать записи, которые ведёт Omniscol. Не стоит представлять его как полноценный аудит со сравнением состояния до и после или повторным воспроизведением запросов. См. [Журналы активности (логи)](#page-admin.logs). ##### Синхронизация с ERP Синхронизация с внешними системами относится к подключениям по договору, как правило на учётных записях Премиум, когда настроен коннектор. Уже существуют коннекторы Aurion, Auriga и Edusign; добавление новой ERP-системы выполняется в рамках проекта: с документированным API, песочницей и согласованием маппинга. См. [Синхронизация с внешними системами](#page-integrations.extsync). ##### Автономный модуль «Управление персоналом» Модуль Управление персоналом доступен отдельно, в том числе как самостоятельное предложение (без остального Omniscol). См. [Обзор модуля «Управление персоналом»](#page-staffing.overview). #### Как узнать, какой план и какие опции активны Это видно в разделе Параметры — в нижней части экрана, где показаны активный план и подключённые опции. План и опции определяют, какие модули доступны в левом меню. #### См. также - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Связанные учётные записи и общие ресурсы](#page-integrations.linked-accounts) - [Режим календаря](#page-timetables.calendar-mode) - [Настраиваемые роли](#page-admin.customroles) - [Области](#page-admin.planning-domains) - [Точки резервного копирования](#page-admin.snapshots) - [Совместная работа администраторов](#page-core-concepts.collaboration) - [MCP — подключение ИИ-агента](#page-integrations.mcp) ### 1.6 Выбор типа расписания: недельное, цикл, календарь *Source: `help/ru/overview/timetable-modes.md` · id: overview.timetable-modes · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ В аккаунте Premium при создании расписания можно выбрать один из трёх типов. Основное различие проходит между **повторяемостью** (Недельное и Цикл: шаблон повторяется) и **неповторяемостью** (Календарь: у каждого занятия своя дата). От выбора зависит вся дальнейшая работа, поэтому важно разобраться в нём до создания расписания. **Автоматическое формирование расписания** доступно для всех трёх типов; преимущества и ограничения каждого типа описаны ниже. #### В двух словах | Тип | Повторяемость | Когда использовать | | --- | --- | --- | | **[Недельное](#page-glossary.weekly-timetable)** | Повторяется (типовая неделя) | Занятия повторяются по **типовой неделе**. Начальная и средняя школа. | | **[Цикл](#page-glossary.cyclic-timetable)** | Повторяется (цикл из N дней) | Занятия повторяются по **циклу из N дней** (не равному неделе из 5 или 7 дней). Североамериканские системы, международные школы. | | **[Календарь](#page-glossary.calendar-mode)** | Не повторяется | Занятия **датируются по одному**, без повторения. Высшее образование, непрерывное образование. | #### Недельное — стандартный случай Это режим по умолчанию. Он подходит любой школе, где занятия идут по **повторяющейся типовой неделе**, с чередованием недель А/Б или без него. Преимущества: - Простая логика: вы вводите типовую неделю, а затем выбираете недели, на которые она распространяется. - Каникулы исключаются автоматически. Ограничения: - Не подходит учебным заведениям, где каждая неделя отличается от других (разовые занятия, сменяющие друг друга внешние преподаватели). - Занятия, которые проходят только один раз (конференция, экзамен в определённую дату), нужно добавлять как разовые изменения или вносить в отдельное расписание. #### Цикл — для циклов, не совпадающих с неделей Режим цикла подходит учебным заведениям, которые строят занятия по **циклу из N дней** (обычно 6 или 8), не равному неделе из 5 или 7 дней. Это обычное дело для североамериканских систем и некоторых международных школ. Работа похожа на недельное расписание, только цикл состоит из N пронумерованных дней (День 1, День 2…). Соответствие дней цикла дням недели строится динамически на основе **публикации расписания**, то есть при выборе недель, на которые распространяется цикл. #### Календарь — для высшего и непрерывного образования Режим календаря заметно отличается от двух других: каждое занятие ставится на **конкретную дату**, без повторения. Это предпочтительный режим для: - высшего образования (бизнес-школы, инженерные школы, университеты), - непрерывного образования, - учебных центров, где занятия не повторяются каждую неделю. По сравнению с обычным ежедневником, ERP-системой или школьной информационной системой здесь доступны возможности, характерные для высшего образования (подробнее на странице [режим календаря](#page-timetables.calendar-mode)): - **Очень полная помощь при вводе** — конфликты в реальном времени, фильтры кабинетов, объединённая доступность… - **Объединённая доступность в реальном времени** — изменения доступности преподавателей сразу отображаются как возможные или подтверждённые конфликты. - **Бинарная публикация** — расписание либо опубликовано, либо нет, без выбора диапазонов. Текущее ограничение — **частичная повторяемость**: в некоторых учебных заведениях недели в целом похожи, но с нерегулярностями (одни занятия заканчиваются раньше других, праздничные дни, преподаватели, приходящие эпизодически…). Кнопки позволяют **вручную копировать** занятие по повторяющемуся шаблону, но формирование расписания пока не поддерживает этот случай. Автоматическое формирование остаётся полностью доступным для календарей без лежащего в основе повторяющегося шаблона и, наоборот, для полностью повторяющихся (недельных) расписаний. **Частичное формирование** — автоматическое формирование можно ограничить частью расписания через панель параметров. Доступны три фильтра: - **Классы**: выбор классов, для которых формируется расписание. - **Дисциплины**: выбор дисциплин, для которых формируется расписание. - **Диапазон дат**: только для режима «Календарь». Позволяет обработать один период за раз (например, следующий триместр). Особенно это полезно в режиме «Календарь»: расписание можно строить **по шагам** — один триместр, затем следующий; одно направление подготовки, затем остальные и так далее. #### Как выбрать режим: краткое руководство ```mermaid flowchart TD Q1{{"Занятия следуют
повторяющемуся шаблону?"}} Q2{{"Шаблон равен неделе
(5–7 дней)?"}} H([Недельное]) Cy([Цикл]) Ca([Календарь]) Q1 -->|Да| Q2 Q1 -->|Нет| Ca Q2 -->|Да| H Q2 -->|Нет| Cy ``` #### Преобразование расписания в другой тип Чтобы перевести существующее расписание из одного типа в другой, его можно **скопировать с преобразованием** с помощью действия Копировать в списке расписаний, в модуле Управление расписанием. Поддерживаются все шесть преобразований: Недельное ↔ Цикл, Недельное ↔ Календарь, Цикл ↔ Календарь. В зависимости от целевого типа запрашивается дополнительный параметр: - **Календарь**: диапазон дат (начало и конец), на который распределяются занятия. По умолчанию в окне предлагаются первая и последняя недели учебного года. - **Цикл**: длина цикла в днях (по умолчанию 12). - **Недельное**: дополнительных параметров нет. Что переносится при преобразовании: - **Положение занятий** — каждое положение переводится из исходной системы в целевую (день недели ↔ номер дня цикла ↔ дата). - **Недельное → Календарь**: каждое занятие размножается на все соответствующие даты целевого периода, а **объём часов дисциплин** умножается на число недель, чтобы сохранить общую сумму. **Чередование недель А/Б** применяется автоматически к каждой созданной дате. - **Временная доступность**: сохраняется и переносится только из **недельного** расписания. При исходном типе «Цикл» или «Календарь» она удаляется: доступность, привязанная к датам или номерам дней цикла, нельзя корректно перенести на типовую неделю или на другой цикл. В результате получается **самостоятельное расписание**, не зависящее от исходного: его можно дорабатывать отдельно, публиковать само по себе или параллельно с исходной версией. #### Сочетание режимов Вы можете **одновременно публиковать несколько расписаний разных типов** на одни и те же недели. Типичные случаи: - **Повторяющаяся основа плюс разовые события**: недельное расписание для регулярных занятий и [календарное](#page-timetables.calendar-mode) расписание для мастер-классов, конференций и экзаменов с точной датой. - **Разные ритмы у одних и тех же классов**: недельное расписание на утро (основные дисциплины, очень регулярные) и календарное расписание на вторую половину дня (спорт, кружки, практикумы, которые меняются от недели к неделе). - **Разный порядок работы у разных классов**: подготовительное отделение с недельным ритмом и неповторяющийся цикл обучения в бизнес-школе, где много внешних преподавателей ведут один и тот же курс у одних и тех же обучающихся несколько дней подряд. Если у нескольких опубликованных расписаний общий преподаватель или кабинет, Omniscol **динамически объединяет представления** при просмотре. При редактировании расписания, когда другое расписание уже опубликовано, Omniscol по умолчанию учитывает занятость преподавателей, кабинетов и классов в этом опубликованном расписании (эту функцию можно отключить). #### См. также - [Недельное расписание](#page-glossary.weekly-timetable) - [Циклическое расписание](#page-glossary.cyclic-timetable) - [Режим календаря](#page-glossary.calendar-mode) - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) ### 1.7 Первый вход *Source: `help/ru/getting-started/first-login.md` · id: getting-started.first-login · Updated: 2026-05-10* Чтобы войти в Omniscol, откройте адрес вашей школы — как правило, он выглядит так: `https://<название-вашей-школы>.omniscol.com`. Страница входа запрашивает имя пользователя и пароль. #### Данные для входа Данные для входа вам выдало ваше учебное заведение. По умолчанию имя пользователя записывается как `имя.фамилия` или `фамилия.имя` (в зависимости от настроек школы, см. [Общие параметры](#page-admin.parameters)), но это может быть и числовой код. #### Забыли пароль Нажмите Забыли пароль? Введите своё имя пользователя. Если адрес электронной почты указан, вы получите ссылку для сброса пароля. Следуйте инструкциям. Если письмо не пришло: - проверьте, что введённое имя пользователя совпадает с тем, которое задано в Omniscol (если сомневаетесь, обратитесь к администратору вашей школы), - посмотрите в папке «Спам» или «Нежелательная почта», - убедитесь, что учебное заведение указало ваш адрес электронной почты в карточке пользователя вашей учётной записи. #### Первый вход Если вы входите впервые, система может сразу предложить **сменить пароль**. Выберите надёжный и уникальный пароль (Omniscol не может его восстановить: он преобразуется в нечитаемый вид ещё до отправки). #### Вход через поставщика удостоверений Если ваше учебное заведение использует вход через поставщика удостоверений ([OIDC / SSO](#page-integrations.oauth2); Google Workspace, Azure AD/Microsoft Entra, Keycloak, собственный сервис единого входа), на странице входа появится отдельная кнопка. Нажмите её и пройдите проверку в привычном для вас сервисе. Если ваш сеанс завершится во время работы, окно повторного входа тоже предлагает эту кнопку: она открывает ваш сервис удостоверений в небольшом окне, а страница остаётся как есть, вместе с тем, что вы ещё не сохранили. #### Второй фактор аутентификации (MFA) Если ваше учебное заведение требует этого для вашей роли, вход включает второй шаг после пароля или единого входа: ключ доступа, код из приложения для аутентификации или код, полученный по электронной почте. При первом входе вы регистрируете один из них. См. [Второй фактор аутентификации](#page-admin.second-factor). #### Ограничения по профилю Администратор может **заблокировать вход** для некоторых профилей (например, отключить вход для учеников в течение учебного года или отключить учётную запись конкретного преподавателя). Если для вашего профиля действует ограничение, вы увидите сообщение об этом. См. Ограничение входа в приложение. #### См. также - [Настройка аккаунта школы](#page-getting-started.setup-school) - [Приглашение и активация пользователей](#page-getting-started.inviting-users) - [OIDC / SSO](#page-integrations.oauth2) - [Второй фактор аутентификации](#page-admin.second-factor) ### 1.8 Настройка аккаунта школы *Source: `help/ru/getting-started/setup-school.md` · id: getting-started.setup-school · Audience: admin · Updated: 2026-05-10* После создания аккаунта Omniscol экран «Главная страница» проведёт вас по шагам. Следуйте предложенному порядку: так проще всего. На этой странице последовательность описана **справа налево** в меню Администрирование (чем реже нужен пункт, тем правее он расположен). #### Шаг 1 — Параметры Модуль Параметры содержит все настройки аккаунта. Многие значения заполнены заранее с учётом **страны** вашей школы, по местным обычаям, которые знает Omniscol, поэтому обычно подправить нужно совсем немногое. Что проверить в первую очередь: - Название школы — отображается на странице входа. - **Уровни классов** (5-й, 9-й, 11-й…) — они служат ориентиром во всех разделах. Подберите их под вашу систему названий. - **Режим ввода доступности преподавателей** — недельный, календарный (в аккаунтах Premium), календарный + недельный (в аккаунтах Premium) или отключён. - **Ограничение видимости расписаний для учеников** — за сколько недель вперёд ученики видят своё расписание (чтобы отложить показ неготового расписания). - **Идентификатор для входа** — формат автоматического создания логинов (`имя.фамилия`, `фамилия.имя`, табельный номер…). - Первый день недели — важен для стран, где неделя начинается с воскресенья (арабские страны, Израиль). - Чередование недель (для недельных расписаний) — A/B, 1/2 (то есть буквы или цифры в отображении) или отключено. - **Логотип школы** — показывается вместо логотипа Omniscol на странице входа и в верхней панели. Подробности: см. [Общие параметры](#page-admin.parameters). #### Шаг 2 — Учебный год Чтобы опубликовать расписание, нужно создать хотя бы **один учебный год** в разделе Учебный год. Что указать: - **Название** — по обычаю, это даты: «2025-2026». - **Даты начала и окончания**. - **Каникулы** — вставкой из таблицы, импортом заранее заполненных дат для вашей страны (предлагается при создании) или вручную. - **Текущий год** — отметьте год, который сейчас в работе. Именно он открывается по умолчанию, и только он публикуется. См. [Учебный год и каникулы](#page-admin.school-year). #### Шаг 3 — Дисциплины Если Omniscol уже заполнил **общий справочник дисциплин** для вашей страны, возможно, делать ничего не придётся. В остальных случаях, а также для дисциплин, свойственных только вашему учреждению: - Создайте **собственные дисциплины** в разделе Создать. - Задайте **типы занятий** (например, лекция, практикум, экзамен, доклад) в разделе Создать, если они есть в вашей учебной практике. - По желанию настройте **семейства дисциплин**, чтобы объединять родственные дисциплины. ⚠ **Следите за написанием** собственных дисциплин: Omniscol делает внутреннюю копию при добавлении дисциплины в расписание, и исправление задним числом не распространяется на расписания, уже настроенные в прошлом (оно действует только на текущие, будущие и неопубликованные расписания). #### Шаг 4 — Пользователи Здесь создаются преподаватели, ученики и администраторы. Подробности: [Приглашение и активация пользователей](#page-getting-started.inviting-users). После этого шага вы сможете создать своё первое расписание. Дальше следуйте указаниям на странице [Обзор модуля «Управление расписанием»](#page-timetables.overview). #### См. также - [Общие параметры](#page-admin.parameters) - [Учебный год](#page-admin.school-year) - [Управление дисциплинами](#page-admin.subjects) - [Приглашение и активация пользователей](#page-getting-started.inviting-users) - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) ### 1.9 Приглашение и активация пользователей *Source: `help/ru/getting-started/inviting-users.md` · id: getting-started.inviting-users · Audience: admin · Updated: 2026-08-07* Начало работы строится вокруг четырёх ролей пользователей школы: **Администратор**, **Преподаватель**, **Ученик** и **Сотрудник**. Каждая роль открывает свой набор возможностей. #### Какой экран для какой роли | Роль | Экран | Обязательно? | | --- | --- | --- | | Администратор | Администраторы | Как минимум главный администратор. | | Преподаватель | Преподаватели | Необходимо, чтобы создавать и публиковать занятия с преподавателями. | | Ученик | Ученики | Необязательно: Omniscol может работать, не зная учеников и не предоставляя им доступ к порталу просмотра. | | Сотрудник | Сотрудники | Полезно, только если используется Управление персоналом. | Подробное описание прав каждой роли и их технические обозначения приведены на странице [Пользователи и роли](#page-admin.users-and-roles). #### Единичное или массовое (пакетное) создание **Единичное**: кнопка Добавить на экране нужной роли. Вы открываете форму одного пользователя и заполняете его основные данные. **Массовое (пакетное)**: кнопка Импортировать данные на экране нужной роли. Вы создаёте или изменяете сразу несколько строк в таблице на основе файла, подготовленного в Excel, Google Sheets, Numbers или Calc. См. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data). #### Активация пользователя Активный пользователь может входить в систему, отображаться на относящихся к нему экранах и получать назначения. Чтобы сделать пользователя неактивным, не удаляя его, воспользуйтесь его карточкой или массовым действием. Неактивная учётная запись не позволяет войти в систему и не может быть назначена в новые расписания, но её история остаётся доступной для просмотра. #### Приглашение по электронной почте Кнопка Пригласить пользователя, применённая к выбранным пользователям, отправляет каждому адресату письмо со ссылкой для первого входа. Сначала убедитесь, что адреса электронной почты заполнены, иначе приглашение не будет отправлено. #### Задание начальных паролей Если приглашение по электронной почте не подходит, вы можете задать пароли вручную с помощью Сменить пароль. Лучше использовать этот способ для пилотных и служебных учётных записей или в тех случаях, когда учебное заведение само занимается выдачей учётных данных. Пароль, заданный таким образом вручную (возможно, с помощью кнопки случайной генерации), на самом деле временный: при первом входе пользователю придётся ввести новый, собственный пароль. #### Распределение учеников по классам и группам Распределение выполняется на экране Ученики: 1. На экране Ученики выберите нужных учеников. 2. Нажмите Назначить в класс. 3. Выберите учебный год, класс и при необходимости даты. 4. Для групп (иностранные языки, факультативы, практические занятия, половины класса) используйте Группы. Распределение можно выполнять в несколько этапов, например по параллелям или по мере зачисления учеников. Существует опция, позволяющая распределять учеников по классам и группам сразу на уровне расписаний, заранее, а не впоследствии в модуле Администрирование. Если вас интересует такой режим работы, свяжитесь с командой Omniscol. > _Option: Настраиваемые роли_ #### Настраиваемые роли Опция **Настраиваемые роли** позволяет ограничить права учётной записи администратора по каждому модулю и по каждой операции. См. [Настраиваемые роли](#page-admin.customroles). Она также открывает [области](#page-admin.planning-domains), которые ограничивают данные, доверенные планировщику, — его подразделение, его направление подготовки, его расписание. #### Инструкция — Подготовка пользователей к началу учебного года 1. Подготовьте файлы или таблицы пользователей: администраторов, преподавателей, учеников и при необходимости сотрудников. 2. Импортируйте или создайте учётные записи на экранах модуля Администрирование. 3. Проверьте адреса электронной почты, логины и роли. 4. Отправьте приглашения с помощью Пригласить пользователя. 5. Распределите учеников по их классам и группам, когда первое расписание будет опубликовано на учебный год. 6. В конце года отключите учётные записи, которые больше не должны входить в систему, вместо того чтобы сразу удалять историю. #### См. также - [Настройка аккаунта школы](#page-getting-started.setup-school) - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Пользователи и роли](#page-admin.users-and-roles) - [Управление преподавателями](#page-admin.teachers) - [Управление учениками](#page-admin.students) ### 1.10 Подготовка данных к массовому (пакетному) импорту *Source: `help/ru/getting-started/preparing-data.md` · id: getting-started.preparing-data · Audience: admin · Updated: 2026-06-03* Вносить вручную сотни или тысячи строк (преподавателей, учеников, кабинетов, курсов…) редко имеет смысл. В Omniscol есть **массовый импорт** копированием и вставкой из любой электронной таблицы (Excel, Google Sheets, Numbers, Calc…) в формате CSV или TSV. Импорт запускается кнопками [table], обычно расположенными в верхней части списков сущностей. Некоторые из них служат только для экспорта данных, но большинство допускает и импорт. #### Что можно импортировать? | Сущность | Экран | Типичный объём | | --- | --- | --- | | **Преподаватели** | Экспортировать данные в формате CSV | 10 - 1000 | | **Ученики** | Экспортировать данные в формате CSV | 50 - 10 000 | | **Кабинеты** | Экспортировать данные в формате CSV | 10 - 500 | | **Собственные дисциплины** | Экспортировать данные в формате CSV | 10 - 1000 | | **Курсы расписания** | Экспортировать данные в формате CSV | 100 - 10 000 | #### Подготовка файлов **Золотые правила**: 1. **Одна строка — одна сущность.** Никаких объединённых ячеек и многострочных заголовков. 2. **Соблюдайте порядок столбцов, ожидаемый Omniscol.** Экран импорта показывает шаблон со столбцами в целевом порядке, и вы можете **переставить эти столбцы** в Omniscol так, чтобы они совпали с порядком в исходной таблице. Тогда копирование из Excel или Google Sheets проходит чисто, и переписывать файл не нужно. 3. **Некоторые столбцы доступны только для чтения.** Они выделены серым и нужны лишь для экспорта данных. Первый столбец, как правило, содержит идентификатор записи, уже сохранённой в базе данных. 4. **Столбцы, отмеченные «*», обязательны.** Если обязательное поле не заполнено, строка игнорируется: при создании она не импортируется, а если запись уже есть в базе данных, то удаляется. 5. **Разделители внутри ячейки произвольны** в списках (несколько преподавателей, групп или кабинетов у курса): запятая, точка с запятой, косая черта. 6. **Встроенный ИИ приведёт данные в порядок**, но лишь до определённого предела: старайтесь, чтобы данные были чистыми и однозначными, иначе возможны неприятные сюрпризы. #### Типичные поля по сущностям ##### Преподаватели - Имя, Фамилия (обязательные). - Эл. почта (рекомендуется для приглашений). - Табельный номер / внешний ID (необязательно, но полезно для отслеживания). - Преподаваемые дисциплины (список, разделители произвольны). - Учебная нагрузка (число запланированных часов в неделю). - Основная площадка (если площадок несколько). ##### Ученики - Имя, Фамилия (обязательные). - Эл. почта (рекомендуется). - Идентификатор в школьной информационной системе (помогает не спутать однофамильцев). - Уровень / Класс. - Группы (группа по выбору, подгруппа). - Статус (активен, предварительная запись, неактивен). ##### Кабинеты - Название (обязательно). - Площадка (обязательна, если площадок несколько; иначе Omniscol относит кабинет к площадке по умолчанию). - Вместимость. - Специализации (список). - Здание (свободный ввод). - Теги / комментарии. ##### Занятия - Класс + дисциплина (как минимум). - Продолжительность (если не указана, вычисляется по времени начала и окончания). - День, время начала, время окончания (чтобы сразу расставить занятия; иначе оставьте пустыми и расставьте позже). - Группа (необязательно). - Тип занятия (лекция, семинар, практическое занятие, экзамен…). - Преподаватель(и) (разделители произвольны). - Кабинет(ы) (разделители произвольны; да, [несколько кабинетов](#page-glossary.multi-room) на одно занятие поддерживаются). - Ресурс(ы). - Чередование недель (формат `A/B`, `1/2` и т. п.). - Комментарий (произвольный текст). #### После подготовки Порядок импорта зависит от экрана, на который вы загружаете данные. Как правило, экран полностью обновляется и показывает новые данные. Об импорте **курсов расписания** см. [Массовый импорт курсов из таблицы](#page-timetables.mass-import): там описан специальный мастер из четырёх шагов. #### Экспорт Тот же встроенный табличный механизм позволяет экспортировать данные. Для этого есть несколько способов: - Скопировать и вставить во внешнюю таблицу (формат TSV, автоматически). - Воспользоваться кнопками внизу, чтобы экспортировать данные сразу в файл PDF, CSV или Excel (XLSX). #### Повторный импорт Импорт не ограничивается первоначальной загрузкой. Можно импортировать массово в несколько приёмов. Первый столбец с заголовком «id» содержит доступный только для чтения идентификатор каждой сущности в базе данных; его можно найти и в URL-адресах. Если изменить строку с определённым идентификатором, данные этой сущности будут изменены. Чтобы добавить новые данные, перейдите в самый низ таблицы: там всегда есть несколько пустых строк без идентификатора. Вставка новых данных, как при первоначальном импорте, соответственно увеличивает таблицу. Повторно импортируемые сущности могут содержать сложные данные, которые нельзя импортировать и экспортировать (иногда для них есть столбец только для чтения, нужный лишь для экспорта этих данных). Так обстоит дело, например, с доступностью преподавателей и кабинетов или временными ограничениями классов. В этом случае они автоматически сохраняются без изменений. Благодаря этому можно импортировать массово в несколько приёмов, не теряя дополнительных данных существующих сущностей, и при этом создавать новые сущности или удалять другие. #### Массовое удаление Как и при повторном импорте, первый столбец «id» позволяет определить сущности. Если стереть строку или хотя бы её обязательные столбцы, отмеченные «*», то при импорте опустошённые сущности будут удалены. Поскольку, как в обычной таблице, можно выделить несколько строк и столбцов, достаточно нажать клавишу Delete на клавиатуре, чтобы стереть сколько угодно строк и тем самым массово удалить из базы данных соответствующие сущности. #### См. также - [Импорт и экспорт](#page-admin.import-export) - [Массовый импорт курсов расписания](#page-timetables.mass-import) - [Переход с другого программного обеспечения](#page-migration.overview) ### 1.11 Пошаговое знакомство с системой (6 шагов модуля «Главная страница») *Source: `help/ru/getting-started/onboarding-tour.md` · id: getting-started.onboarding-tour · Audience: admin · Updated: 2026-05-10* Когда вы впервые входите в пустой аккаунт, модуль **Главная страница** предлагает вам **контрольный список из шести шагов**. Каждый шаг отмечается автоматически, как только выполнено его условие (зелёная галочка ✓), а пока ничего не введено, шаг помечен как блокирующий (красный крест ✗). Шаги расположены в логическом порядке, которого настоятельно советуем придерживаться, но любой шаг можно пропустить и вернуться к нему позже. Рано или поздно каких-то данных не хватит, и вам придётся вернуться назад. Эта страница справки подробно описывает ту же последовательность, шаг за шагом; в конце страницы её кратко повторяет **интерактивная экскурсия**. #### Общий обзор — приветственное сообщение > Добро пожаловать на Omniscol, интерактивное программное обеспечение для формирования и управления расписанием! Если вы видите данное сообщение, то это ваш первый вход и вы еще не настроили ваше первое расписание. Для начала работы с программным обеспечением выполните следующие действия. Рекомендован представленный порядок действий, но вы можете в любой момент вернуться к любому этапу. > **Совет по организации**: модуль Главная страница автоматически скрывается, > как только публикуется ваше **первое расписание**. Пока он виден, именно > он служит вам ориентиром. Ссылка > снова отобразить возвращает его на > экран после публикации, если это нужно: > > > Ваш аккаунт настроен и работоспособен. Вы можете снова отобразить этапы настройки. #### Шаг 1 — Заполнить параметры > Заполните параметры вашего аккаунта, включая уровни классов. **Действие**: Заполните параметры См. [Общие параметры](#page-admin.parameters). В первую очередь стоит настроить уровни классов, режим доступности, первый день недели (для стран, где неделя начинается с воскресенья) и синтаксис идентификатора. Большинство остальных значений уже заполнено для вашей страны. #### Шаг 2 — Создать первый учебный год > Учебный год — это период между датами начала и окончания, включающий каникулы, в течение которого будут публиковаться расписания. Без него нельзя опубликовать ни одно расписание: ни одно занятие не поступает тогда в модули повседневного использования. **Действие**: Создать первый учебный год См. [Учебный год и каникулы](#page-admin.school-year). Задайте ему название («2025–2026»), даты начала и окончания и, если такая возможность предлагается, импортируйте каникулы, заранее заполненные для вашей страны. Этот шаг открывает возможность публикации в модуле «Управление расписанием». #### Шаг 3 — Создать пользовательские дисциплины (необязательно) > Определите конкретные дисциплины, которые не были включены в общую базу данных по умолчанию. Этот этап не обязателен. **Действие**: Создать пользовательские дисциплины См. [Управление дисциплинами](#page-admin.subjects). База общих дисциплин для каждой страны уже заполнена; здесь вы создаёте только те дисциплины, которые **специфичны для вашего учебного заведения** и отсутствуют в этой базе. #### Шаг 4 — Ввести данные пользователей > Для начала введите всех пользователей: преподавателей и учеников. Ввод данных учеников не обязателен, позднее вы можете составлять расписание указывая только количество учеников в классах и группах. Также вы можете ввести их данные позднее для прикрепления их к классам или группам. > Подсказка: вы можете вводить данные массово, копируя и вставляя их из электронной таблицы, например Excel, нажав на значок. **Действие**: - Ввести данные преподавателей *(обязательно — красная отметка, пока не создан ни один преподаватель)* - Ввести данные учеников *(необязательно — красной отметки нет, только пустой кружок, пока шаг не выполнен)* Подробности см. [Приглашение и активация пользователей](#page-getting-started.inviting-users) (создание по одному и массовый импорт, приглашения по электронной почте, начальные пароли, массовые действия). #### Шаг 5 — Создать расписание (и затем настроить его) У шага 5 два варианта в зависимости от состояния аккаунта: ##### 5a — Пока не создано ни одного расписания > Создать новое расписание. Мы рекомендуем идти шаг за шагом по вкладкам слева на право. В конце нажмите кнопку формирование. **Действие**: Создать расписание В модуле «[Управление расписанием](#page-timetables.overview)» нажмите Создать расписание. Если ваш аккаунт поддерживает несколько режимов, выберите [режим расписания](#page-overview.timetable-modes) (недельное, циклическое, календарь). ##### 5b — Расписание создано и настраивается > Расписание находится в процессе настройки, но ещё не сформировано. Мы рекомендуем завершить настройку шаг за шагом, заполняя каждую вкладку слева направо. В конце нажмите кнопку формирования расписания. **Действие**: Продолжить настройку расписания Проходите вкладки расписания **слева направо**: [Общая информация](#page-timetables.general-settings) → [Площадки](#page-timetables.sites-rooms) → [Преподаватели](#page-timetables.assigning-teachers) → [Классы](#page-timetables.creating-classes) → [Совмещение групп](#page-timetables.alignments-and-groups-of-groups) → [Распределение часов](#page-timetables.hour-distribution) → [Формирование](#page-timetables.generation). #### Шаг 6 — Опубликовать расписание > После того, как расписание будет настроено и сформировано, его следует опубликовать на все или на часть недель учебного года. Нажмите на кнопку публикации на экране управления расписанием. На этом экране также можно найти расписания в процессе настройки или уже сформированные расписания. **Действие**: Управлять расписаниями См. [Публикация расписания](#page-timetables.publication). Этот шаг чаще всего забывают: пока расписание не опубликовано на неделях учебного года, оно остаётся черновиком, песочницей, невидимой для конечных пользователей. Публикация вводит его в работу: его занятия начинают поступать во все остальные модули, а также в возможный экспорт данных в реальном времени за пределы приложения: в iCal, подключённые внешние программы и так далее. #### Что дальше Когда весь контрольный список отмечен зелёным, а расписание полностью настроено и опубликовано: - **Распределите учеников** по классам и группам (см. [Приглашение и активация пользователей](#page-getting-started.inviting-users)). - **Пригласите пользователей** по электронной почте (Пригласить пользователя). - **Настройте информационные панели** в помещениях (см. [Информационные панели](#page-panels.lobby-panel)). - **Подключите подписки iCal** для преподавателей и учеников (см. [iCal](#page-integrations.ical)). - **Проверьте доступ ученика** с тестовой учётной записи. - **Настройте интеграции** (электронный журнал, ERP и т. д.), если это применимо (см. [Обзор интеграций](#page-integrations.overview)). #### См. также - [Обзорный тур за пять минут](#page-overview.quick-tour) - [Первый вход](#page-getting-started.first-login) - [Настройка аккаунта школы](#page-getting-started.setup-school) - [Приглашение и активация пользователей](#page-getting-started.inviting-users) - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Публикация расписания](#page-timetables.publication) --- ## 2. Основные понятия ### 2.1 Организация данных: дисциплины, преподаватели, классы, расписание *Source: `help/ru/core-concepts/data-model.md` · id: core-concepts.data-model · Audience: admin · Updated: 2026-06-13* В Omniscol есть два уровня организации данных. Первый — **справочник школы**, который ведётся в модуле «Администрирование» (дисциплины, пользователи, учебные годы…) и в долгосрочном плане описывает ваше учебное заведение. Второй — **расписания**, которые берут из справочника отдельные элементы, чтобы выстроить согласованное планирование на заданный период. Понимание этого разделения — ключ к спокойной работе с изменениями (переименовать дисциплину, обновить данные преподавателя, архивировать расписание) без ущерба для истории. #### Общая картина: два уровня, две логики ```mermaid flowchart LR subgraph A["Уровень школы — модуль Администрирование"] AS["Дисциплины"] AU["Пользователи-преподаватели"] end subgraph E["Уровень расписания — планирование"] C["Классы"] G["Группы
(необязательно)"] M["Курсы
= дисциплины классов
(локальная копия, с типом)"] T["Преподаватели расписания
частичная копия"] S["Занятия
длительность, класс, группа (необязательно),
преподаватели, кабинет, позиция"] end AS -.->|служит образцом| M AU -.->|служит образцом| T C -->|содержит| G C -->|назначенные дисциплины| M T -->|назначенные преподаватели| M M -->|преподаваемая дисциплина| S C -->|соответствующий класс| S G -.->|необязательная группа| S T -->|преподаватели занятия| S ``` **Уровень школы** — это общий справочник с долгим сроком жизни, который ведётся в модуле «Администрирование». В нём хранится то, что верно для учебного заведения независимо от конкретного расписания: календарь учебных годов, каталог дисциплин (общие для страны и дисциплины, созданные школой) и список пользователей с их ролями. **Уровень расписания** — это согласованное планирование на заданный период. У каждого расписания есть свой список преподавателей, классов, групп, дисциплин, закреплённых за классами, и занятий. Эти объекты — не простые ссылки на справочник школы, а **локальные копии**, которые можно дополнять, не меняя справочник. И наоборот, справочник уровня школы может меняться (удаление дисциплин, преподавателей), не нарушая прошлых расписаний. Дальше каждый тип связи разобран подробнее. #### Учебный год: временные рамки **Учебный год** задаёт интервал «дата начала → дата окончания» и список каникул (см. [Учебный год](#page-core-concepts.school-year)). Он не «содержит» расписания напрямую: расписания **разворачиваются** на недели (недельный и цикличный режимы) или на даты (режим календаря), принадлежащие учебному году. Это допускает несколько конфигураций: - **Одно расписание на учебный год** (стандартный случай): расписание охватывает все рабочие недели года. - **Несколько последовательных расписаний** в одном году: например, по одному на триместр, которые сменяют друг друга в даты перехода. - **Несколько параллельных расписаний** на один и тот же период (функция входит в Premium; на некоторых аккаунтах Standard её можно включить в рамках подходящего договора), например: - повторяющееся расписание для общей обязательной программы - календарное расписание для мастер-классов; при просмотре оба расписания объединяются. См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). Таким образом, учебный год остаётся рамкой, а не контейнером. Изменение его границ или каникул обновляет календарь, которым пользуются связанные с ним расписания, но не меняет их содержимое. #### Дисциплины: от каталога школы до занятий класса ```mermaid flowchart TD CatM["Каталог дисциплин
напр. Математика"] CatT["Типы занятий
напр. лекция, семинар, практикум"] Classe["Класс в расписании
напр. 8А"] Prof["Преподаватели расписания
напр. Иванова И. П."] MC["Дисциплина класса (= курс)
Математика [семинар]
объём часов, преподаватели,
ограничения, специализированный кабинет"] S["Занятия
длительность, дата/слот,
возможная группа, кабинет,
преподаватель(и)"] CatM -->|выбранная дисциплина| MC CatT -->|возможный тип| MC Classe -->|соответствующий класс| MC Prof -->|назначенные преподаватели| MC MC -->|служит для создания| S Prof -->|можно скорректировать в| S ``` ##### Уровень 1 — каталог в модуле «Администрирование» На уровне школы сосуществуют два источника: - **Общие дисциплины** — справочник Omniscol для выбранной страны (официальные коды, стандартизированные названия). Для школы каталог доступен только для чтения. - **Созданные дисциплины** — то, что школа создаёт сама, на [экране «Дисциплины»](#page-admin.subjects). У каждой созданной дисциплины есть название, код (короткий) и, при желании: краткое название, особый цвет, родительская дисциплина, семейство. Каталог ничего не говорит о том, какие классы изучают эти дисциплины, — он лишь сообщает, что они существуют. Семейства дисциплин тоже могут поступать из общего справочника страны (только для чтения) или из собственного справочника, локального для школы. ##### Уровень 2 — назначение классу (с типом или без) Когда вы **назначаете дисциплину классу** в расписании, в классе создаётся **локальная копия** дисциплины, дополненная полями, нужными для планирования (целевой объём часов, педагогическая нагрузка, несовместимости, преподаватели по умолчанию, специализация кабинета…). Если вы назначаете дисциплину **с типом занятия** (`лекция`, `семинар`, `практикум`, `экзамен` — см. [Типы занятий](#page-admin.lesson-types)), каждый тип создаёт в классе **отдельную запись**: | Дисциплина в классе | Происхождение | Тип | | --- | --- | --- | | Математика | Математика | нет | | Математика [лекция] | Математика | лекция | | Математика [семинар] | Математика | семинар | Так сделано намеренно: каждый вариант (математика-лекция, математика-семинар) становится отдельной локальной копией со своим объёмом часов, своими преподавателями и своими несовместимостями. Связь с каталогом не является жёсткой зависимостью: локальная копия сохраняет происхождение дисциплины, пока та есть в каталоге. Если дисциплину удалить из каталога, локальные копии в расписаниях остаются действительными. ##### Уровень 3 — от параметров курса к занятиям В Omniscol то, что обычно называют [курсом](#page-glossary.course), как правило соответствует дисциплине, назначенной классу, возможно с типом занятия (лекция, семинар, практикум…) и дополненной сведениями для планирования: объём часов, преподаватели, группы, ограничения на размещение, кабинеты или ресурсы. Это определение говорит о том, что нужно запланировать. **Занятия** — это конкретные экземпляры, фактически размещённые в расписании на определённую неделю или дату. Пример: дисциплина класса **Математика [семинар]** может задавать объём часов, преподавателей, группы, ограничения на размещение и пожелания по кабинету. Затем занятия создаются на основе этого определения. См. [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types). #### Преподаватели: справочник школы → дополненная копия в расписании ```mermaid flowchart LR U["Пользователь (модуль Администрирование)
роль teacher
имя · логин · e-mail · общая доступность"] Aff{Назначение в расписание} T["Преподаватель в расписании
имя (копия) · idnumber
рабочие часы (копия, можно переопределить)
доступность в этом расписании · предпочитаемый кабинет"] Se["Назначенные занятия"] U --> Aff Aff -->|частичная дополненная копия| T T --> Se ``` ##### Преподаватель на уровне школы На уровне школы преподаватель — это **пользователь** с ролью `teacher` (один пользователь может совмещать несколько ролей — см. [Пользователи и роли](#page-admin.users-and-roles)). Он ведётся на [экране «Преподаватели»](#page-admin.teachers) и хранит постоянные идентифицирующие сведения: фамилию, имя, логин, e-mail, идентификационный номер, а также свою **общую доступность** (повторяющуюся) и базовые рабочие часы. ##### Преподаватель, назначенный в расписание Когда вы назначаете этого преподавателя в расписание, Omniscol создаёт в нём **частичную дополненную копию**. В копию переносится только часть полей справочника школы, а к ним добавляются поля, нужные для планирования: | Поле | Уровень школы (справочник) | Уровень расписания (копия) | | --- | --- | --- | | Идентификатор | идентификатор пользователя | тот же (неявная связь) | | Фамилия, имя, отчество | источник | копируются при назначении | | Идентификационный номер | источник | копируется при назначении | | E-mail, телефон, логин | источник | **не копируются** (остаются только в модуле «Администрирование») | | Базовые рабочие часы | источник | копируются, **можно переопределить для каждого расписания** | | Предпочитаемый кабинет | в справочнике не ведётся | свой для расписания | | Доступность | «общая доступность» пользователя | повторяющийся режим: локальная копия, утверждённая или смягчённая; режим календаря: общий источник, который можно смотреть и менять из модуля «Администрирование» или из соответствующих расписаний | Это разделение важно: **один и тот же преподаватель** может иметь **разные рабочие часы** в зависимости от охвата планирования или **другой предпочитаемый кабинет** в определённый момент (например, из-за временных ограничений по здоровью). Для доступности логика зависит от режима планирования: - в повторяющемся режиме доступность, внесённая преподавателем, проходит этап одобрения администрацией. Её можно скорректировать локально в расписании, например превратив строгую недоступность в нежелательный слот; - в режиме календаря доступность преподавателя считается единым источником достоверных данных, в частности для внешних преподавателей. Её можно смотреть и менять в карточке пользователя или в любом календарном расписании, куда назначен преподаватель. В обоих случаях некоторые параметры остаются своими для расписания и могут локально дополнять эту доступность. ##### Виртуальные преподаватели Есть и такой вариант: в расписании можно создать **виртуального преподавателя** — вакантную должность, за которой нет реального пользователя («будущий преподаватель математики»). У него нет аналога на уровне школы. Когда преподавателя наймут, виртуального можно заменить на настоящего пользователя с ролью преподавателя (см. [Назначение преподавателей в расписание](#page-timetables.assigning-teachers)). #### Принцип локальной копии вкратце Одна и та же логика действует для дисциплин в классе и для преподавателей в расписании: **локальная копия создаётся в момент назначения**, и именно эта копия несёт поля, специфичные для расписания. Почему выбран такой подход: - **Независимость во времени.** Расписание, закрытое в прошлом году, не должно меняться, когда в этом году вы переименовываете дисциплину или преподавателя. Локальные копии обеспечивают **целостность истории**: то, что было запланировано, остаётся ровно таким, каким было тогда. - **Контекстное дополнение.** У преподавателя разная доступность и разные рабочие часы в зависимости от охвата планирования; у дисциплины разная педагогическая нагрузка и разные несовместимости в зависимости от класса, который её изучает. Локальная копия — естественное место для таких различий. - **Чистка без потерь.** Удаление или переработка дисциплины на уровне школы не стирает расписания, которые ею пользовались, — их локальные копии остаются действительными. Обратная сторона такого подхода: переименования на уровне школы не распространяются повсюду незаметно. Этому посвящён следующий раздел. #### Практические последствия: переименование, удаление, история Когда вы изменяете объект на уровне школы, Omniscol применяет понятное правило распространения: | Действие на уровне школы | Прошлые (закрытые) расписания | Текущие и будущие расписания | | --- | --- | --- | | Переименовать созданную дисциплину (название, короткий код, код) | **Без изменений** — история сохраняется | Название передаётся в соответствующие локальные копии | | Изменить цвет созданной дисциплины | **Без изменений** | Цвет обновляется, если прежний цвет не был переопределён локально | | Переименовать преподавателя (фамилия, имя) | **Без изменений** | Имя передаётся в локальные копии | | Изменить e-mail или телефон преподавателя | Не влияет (не копируется) | Не влияет (не копируется) | | Изменить общую доступность преподавателя | Не влияет | Повторяющийся режим: отметка об обновлении, если доступность уже была одобрена; режим календаря: обновление общего источника доступности | | Удалить созданную дисциплину | Локальные копии сохраняются | Локальные копии сохраняются; дисциплина исчезает только из каталога | | Отключить роль `teacher` у пользователя | Без изменений | Копии в расписаниях остаются на месте | Различие между «прошлыми» и «текущими или будущими» определяется относительно **сегодняшней даты**: опубликованное расписание, последняя опубликованная неделя которого раньше сегодняшнего дня, считается прошлым и больше не меняется при переименованиях. ##### Когда переносить изменения вручную Автоматическое распространение **намеренно узкое**: название, код и цвет дисциплин; имя и идентификатор преподавателей. Название и код дисциплины, скопированной локально, в расписании не меняются; локально можно переопределить только её цвет. Остальные поля (несовместимости, педагогическая нагрузка, рабочие часы, доступность для каждого расписания…) не синхронизируются, потому что они **по своей природе принадлежат расписанию**. Если более глубокое изменение нужно применить к нескольким существующим расписаниям (например, пересмотреть рабочие часы преподавателя во всех опубликованных расписаниях или везде добавить новую несовместимость дисциплин), действовать нужно расписание за расписанием. Для массовых операций самый быстрый инструмент — **импорт копированием и вставкой из электронной таблицы** на соответствующем экране каждого расписания. #### См. также - [Учебный год](#page-core-concepts.school-year) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Курс (определение из глоссария)](#page-glossary.course) - [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types) - [Управление дисциплинами](#page-admin.subjects) - [Управление преподавателями](#page-admin.teachers) - [Типы занятий](#page-admin.lesson-types) - [Обзор модуля «Управление расписанием»](#page-timetables.overview) ### 2.2 Класс, группа, подгруппа *Source: `help/ru/core-concepts/classes-and-groups.md` · id: core-concepts.classes-and-groups · Updated: 2026-05-20* Классы — это отдельные наборы обучающихся, которые идут по одной образовательной программе и, как правило, посещают занятия вместе (те же дисциплины, те же преподаватели и кабинеты). Единственное исключение — деление на группы, то есть на подмножества с немного отличающейся программой (по факультативам, уровням, полу, алфавиту…). У разных классов никогда не бывает общих обучающихся. В Omniscol вы всегда начинаете с **класса**, а затем создаёте внутри него **группы** там, где не весь класс изучает один и тот же курс. **Подгруппы** уточняют это деление, когда группу саму нужно разбить на части: группа, привязанная к другой группе в отношении «родитель — потомок», становится подгруппой. **Разделение**, **совмещение** и **группа групп** — это не дополнительные уровни иерархии. Это способы организовать группы или связать их между собой в зависимости от задачи. #### Общая картина ```mermaid %%{init: {"flowchart": {"defaultRenderer": "elk"}}}%% flowchart TB subgraph C1["Класс 9А"] direction TB A1["Группа «Второй язык: испанский»"] A2["Группа «Второй язык: немецкий»"] P["Группа Практикум А"] Q["Группа Практикум Б"] P1["Подгруппа Практикум А1"] P2["Подгруппа Практикум А2"] P --> P1 P --> P2 end subgraph C2["Класс 9Б"] direction TB B1["Группа «Второй язык: немецкий»"] B2["Группа «Второй язык: французский»"] B4["Группа Технология 1 (20 учеников)"] B5["Группа Технология 2 (10 учеников)"] B3["Группа Робототехника"] end subgraph C3["Класс 9В"] direction TB C4G["Группа «Второй язык: испанский»"] C5G["Группа «Второй язык: французский»"] C2G["Группа Технология 1 (20 учеников)"] C3G["Группа Технология 2 (10 учеников)"] C1G["Группа Робототехника"] end A1 -. "разделение" .- A2 P -. "разделение" .- Q B1 -. "разделение" .- B2 B4 -. "разделение" .- B5 C2G -. "разделение" .- C3G C4G -. "разделение" .- C5G A2 <== "совмещение" ==> B1 B5 <== "совмещение" ==> C3G B3 <== "совмещение" ==> C1G linkStyle 0,1 stroke:#475569,stroke-width:1.5px linkStyle 2,3,4,5,6,7 stroke:#15803d,stroke-width:1.8px linkStyle 8,9,10 stroke:#1d4ed8,stroke-width:2.8px ``` Схему читайте так: - **класс** содержит группы; - **группа** может содержать **подгруппы**; - **разделение** упорядочивает группы одного класса, между которыми распределены ученики; - **совмещение** связывает группы разных классов ради общего занятия; - **группа групп** позволяет создать явное, пригодное для повторного использования объединение, особенно когда его состав должен меняться. На схеме показаны несколько классов с несколькими группами: одни находятся в разделении, другие совмещены, а иногда и то и другое сразу. Второй иностранный язык — это взаимоисключающий выбор: ученик изучает либо немецкий, либо испанский, либо французский. Поэтому варианты языка объявлены в разделении: их можно ставить в расписание одновременно (при условии, что каждый язык ведут разные преподаватели). Немецкий в 9А и 9Б изучают немногие ученики, поэтому их объединяют, чтобы они ходили на одни и те же занятия, — в этом и смысл совмещения; занятия создаются зеркально в каждом из классов, чтобы они ставились одновременно. То же относится к группам робототехники в 9Б и 9В. Эта схема показывает и распространённый приём — **три группы на два параллельных класса**: классы 9Б и 9В разделены каждый на Технологию 1 (20 учеников) и Технологию 2 (10 учеников). **Совместив** две группы Технологии 2, школа объединяет два малочисленных состава и проводит **три занятия по технологии** вместо четырёх — при равной наполняемости (по 20 учеников), с экономией одного преподавателя и одного кабинета. #### Класс: базовый уровень [Класс](#page-glossary.class) — это базовая сущность по умолчанию. В зависимости от контекста он может обозначать: - школьный класс, - учебный поток, - когорту, - сессию, - образовательную траекторию. Когда курс касается **всего класса**, дополнительная группа не нужна: курс просто привязывается к классу. #### Группа: часть класса [Группа](#page-glossary.group) — это всегда **часть одного и того же класса**. Все её ученики остаются учениками родительского класса. Типичные примеры: - `Группа А` / `Группа Б` для деления по алфавиту; - `Практикум А` / `Практикум Б` для половин класса на практических работах; - `Второй язык: испанский` / `Второй язык: немецкий` / `Второй язык: французский` для взаимоисключающих вариантов; - `Английский: сильная группа` / `Английский: средняя группа` / `Английский: слабая группа`, если школа работает с уровневыми группами; - `Мальчики` / `Девочки` там, где такое деление применяется; - `Электив: Маркетинг`, `Электив: Финансы`, `Электив: Данные` в наборе факультативов высшего образования. **Настоятельная рекомендация**: создавайте по группе на каждую понятную педагогическую задачу, даже если ученики иногда одни и те же. Например, лучше завести `Робототехника` и `Шахматы`, чем использовать одну общую группу `Факультативы`. Иначе чтение расписаний, диагностика и объединения нескольких классов быстро становятся неоднозначными. > _Premium_ #### Подгруппа: часть группы **Подгруппа** — это дочерняя группа, привязанная к родительской группе. Пример: - класс делится на `Практикум А` и `Практикум Б`; - затем `Практикум А` сам делится на `Практикум А1` и `Практикум А2` для более тонкой ротации. ```mermaid flowchart TD C["Класс ИС-1"] A["Практикум А"] B["Практикум Б"] A1["Практикум А1"] A2["Практикум А2"] B1["Практикум Б1"] B2["Практикум Б2"] B3["Практикум Б3"] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 B --> B3 ``` Что из этого следует: - подгруппы остаются в границах класса; - они наследуют логику родительской группы; - они полезны, когда нужно несколько уровней деления; - смысл в них есть, только пока структура остаётся читаемой. Подгруппы особенно удобны в сочетании с разделениями: - группы А и Б в разделении; - группы А1 и А2 в разделении; - группы Б1, Б2 и Б3 в разделении. Автоматически А1 и Б3 оказываются в разделении, так же как А2 и Б1 и так далее. Эта связь выводится из двойной логики: разделений и отношений «родитель — потомок». Подгруппы — это группы, которые перетащили на родительскую группу. Страница [Иерархия групп](#page-core-concepts.group-hierarchy) подробнее описывает расширенное использование: унаследованные разделения, унаследованные ограничения и временные маски. #### Разделение: распределить один класс по взаимоисключающим группам [Разделение](#page-glossary.class-division) применяется между группами **одного класса**, когда ученики распределены по нескольким взаимоисключающим группам. Omniscol — программа планирования с учётом ограничений, поэтому по умолчанию считается, что у групп потенциально есть хотя бы один общий обучающийся: объявление разделения между группами снимает это ограничение. Иными словами, группы одного разделения не конфликтуют между собой. Что нужно запомнить: - каждый ученик должен входить **только в одну (или ни в одну)** группу разделения; - тогда эти группы могут одновременно посещать разные занятия; - Omniscol знает, что это не конфликт учеников. Примеры: - `Практикум А` и `Практикум Б` одновременно выполняют две разные практические работы; - `Второй язык: испанский`, `Второй язык: немецкий` и `Второй язык: французский` делят один временной слот факультативов; - `Группа А` и `Группа Б` одновременно чередуют занятия в двух кабинетах; - `Английский: сильная группа`, `Английский: средняя группа`, `Английский: слабая группа` одновременно посещают три разных занятия. ```mermaid flowchart LR subgraph CL["Класс 8Б"] E["Второй язык: испанский"] A["Второй язык: немецкий"] I["Второй язык: французский"] end E -. "разделение" .- A A -. "разделение" .- I E -. "разделение" .- I ``` Для одного класса разделение — это правильный инструмент, когда вы хотите сказать: «эти группы делят между собой учеников, их можно ставить параллельно». Примечание: в Omniscol есть режим работы, включаемый по желанию, в котором ученики напрямую зачисляются в классы и группы на уровне расписаний. В этом случае разделения могут выводиться автоматически (нет пересечения учеников между группами — значит, это разделение). ##### Подгруппы и разделение При наличии подгрупп логика разделения распространяется вниз по иерархии. Если `Практикум А` и `Практикум Б` находятся в разделении, подгруппы `Практикум А` и подгруппы `Практикум Б` наследуют это разделение между ветвями. Пример: - `Практикум А` и `Практикум Б` находятся в разделении; - `Практикум А1` и `Практикум А2` — подгруппы `Практикум А`. Тогда Omniscol знает, что занятие у `Практикум А1` не конфликтует с занятием у `Практикум Б`, и вам не нужно вручную задавать каждую комбинацию. Если же вы хотите разделить `Практикум А` на несколько ветвей, которые тоже распределяют между собой учеников, это деление нужно явно задать в иерархии и, при необходимости, указать для него собственное разделение. #### Совмещение: общее занятие для нескольких классов [Совмещение](#page-glossary.alignment) нужно, когда несколько групп из **разных классов** на самом деле посещают **одно и то же занятие** в **один и тот же временной слот**, у **одного и того же преподавателя** и в **одном и том же кабинете**. Классический пример: группы `Робототехника` из `5А`, `5Б` и `5В` ходят на одно общее занятие по робототехнике. ```mermaid flowchart LR subgraph A["Класс 5А"] GA["Робототехника"] end subgraph B["Класс 5Б"] GB["Робототехника"] end subgraph C["Класс 5В"] GC["Робототехника"] end LESSON["Одно занятие по робототехнике"] GA --> LESSON GB --> LESSON GC --> LESSON ``` Совмещение очень удобно для факультативов и элективов, общих для нескольких классов, но оно жёстче обычной группы: всё совмещённое живёт вместе. Важное условие: у затронутых классов должна быть **одна и та же дисциплина**. Иначе говоря, если вы хотите общее занятие для нескольких классов, эти классы должны действительно иметь ту дисциплину, которую использует это занятие. Пример: - `Маркетинг`, общий для нескольких классов: да; - `Маркетинг (бакалавриат)` в одном классе и `Маркетинг (магистратура, опция)` в другом: нет, если это две разные дисциплины в структуре расписания. В высшем образовании из этого часто следует, что стоит избегать слишком узких дисциплин, привязанных к одной программе, если заранее известно, что часть занятий будет общей. Лучше предусмотреть дисциплину, общую для классов, которые должны делить занятия. Совмещения лучше подходят для средней школы: они предполагают создание зеркальных занятий и указание логики динамического объединения. Недостаток в том, что это зеркало нужно соблюдать: занятий нужно создать столько, сколько групп в совмещении, с нужными группами в каждом классе, и всё должно быть симметрично: преподаватели, кабинет, ресурсы и так далее. Если поставлено занятие, у которого есть группа из совмещения, в каждом классе должно найтись зеркальное занятие с соответствующей совмещённой группой. Преимущество — возможность строить с помощью совмещений сложные занятия. Например, можно провести общее занятие по робототехнике в неделю А и отдельное, не объединённое занятие в каждом классе. Если эти ограничения не окупаются преимуществами, лучше рассмотреть группы групп. #### Группа групп: явное и изменяемое объединение [Группа групп](#page-glossary.groups-of-groups) собирает несколько групп в одно именованное, изменяемое и повторно используемое объединение. После этого группа групп используется как любая другая группа. Она особенно полезна: - в высшем и непрерывном образовании; - когда состав объединения может меняться; - когда вы хотите сохранить читаемую и прослеживаемую структуру. Пример: общий семинар объединяет обучающихся из `М1 Маркетинг`, `М1 Финансы` и `Электив: Данные`. Занятия планируются через группу групп, а позже к семинару присоединяется четвёртая группа: достаточно добавить её в группу групп, и она автоматически привяжется ко всем занятиям. Как и для совмещений, общие занятия должны опираться на **общую дисциплину** у затронутых классов. Группа групп позволяет объединить аудиторию, но не заменяет согласованность дисциплины, используемой для занятия. Если нужно объединить **целые классы**, сначала создайте в каждом классе группу, представляющую весь класс, а затем используйте эти группы в совмещении или в группе групп. Классы напрямую, минуя группы, не совмещаются. #### Назначить несколько групп прямо на занятие Можно назначить **несколько групп прямо на занятие**, не создавая заранее именованную группу групп. Это удобно: - для разовой потребности; - чтобы быстро проверить объединение; - для исключительного занятия, которое не оправдывает отдельной структуры. Но как основа для модели это не лучший выбор: - со временем это хуже читается; - это хуже прослеживается, чем именованное объединение; - если такая схема повторяется часто, труднее понять педагогический замысел. На практике: - для постоянного использования выбирайте явную **группу групп**; - для разовой потребности прямое назначение нескольких групп очень удобно. ```mermaid flowchart LR subgraph X["Существующие группы"] G1["М1 Маркетинг - Электив: Данные"] G2["М1 Финансы - Электив: Данные"] G3["М2 Управленческий учёт - Электив: Данные"] end S["Разовое занятие по данным"] G1 --> S G2 --> S G3 --> S ``` Однако не смешивайте на одном занятии **родительскую группу** и одну из её **подгрупп**: как правило, это неверное моделирование аудитории. #### Сводная таблица | Понятие | Охват | Для чего нужно | Пример | | --- | --- | --- | --- | | [**Класс**](#page-glossary.class) | Базовое множество | Нести курсы, которые изучают все | `6А`, `ИС-1`, `М1 Маркетинг` | | [**Группа**](#page-glossary.group) | Часть класса | Выделить подмножество учеников | `Практикум А`, `Робототехника`, `Второй язык: испанский` | | [**Подгруппа**](#page-core-concepts.group-hierarchy) | Часть группы | Уточнить уже разделённую организацию | `Практикум А1`, `Практикум А2` | | [**Разделение**](#page-glossary.class-division) | Группы одного класса | Распределить взаимоисключающих учеников по параллельным занятиям | `Практикум А` / `Практикум Б`, `Немецкий` / `Испанский` | | [**Совмещение**](#page-glossary.alignment) | Группы разных классов | Обеспечить одно общее занятие | `Робототехника` из нескольких классов | | [**Группа групп**](#page-glossary.groups-of-groups) | Несколько групп из одного или разных классов | Построить явное и изменяемое объединение | Общий семинар для нескольких траекторий | | **Несколько групп** | Несколько групп из одного или разных классов | Динамическое назначение нескольких групп на лету | Разовое занятие для разных составов | | [**Свободная группа**](#page-glossary.free-group) | Открытый состав | Вести нефиксированное зачисление | Кружок, клуб, открытое мероприятие | #### См. также - [Разделение класса](#page-core-concepts.class-divisions) - [Совмещение групп](#page-core-concepts.alignments) - [Группы групп](#page-core-concepts.groups-of-groups) - [Иерархия групп](#page-core-concepts.group-hierarchy) - [Свободные группы](#page-core-concepts.free-groups) - [Случаи высшего образования](#page-faq.higher-ed-cases) ### 2.3 Разделение класса *Source: `help/ru/core-concepts/class-divisions.md` · id: core-concepts.class-divisions · Updated: 2026-05-20* **Разделение** сообщает алгоритму формирования, что несколько [групп](#page-glossary.group) одного [класса](#page-glossary.class) могут проходить в **один и тот же временной слот** без конфликта, потому что ни один ученик не входит больше чем в одну из этих групп. #### Зачем это нужно: принцип «по умолчанию всё — конфликт» Omniscol — программа планирования **с ограничениями**. Отсюда прямое следствие: **всё, что может вызвать конфликт, по умолчанию считается конфликтом**, пока пользователь явно не укажет обратное. - Между **двумя разными классами** общих учеников по определению нет, поэтому сообщать о конфликте не нужно. (Общие курсы, в которых учатся вместе ученики разных классов, моделируются отдельно: см. [совмещения](#page-core-concepts.alignments) и [группы групп](#page-core-concepts.groups-of-groups).) - Внутри **одного класса** алгоритм не может **логически** определить, какие группы способны проходить в одном временном слоте, не пересекаясь. Поэтому он исходит из того, что у двух групп одного класса **могут быть общие ученики**. Если разделение не объявлено, занятия двух групп одного класса в одном слоте вызовут конфликт. Автор расписания должен **сказать алгоритму**: «эти группы взаимоисключающие, их можно ставить одновременно». Разделение — это и есть такое объявление. Алгоритм постарается как можно чаще ставить одновременно занятия групп, входящих в разделение, но это может не получиться из-за других ограничений: нехватки кабинетов, несовместимых временных ограничений преподавателей или курсов, общего элемента вроде специализированного кабинета или преподавателя, который ведёт несколько занятий. В таком случае алгоритм определит, что часть класса осталась без занятий, и применит пропорциональный штраф (опция по умолчанию: «Сокращение пустот в расписании» для учеников). Это подталкивает его ставить такие занятия в самое начало или в самый конец дня, а при возможности и на обеденный перерыв. #### Типичные случаи применения - **Половины класса по алфавиту**: группы A и B (по алфавиту или по жребию). Ученик состоит в одной из них ИЛИ в другой, но никогда в обеих. - **Половины класса по уровню**: группы «Английский углублённый» и «Английский базовый»; ученик состоит в одной ИЛИ в другой. - **Половины класса по полу** (особый случай, например, на физкультуре в некоторых школах). - **Взаимоисключающие дисциплины по выбору**: «Второй иностранный язык: немецкий» / «Второй иностранный язык: французский» / «Второй иностранный язык: китайский». Ученик выбирает **один** из трёх языков. (Пример стоит подобрать под ваш контекст; в англоязычных странах такие дисциплины называют *electives*.) - **Блоки одновременных факультативов**: школа ставит все факультативы в один выделенный слот (`пятница 14:00–16:00 = слот факультативов`), а ученики выбирают факультатив из этого блока. Все они исключают друг друга в том смысле, что ученик посещает только один факультатив. - **Лабораторные и практические работы по подгруппам**: «Лабораторная A» и «Лабораторная B» в одном слоте в двух разных кабинетах с двумя преподавателями. #### Создание Шаги: 1. Откройте страницу групп класса (вкладка Группы). 2. Выберите нужные группы. 3. Нажмите Добавить разделение. 4. Подтвердите. В одном классе может существовать несколько разделений: одно для лабораторных работ по естественным наукам (Лабораторная A, Лабораторная B), другое для языков («Немецкий язык», «Французский язык»), третье для профильных дисциплин (Литература, История, Физика). Каждое разделение не зависит от остальных. Если группа входит в разделение, на всех связанных экранах рядом с ней показывается значок [link-slash]. #### Защита по умолчанию: группа только в одном разделении По умолчанию интерфейс применяет простую защиту: группа входит только в одно разделение. Это самый частый случай, и такая защита предотвращает много ошибок. Эту защиту можно снять, если состав учеников реально этого требует. Пример: - только ученики группы «Немецкий язык» изучают ещё и «Латинский язык»; - ученики группы «Французский язык» «Латинский язык» не изучают. Тогда можно создать: - разделение «Немецкий язык» / «Французский язык»; - разделение «Латинский язык» / «Французский язык». Так у алгоритма больше свободы: он может ставить некоторые занятия параллельно и сокращать пустоты у части класса. Используйте это аккуратно: распределение учеников по группам должно быть известно вам досконально. #### Условие корректности **Ни один ученик не должен входить в две группы одного разделения.** Это математическое определение разбиения: множества не пересекаются. Если ученик состоит в двух группах одного разделения, Omniscol выдаёт предупреждение о несогласованности (алгоритм не может отправить его в два места одновременно). #### Что это меняет для алгоритма Если разделение объявлено, алгоритм: - **разрешает** одновременное планирование групп разделения (хотя иначе это был бы конфликт), - **по-прежнему проверяет остальные ресурсы**: нужно столько разных кабинетов, сколько групп занимается одновременно, и столько же разных преподавателей. Разделение снимает только конфликт по ученикам; конфликты по кабинетам и преподавателям остаются строгими. #### Частая ошибка: три курса в одном слоте класса Если нужно, чтобы в классе **одновременно шли три разных курса** (Литература, История, Физика), потому что у учеников взаимоисключающие дисциплины по выбору, создайте **три группы** (Литература, История, Физика) и объедините их в разделение. Не создавайте три курса без групп: тогда у алгоритма не будет никаких сведений об ограничениях одновременности, и каждый курс будет поставлен отдельно, в разное время. #### Чем это отличается от других конструкций | Что вам нужно… | Что использовать | | --- | --- | | Несколько групп **одного класса** в одном слоте (разные курсы, ученики не пересекаются) | **Разделение** (эта страница) | | Несколько групп **разных классов** в одном слоте (одно занятие, один преподаватель, один кабинет) через логику, связывающую простые группы | [Совмещение](#page-core-concepts.alignments) | | То же, что совмещение, но с возможностью легко менять состав позже, создав самостоятельный объект-объединение | [Группа групп](#page-core-concepts.groups-of-groups) | | Группа с нефиксированным составом (кружок, свободная запись) | [Свободная группа](#page-core-concepts.free-groups) | #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Совмещения](#page-core-concepts.alignments) - [Группы групп](#page-core-concepts.groups-of-groups) - [Свободные группы](#page-core-concepts.free-groups) - [Разделение класса](#page-glossary.class-division) ### 2.4 Совмещение групп *Source: `help/ru/core-concepts/alignments.md` · id: core-concepts.alignments · Updated: 2026-05-20* **Совмещение** связывает несколько [групп](#page-glossary.group) из **разных классов**: они должны посещать **одно и то же занятие** в **одном и том же временном слоте**, в **одном и том же кабинете**, у **одного и того же преподавателя**. Важное условие: совмещение должно опираться на **одну и ту же дисциплину** в разных классах. Если у двух классов разные дисциплины, пусть даже очень близкие по содержанию, совмещение не станет удачной моделью. Иначе говоря, [разделение](#page-glossary.class-division) остаётся внутри одного класса, а совмещение охватывает несколько классов. #### Когда это применяется Совмещения нужны для общих курсов, когда в нескольких классах мало учеников, которых нужно объединить (совместить) для конкретного общего курса, который они будут проходить вместе. Например: - **Изучающие латинский язык** из 8А, 8Б и 8В, у которых латынь проходит вместе. - **Факультативы для нескольких классов** в старшей школе: второй иностранный язык, мировая художественная культура, углублённый курс обществознания и т. д. - **Профильные предметы**. - **Общий модуль для нескольких программ** в высшем образовании: вводный курс, общий для нескольких магистерских программ. Если нужно совместить **классы целиком**, сначала создайте в каждом классе группу, которая представляет весь класс, а затем совместите эти группы. #### Создание 1. Сначала создайте в каждом из нужных классов **группу**, лучше с одинаковым названием (например, «Латынь» в 8А, в 8Б и в 8В). 2. Перейдите на вкладку Совмещение групп. 3. Нажмите Добавить совмещение и выберите группы из разных классов. Если группа входит в совмещение, она отображается на всех соответствующих экранах со значком связи [link]. #### Последствия После совмещения группа каждого класса **связана** с общим курсом. На практике это означает следующее: - Занятия нужно создавать в классах зеркально, в частности с **одинаковой продолжительностью**, **одним и тем же преподавателем** и, при необходимости, **одним и тем же кабинетом**. - Если занятие класса с совмещённой группой поставлено на определённый день и время, то во всех остальных классах совмещения должно быть такое же зеркальное занятие, каждое со своей совмещённой группой, в то же самое время. - Количество часов и разбивка на занятия у разных совмещённых групп по соответствующей дисциплине должны быть **строго одинаковыми**, иначе Omniscol выдаст диагностику несогласованности. - Любое изменение занятия (перенос, смена кабинета, смена преподавателя, добавление заметки) **должно быть распространено** на все совмещённые классы (система пытается сама определить, какие занятия являются зеркальными, чтобы по возможности сделать это автоматически). #### Диагностика: частые несогласованности Совмещение чувствительно к расхождениям. Типичные случаи диагностики: - **Разное количество часов**: у группы «Латынь» из 8А три занятия латыни по одному часу, а у группы из 8Б два. Либо привести их к одному значению (три везде), либо убрать совмещение (два часа совмещены, один час проходит с другой, несовмещённой группой, изучающей латынь). - **Другой кабинет на совмещённом занятии**: при совмещении кабинет должен быть один. Если вы вручную назначите другой кабинет для занятия одного из классов, появится диагностика. - **Другой преподаватель**: то же самое. #### Совет: одна группа на дисциплину или курс Совмещения очень чувствительны к требованию полного зеркального соответствия, поэтому настоятельно рекомендуется создавать в каждом совмещаемом классе отдельную группу под каждую дисциплину или курс. Иными словами, не используйте одну и ту же универсальную группу (обычно это группы А/Б) для разных дисциплин там, где нужна строгая логика совмещения. Иначе получатся неоднозначные совмещения, которые алгоритм формирования расписания не сможет разрешить. Лучше создайте специализированные группы, которые можно связывать между собой, не опасаясь нежелательных побочных эффектов. #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделения](#page-core-concepts.class-divisions) - [Группы групп](#page-core-concepts.groups-of-groups) - [Общий курс](#page-glossary.transverse-course) - [Совмещение групп](#page-glossary.alignment) ### 2.5 Группы групп *Source: `help/ru/core-concepts/groups-of-groups.md` · id: core-concepts.groups-of-groups · Updated: 2026-05-20* **Группа групп** — это объединяющая группа, которая собирает несколько [групп](#page-glossary.group) из **одного класса** или из **разных классов**. Так **несколько групп объединяют, чтобы они вместе проходили одно занятие**: ученики разных групп составляют на этом временном слоте единый состав. В других программах для составления расписания для этого же понятия используется термин «объединение». Как и для совмещения, общие занятия должны опираться на **общую дисциплину** у задействованных классов. В отличие от совмещений, которые задают логику связи между группами, группа групп — самостоятельный объект, который можно использовать как обычную группу. Её можно представить как именованный динамический контейнер групп. #### Чем она гибче совмещения | Аспект | [Совмещение](#page-core-concepts.alignments) | **Группа групп** | | --- | --- | --- | | Состав | Можно изменить позже, но для этого придётся создавать зеркальные занятия | Очень легко изменить позже | | Режим расписания | Хорошо подходит для недельных и цикличных расписаний средней и старшей школы | Подходит для расписаний любого типа; особенно удобна, когда состав объединений меняется | | Выход из занятия | Требуется несовмещённая копия группы | Занятие изменяется напрямую, но его придётся привязать к одному классу, а занятия остальных задействованных классов — создать заново | | Типичное применение | Регулярный общий курс в программе обучения параллельных классов | Общие курсы, разовые объединения | Группа групп рассчитана на высшее образование и непрерывное обучение, где: - состав объединений часто меняется (одно направление присоединяется к другому, подгруппа выделяется для проекта); - общие курсы назначаются на отдельные даты, а не повторяются регулярно; - приглашённые докладчики и профессора из других вузов выступают перед смешанной аудиторией в конкретные даты. Группа групп гибче совмещения, и за ней проще следить. Её ограничение — сложные занятия с несимметричным чередованием недель. От вас требуется только продуманно подходить к именованию (например: «Общий маркетинг, магистратура»). #### Создание и использование Создайте группу групп на вкладке Группа групп расписания. Её можно назначить курсу **как обычную группу** — отличие лишь в том, что она объединяет несколько групп-участниц. Чтобы объединить **классы целиком**, сначала создайте в каждом классе группу, которая представляет весь класс, а затем включите эти группы в группу групп. Курс, назначенный группе групп, отображается в **каждом** из классов, которым принадлежат группы-участницы, и его можно редактировать из любого из них. Во всех соответствующих экранах группы групп отмечены особым значком [sitemap]. #### Изменение состава после создания Группы-участницы можно добавлять и удалять в любой момент. Уже назначенные курсы подстраиваются автоматически (охват расширяется или сужается в зависимости от добавленных или удалённых групп). В этом и состоит ценность понятия: можно начать семестр с одним составом, скорректировать его по ходу и не нарушить структуру. #### Технические особенности С технической точки зрения занятие с группой групп хранится в единственном экземпляре, сквозным образом для всех классов, то есть не привязано к конкретному классу. Занятие без группы групп (в том числе с совмещёнными группами) хранится в своём классе. При совмещении трёх групп хранится три занятия — по одному в каждом классе; при группе групп хранится одно занятие, отдельно от классов, а показывается оно в каждом классе. Когда группа групп снимается с занятия, система сама определяет, к какому классу его привязать, или спрашивает об этом. Остальные поля занятия с группой групп изменить проще, чем при совмещении: единое хранение позволяет сразу поменять кабинет или преподавателя без «зеркального» применения изменений. #### Сведение недоступностей Группа групп **сводит воедино недоступности** всех своих групп-участниц. Недоступность, заданная для **любой** группы-участницы или для класса этой группы, действует и для общего занятия. Правило работает и при автоматическом формировании, и на экране во время редактирования. Мягкие уровни (Нежелательно, красный) сводятся так же; а когда на одном слоте встречаются несколько уровней, **побеждает самый строгий**: уровень Недоступно (чёрный) приоритетнее уровня Нежелательно (красный). О редакторе и уровнях см. [Временные ограничения (общая система)](#page-core-concepts.time-constraints). Поскольку группа групп часто охватывает несколько классов, при сведении собираются недоступности **каждого из затронутых классов**: если класс закрыт в пятницу после обеда, этот слот закрыт для любого занятия группы групп, которая охватывает этот класс, даже когда у остальных классов он свободен. ```mermaid flowchart TD CX["Класс X — недоступен в понедельник после обеда"] --> GA["Группа A (класс X)"] CY["Класс Y — недоступен в пятницу утром"] --> GB["Группа B (класс Y)"] GA --> GG["Группа групп"] GB --> GG GG --> SE["Занятие: недоступно в понедельник после обеда И в пятницу утром"] ``` Для группы групп приложение показывает **сводный просмотр этих недоступностей без возможности редактирования**: сразу видны ограничения всех участниц. **Изменять** их нужно **в группах-участницах** (или в их классах), где они имеют собственный смысл, — отдельного редактора ограничений у группы групп нет. > _Premium_ Каждая группа-участница вносит **собственные** ограничения группы, а также те, которые она **наследует** от своего класса и родительских групп (см. [Иерархия групп](#page-core-concepts.group-hierarchy)). При сведении учитываются все они: чем больше участниц объединяет группа групп, тем уже окно для размещения. Чтобы открыть слот вопреки унаследованному ограничению, используйте уровень **Разрешённые занятия** — он разрешает слот локально, не меняя источник. На экране такие сводные ограничения видны **при размещении**: возможные слоты и панель диагностики сообщают о конфликте и называют причастную **группу-участницу** и **класс**, чтобы можно было сразу перейти к источнику (см. [Конфликты и диагностика](#page-timetables.conflicts)). #### Инструкция — Создать сквозную группу для приглашённой лекции 1. **Приглашённая лекция для смешанной аудитории** (студенты трёх классов, два факультатива): подходящее понятие Omniscol — это **группа групп**. 2. **Предварительное условие**: группы-участницы уже созданы в своих классах. Определите, какие группы нужно объединить (`Маркетинг, магистратура`, `Финансы, магистратура`, `Факультатив по предпринимательству`). 3. **Откройте вкладку** Группа групп расписания. Нажмите кнопку Добавить группу групп. Дайте группе понятное название: `Приглашённая лекция проф. Лебедевой — магистратура + факультативы`. 4. **Добавьте группы-участницы**: выберите в списке группы трёх классов и факультативов. Ограничений на состав нет. Требования о том, чтобы группы-участницы не пересекались, тоже нет (в худшем случае студент, состоящий в двух группах, увидит занятие один раз). 5. **Создайте курс** (лекцию) в одном из задействованных классов и **назначьте ему группу групп** как обычную группу. Достаточно одного ввода — курс появится во **всех классах**, которым принадлежат группы-участницы. 6. **Последующие изменения**: если состав меняется (одна группа выходит, другая присоединяется), измените состав группы групп — назначенные курсы подстроятся автоматически (охват расширяется или сужается). Этим данное понятие отличается от классического совмещения (состав зафиксирован). См. также [Совмещения](#page-core-concepts.alignments) для недельного случая. #### Более гибкая альтернатива: прямое назначение нескольких групп Иногда для разовых занятий создавать отдельную группу групп оказывается хлопотно. В этом случае, если недостаточная структурированность данных не мешает, можно напрямую привязать к занятию несколько групп из одного или нескольких классов. Внутри это работает так же, как анонимная группа групп, с единым хранением сквозным образом для всех классов, но вам об этом думать не нужно. #### См. также - [Совмещения](#page-core-concepts.alignments) - [Временные ограничения (общая система)](#page-core-concepts.time-constraints) - [Общий курс](#page-glossary.transverse-course) - [Режим календаря](#page-glossary.calendar-mode) - [Группа групп](#page-glossary.groups-of-groups) ### 2.6 Иерархия групп: родительские и дочерние группы, унаследованные ограничения *Source: `help/ru/core-concepts/group-hierarchy.md` · id: core-concepts.group-hierarchy · Audience: admin · Plan: premium · Updated: 2026-05-20* > **Premium** > **Функция Premium.** Иерархия групп и временные ограничения групп > входят в функции Premium. > _Premium_ Помимо плоской модели «класс → группы», в Omniscol группы класса можно выстроить в **иерархию «родитель / потомок»** и задать **временные ограничения**, которые передаются по наследству. Это удобно, когда класс делится на несколько последовательных уровней подгрупп. #### Создание иерархии перетаскиванием На странице групп класса иерархия задаётся перетаскиванием: - **Перетащите группу на другую группу** → дочерняя группа прикрепляется к родительской. - **Перетащите дочернюю группу на заголовок списка групп** → она выходит из иерархии и снова становится группой, напрямую входящей в класс. Глубина не ограничена. Если ваше деление этого требует, можно строить цепочки «родитель → потомок → внук». #### Типовой пример Типовая иерархия: ```mermaid flowchart TD C[Класс 8A] A[A — родитель] A1[A1 — потомок A] A2[A2 — потомок A] B[B — родитель] B1[B1 — потомок B] B2[B2 — потомок B] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 ``` Заданные разделения: - `(A, B)` — A и B исключают друг друга на родительском уровне. - `(A1, A2)` — внутри A группы A1 и A2 исключают друг друга. - `(B1, B2)` — внутри B группы B1 и B2 исключают друг друга. **Автоматическое следствие**: Omniscol разрешает ставить в одно время группы из разных ветвей — например, `A1` и `B2` могут идти в одном временном слоте, поскольку ни один ученик не входит в обе (A1 ⊂ A, B2 ⊂ B, а A ∩ B = ∅). Задавать разделение `(A1, B2)` не нужно: оно вычисляется по наследству. #### Наследование временных ограничений Помимо разделений, к группе можно привязать **временные ограничения** (доступность, несовместимости). При наличии иерархии эти ограничения **наследуются** от родителей к потомкам через механизм **маски**, которую потомки могут переопределить. ##### Пример: слот, зарезервированный под физкультуру Типичный случай: - Класс `8A` **недоступен в понедельник после обеда** (общий слот заблокирован под коллективные мероприятия). - По наследству **все группы** класса недоступны в понедельник после обеда. - **Кроме** группы `Спорт`: её маску **инвертируют**, разрешая понедельник после обеда и запрещая всё остальное. Все спортивные занятия этой группы автоматически попадут на этот защищённый слот. Механизм мощный: **родительской маски и одного исключения у потомка** достаточно, чтобы аккуратно смоделировать выделенные слоты, не дублируя ограничение в каждом курсе. ##### Ещё один пример: родитель `Элективы` задаёт допустимые слоты Ещё один очень полезный случай: учебное заведение хочет, чтобы все элективы проходили только в нескольких зарезервированных слотах, например: - в понедельник утром, - в среду до 10:00, - в пятницу утром. Тогда можно: - создать родительскую группу `Элективы`, которая сама не будет привязана к курсам; - задать на этой группе допустимые слоты, закрасив временные ограничения; - создать под ней столько подгрупп, сколько нужно: `Электив: маркетинг`, `Электив: финансы`, `Электив: данные` и т. д. Все эти подгруппы наследуют одни и те же допустимые слоты. Если правило изменится, достаточно поправить одно место — родительскую группу `Элективы`. ```mermaid flowchart TD E["Элективы — родительская группа"] E1["Электив: маркетинг"] E2["Электив: финансы"] E3["Электив: данные"] S["Допустимые слоты: понедельник утром, среда до 10\:00, пятница утром"] S --> E E --> E1 E --> E2 E --> E3 ``` ##### Правила наследования - Дочерняя группа **по умолчанию наследует** временные ограничения родительской. - Потомок может **переопределить** эти ограничения: добавить собственные или инвертировать маску. - **Разделения родителя** автоматически действуют и на потомков: если A и B находятся в разделении, потомки A исключают потомков B без явного объявления. ##### Унаследованные ограничения и группы групп Группа может также входить в **группу групп**. Её ограничения — как собственные, так и унаследованные от класса и родительских групп — тогда **объединяются** с ограничениями других групп-участников: занятие группы групп учитывает всю совокупность этих недоступностей. Таким образом, наследование идёт вниз по иерархии, а затем объединение собирает вместе участников группы групп. ```mermaid flowchart TD C["Класс — недоступен в понедельник после обеда"] --> P["Родительская группа"] P --> E["Дочерняя группа — наследует от родителя"] E --> GG["Группа групп"] M["Другая группа-участник (другой класс)"] --> GG GG --> SE["Занятие: объединённые недоступности"] ``` Подробнее об объединении — на странице [Группы групп](#page-core-concepts.groups-of-groups). #### Когда использовать иерархию - **Блоки по выбору**: класс, в котором иностранные языки устроены по уровням (Английский углублённый > A1-Разговорная практика, A1-Страноведение, A2-…). - **Лабораторные работы с подротациями**: два полукласса на лабораторные работы, каждый из которых делится на подгруппы для отдельных опытов. - **Дифференцированные траектории**: основная траектория с отдельными необязательными модулями, которые планируются внутри траектории. - **Спорт**: общая группа, объединяющая всех учеников, с отдельной маской для спортивных слотов. - **Элективы в зарезервированных слотах**: родительская группа `Элективы` задаёт допустимые слоты, а её подгруппы соответствуют реальным элективам. #### Когда не использовать - Для простых классов без иерархического деления — иерархия добавляет сложности. - Для объединения учеников разных классов — для этого существуют [совмещения](#page-core-concepts.alignments) и [группы групп](#page-core-concepts.groups-of-groups), а не внутриклассная иерархия. - Для открытой записи подходят [свободные группы](#page-core-concepts.free-groups). #### Инструкция — Как построить иерархию «родитель/потомок» 1. **Иерархия групп** выстраивает группы класса в родительские и дочерние, с **наследованием** временных ограничений. 2. **Сначала создайте плоский список групп** на странице групп класса: `A`, `A1`, `A2`, `B`, `B1`, `B2` и сквозную группу `Спорт`. На этом этапе все они находятся на одном уровне и напрямую входят в класс. 3. **Перетаскиванием постройте иерархию**: перетащите `A1` на `A` → `A1` становится потомком `A`. Так же поступите с `A2`, `B1`, `B2`. Получатся две ветви `A → A1, A2` и `B → B1, B2`. Глубина не ограничена. Чтобы вывести дочернюю группу из иерархии, перетащите её на **заголовок списка** групп класса. 4. **Объявите разделения**: `(A, B)` на родительском уровне (исключающие друг друга), `(A1, A2)` под A, `(B1, B2)` под B. Повторно задавать `(A1, B2)` не нужно: по наследству Omniscol вычисляет, что `A1 ⊂ A` и `B2 ⊂ B` совместимы (их можно ставить в один временной слот). 5. **Задайте родительскую маску**: на классе отметьте **понедельник после обеда как недоступный**. Все группы унаследуют это автоматически. Проверьте по сетке каждой группы: слот везде заблокирован. 6. **Инвертируйте маску у группы `Спорт`**: в карточке группы «Спорт» инвертируйте временное ограничение — разрешите понедельник после обеда и запретите всё остальное. Все спортивные занятия сами попадут на этот выделенный слот, и задавать его в каждом курсе не придётся. 7. **Теперь у вас работает иерархия** с наследованием разделений и отдельной временной маской. Формирование расписания учитывает её при автоматическом построении, а унаследованные конфликты отображаются в реальном времени. #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделение класса](#page-core-concepts.class-divisions) - [Свободные группы](#page-core-concepts.free-groups) - [Доступность, временные ограничения и несовместимости](#page-core-concepts.wishes-and-availability) ### 2.7 Свободные группы *Source: `help/ru/core-concepts/free-groups.md` · id: core-concepts.free-groups · Plan: premium · Updated: 2026-05-12* > **Premium** > _Premium_ **Свободная группа** — это **полуавтономная рабочая группа**: часть класса занимается своей работой параллельно с основным занятием, часто в том же кабинете и с тем же преподавателем — **группа-спутник** этого занятия. Она размещается в сетке без конфликтов, а её состав не обязательно фиксировать заранее. Это **джокер** Omniscol: используйте его, когда строгая модель «класс + подгруппы в разделении» не подходит. Очень часто он нужен в: - **художественных школах** (мастерские со свободной записью, межклассные проекты), - **полуавтономных проектах** — небольшая группа учеников работает вместе под **нестрогим** надзором преподавателя, который в основном занят своим классом и время от времени заходит посмотреть, как идут дела, - **межклассных лекциях**, мастер-классах, семинарах с приглашёнными лекторами, - **дополнительных занятиях** и добровольных **клубах**, - **курсовых проектах и коротких практиках** со свободной записью. #### Поведение Свободная группа **привязана к классу**, как и любая группа: у неё есть численность и, в зависимости от настроек учётной записи, список учеников или студентов. Отличается то, как Omniscol проверяет конфликты. Для занятия свободной группы Omniscol **отключает три вида проверок**: - конфликт с остальным классом в том же временном слоте, - конфликт с другим занятием того же преподавателя, - конфликт с уже занятым кабинетом. Именно поэтому свободная группа может работать как **группа-спутник** в сетке основного класса: основное занятие проходит, а занятие свободной группы ставится параллельно, не вызывая предупреждений. Занятия свободной группы **явно отображаются** в расписании соответствующих учеников, как и все остальные занятия. #### Когда использовать свободную группу, а когда обычную | Ситуация | Обычная группа | Свободная группа | | --- | --- | --- | | Состав определён заранее | ✓ | ✓ (как у обычной группы: численность, список учеников по желанию) | | Проверка конфликтов класса / преподавателя / кабинета | ✓ строгая | — отключена | | Моделирование факультативов как разделения класса | ✓ | — нет | | Занятие-спутник, параллельное основному занятию | — | ✓ | #### Меры предосторожности — реальное ограничение > **Прежде всего: по возможности отдавайте предпочтение настоящим > подгруппам в [разделении](#page-core-concepts.class-divisions).** > Свободная группа — это **джокер, которым стоит пользоваться > умеренно**, только когда ни одно другое чистое решение не работает. Причина: параллельное размещение на практике должен **обеспечивать планировщик вручную**. У алгоритма автоматического формирования нет возможности узнать, что полуавтономную группу нужно поставить **параллельно с конкретным основным занятием класса**. Если запустить формирование, занятия свободной группы могут оказаться в любое время — без связи с тем, что делает остальной класс. **Хорошая практика**: вручную поставьте занятие свободной группы **напротив** нужного основного занятия, а затем **заблокируйте его положение**, чтобы автоматическое формирование его больше не трогало. См. [Блокировка занятия](#page-timetables.lesson-lock). #### Создание При создании группы (через Добавить группу) отметьте опцию Свободная группа. Затем такие группы помечаются в списках значком [right-left], чтобы их не путали с обычными группами. #### Последствия отключения конфликтов На практике для занятия свободной группы это означает: - если Алиса (ученица класса) посещает это занятие, пока у остального класса в том же временном слоте идёт другое основное занятие, Omniscol **не выдаёт предупреждения** (хотя теоретически она должна находиться в двух местах одновременно); - преподавателя можно назначить на другое занятие в том же временном слоте, тоже без предупреждения; - кабинет может быть уже занят основным занятием, и предупреждения не будет. Такое допущение **сделано сознательно**. Вам, как планировщику, нужно самостоятельно убедиться, что одновременное проведение занятий имеет педагогический смысл (обычно: преподаватель лишь время от времени заходит посмотреть, как продвигается полуавтономная группа; ученики группы уходят с основного занятия без проблем; кабинет вмещает оба вида деятельности). #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделение класса](#page-core-concepts.class-divisions) - [Блокировка занятия](#page-timetables.lesson-lock) - [Свободная группа](#page-glossary.free-group) ### 2.8 Курсы, занятия и типы занятий *Source: `help/ru/core-concepts/lessons-and-types.md` · id: core-concepts.lessons-and-types · Updated: 2026-06-13* В Omniscol есть три связанных, но разных объекта, которые важно не путать: **курс** (абстрактная учебная единица), **занятие** (конкретный экземпляр курса в определённую дату) и **тип занятия** (классификация: лекция, семинар, практикум и так далее). #### Курс **Курс** — это минимальная единица преподавания: дисциплина, класс или группа, преподаватель, кабинет, продолжительность, число занятий в неделю (или календарь дат в календарном режиме). Пример: *«Математика в 6А классе, преподаватель И. И. Иванов, 4 часа в неделю в кабинете 204».* Курс отвечает за **педагогическую логику**: кто, что и с кем изучает. Именно его вы создаёте в модуле «Управление расписанием». См. также определение в глоссарии: [Курс](#page-glossary.course). #### Занятие **Занятие** — это конкретный **экземпляр** курса с датой и временем. Из курса *Математика в 6А классе, 4 часа в неделю* Omniscol создаёт 4 занятия в неделю на неделях публикации (например, понедельник 8:00–9:00, вторник 10:00–11:00, среда 14:00–15:00, пятница 9:00–10:00). Именно занятие отображается в модуле «Расписание», на порталах и в экспорте iCal. Разовые изменения (перенести, отменить, назначить замещение) тоже относятся к занятию. Интерфейс использует именно этот термин для единицы, размещаемой в сетке: то, что вы размещаете, переносите, блокируете, редактируете, отменяете или для чего назначаете замещение, — это **занятие** (или «учебное занятие», когда нужна точность). #### Тип занятия **Тип занятия** классифицирует каждый курс помимо дисциплины: лекция, семинар, практикум, экзамен, дистанционное занятие, экскурсия. Тип нужен для: - **бизнес-логики** (экзамен обрабатывается не так, как семинар), - **статистики** (часы семинаров и часы лекций по преподавателям), - **наглядности** (отображение в расписаниях). Подробнее об управлении типами см. [Типы занятий (лекция, семинар, экзамен и т. д.)](#page-admin.lesson-types). #### Где хранятся курсы в структуре В зависимости от сложности структуры классов курсы привязываются либо **к своему классу** (стандартный случай), либо **сквозным образом, поверх классов** (когда используются группы групп или у занятия одновременно несколько групп). Для пользователя это прозрачно: Omniscol переключается автоматически в зависимости от структуры. См. [Группы групп](#page-core-concepts.groups-of-groups). #### Простые и сложные занятия Занятие может быть **простым** (один преподаватель, один класс, одна дисциплина, один кабинет, регулярное повторение) или **сложным**: чередование недель A/B, сдвоенные занятия, связанные занятия (ротация между группами), совместное преподавание (несколько преподавателей). См. [Сложные занятия](#page-core-concepts.complex-lessons). #### См. также - [Занятие](#page-glossary.lesson) - [Тип занятия](#page-glossary.lesson-type) - [Типы занятий (лекция, семинар, экзамен и т. д.)](#page-admin.lesson-types) - [Сложные занятия](#page-core-concepts.complex-lessons) ### 2.9 Сложные занятия: чередующиеся, сдвоенные, связанные, совместные *Source: `help/ru/core-concepts/complex-lessons.md` · id: core-concepts.complex-lessons · Updated: 2026-06-13* Многие занятия устроены просто: один состав учеников, один преподаватель, один кабинет и повторяющийся временной слот. Но Omniscol поддерживает и более сложные конфигурации, которые можно сочетать между собой. Сложные занятия — это занятия одного класса, между которыми задана особая настройка. Таких настроек несколько. #### 1. Чередующиеся занятия (недели A/B/...) Занятия, которые проходят **не каждую неделю**, а чередуются. Классический случай: одно занятие на неделе A, другое на неделе B, в одном и том же временном слоте. Такая конфигурация очень распространена во Франции и в школьных системах, которые на неё ориентировались, но за их пределами встречается редко. **Что нужно заранее**: включить чередование недель в разделе Параметры (модуль Администрирование). Можно выбрать обозначения: буквы A/B/C или цифры 1/2/3. **Сдвиг из-за каникул**: после периода каникул чередование может выравниваться заново. Это настраивается на шкале времени экрана [«Учебный год»](#page-admin.school-year). **Создание**: 1. Наведите курсор на занятие, которое нужно чередовать. В правом верхнем углу занятия появится значок [plus], нажмите на него. 2. Для чередующейся недели добавляется свободное место. 3. Создайте занятие для этого нового места. 4. Разместите его с помощью кнопки-булавки [thumbtack], затем нажмите нужный временной слот (день и время) среди цветных меток. Можно повторить действие и добавить другие недели (чередование трёх, четырёх и более недель). #### 2. Сдвоенные занятия (идущие подряд) Два занятия, которые должны **идти друг за другом в течение дня**, без промежутка. Типичные случаи: - практические занятия двух разных групп подряд (преподаватель гарантированно приходит на целые полдня), - лекция и семинар подряд (вводная лекция, затем семинар для закрепления), - сдвоенный экзамен. **Создание**: на вкладке «Распределение часов» перетащите одно занятие под другое. Два занятия склеиваются и считаются единым блоком. В один блок можно соединить сколько угодно занятий, но если общая длительность слишком велика, блок может не поместиться во временную сетку. **Разъединение**: при наведении курсора между двумя сдвоенными занятиями появляется кнопка «ножницы». Она разделяет сдвоенные занятия. **Почему не сделать одно более длинное занятие?** Потому что у двух занятий могут различаться: - **типы** (лекция, затем семинар), - **преподаватели** (основной преподаватель на лекции, ассистент на семинаре), - **кабинеты**. Если все атрибуты одинаковы, проще увеличить длительность одного занятия; сдвоенные занятия дают гибкость во всех остальных случаях. #### 3. Связанные занятия (чередование полугрупп) Два одновременных занятия для **полугрупп, которые меняются местами**, — всего получается четыре занятия. Хрестоматийный пример: ``` Слот 1: группа A на биологии, группа B на физике Слот 2: группа A на физике, группа B на биологии ``` За два слота обе полугруппы проходят обе дисциплины, но в разном порядке. Для такой ротации нужны два преподавателя (по биологии и по физике), которые «меняются» группами. Такая конфигурация довольно распространена в основной школе во Франции и очень популярна во франкоязычных странах Африки. В других местах она встречается заметно реже, но её можно увидеть, например, в Бразилии. **Создание**: 1. Создайте два [сдвоенных](#2-сдвоенные-занятия-идущие-подряд) занятия (одно под другим). 2. Наведите курсор на границу между ними: появится кнопка Связанные занятия (тандем). 3. Нажмите её и укажите **две группы**, которые должны чередоваться. Лучше всего, если обе группы заданы в классе как [разделение](#page-core-concepts.class-divisions). Можно выйти за пределы двух занятий и двух групп, но этот случай скорее теоретический, чем встречающийся в реальной жизни. #### 4. Совместное преподавание Два или несколько преподавателей ведут **одно и то же занятие** в **одном кабинете** и **одновременно**. Типичные случаи: - усиленное сопровождение (основной преподаватель и ассистент), - *приглашённый преподаватель* в паре с основным на несколько занятий, - междисциплинарный модуль (врач и специалист по информатике на курсе «Информатика в здравоохранении»), - два основных преподавателя на протяжении всего семестра. **Создание**: на экране назначения преподавателей на курс выберите **нескольких преподавателей**. Занятие засчитывается каждому из них в статистике и в учебной нагрузке. #### 5. Сочетания Эти усложнения можно **сочетать**. Примеры: - **Чередующееся + сдвоенное** — на неделе A занятие представляет собой сдвоенный блок, а на неделе B — другой сдвоенный блок. - **Чередующееся + совместное** — неделя A с основным преподавателем, неделя B с приглашённым преподавателем (чередование преподавателей). - **Сдвоенное + связанное** — чередование полугрупп на двух слотах подряд (самый частый случай лабораторных работ по естественным наукам, которые проводятся по половинам класса). Типичный пример: задать дополнительные полчаса русского языка и математики и при этом решить проблему трёх часов физкультуры (третий час получается в среднем: 2 часа раз в две недели сверх 2 часов каждую неделю). | Неделя A | Неделя B | | --- | --- | | Русский язык | Физкультура | | Математика | Физкультура | #### Нестандартные случаи Если ваша задача не укладывается ни в одну из этих категорий, обратитесь в поддержку Omniscol: скорее всего, её можно смоделировать, но для выбора лучшего подхода может понадобиться помощь. #### Инструкция — Создать лабораторное занятие со связанными полугруппами 1. **Хрестоматийный случай**: лабораторное занятие по естественным наукам в двух слотах, где полугруппа A занимается биологией, затем физикой, пока полугруппа B занимается физикой, затем биологией. Сочетание сдвоенных и связанных занятий. 2. **Предварительное условие**: в нужном классе задайте две полугруппы как **разделение**, например `(A, B)`. См. [Разделение класса](#page-core-concepts.class-divisions). Благодаря этому Omniscol считает их взаимоисключающими и, значит, способными меняться местами. 3. **Создайте первое занятие** (например, биология для полугруппы A) в первом слоте, на вкладке «Распределение часов». Укажите преподавателей и кабинет биологии. 4. **Перетащите второе занятие** (физика для полугруппы B) **прямо под первое** (в момент, когда вы отпускаете занятие, появляется место, и оно оказывается склеенным с первым). 5. **Наведите курсор на границу** между двумя сдвоенными занятиями: появится кнопка Связанные занятия (тандем). Нажмите её. Укажите две группы (`A` и `B`), которые должны чередоваться. Omniscol автоматически создаёт **ротацию**: слот 1 → A на биологии и B на физике; слот 2 → A на физике и B на биологии. Два преподавателя одновременно, два кабинета, две полугруппы, которые меняются местами, всего четыре занятия. 6. **Для корректировки**: кнопка «ножницы» между двумя сдвоенными занятиями разрывает связь. Можно также сочетать с **чередованием A/B** (разные лабораторные на неделе A и на неделе B) или с **совместным преподаванием** (два преподавателя на одном занятии). Полный контекст описан на странице [Распределить часы и создать занятия](#page-timetables.hour-distribution). #### См. также - [Чередующиеся занятия](#page-glossary.alternate-lessons) - [Сдвоенные занятия](#page-glossary.concatenated-lessons) - [Связанные занятия](#page-glossary.associated-lessons) - [Совместное преподавание](#page-glossary.co-teaching) - [Распределить часы и создать занятия](#page-timetables.hour-distribution) ### 2.10 Подразделения, площадки, кабинеты, ресурсы, несколько кабинетов *Source: `help/ru/core-concepts/sites-rooms-resources.md` · id: core-concepts.sites-rooms-resources · Updated: 2026-06-13* На этой странице собрано **организационное и физическое** устройство учебного заведения в Omniscol: как подразделения структурируют классы, где проходят занятия, в каких кабинетах и с каким мобильным оборудованием. > _Premium_ #### Подразделение — организационный уровень [Подразделение](#page-glossary.campus) позволяет различать несколько филиалов, факультетов или направлений в рамках одной учётной записи. Это понятие внутренней организации: оно объединяет классы в соответствии со структурой заведения и упрощает некоторые фильтры. Это понятие **необязательное**. Оно особенно полезно, когда площадка плохо совпадает с логической организацией заведения или когда вы хотите вести оба уровня параллельно. Подразделение не привязано к площадке и может проходить через несколько площадок. Площадка описывает скорее географическую или физическую реальность: место, временную сетку, кабинеты, время в пути. Эти два понятия не обязаны совпадать, и именно тогда они наиболее полезны. Например: - факультет может использовать несколько площадок; - на одной физической площадке могут находиться несколько подразделений или направлений; - несколько факультетов могут делить одни и те же здания; - несколько школ одной группы могут пересекающимся образом делить несколько площадок; - подразделение может служить в основном фильтром для анализа, не влияя на время в пути. Даже если подразделение и площадка почти полностью совпадают, держать оба понятия может быть полезно для фильтров, группировок и некоторых видов анализа. Подразделения создаются здесь: [общие параметры](#page-admin.parameters), под уровнями классов. Затем их можно указать у классов. Диагностика конфликтов может использовать их для фильтрации предупреждений по организационному охвату. #### Площадки — географический уровень Каждая [площадка](#page-glossary.site) представляет отдельное физическое или географическое место. Хотя бы одна площадка обязательна. Если все занятия проходят в одном месте, создайте одну площадку. Если у вашего заведения несколько площадок и преподаватели или ученики перемещаются между ними, создайте столько площадок, сколько нужно, **и укажите время в пути** между ними. У каждой площадки своя **временная сетка** (время начала и окончания слотов, перерывы, обед, часы закрытия): сетки у площадок могут различаться (например, у главного здания и у филиала с другими часами работы). Несколько площадок — обычная практика в **высшем образовании** (несколько площадок, региональные филиалы), но также и в **школьном образовании** (средняя и старшая школа одного учебного комплекса в отдельных зданиях, школа с отдельным корпусом для младших классов и т. п.). > Несколько площадок не входят в тариф **Lite**. Они доступны начиная > с тарифа Standard. #### Несколько площадок: политика и время в пути Типичный случай: преподаватель заканчивает занятие на площадке A в 10:00, а в 10:30 должен быть на площадке B, дорога занимает 15 минут. При перерыве между занятиями в 30 минут на временной сетке всё складывается. При перерыве всего в 10 минут — нет. ##### Как указать время в пути На экране **Площадки** модуля Управление расписанием кнопка Расстояние между площадками открывает окно со временем в пути в виде **треугольной полуматрицы**: N площадок = N×(N−1)/2 ячеек для заполнения (без диагонали и без дублей: матрица симметрична). Введите длительность в минутах для каждой пары и подтвердите кнопкой Сохранить. Пока время не введено, алгоритм считает, что между площадками перемещаться не нужно, и может «телепортировать» преподавателей, чего на практике, разумеется, не бывает. ##### Политика для преподавателей: автоматическая смена площадки **Преподаватель** может автоматически менять площадку между двумя последовательными занятиями: этим управляет алгоритм. Со стороны преподавателя ничего задавать не нужно, достаточно, чтобы было указано время в пути между площадками. ##### Политика для классов: площадка по умолчанию и ручное назначение **Класс** по умолчанию привязан к одной площадке (площадке, на которой он числится). Все его занятия по умолчанию проходят на этой площадке. Но вы можете **вручную назначить занятию класса кабинет другой площадки**, например «физкультура в спортзале филиала». В этом случае: - **заранее назначенный кабинет** сохраняется алгоритмом (он не пытается заменить его кабинетом площадки по умолчанию); - алгоритм рассчитывает **время в пути** относительно предыдущих и следующих занятий (в зависимости от их площадки: по умолчанию это площадка класса, иначе площадка кабинета, закреплённого за этими занятиями). Если на занятии **кабинет не указан**, алгоритм выбирает кабинет **площадки класса**. Это значение по умолчанию. ##### Блокирующее ограничение, с точностью до минуты Ограничение между площадками для автоматического формирования расписания является **блокирующим**. Если не хватает хотя бы одной минуты между окончанием занятия на одной площадке и началом занятия на другой, размещение **отклоняется**: автоматического смягчения нет. Проверка точная и опирается на **фактическую временную сетку**: если два слота разделены 15-минутной переменой, а дорога занимает 10 минут, размещение возможно; если дорога занимает 16 минут, нет. ##### Обеденный перерыв при смене площадки Когда смена площадки приходится на обеденный перерыв, время в пути **вычитается из реального времени обеда**. Алгоритм учитывает минимальную продолжительность обеда для преподавателей и для учеников (задаётся на уровне площадки); если из-за дороги обед становится короче минимума, размещение отклоняется. Практический вывод: если правильно указать время в пути и продолжительность обеда для каждой площадки, расписание не окажется теоретически допустимым, но физически невыполнимым. ##### Влияние на диагностику Если для размещений на нескольких площадках вы видите «невозможно», проверьте в первую очередь: - указанное **время в пути** (чтобы не было «телепортации» и нелепо завышенных значений), - **перерывы между занятиями** на временной сетке, - возможный **обеденный перерыв** в соответствующем слоте, - **заранее назначенные кабинеты**: если за классом закреплён кабинет на другой площадке, именно он задаёт ограничение. При ручном размещении ограничение отображается оранжевым, и вы всегда можете настоять на своём. Но если занятия не заблокированы, последующий запуск автоматического формирования расписания переместит эти занятия, чтобы устранить конфликт. ##### Пример: выездные занятия Помимо постоянных площадок, механизм нескольких площадок естественным образом охватывает **регулярные выездные занятия**: - **посещение гостиницы или ресторана** для школы гостиничного дела и ресторанного сервиса; - **посещение музея** или мастерской для школы искусств или дизайна; - регулярный **выезд на предприятие** (посещения при дуальном обучении); - **практика на внешней площадке** (стройка, ферма, лаборатория-партнёр). Создайте отдельную площадку для каждого регулярного внешнего места, с указанием времени в пути от вашей основной площадки. Блокирующее ограничение действует как обычно: если дорога не укладывается во время между двумя занятиями, размещение отклоняется. ##### Подробнее: высшее образование Несколько площадок особенно распространены в высшем образовании (несколько площадок, региональные филиалы, преподаватели, которые перемещаются между ними). Особые случаи (отдельное расписание на каждую площадку благодаря параллельно опубликованным расписаниям, входящим в Premium, виртуальные площадки для видеосвязи и т. д.) разобраны здесь: [Несколько площадок в высшем образовании](#page-higher-ed.multi-site). #### Кабинеты — помещения [Кабинеты](#page-glossary.classroom) привязаны к площадке, которая определяет их физическую реальность: место, временную сетку, время в пути. У кабинета есть: - **название**, - **вместимость** (число учеников; критически важное поле для алгоритма), - при необходимости **[специализация](#page-glossary.classroom-specialization)** (произвольная метка: химия, информатика, спорт…), - при необходимости **максимальное число одновременно занимающихся классов**, для **[больших кабинетов](#page-glossary.large-room)**, которые могут принимать несколько занятий параллельно (экзаменационный зал, спортзал, бассейн, открытая площадка); это поле появляется только после того, как задана специализация, - при необходимости **теги** или произвольные комментарии, - при необходимости **здание**, - при необходимости особые **часы работы**. ##### Несколько кабинетов: одно занятие в нескольких кабинетах Omniscol **поддерживает** назначение нескольких кабинетов одному занятию. Примеры использования: - **Экзамены в нескольких залах** — экзамен для 200 участников, разделённых между тремя лекционными залами (вместимость 70 + 60 + 80) с одним ответственным преподавателем. Общая вместимость считается как **сумма** вместимостей назначенных кабинетов. - **Лекция с трансляцией** — лекция в основном зале, транслируемая по видеосвязи в дополнительный кабинет (на другой площадке или даже для класса, который обучается полностью дистанционно). - **Практические занятия, разделённые на части** — практическое занятие для 30 студентов, разделённых между двумя соседними кабинетами (15 + 15), с одним и тем же преподавателем, который переходит из кабинета в кабинет. Ограничение: если сумма вместимостей **меньше** численности группы, Omniscol показывает конфликт. Решать, как его устранить, должен администратор (добавить кабинет, уменьшить группу или принять конфликт, если он намеренный, например когда известно, что придут не все записанные). ##### Специализации кабинетов **[Специализации](#page-glossary.classroom-specialization)** (химия, информатика, спорт, спортзал, мультимедиа, кабинет для контрольных работ) — это необязательные **произвольные** метки, которые задаёт учебное заведение. Вы создаёте специализации по своей номенклатуре, чтобы отличать кабинеты, предназначенные для определённых занятий (спортзал для физкультуры, бассейн для плавания, лаборатория для практикума по химии и т. д.). Алгоритм строго соблюдает специализации: если дисциплина требует специализации «химия», будут использоваться только кабинеты именно с такой специализацией. У каждого кабинета **не более одной специализации**. Для кабинета, подходящего под два специализированных назначения, используйте объединяющую метку (например, «информатика-мультимедиа») и укажите ту же метку у соответствующих дисциплин. См. [Специализации кабинетов](#page-core-concepts.classroom-specializations). ##### Кабинет, закреплённый за классом Во многих конфигурациях начальной и средней школы за каждым классом закреплён кабинет (занятия по умолчанию проходят в нём, а перемещаются только преподаватели). Это настраивается у класса: тогда алгоритм отдаёт этому кабинету приоритет для занятий класса (более высокий, чем у предпочитаемого кабинета преподавателя, если он задан). ##### Кабинеты на двух виртуальных площадках Если у вас две виртуальные площадки для одного физического места (типично для средней и старшей школы в общих помещениях), кабинет может принадлежать только одной площадке одновременно. Чтобы использовать его в обоих контекстах, продублируйте его на обеих площадках и задайте взаимоисключающие часы работы («свободен утром для средней школы, после обеда для старшей»), чтобы избежать двойных назначений. #### Ресурсы — мобильное оборудование [Ресурс](#page-glossary.resource) — это **мобильное** оборудование, не привязанное к конкретному кабинету: три переносных проектора, чемодан с планшетами, набор микрофонов и т. п. У каждого ресурса есть: - **название**, - **доступное количество** (чемодан считается за 1, а не за 30: вводите число чемоданов, а не отдельных планшетов). Алгоритм гарантирует, что в один и тот же слот число занятий, запрашивающих ресурс, не превысит доступное количество. Не нужно моделировать ресурсы, которых вам «всегда хватает»: делайте это только для действительно ограниченных общих ресурсов. #### Особый случай — видеосвязь и ссылки по занятиям То, как проходит занятие (очно, дистанционно, гибридно или в форме самостоятельной работы), задаёт его **[формат](#page-glossary.lesson-modality)** (Premium): именно он решает, занимает ли занятие физический кабинет. Для дистанционного или гибридного занятия можно прикрепить **ссылку на видеосвязь** (Zoom, Teams, Meet…). См. [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links). Это точнее, чем ссылка на видеосвязь у класса, которая служит общей ссылкой по умолчанию для всех занятий. #### См. также - [Специализация кабинета](#page-core-concepts.classroom-specializations) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [Экзамены в нескольких кабинетах в высшем образовании](#page-higher-ed.multi-room-exams) - [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links) - [Формат](#page-glossary.lesson-modality) ### 2.11 Временная сетка, слоты и длительности *Source: `help/ru/core-concepts/timetable-grid.md` · id: core-concepts.timetable-grid · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-07-17* **Временная сетка** описывает временные слоты площадки: время начала, время окончания, перерывы, обеденный перерыв и закрытые периоды. Она используется одновременно для отображения, для контроля доступности и для автоматического формирования расписания. #### Хранение по умолчанию: слот, а не записанное время По умолчанию размещённое занятие привязывается к **слоту сетки**. Omniscol хранит место в сетке, а отображаемое время каждый раз пересчитывает по сетке площадки. Практическое следствие: если однажды звонок на начало занятий перенесут с `08:15` на `08:10`, занятия, поставленные на этот слот, последуют новой сетке, и править каждое занятие по отдельности не придётся. #### Режим отображения сетки **Режим отображения** определяет, как выглядит столбец со временем, и никак не влияет на размещение занятий: - **Часы занятий** — в каждой строке указано реальное время слота (8:15 – 9:10, 9:15 – 10:15…), как оно задано в сетке площадки. - **Периоды** — в каждой строке указан номер периода (P0, P1, P2…), принятый во многих англоязычных школах. - **Календарь** — календарное отображение по круглым часам (8:00, 9:00, 10:00…), не зависящее от сетки: каждое занятие стоит в своё реальное время на сплошной временной шкале. #### Продолжительность временного слота Параметр **продолжительность временного слота** задаёт базовую длительность слота. В неё можно включить перемену, если в учреждении принято считать именно так. Примеры: - занятия по 55 минут с 5-минутной переменой: продолжительность слота `60` минут; - регулярные занятия по 1 ч 30 мин: продолжительность слота `90` минут; - в основном занятия по часу и несколько занятий по 1 ч 30 мин: продолжительность слота `60` минут и подходящее дробление. Эта длительность используется для заданных объёмов часов и при формировании расписания. Реальное время начала и окончания в сетке может отличаться: из-за перемены отображаемый слот может длиться 55 минут, оставаясь привязанным к базовой длительности в 60 минут. Этот параметр задаётся на вкладке «**Общая информация**» при редактировании расписания (см. [Общие параметры](#page-timetables.general-settings)). Самые распространённые значения, по убыванию популярности: 60, 45, 50, 120, 90, 30, 180. Иногда в вузах занятия всегда длятся несколько часов, но могут начинаться то в 8:00, то в 9:00, а продолжаться 6 или иногда 5 часов. В таком случае берётся наибольший общий делитель, и обычно это продолжительность слота в 60 минут. #### Дробление временного слота Параметр **дробление временного слота** показывает, на сколько частей можно разделить продолжительность слота. Это минимальный временной шаг. Несколько примеров: - `1` — только занятия на полную продолжительность слота; - `1/2` — шаг 30 минут, если продолжительность слота равна 60 минутам; - `1/4` — шаг 15 минут, если продолжительность слота равна 60 минутам. Выбирайте самую простую детализацию, которая покрывает реальные потребности. Более мелкое дробление даёт больше гибкости, но увеличивает число вариантов, которые нужно перебрать при формировании расписания. В интерфейсе этот параметр настраивается на вкладке «**Общая информация**» с помощью Дробление временного слота. В большинстве школьных систем мира сетка не делится на более мелкие части. Во Франции в средней школе обычно используется 1/2 (некоторые занятия длятся 1 ч 30 мин). В некоторых учебных центрах можно дойти до точности в 10 минут: тогда продолжительность слота составляет 60 минут, а дробление — 1/6. #### Положение и длительность: хранение во временных шагах Занятие записывается не с «жёстко» заданным временем, а как **число временных шагов** на сетке. **Шаг** — это продолжительность слота, делённая на дробление: продолжительность слота в 60 минут при дроблении 1/2 даёт шаг в 30 минут. Занятие в 1 час тогда занимает 2 шага, а занятие в 1 ч 30 мин — 3. Здесь сосуществуют три разных понятия, которые не следует путать: - **базовая длительность** (продолжительность слота) нужна для подсчёта объёмов часов и для **отображения длительности** занятия; - **реальное время** начала и окончания берётся из **сетки площадки**, слот за слотом; - **хранение** ведётся в **временных шагах** с точностью до дробления. Поэтому один и тот же слот может отображаться как 8:15 – 9:10 (реальное время) и при этом считаться за 1 час (базовая длительность). #### Общие запреты на слоты Некоторые слоты должны быть **закрыты для всего учреждения**: вторая половина дня в среду, слот для совещаний, зарезервированный интервал. Такие запреты устанавливаются **прямо в сетке площадки**: слот отмечается как **недоступный**, и занятия в него не ставятся ни при отображении, ни при формировании расписания. Это **временное ограничение, заданное сеткой**. Тот же механизм позволяет в аккаунтах Premium задавать и мягкие ограничения (слоты, которых лучше избегать, не закрывая их). См. [Временные ограничения (общая система)](#page-core-concepts.time-constraints). #### Обеденный перерыв и сдвиги Обеденный перерыв задаётся **интервалом** (например, 12:00 – 14:00) и **длительностью** обеда, которую нужно сохранить. Если длительность обеда **короче** интервала, Omniscol разрешает поставить занятие **на часть** перерыва, пока остаётся возможность пообедать — до этого занятия или после него. Очень часто обеденный перерыв длится два часа, но допускается поставить занятие на один час: как правило, это факультативы, на которых присутствует не весь класс, или общие курсы, где сложно синхронизировать несколько классов. Для частей класса, у которых в это время нет занятия, такое время не считается свободным часом (для алгоритма это не «окно»). Обеденный перерыв — также единственный случай, когда нерегулярный слот рассматривается как набор других временных шагов. При шаге в 30 минут, продолжительности слота в 1 час и интервале перерыва с 12:00 до 13:30 программа считает, что это 3 × 30 минут. Можно задать либо один слот в 1 ч 30 мин, либо 1 ч + 30 минут, либо 30 минут + 1 ч — это неважно. В этом случае занятия во второй половине дня сдвигаются на полчаса. Если при этом задать минимальную длительность обеда в полчаса, останется возможность поставить на перерыв занятие в один час: соответствующие ученики смогут пообедать либо до него, либо после. Можно также указать, что **столовая открывается чуть раньше** официального перерыва: тогда «окно» на этом слоте не считается для учеников потерянным временем. Главное — смоделировать нужное правило: открытые слоты, закрытые слоты, гибкий обеденный перерыв, доступность или недоступность. Сетка должна отражать то, что учреждение действительно допускает. ##### Сдвиг обедов по параллелям для разгрузки столовой Если столовая не может принять всё учреждение сразу, параллели распределяют по **двум сменам**, идущим друг за другом. В сетке задаётся **только один** общий обеденный перерыв; сдвиг затем настраивается **для каждого класса** с помощью временных ограничений. 1. В сетке площадки задайте обеденный перерыв на **весь** интервал — например, **12:00 – 14:00** — с **сохраняемой длительностью обеда в один час**. Если смотреть на каждый класс отдельно, он мог бы пообедать либо с 12:00 до 13:00, либо с 13:00 до 14:00. 2. Чтобы **закрепить** смену каждой параллели, откройте временные ограничения класса (Временные ограничения класса) и закрасьте значением «**Недоступно**» (чёрным) половину слота, отведённую под его обед. Алгоритм не поставит туда ни одного занятия: это время гарантированно остаётся для обеда, а занятия класса переносятся на другую половину слота. Для двух смен: - **5-е, 6-е и 7-е классы** — недоступны с **12:00 до 13:00**: они обедают в первую смену, их занятия ставятся на 13:00 – 14:00. - **8-е и 9-е классы** — недоступны с **13:00 до 14:00**: они обедают во вторую смену, их занятия ставятся на 12:00 – 13:00. Так столовая получает два отдельных потока вместо одного. Тот же принцип распространяется на три смены и больше: расширьте обеденный интервал, затем для каждой параллели закрасьте положенную ей половину слота под обед. Редактор ограничений подробно описан в разделе [Временные ограничения (общая система)](#page-core-concepts.time-constraints). > _Premium_ #### Пользовательское время занятия Занятию можно задать **пользовательское время**: точные начало и конец, которые не обязательно совпадают с границами слота. Это возможно во всех типах расписаний. Занятие отображается вне сетки, с реальным временем: оно может начинаться или заканчиваться за границами отображаемого слота. Omniscol использует это пользовательское время, чтобы вычислить реальное пересечение. Любая сущность, назначенная на занятие — преподаватель, кабинет, класс, группа или ресурс, — считается занятой, как только пользовательское время заходит на слот. При автоматическом формировании расписания занятие с пользовательским временем рассматривается как неперемещаемое: его положение фиксируется автоматически. > _Premium_ #### Класс вне сетки **Класс вне сетки** — это ещё один случай: занятия класса хранятся с точным временем, независимо от сетки площадки. Эта функция относится только к расписаниям типа «календарь». Она нужна главным образом для непрерывного образования и очень гибких программ, которые делят помещения и преподавателей с основным обучением, но не следуют той же временной сетке. Учреждение выбирает временной шаг по умолчанию, например четверть часа, и занятия хранятся с временем начала и окончания. > _Premium_ #### Пользовательские длительности Занятие может иметь и **пользовательские длительности**: - **Рассчитанная длительность** — длительность, выведенная из пользовательского времени занятия; - **Фактическая длительность** — длительность, которая в первую очередь используется в сводных панелях; - **Учтённая длительность** — длительность, используемая для выставления счетов или оплаты труда преподавателя. Пример: экзамен занимает кабинет с `08:30` до `11:30`, потому что кабинет нужно подготовить заранее и освободить после. Сводная панель может учесть в фактической длительности только 2 часа экзамена, а учтенная длительность преподавателя, дежурящего на экзамене, может быть больше, если учреждение включает в неё компенсацию за проверку работ. #### См. также - [Общие параметры](#page-timetables.general-settings) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [Занятия вне сетки](#page-timetables.off-grid-lessons) ### 2.12 Специализации кабинетов *Source: `help/ru/core-concepts/classroom-specializations.md` · id: core-concepts.classroom-specializations · Updated: 2026-06-13* Не все кабинеты одинаковы: в химической лаборатории нельзя проводить занятие по физкультуре, компьютерный класс имеет смысл только для дисциплин, которые используют его рабочие места, а спортивный зал отведён под спорт. **Специализация кабинета** в Omniscol позволяет задать такие соответствия, чтобы автоматическое формирование расписания и диагностика учитывали физические ограничения. #### Как это работает: общая метка для кабинетов и дисциплин Специализация опирается на **произвольную метку**, которую учебное заведение задаёт по своей номенклатуре. Она связывает два объявления: - **Со стороны кабинета** — у каждого кабинета **не более одной специализации** («химия», «информатика», «спортзал»…). У большинства кабинетов её нет. - **Со стороны дисциплины** — дисциплина, назначенная классу, может требовать специализированный кабинет через поле Специализированный кабинет. Значение должно **точно** совпадать с меткой хотя бы одного кабинета. Связь строгая в обе стороны: дисциплина, требующая «химию», размещается только в кабинете с этой меткой, а специализированный кабинет **закреплён** за дисциплинами, которые запрашивают его метку, — для обычных занятий он не используется. **Вместимость** кабинета проверяется отдельно: при любой специализации предусмотренное число учеников должно помещаться в кабинет. #### Влияние на формирование При автоматическом формировании алгоритм рассматривает для каждого курса только **подходящие** кабинеты: с меткой специализации, которую требует дисциплина (если она есть), и достаточной вместимостью для данного числа учеников. Если свободного подходящего кабинета нет, формирование сообщает об этом, а диагностика указывает дисциплину, класс и затронутую специализацию. Решение за вами: добавить метку другому кабинету, убрать требование из дисциплины или пересмотреть численность. #### Универсальные кабинеты У кабинета только **одна** метка специализации. Если кабинет должен служить двум специализированным целям — например, информатике и мультимедиа, — создайте объединяющую метку («информатика-мультимедиа») и укажите эту же метку у всех соответствующих дисциплин. #### Общие кабинеты **Общие** кабинеты (без специализации) принимают все дисциплины, которые не требуют специализированного кабинета. Это самый распространённый случай; добавляйте специализацию только тогда, когда нужно ограничить использование. #### Большой кабинет: несколько занятий одновременно Специализированный кабинет обычно принимает **одно занятие за раз**. Вы можете сделать из него **[большой кабинет](#page-glossary.large-room)**, указав **максимальное количество классов**, занимающихся в нём одновременно: тогда в нём параллельно проходят несколько разных занятий (с разными преподавателями и группами), пока суммарное число учеников помещается в его вместимость. Так бывает с экзаменационным залом, спортзалом, бассейном или открытой площадкой. Эта настройка появляется **только после** того, как кабинету задана специализация. #### Рекомендации - **Начинайте с широких настроек** — при первоначальной настройке не задавайте слишком много ограничений, иначе можно заблокировать формирование. - **Уточняйте после первой диагностики** — увидев результат формирования, вы поймёте, где отсутствующая специализация позволила бы избежать неудачного размещения. - **Расскажите команде** — преподаватели и персонал, обслуживающий кабинеты, должны понимать, почему доступ в тот или иной кабинет ограничен, иначе они будут обходить правило вручную. #### Инструкция — Настройка кабинета биологии 1. **Настройте специализированный кабинет** (лаборатория биологии, компьютерный класс, спортзал), чтобы автоматическое формирование не ошибалось. 2. **Откройте кабинет** на экране «Площадки / Кабинеты / Ресурсы» в расписании. Укажите его **специализацию**: выберите существующую метку или создайте новую (например, `Биология`). У кабинета только одна метка. 3. **Вместимость** — число мест. Формирование проверяет, что число учеников назначенной группы не превышает вместимость. ⚠ Будьте реалистичны: слишком жёсткое значение блокирует формирование, слишком большое приводит к переполнению кабинета. 4. **Со стороны дисциплины**: для нужных дисциплин каждого класса (биология, естествознание…) укажите в поле Специализированный кабинет ту же метку `Биология`. Совпадение должно быть точным — именно оно закрепляет кабинет за этими дисциплинами. 5. **Начинайте с широких настроек** при первоначальной настройке: чем меньше ограничений, тем меньше риск заблокировать формирование. Вы **уточните их после первой диагностики**, когда увидите случаи, в которых отсутствующая специализация позволила бы избежать неудачного размещения. 6. **Для кабинета без ограничений** (общего) не указывайте никакой специализации: тогда кабинет принимает все дисциплины без особых требований. Это самый простой вариант по умолчанию — добавляйте специализацию только тогда, когда нужно ограничить использование. #### См. также - [Специализация кабинета](#page-glossary.classroom-specialization) - [Большой кабинет](#page-glossary.large-room) - [Площадки, кабинеты, ресурсы, несколько кабинетов](#page-core-concepts.sites-rooms-resources) - [Управление дисциплинами](#page-admin.subjects) ### 2.13 Доступность и временные ограничения преподавателей *Source: `help/ru/core-concepts/wishes-and-availability.md` · id: core-concepts.wishes-and-availability · Updated: 2026-06-21* **Доступность** преподавателя сообщает программе, какие временные слоты для него **невозможны**, **нежелательны** или **предпочтительны**. Алгоритм формирования расписания строго соблюдает невозможные слоты и старается учесть остальные предпочтения. В средней школе то же самое понятие называют **пожеланиями**. #### Четыре уровня | Цвет | Значение | Эффект | | --- | --- | --- | | **Чёрный** | Невозможно | Жёсткое ограничение: алгоритм никогда не ставит туда занятие | | **Красный** | Нежелательно | Мягкое ограничение: алгоритм по возможности избегает этот слот | | **Зелёный** | Предпочтительно | Если допустимых слотов несколько, алгоритм отдаёт предпочтение этому | Неотмеченный слот **нейтрален**: преподаватель доступен, предпочтений нет. #### Включение ввода доступности Режим ввода выбирается на странице [общие параметры](#page-admin.parameters), в параметре Доступность преподавателей: - **Отключено** — преподаватели не вводят свою доступность. - **Недельное** — доступность вводится на типовую неделю. Для недельных и цикловых расписаний. - **Календарь** — доступность вводится по датам. Для календарных расписаний, в Premium-аккаунтах. - **Календарь + Недельное** — оба способа ввода действуют одновременно, в Premium-аккаунтах: когда повторяющиеся и календарные расписания сосуществуют, или просто чтобы преподавателю было проще указать, что в определённый день недели он никогда не доступен, независимо от даты (исключения при этом можно отметить). #### Ввод самим преподавателем Преподаватели могут вводить свою доступность сами из своей учётной записи [heart]. Это существенно экономит время администрации. Если школа не хочет, чтобы преподаватель входил в систему, можно также **отправить ему ссылку общего доступа** прямо на его экран доступности, в режиме редактирования, создав её через Скачать со сроком действия. Преподаватель вводит свою доступность, даже не имея права входить в свою учётную запись. На практике такую ссылку часто отправляют в персональном сообщении с предусмотренными дисциплинами, объёмом часов, поездками или особыми ограничениями и чётким крайним сроком. В Omniscol нет отдельной массовой рассылки для этого случая: каждая ссылка вставляется в сообщение, которое уже подготовлено для соответствующего преподавателя. #### Подтверждение администратором в расписании В недельном расписании: - Доступность, введённая преподавателем, по умолчанию **ожидает подтверждения**. - Планировщик проверяет её и **подтверждает** (при необходимости изменив — например, убрав слишком жёсткое ограничение или заменив чёрный цвет на красный). - Любое последующее изменение, внесённое преподавателем, снова переходит в статус «в ожидании». В средней школе доступность можно открыть для ввода за несколько недель до составления расписания. Поэтому она вводится на типовой сетке, а на этапе подтверждения её переносят на реальную сетку занятий расписания: этап подтверждения нужен и для того, чтобы правильно выполнить этот перенос. Доступность виртуальных преподавателей сохраняется сразу. Это позволяет, например, задать по умолчанию свободный день недели. В календарном режиме ([Premium](#page-overview.plans-and-options)): - Доступность **сводится в реальном времени**. - Конфликты выявляются сразу. Считается, что в календарном режиме на сетку накладывается меньше ограничений (дат множество), а преподаватели самостоятельны, а то и вовсе не работают в школе, совмещают должности и обязанности: это не пожелание, а реальная доступность. Поэтому в виде исключения данные о доступности преподавателей в календарном режиме можно изменять и на экране модуля Администрирование, и из расписания. #### Конфликт доступности при формировании Если доступность преподавателя **слишком ограничена** и его занятия невозможно разместить, формирование расписания завершается ошибкой с понятной диагностикой. См. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). Что можно сделать: - Смягчить доступность (отметить слот красным, а не чёрным). - Перераспределить курсы (преподаватель с 18 часами и всего 12 свободными слотами не справится). - Нанять нового преподавателя (крайний случай, но иногда это верный диагноз). #### Инструкция — Собрать и подтвердить доступность преподавателей 1. **Доступность** сообщает алгоритму, какие слоты **невозможны** (чёрный — жёсткое ограничение), **нежелательны** (красный — мягкое) или **предпочтительны** (зелёный). Алгоритм строго соблюдает чёрный цвет и оптимизирует остальные. 2. **Включите режим ввода** в общих параметрах (параметр Доступность преподавателей): **отключено**, **недельное** (доступность на типовую неделю, обычный режим) или **календарь** (в Premium-аккаунтах, доступность по датам — можно сочетать с недельным). Выберите в зависимости от типа расписания. 3. **Откройте ввод** преподавателям. Есть два варианта: - они входят в систему и вводят доступность из своих учётных записей [heart]; - вы создаёте **прямую ссылку общего доступа** через Скачать со сроком действия — преподавателю не нужно входить в свою учётную запись — и отправляете её каждому соответствующему человеку. 4. **Со стороны преподавателя**: он входит в систему или переходит по ссылке, видит свою сетку и отмечает слоты чёрным (невозможно), красным (нежелательно), зелёным (предпочтительно). Изменения сохраняются сразу. Это делается быстро. 5. **Подтверждение администратором (недельный режим)**: введённая доступность **ожидает подтверждения**. Проверьте и подтвердите её — при этом можно её изменить. Любое последующее изменение преподавателя снова переходит в статус «в ожидании». В календарном режиме сведение происходит в реальном времени. ⚠ Если преподаватель отметит слишком много чёрного, алгоритм не сможет разместить его занятия — диагностика сообщит об этом (см. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation)). #### См. также - [Временные ограничения (общая система)](#page-core-concepts.time-constraints) - [Доступность преподавателей (пожелания)](#page-glossary.wishes) - [Несовместимость (между дисциплинами)](#page-glossary.incompatibility) - [Формирование](#page-glossary.solver) - [Доступность в календарном режиме](#page-timetables.calendar-wishes) ### 2.14 Временные ограничения: классы, курсы, группы, кабинеты и временная сетка *Source: `help/ru/core-concepts/time-constraints.md` · id: core-concepts.time-constraints · Audience: admin · Updated: 2026-06-27* **Временные ограничения** сообщают алгоритму формирования расписания, каких **временных слотов** следует **избегать** и какие **предпочесть**. Один и тот же редактор служит и для **доступности** **преподавателя** или **кабинета**, и для ограничений, которые несут **класс**, **курс**, **группа** или сама **временная сетка**. Каждый экран показывает только те уровни, которые имеют для него смысл. Подробнее о случае преподавателя (ввод самим преподавателем, ссылка общего доступа, подтверждение) см. [Доступность преподавателей](#page-core-concepts.wishes-and-availability). #### Четыре уровня Временной слот закрашивается одним из этих уровней, каждый обозначен цветом: | Цвет | Уровень | Влияние на формирование расписания | | --- | --- | --- | | ⚫ **Чёрный** | Недоступно | Жёсткое ограничение: алгоритм никогда не ставит туда занятие | | 🔴 **Красный** | Нежелательно | Сильное мягкое ограничение: алгоритм по возможности избегает этого слота | | 🟠 **Оранжевый** | Скорее нежелательно | Слабое мягкое ограничение: избегать, если остальные условия позволяют | | 🟢 **Зелёный** | Предпочтительно | Положительное предпочтение: алгоритм отдаёт этому слоту приоритет | Незакрашенный слот считается **нейтральным**. [eraser] Ластик стирает установленный уровень и возвращает слот в нейтральное состояние. #### Кто какие уровни несёт Не везде доступны все четыре уровня: - **Преподаватель** — Недоступно, Нежелательно, Предпочтительно (чёрный, красный, зелёный). Это его **доступность**. - **Класс** (Временные ограничения класса), **курс** ([clock]), **кабинет** (Доступность) — Недоступно и Нежелательно (чёрный, красный). Здесь описываются временные слоты, в которые не хотят или, скорее, не хотели бы, чтобы класс занимался, занятия курса ставились или кабинет использовался. - **Группа** (Доступность) — те же чёрный и красный уровни, функция Premium (см. ниже). - **Временная сетка** (площадка) — это **единственный** экран, где есть **оранжевый** уровень (Скорее нежелательно). См. ниже. Везде доступ открывается через **маленькие часы** [clock] на самой сущности (у каждого класса, у каждого курса класса, у каждого кабинета…). Когда ограничения уже внесены, часы **окрашиваются**. #### Ограничения на временной сетке На сетке площадки напрямую закрашиваются **общие ограничения**, действующие для **всего учебного заведения**: - слот, закрашенный **чёрным**, **закрыт** для всех — так глобально запрещают слот (вторая половина дня в среду, перерыв, слот для собраний…). > _Premium_ В Premium сетка принимает дополнительно **мягкие** ограничения: **красные** (Нежелательно) и **оранжевые** (Скорее нежелательно), чтобы понизить приоритет слота, не закрывая его. Структуру сетки (временные слоты, продолжительность, перерывы) см. [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid). #### Редактор ограничений Редактор един для всех сущностей, и всё делается щелчком мыши. **Сначала выберите уровень** на верхней панели (набор уровней зависит от сущности). Он становится активной «кистью» и применяется к каждому слоту, которого вы коснётесь: - **Щёлкните ячейку**, чтобы закрасить только этот слот; **щёлкните и протяните** по нескольким ячейкам, чтобы закрасить их одним движением. - **Щёлкните заголовок дня**, чтобы закрасить **весь столбец** (день целиком); **щёлкните заголовок часа**, чтобы закрасить **всю строку** (этот слот во все дни). Это самый быстрый способ охватить большие промежутки. - [eraser] Ластик — такая же кисть, как и остальные: выберите её, затем щёлкайте или протягивайте, чтобы вернуть слоты в нейтральное состояние. ##### Типовая неделя и календарное представление Для недельного или циклического расписания ограничения вводятся на **типовой неделе**. > _Premium_ Для расписания календарного типа (Premium) панель навигации позволяет переключаться между **неделями**, **месяцами**, **всем годом** и **типовой неделей**: вводятся ограничения на конкретные даты, а также можно задать повторяющееся ограничение на типовой неделе. Кроме того, [временные окна](#page-timetables.date-windows) ограничивают периоды, в которые могут планироваться некоторые курсы. На **типовой неделе** каждый слот **объединяет** ограничения всех соответствующих дат периода (например, всех понедельников в 8:00). Если эти даты различаются, слот показывает **цветную полосу с пропорциональными долями** — ширина каждого цвета отражает число затронутых дней, — а его **всплывающая подсказка** приводит число дней по каждому уровню (сколько дней недоступно, нежелательно и так далее). **Щелчок по такому слоту устанавливает выбранный уровень сразу на все эти даты**: это универсальный способ принять решение для всего типового дня. #### Дополнительные параметры > _Premium_ Под редактором ограничение класса или группы может содержать **лимиты** (Premium): - Максимальное количество учебных часов в день — в формате `HH:MM`; - Максимальное количество учебных часов в неделю — в режиме календаря. Алгоритм учитывает эти лимиты как ограничения оптимизации. Преподаватель может оставить **комментарий** в свободной форме к своей доступности (поездки, особые ограничения). #### Наследование между уровнями > _Premium_ **Группа** наследует ограничения своего **класса** и **родительских групп** (см. [Иерархия групп](#page-core-concepts.group-hierarchy)). Когда нужно локально **разрешить** слот вопреки унаследованному ограничению, уровень **«Разрешённые занятия»** нейтрализует унаследованное ограничение, **не изменяя его источник**. #### Влияние на формирование расписания **Чёрные** ограничения — **блокирующие**: занятие никогда не будет поставлено в недоступный слот. Красный и оранжевый уровни — это **штрафы**, которые алгоритм стремится свести к минимуму; зелёный — **бонус**. Если из-за ограничений занятие невозможно поставить, формирование расписания сообщит об этом — см. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### См. также - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Иерархия групп](#page-core-concepts.group-hierarchy) - [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) - [Временные окна](#page-timetables.date-windows) - [Доступность преподавателей (пожелания)](#page-glossary.wishes) ### 2.15 Учебный год, чередование недель, каникулы *Source: `help/ru/core-concepts/school-year.md` · id: core-concepts.school-year · Plan: standard · Updated: 2026-05-12* **Учебный год** — это временные рамки, в которых действуют расписания. Он ставит три ключевых вопроса: когда год начинается и заканчивается, когда проходят каникулы и — если в учреждении используется чередование недель — как это чередование привязано к календарю. Его также называют академическим календарём. #### Учебный год и его границы У учебного года есть **дата начала** и **дата окончания**. Недели в этом промежутке нумеруются. Публикация расписания распространяется на часть этих недель или на все. Расписание типа «календарь» может быть опубликовано даже на период, превышающий учебный год (например, EMBA на 18 месяцев), но учитываются только даты, входящие в учебные годы. Без активного учебного года ни одно расписание опубликовать нельзя: тогда ни одно занятие не попадает в модули повседневной работы (Главная страница, Расписание, Сводная панель, Управление отсутствиями). Таким образом, учебный год — обязательное условие; см. [Учебный год и каникулы](#page-admin.school-year). Учебные годы не могут пересекаться по датам. Обычно между ними стоит период каникул, но их вполне можно поставить встык. Некоторые учебные заведения не привязаны к академическому циклу: тогда учебный год — это просто календарный год, с 1 января по 31 декабря. #### Каникулы **Каникулы** — это **неактивные** промежутки дат: нет занятий, нет мероприятий, нет учёта. Есть два источника: - **Общие каникулы** — из официального календаря страны (осенние, новогодние, зимние, весенние). Omniscol может предложить их в соответствии с настроенной страной, а что импортировать — решаете вы. - **Специальные каникулы** — свои для учреждения (методический день, экзамены, дополнительный выходной). Вы добавляете их вручную. Оба типа складываются без различия. При этом каникулы действуют на всё учреждение сразу. Если они касаются только некоторых классов, используйте отсутствие класса или временное ограничение класса (и то и другое можно при необходимости использовать сразу для нескольких классов, например находящихся за границей). #### Чередование недель (A/B и не только) В некоторых школах курсы проходят только раз в две недели (а то и реже): физкультура со сдвоенными занятиями, классный час через неделю, факультативы. Omniscol реализует это через **подсчёт недель**: недели года не получают меток, они считаются подряд. У каждого курса свой цикл — раз в две недели (A/B), раз в три (A/B/C) и так далее. Один и тот же временной слот вмещает тогда разные занятия в зависимости от места недели в цикле, например одно занятие в нечётные недели и другое в чётные — в тот же день и в то же время. Поскольку расчёт динамический, курсы с A/B и курсы с A/B/C могут сосуществовать в одном классе. **Включение** чередования недель и **формат отображения** чередования (`A/B`, `1/2`…) настраиваются в разделе [общие параметры](#page-admin.parameters). Затем экран [учебного года](#page-admin.school-year) позволяет **принудительно задать на шкале времени точки, где счёт снова начинается с недели A**, — например, чтобы аккуратно возобновить его после каникул; для наглядности шкала времени показывает чередование только в формате A/B. Чтобы **задать чередующиеся занятия** во временном слоте, см. [Сложные занятия](#page-core-concepts.complex-lessons). #### Несколько учебных лет параллельно Omniscol ведёт **несколько учебных лет параллельно** в одном аккаунте: например, текущий 2026–2027 год и следующий, 2027–2028, который находится в подготовке. **Текущий учебный год** определяет то, что пользователи видят ежедневно; остальные остаются доступными для управления и просмотра администратором. #### См. также - [Учебный год](#page-glossary.school-year) - [Чередующиеся занятия](#page-glossary.alternate-lessons) - [Учебный год и каникулы](#page-admin.school-year) - [Публикация расписания](#page-timetables.publication) - [Сложные занятия](#page-core-concepts.complex-lessons) ### 2.16 Шкала времени и навигация по периодам *Source: `help/ru/core-concepts/timeline-navigation.md` · id: core-concepts.timeline-navigation · Updated: 2026-05-12* На всех экранах Omniscol, где отображается расписание или статистика, в верхней части страницы находится **шкала времени** («баннер»). С её помощью вы **перемещаетесь во времени**: выбираете учебный год, отображаемый период и — на некоторых экранах — переключаетесь с недельного вида на месячный или годовой. На этой странице описаны общие принципы; особенности каждого модуля изложены на его отдельной странице. #### Кнопки шкалы времени На шкале времени расположены **стрелки влево и вправо** — по её противоположным краям: - **стрелка влево** ← возвращает к **предыдущему учебному году**, - **стрелка вправо** → переходит к **следующему учебному году** (например, к году, который находится в подготовке). Год (или период), **отображаемый в данный момент**, обычно подписан над шкалой времени. #### Что часто забывают: стрелка вправо > Модуль **Управление расписанием** по умолчанию показывает **текущий > учебный год**. Когда планировщик готовит следующий учебный год, > ему нужно **явно нажать стрелку вправо** на шкале времени, > чтобы перейти на следующий учебный год, и только после этого > распределять и публиковать на нём расписание. На этом экране между > годами можно переходить и по-другому: нажав на учебный год. > Текущий год выделен зелёным цветом, следующий — оранжевым. #### Виды по модулям Не все модули предлагают одинаковую детализацию: | Модуль | Вид по умолчанию | Другие виды | | --- | --- | --- | | **Расписание** | Неделя | День, месяц | | **Сводная панель** | Неделя | Месяц, год, произвольный период от даты до даты | | **Управление отсутствиями** | Неделя | Месяц, год, произвольный период от даты до даты | | **Управление персоналом** | Неделя | День | | **Управление расписанием** | Весь учебный год | | | **Редактирование календарного расписания** | Неделя | Месяц | | **Календарная доступность по часам** | Неделя | Месяц, учебный год, типовая неделя | **Кнопки переключения вида** находятся рядом со шкалой времени, как правило выше и левее. Виды «год» и «произвольный период от даты до даты» в основном доступны в модуле **Сводная панель**, где они используются для статистики за несколько периодов. #### Учебный год, отображаемый по умолчанию **Текущий учебный год** (задаётся в [модуле Администрирование](#page-admin.school-year)) отображается **по умолчанию** во всех модулях для всех пользователей. - Пользователи с ролью «преподаватель» или «ученик», просматривающие расписание, видят **только текущий год**. Прошлые и подготавливаемые годы в портале им недоступны. Так задумано: для них расписание — это то, что действует сегодня. - Объявлять об **отсутствиях** можно **только в текущем учебном году**. Задним числом объявить об отсутствии в прошедшем году нельзя, как и заранее — в следующем. - **Администраторы**, напротив, могут **перемещаться** между годами по шкале времени — поэтому важно понимать, как работают стрелки. Текущий учебный год также используется при экспорте и при синхронизации с внешним программным обеспечением. #### Когда переключают текущий учебный год Типичная последовательность: 1. **Идёт год N.** Параллельно вы работаете над годом N+1 в [модуле Управление расписанием](#page-timetables.overview), переходя к нему стрелкой вправо. Все пользователи по-прежнему видят год N в своих порталах и в отсутствиях. 2. **Окончательная подготовка** к началу года N+1: расписание N+1 публикуется на соответствующих неделях (но текущим остаётся год N). 3. **Незадолго до начала учебного года**, когда вы готовы к тому, чтобы все перешли на N+1, измените текущий учебный год в [модуле Администрирование → Учебный год](#page-admin.school-year). 4. **Изменение вступает в силу сразу**: теперь все пользователи по умолчанию видят N+1. Пользователи с ролью «преподаватель» или «ученик» получают доступ к своему новому расписанию. Об отсутствиях теперь объявляют в году N+1. Точный момент переключения зависит от вашего учреждения — чаще всего это **последний день перед началом занятий**, когда всё проверено, иногда **утро первого учебного дня**, чтобы оставить запас на проверку. Спешить не нужно: прошлый год остаётся доступным для просмотра как архив. #### Учебный год ≠ календарный год **Учебный год** в Omniscol не обязательно идёт с сентября по август. Частые особые случаи: - **Организации дополнительного профессионального образования** — нередко работают по **календарному году** (с 1 января по 31 декабря). Задайте свой учебный год с этими датами в [модуле Администрирование → Учебный год](#page-admin.school-year); всё будет работать так же. - **Университеты** со смещёнными семестрами или длинными циклами (интенсивные модули на 18 месяцев) — вы можете задавать учебные годы нестандартной продолжительности. #### См. также - [Учебный год](#page-core-concepts.school-year) - [Учебный год и каникулы](#page-admin.school-year) - [Публикация расписания](#page-timetables.publication) - [Подготовка к следующему учебному году](#page-timetables.next-school-year) ### 2.17 Поиск и фильтры в списках *Source: `help/ru/core-concepts/search-and-filter.md` · id: core-concepts.search-and-filter · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-27* Одна и та же строка поиска есть в большинстве списков Omniscol (кабинеты, преподаватели, классы, дисциплины, ресурсы, ученики…): она сочетает **текстовый** поиск и, если у записи есть числовое значение, **числовое** условие. В списках **кабинетов** это условие относится к **вместимости** — это самый полный вариант, и именно он подробно разобран здесь. Эта строка есть на вкладке Кабинеты модуля «Сводная панель», а также в **выборе кабинета** для занятия, когда вы назначаете или меняете кабинет в расписании (Назначить кабинет). #### Текстовый поиск Текстовый поиск работает во **всех этих списках**. В списках кабинетов он охватывает название кабинета, площадку, здание, специализацию и теги, указанные в Omniscol; в остальных списках — отображаемые поля (название, код и т. д.). Примеры: - `север` показывает кабинеты, в сведениях о которых есть `север`. - `лаборатория химия` показывает кабинеты, подходящие под оба слова. - `лекционный, спортзал` показывает кабинеты, подходящие под `лекционный` или под `спортзал`. #### Фильтр по вместимости (кабинеты) В списках кабинетов числовые операторы фильтруют по вместимости кабинета: - `>50` — вместимость строго больше 50; - `>=50` — вместимость не меньше 50; - `<25` — вместимость строго меньше 25; - `<=100` — вместимость не больше 100; - `=30` — вместимость ровно 30; - `50-100` — вместимость от 50 до 100; - `50-` — вместимость 50 или больше; - `-25` — вместимость 25 или меньше. #### Полезные сочетания Пробелы добавляют условия, которые должны выполняться одновременно. Запятые разделяют допустимые варианты. - `>50 площадка север` — кабинеты более чем на 50 мест, относящиеся к северной площадке. - `<=30 лаборатория` — небольшие кабинеты-лаборатории. - `лекционный, >100` — кабинеты со словом `лекционный` или кабинеты более чем на 100 мест. - `здание А информатика` — кабинеты, относящиеся к зданию А и к информатике. #### Зачем тщательно заполнять сведения о кабинетах Фильтры работают точнее, когда площадки, здания, специализации и теги актуальны. Эти сведения улучшают поиск в расписании, статистику по кабинетам и анализ загрузки зданий. #### См. также - [Статистика кабинетов](#page-dashboard.classrooms) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) - [Площадки, кабинеты и ресурсы](#page-timetables.sites-rooms) ### 2.18 Совместная работа администраторов *Source: `help/ru/core-concepts/collaboration.md` · id: core-concepts.collaboration · Audience: admin · Feature: collab · Updated: 2026-06-13* > **Premium** Опция **Совместная работа в реальном времени** позволяет нескольким администраторам одновременно работать в одном аккаунте Omniscol: каждый видит присутствие остальных в режиме реального времени, а сервер объединяет параллельные действия. #### Присутствие в реальном времени В верхней части экрана для каждого другого администратора, который подключился к аккаунту одновременно с вами, отображается индикатор в виде **круга с инициалами** (ваш круг светло-синий, а при большом числе участников круги накладываются друг на друга). Наведите на них указатель: во всплывающей подсказке будут имя каждого человека и **экран, который он сейчас открыл**. Индикатор становится **красным**, когда другой администратор открывает **тот же экран редактирования**, что и вы, — построение расписания (площадки, классы, группы, распределение часов), реорганизация, управление персоналом, пользователи, дисциплины или параметры. Это сигнал о **риске одновременного изменения**. При этом ничто не блокирует вашу работу: сервер по возможности **объединяет параллельные действия**, чтобы каждый сохранил свои изменения без незаметной перезаписи. Однако изменение в точности одного и того же поля пользователя или занятия, как и массовый импорт данных, неизбежно ведёт к конфликту: побеждает тот, кто изменил последним. Красный индикатор — приглашение договориться, чтобы не работать одновременно в одном месте с одними и теми же данными. #### Когда использовать - **Крупная школа с несколькими ответственными** — каждый отвечает за своё отделение, параллель или площадку, но все одновременно работают в Omniscol. - **Напряжённые периоды** — подготовка к началу учебного года, переход к экзаменационной сессии, обработка волны отсутствий. - **Координация на встрече** — команда собирается вокруг одного решения, а несколько участников вносят изменения со своих компьютеров: круги присутствия помогают распределить зоны работы. #### Ограничение синхронизации Круги присутствия передаются в реальном времени. Однако рабочий экран, открытый другим пользователем, не всегда обновляется автоматически после вашего сохранения. Если коллега только что изменил данные, которые вы просматриваете, перезагрузите экран или заново откройте объект, прежде чем принимать по ним решение. #### Рекомендации - **Определите зоны ответственности**: кто чем занимается. Их можно согласовать неформально (по электронной почте) или закрепить в разделе «[настраиваемые роли](#page-admin.customroles)». - **Общайтесь вне приложения** — держите отдельный канал для координации рабочих решений: индикаторы присутствия не заменяют рабочих указаний. - **Не редактируйте одну и ту же структуру одновременно**: если двое одновременно правят список учеников класса, риск конфликта растёт. Разделите подзадачи по зонам ответственности. #### Инструкция — Координация подготовки к учебному году силами трёх администраторов 1. **В крупных школах** подготовка к началу учебного года одновременно занимает нескольких администраторов. Опция **Совместная работа в реальном времени** добавляет присутствие в реальном времени и объединение параллельных действий. 2. **Заранее определите зоны ответственности** (на встрече или по электронной почте): кто ведёт какое отделение, параллель или площадку. Эту организацию можно дополнить в разделе «[настраиваемые роли](#page-admin.customroles)»: такие роли ограничивают модули и операции, доступные каждому аккаунту, а распределение по отделениям или площадкам остаётся договорённостью внутри команды. 3. **Все подключаются** к аккаунту Omniscol. В верхней части экрана в реальном времени появляются **индикаторы с инициалами** других подключённых администраторов. При наведении указателя видны имя и текущий экран каждого из них. 4. **Сигнал о конфликте**: индикатор становится **красным**, когда два администратора открывают один и тот же экран редактирования (те же классы, ту же реорганизацию…). Это признак риска одновременного изменения, который видят все затронутые администраторы. 5. **Сервер объединяет** параллельные действия: во время редактирования ничто не блокирует вашу работу, и каждый по возможности сохраняет свои изменения. Красный индикатор предлагает договориться, прежде чем вносить правки в одном и том же месте. 6. **Рекомендации**: держите отдельный канал для координации и разделите подзадачи по зонам ответственности (один администратор на отделение). Не редактируйте вдвоём одну и ту же структуру (например, список учеников класса) одновременно. После изменения, внесённого коллегой, перезагрузите соответствующий экран, прежде чем считать отображаемые данные актуальными. #### См. также - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - [Пользователи и роли](#page-admin.users-and-roles) - [Настраиваемые роли](#page-admin.customroles) --- ## 3. Составление расписания (модуль «Управление расписанием») ### 3.1 Обзор модуля «Управление расписанием» *Source: `help/ru/timetables/overview.md` · id: timetables.overview · Audience: admin · Updated: 2026-06-13* Модуль **Управление расписанием** — сердце Omniscol: в нём создают расписания, настраивают их, формируют и публикуют. Для расписания повторяющегося типа (недельного или циклического) модуль используется **время от времени** (как правило, перед началом учебного года, при создании другого триместра или семестра и при структурных изменениях), а не ежедневно (для этого есть модуль [Расписание](#page-schedules.consult-and-filter)). Для расписания календарного типа в высшем образовании это, напротив, главный рабочий экран всей команды планирования, с которым она работает ежедневно. #### Процесс планирования Построение расписания — не прямая линия: после создания и настройки основа процесса — **цикл**: разместить несколько занятий, сформировать расписание, проанализировать, скорректировать и вернуться к началу; затем следует линейная последовательность, которая начинается с **публикации** (начала учебного года). ```mermaid flowchart LR A["Создание"] --> B["Настройка
площадки, кабинеты, преподаватели,
классы, группы, курсы"] B --> M["Ручное размещение
якоря, блокировки"] M --> G["Формирование
автоматическое/ручное,
частичное или полное"] G --> J["Анализ,
точечные корректировки"] J -->|повторить| G J --> P["Публикация
= начало учебного года"] P --> E["Эксплуатация"] E --> Mod["Изменения
в течение года"] Mod -.->|исключение| J ``` Вы можете вернуться назад в любой момент, сохранять промежуточные версии и дублировать расписание, чтобы создать его вариант. Основа цикла подробно описана на страницах [Автоматическое формирование](#page-timetables.generation) и [Ручное размещение](#page-timetables.manual-placement); после начала учебного года правки вносятся, как описано на странице [Разовые изменения](#page-schedules.ad-hoc-changes). #### Несколько расписаний параллельно В вашем аккаунте может быть несколько расписаний: - неопубликованные **черновики** (чтобы готовить начало учебного года, пока идёт текущий учебный год), - расписания для разных **периодов** (1-й семестр, 2-й семестр…), - в Premium — расписания, **опубликованные параллельно** на одних и тех же неделях (например, недельное расписание на первую половину дня и календарное на вторую) — см. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). Эта возможность также может быть предоставлена по договору для некоторых аккаунтов Standard. #### Подробные шаги Каждому шагу посвящена отдельная страница. **Предварительное условие** — [Что нужно для создания расписания](#page-timetables.prerequisites). Затем восемь шагов: 1. [Общие параметры](#page-timetables.general-settings) 2. [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) 3. [Назначить преподавателей](#page-timetables.assigning-teachers) 4. [Создание классов и групп](#page-timetables.creating-classes) 5. [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) 6. [Распределить часы и создать занятия](#page-timetables.hour-distribution) 7. [Автоматическое формирование](#page-timetables.generation) 8. [Публикация расписания](#page-timetables.publication) В любой момент вы можете: - **Просмотреть** расписание (режим только для чтения), чтобы проверить его. - **Реорганизовать** расписание (режим быстрого редактирования), чтобы скорректировать положение занятий. - **Дублировать** расписание (создать черновик на основе существующего). - **Импортировать** или **экспортировать** конфигурацию курсов в формате электронной таблицы (см. [Массовый импорт](#page-timetables.mass-import)). #### Быстрый старт Если это ваше первое расписание: 1. Сначала убедитесь, что ваш [аккаунт настроен](#page-getting-started.setup-school) (параметры, учебный год, дисциплины, пользователи). 2. Нажмите Создать расписание в правом верхнем углу. 3. Выберите [режим расписания](#page-overview.timetable-modes) («Недельное», «Цикл», «Календарь»). 4. Выполняйте шаги по порядку. Если у вас уже есть данные в электронной таблице (Excel, Google Sheets, экспорт из другой программы), сразу воспользуйтесь [массовым импортом](#page-timetables.mass-import): Omniscol создаст структуру за вас, а вы затем доработаете её. #### См. также - [Выбор типа расписания](#page-overview.timetable-modes) - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Случаи высшего образования](#page-faq.higher-ed-cases) - [Особые случаи и расширенные настройки](#page-faq.edge-cases) ### 3.2 Что нужно для создания расписания *Source: `help/ru/timetables/prerequisites.md` · id: timetables.prerequisites · Audience: admin · Updated: 2026-05-10* Прежде чем создавать расписание, в учебном заведении должны быть заведены три вещи: #### 1. Хотя бы один учебный год Без учебного года нет шкалы времени, а значит, нельзя выполнить публикацию. Он создаётся в разделе Учебный год. См. [Учебный год и каникулы](#page-admin.school-year). #### 2. Используемые дисциплины Omniscol заранее заполняет базу общих дисциплин для вашей страны. Специфические дисциплины заводятся как **созданные дисциплины** через Создать. ⚠ Следите за орфографией: Omniscol делает внутреннюю копию в момент назначения дисциплины в расписание, и исправление не распространяется на расписания, уже опубликованные в настоящем или прошлом. См. [Управление дисциплинами](#page-admin.subjects). #### 3. Преподаватели Создайте всех преподавателей в разделе Администрирование > Преподаватели (по одному или массово через [импорт](#page-getting-started.preparing-data)). Укажите как минимум имя, фамилию и адрес электронной почты. Преподаваемые дисциплины и рабочие часы необязательны, но полезны. См. [Управление преподавателями](#page-admin.teachers). #### Необязательно, но полезно - **Ученики** — не нужны для создания расписания, но полезны для индивидуальных расписаний после публикации. - **Типы занятий** (лекция, семинар, лабораторная работа…) — если в вашей педагогической номенклатуре они есть, создайте их через Создать. - **Уровни** — проверьте, что в разделе Администрирование > Параметры есть уровни классов, которые вы будете использовать. #### Начать можно и без всего перечисленного Omniscol **гибок**. Если в момент создания расписания у вас есть не все преподаватели или не все дисциплины, можно начать работу и дополнить данные по ходу дела. Работа идёт менее последовательно, но это работает. Однако **учебный год** обязательно нужен до публикации. #### Начало работы Когда эти предварительные условия (хотя бы частично) выполнены: 1. Откройте модуль Управление расписанием. 2. Нажмите Создать расписание. 3. Выберите [режим расписания](#page-overview.timetable-modes). 4. Открывается страница [общие параметры](#page-timetables.general-settings). 5. Задайте название (например, «Расписание 2025-2026», «1-й семестр 2025») и описание. #### Инструкция — Проверить условия перед созданием расписания 1. **Три вещи должны быть заведены в учебном заведении**, прежде чем можно будет создать расписание: учебный год, дисциплины, преподаватели. 2. **Учебный год**: откройте Учебный год. Убедитесь, что определён хотя бы один год, с датами начала и окончания и каникулами. Без учебного года нет шкалы времени и нельзя выполнить публикацию. См. [Учебный год и каникулы](#page-admin.school-year). 3. **Дисциплины**: Omniscol заранее заполняет базу для вашей страны. Если в вашем учреждении есть специфические дисциплины (`Основы финансовой грамотности`, `Робототехника`, `Китайский язык, продвинутый уровень`), создайте их через Создать. ⚠ Следите за орфографией: Omniscol копирует название в каждое расписание, поэтому исправление после создания не распространится на публикации прошлого и настоящего. 4. **Преподаватели**: откройте Преподаватели. Для каждого преподавателя укажите как минимум имя, фамилию и адрес электронной почты. Преподаваемые дисциплины и рабочие часы необязательны, но полезны. Если преподавателей много, используйте массовый импорт (см. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data)). 5. **Необязательно, но полезно**: типы занятий (лекция, семинар, лабораторная работа…) через Создать, если в вашей номенклатуре они есть. Уровни классов проверьте в общих параметрах (Создать). 6. **Всё готово**: модуль **Управление расписанием**, кнопка Создать расписание. Выберите режим ([режимы расписания](#page-overview.timetable-modes)), задайте название (`Расписание 2026-2027`, `1-й семестр 2026`) и описание. Следующий шаг: [общие параметры](#page-timetables.general-settings). #### См. также - [Настройка аккаунта школы](#page-getting-started.setup-school) - [Следующий шаг — Общие параметры](#page-timetables.general-settings) ### 3.3 Режим календаря — расширенные опции *Source: `help/ru/timetables/calendar-mode.md` · id: timetables.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-10-01* > **Premium** > _Premium_ **Режим календаря** — один из трёх типов расписания в Omniscol, наряду с недельным и циклическим режимами. Он используется, когда расписание не повторяется регулярно: у каждого занятия своя дата, и недельной схемы, которая повторялась бы, нет. Создание расписания в режиме календаря входит в тариф Premium, как и две другие функции: [доступность в режиме календаря](#page-timetables.calendar-wishes) и [несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). В аккаунте Premium эти функции доступны без отдельной активации. #### Что именно позволяет режим календаря - создавать расписание, в котором у каждого занятия своя дата; - задавать диапазон дат начала и окончания; - использовать ограничения по датам, если они настроены; - формировать только целевое окно, более короткое, чем весь диапазон расписания; - просить алгоритм уплотнить занятия в начале периода, в конце периода или без предпочтений по положению; - отображать, публиковать и просматривать занятия так же, как в других расписаниях, но на интервале дат; - указывать, что занятия некоторых классов повторяются по недельной схеме, и исключать из неё курсы, которые к ней не относятся; - использовать режим вне сетки в классах режима календаря, с явными временем начала и окончания у каждого занятия. #### Дополнительные функции Другие функции, описанные на своих страницах, естественно дополняют расписание в режиме календаря: - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) для публикации нескольких расписаний на один и тот же период; - [Доступность в режиме календаря](#page-timetables.calendar-wishes) для сбора доступности по датам; - [Группы групп](#page-core-concepts.groups-of-groups) для работы с межклассными группами. #### Когда календарь предпочтительнее недельного режима - **Неповторяющееся обучение**: интенсивные модули, семинары, конференции с разными датами. - **Непрерывное образование**: сессии, которые не следуют обычному учебному году. - **Внешние преподаватели**: у каждого преподавателя свой календарь, а не фиксированная недельная нагрузка. - **Занятия в конце обучения**: проекты, защиты, заседания комиссий. Типичные случаи высшего образования — см. [Режим календаря](#page-higher-ed.calendar-mode). #### Повторяющиеся занятия Режим «календарь» не исключает регулярности: у класса есть дополнительная опция — Повторяющиеся занятия. Если она включена, занятия класса повторяются по недельной схеме, а не расставляются по одному. Флажок опции устанавливается и при создании класса, и при его изменении; сама опция существует только в расписании в режиме «календарь». Курс этого класса может быть исключением с помощью опции «Вне периодичности»: у экзамена, защиты или разового визита преподавателя нет схемы, которой они следовали бы; их занятия остаются расставленными по датам. Эта опция влияет на формирование расписания (см. [автоматическое формирование](#page-timetables.generation--recurrence)): алгоритм ищет типовую неделю, а затем разворачивает её на интервал дат класса. Она также открывает настройку «Периодичность» в политике распределения (см. [политика распределения](#page-timetables.distribution-policy)). Там можно задать желаемый ритм расстановки повторяющегося курса или позволить алгоритму определить его автоматически. Курс можно также задать неповторяющимся. Если алгоритму не удаётся полностью соблюсти периодичность, он ищет ближайшее решение для оставшихся занятий: тот же день повторения, но другое время, либо другой день той же недели, всё более удалённый, либо совсем другое место. #### Инструкция — Создание расписания в режиме календаря 1. **Создайте новое расписание** в разделе Управление расписанием. На экране выбора типа выберите **режим календаря**. Укажите даты начала и окончания, затем подтвердите. 2. **Настройте календарь**: название, описание, рабочие дни и временную структуру. Вы можете также задать многократно используемые периоды — **[временные окна](#page-timetables.date-windows)**; их применяют к временным ограничениям классов, групп и курсов, а также к доступности кабинетов. 3. **Введите занятия** с точными датами: дата, время, группа или класс, преподаватель(и) и кабинет(ы). Если класс работает вне сетки, укажите явные время начала и окончания. 4. **Запустите формирование расписания**, если вы используете алгоритм для этого расписания. Доступные ограничения зависят от введённых данных: преподаватели, кабинеты, даты, доступность и ограничения календаря. Для пробного запуска или поэтапного построения воспользуйтесь расширенными опциями, чтобы ограничить формируемое окно дат; включите уплотнение, если не хотите, чтобы алгоритм растягивал занятия на весь доступный период. 5. **Опубликуйте и объедините**: этот календарь можно публиковать параллельно с обычным недельным расписанием. Пользователи, которых касаются эти расписания, видят при просмотре их занятия вместе. См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). #### См. также - [Режим календаря](#page-glossary.calendar-mode) - [Выбор типа расписания](#page-overview.timetable-modes) - [Доступность в режиме календаря](#page-timetables.calendar-wishes) - [Временные окна](#page-timetables.date-windows) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Режим календаря для неповторяющихся форм обучения](#page-higher-ed.calendar-mode){append=(высшее образование)} ### 3.4 Доступность и ограничения в режиме календаря *Source: `help/ru/timetables/calendar-wishes.md` · id: timetables.calendar-wishes · Audience: admin/teacher · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ В **режиме календаря** планирование ведётся на **конкретные даты**, а не на повторяющуюся типовую неделю. Из-за этого меняется способ, которым задаются временные ограничения и доступность, причём в двух разных аспектах: - **временные ограничения** классов, курсов и групп, а также **доступность кабинетов**; - **доступность преподавателей**. В календаре говорят о **доступности**: слово *пожелания* остаётся за вводом данных преподавателем на типовую неделю, до начала планирования, с последующим подтверждением планировщиком. #### Классы, курсы, группы и кабинеты Как только расписание имеет тип «календарь», временные ограничения классов, курсов и групп, а также доступность кабинетов автоматически задаются **по датам**, а не на типовую неделю. Дополнительно можно указать **повторение на типовую неделю**, если введённые данные без изменений повторяются из недели в неделю. Для периодов, которые используются повторно, — экзаменационные сессии, каникулы отдельных классов, разрешённые слоты — примените [окно дат](#page-timetables.date-windows) как наложение на эти ограничения и доступность. #### Доступность преподавателей На типовой неделе преподаватель задаёт постоянное правило — *«я недоступен по средам во второй половине дня»*. В календаре доступность задаётся **отдельно для каждой даты**, что позволяет описать более тонкие случаи: - *«я недоступен в среду, 12 марта, только утром»*, - *«я могу вести занятия только с 20 по 30 января»*, - *«я доступен три половины дня в неделю, которые выбираются в зависимости от недели»*. Этот режим стоит выбирать, когда доступность меняется от недели к неделе, что типично для высшего образования, преподавателей-почасовиков и непрерывного образования. ##### Настройка режима ввода Для преподавателей установите параметр Доступность преподавателей (общие параметры школы) в значение **календарь** или **календарь + недельное**, чтобы работать с планированием на конкретные даты. Комбинированный режим дополнительно позволяет преподавателю просто указать, что он **никогда не доступен в определённый день недели**, независимо от даты (отдельные исключения остаются возможными). Для преподавателей это аналог повторения на типовую неделю у классов, курсов, групп и кабинетов. ##### Уровни доступности Экран ввода использует **календарное представление**. Планировщик или преподаватель нажимает на нужные даты и указывает тип слота: - **Недоступно**: блокирующая недоступность, при формировании расписания в этот слот не будет поставлено ни одно занятие; - **Нежелательно**: сильное ограничение, которого следует по возможности избегать; - **Предпочтительно**: положительное предпочтение; - **Ластик**: стирает уже заданную доступность в выделенной зоне. Ввод возможен по дням, по половинам дня или по слотам, в зависимости от детализации, настроенной для школы. ##### Для кого - **Преподаватели-почасовики и внешние преподаватели** не имеют постоянной недельной нагрузки. См. [Внешние преподаватели (почасовики, приглашённые лекторы)](#page-higher-ed.external-faculty). - **Преподаватели с неполной нагрузкой по медицинским показаниям или особым режимом работы** — график меняется от недели к неделе. - **Курсы в рамках непрерывного образования** — каждая сессия проводится разово. - **Преподаватели в год частичной мобильности** — доступны только в некоторые недели. #### Инструкция — Сбор доступности почасовика в календаре 1. **Если у почасовика нет постоянной недельной нагрузки** (например, у внешнего преподавателя), ввода на типовую неделю недостаточно. Режим **календаря** фиксирует доступность по датам. 2. **Включите подходящий режим**: установите параметр Доступность преподавателей (общие параметры школы) в значение **календарь** или **календарь + недельное**, в зависимости от потребностей учётной записи. 3. **Откройте почасовику доступ к вводу**. Либо он входит в свою учётную запись преподавателя, либо вы создаёте **прямую ссылку общего доступа** на его экран доступности (см. [Доступность преподавателей](#page-core-concepts.wishes-and-availability)). Прямая ссылка избавляет от создания отдельной учётной записи, если используется такой порядок. Любой администратор также может сам ввести доступность. 4. **Со стороны почасовика**: он видит **календарь на год**, а не недельную сетку. Он нажимает на даты (или половины дня, или слоты, в зависимости от детализации в школе) и отмечает выделенную зону одним из предлагаемых уровней доступности. 5. **Проверьте сведённые данные** на стороне администрации. Сохранённую доступность считывают экраны расписания и диагностика, которая обращается к ограничениям. 6. **Запустите автоматическое формирование расписания** для курсов почасовика: алгоритм сочетает приоритеты доступности с остальными ограничениями курса. Поддерживаемые сценарии: почасовики, неполная нагрузка по медицинским показаниям, непрерывное образование, преподаватели с частичной мобильностью. #### См. также - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Режим календаря](#page-timetables.calendar-mode) - [Временные окна](#page-timetables.date-windows) - [Выбор типа расписания](#page-overview.timetable-modes) ### 3.5 Временные окна *Source: `help/ru/timetables/date-windows.md` · id: timetables.date-windows · Audience: admin · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ Каждое **временно́е окно** — это повторно используемый период **включения** или **исключения** дат, который ограничивает время, когда можно планировать определённые занятия. Вы задаёте его один раз, а затем применяете как **слой** к временным ограничениям классов, групп и курсов, а также к доступности кабинетов. Эта функция относится только к **расписаниям типа «календарь»**. #### Два типа: разрешение или исключение - **Разрешённые занятия** — занятия можно планировать **только** в эти даты. - **Исключённые занятия** — занятия **нельзя** планировать в эти даты. #### Как они сочетаются К одному объекту можно применить несколько окон: - разрешающие окна складываются между собой; - исключающие окна складываются между собой; - если окна пересекаются, **исключение имеет приоритет над разрешением**. #### Типичные случаи использования - **Классы с одинаковым графиком чередования учёбы и практики** — несколько классов проходят некоторые курсы только в определённые недели (или только в начале либо в конце недель). Разрешающее окно, описывающее эти недели и применённое ко всем этим классам, избавляет от необходимости вводить этот график заново для каждого класса. - **Периоды экзаменов** — исключающее окно, охватывающее экзаменационную сессию, временно блокирует соответствующие кабинеты или классы, чтобы на это время не планировались обычные занятия. - **Собственные каникулы отдельных классов** — в зарубежном подразделении группа классов учится по календарю каникул, отличному от календаря остального учебного заведения. Исключающее окно на эти даты, применённое только к этим классам, исключает этот период, не затрагивая остальные. #### Как задать временное окно На экране редактирования календарного расписания, в разделе «Временны́е окна»: 1. Кнопка Добавить открывает окно выбора дат. 2. Укажите **название** и выберите тип — разрешение или исключение. 3. Выберите даты на календарной сетке: выделением мышью, выбором целой недели или столбца дня, быстрым выбором чётных / нечётных недель либо инверсией выделения. 4. Сохраните: окно появится в списке повторно используемых окон расписания. #### Как применить окно Когда окно задано, оно предлагается во временных ограничениях **классов, групп и курсов**, а также в доступности **кабинетов**: выберите там одно или несколько окон. Одно и то же окно может служить любому числу объектов — в этом и состоит смысл повторно используемого слоя. #### При формировании расписания При формировании расписания окна обрабатываются как ограничения: занятие ставится только на разрешённые даты и никогда — на исключённые. #### См. также - [Режим календаря](#page-timetables.calendar-mode) - [Доступность и ограничения в режиме календаря](#page-timetables.calendar-wishes) - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Автоматическое формирование](#page-timetables.generation) - [Ручное размещение](#page-timetables.manual-placement) ### 3.6 Шаг 1 — Общие параметры *Source: `help/ru/timetables/general-settings.md` · id: timetables.general-settings · Audience: admin · Updated: 2026-07-17* На вкладке **Общая информация** вы задаёте общие параметры, на которых строится расписание. Предзаполненные значения берутся из [параметров школы](#page-admin.parameters); их тоже можно скорректировать заранее. #### Поля для заполнения 1. **Название** — название расписания («Расписание 2025–2026», «1-й семестр 2025»…). Отображается везде. Можно изменить. 2. **Описание** — произвольный текст, удобный, когда расписаний несколько. 3. **Режим визуального отображения** — по умолчанию одна строка на временной слот, с часами слева. Можно выбрать англосаксонский стиль с нумерованными периодами или календарное отображение по целым часам. 4. **Продолжительность временного слота** — эталонная продолжительность слота, при необходимости вместе с перерывом между занятиями. Если ваши занятия длятся 55 мин с 5-минутным перерывом, укажите **60 мин**. Если обычные занятия длятся 1 ч 30 мин, укажите **90 мин**. Продолжительность и дробление подробно описаны на странице [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid--slot-duration). 5. **Дробление временного слота** — на сколько частей можно разделить продолжительность слота? Чтобы создавать занятия по 1 ч, 1 ч 30 мин или 2 ч при слоте в 60 мин, выберите **1/2**. Чтобы дойти до четверти часа, выберите **1/4**. - **Совет**: не делайте дробление мельче, чем необходимо. Чем мельче дробление, тем дольше идёт формирование расписания. 6. **Рабочие дни** — отметьте дни занятий. По умолчанию с понедельника по пятницу (если для страны не задано иное — арабские страны, Израиль…). 7. **Для циклических расписаний** — число дней в цикле. 8. **Для календарных расписаний** — даты начала и окончания (их можно изменить позже) и при необходимости — временны́е окна. #### Сохранение Кнопка Сохранить внизу сохраняет конфигурацию. #### Что дальше Когда эти параметры подтверждены, переходите к следующему шагу: [Площадки, кабинеты, ресурсы](#page-timetables.sites-rooms). > **Подсказка.** Если вы переходите с другой системы или хотите просто > быстро попробовать Omniscol, то для массового создания занятий > (сотни за один раз) [массовый импорт из таблицы](#page-timetables.mass-import) > быстрее, чем ввод экран за экраном. Но чем больше > структурных данных вы внесёте заранее, тем лучше пройдёт импорт. #### Инструкция — Настроить общие параметры расписания 1. **Шаг 1 создания расписания**: задайте название, продолжительность слота, дробление и рабочие дни. Эти параметры надолго определяют структуру расписания — лучше задать их правильно с самого начала. 2. **Название и описание**: понятное название (`Расписание 2026–2027`, `1-й семестр 2026 — магистратура, 2-й год`) и произвольное описание. Отображаются везде в интерфейсе. Можно изменить, но старайтесь не переименовывать опубликованное расписание. 3. **Режим визуального отображения**: строка на временной слот (по умолчанию), либо нумерованные периоды (англосаксонский стиль), либо календарь по целым часам. Ориентируйтесь на традиции вашего учреждения. 4. **Продолжительность временного слота**: эталонная продолжительность слота. Занятия по 55 мин с 5-минутным перерывом → **60 мин**. Обычные занятия по 1 ч 30 мин → **90 мин**. Если вы оставляете слот в 60 мин, дробление всё равно позволяет проводить занятия по 1 ч 30 мин. 5. **Дробление временного слота**: на сколько частей можно разделить продолжительность слота? **1/2** — шаг в 30 мин при слоте в 60 мин, **1/4** — шаг в 15 мин. Чем мельче шаг, тем больше вариантов приходится перебирать при формировании расписания. 6. **Рабочие дни**: отметьте с понедельника по пятницу (по умолчанию). Арабские страны, Израиль: с воскресенья по четверг. Для **циклических** расписаний: число дней в цикле. Для **календарных** расписаний: даты начала и окончания (их можно изменить позже). 7. **Сохраните** кнопкой Сохранить. Следующий шаг: [Площадки, кабинеты, ресурсы](#page-timetables.sites-rooms). Для массового создания в больших объёмах см. [Массовый импорт из таблицы](#page-timetables.mass-import). #### См. также - [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) - [Предыдущий шаг — Предварительные требования](#page-timetables.prerequisites) - [Следующий шаг — Площадки](#page-timetables.sites-rooms) - [Общие параметры школы](#page-admin.parameters) ### 3.7 Шаг 2 — Площадки, временные сетки, кабинеты, ресурсы *Source: `help/ru/timetables/sites-rooms.md` · id: timetables.sites-rooms · Audience: admin · Updated: 2026-08-08* На вкладке **Площадки** вы моделируете физическую составляющую вашего учебного заведения. #### Создание площадок Если все занятия проходят в одном месте, достаточно одной площадки. Нажмите Создать площадку и задайте ей название. Если площадок несколько, создайте по одной на каждое отдельное физическое место. Укажите **время в пути** между площадками (матрица длительностей). Это существенно: без него алгоритм может поставить преподавателя на площадку A с 9:00 до 10:00, а затем в 10:05 на площадку B, удалённую на 5 км, что физически невозможно. Не путайте площадку и подразделение: [подразделение](#page-glossary.campus) — это организационное объединение, которое настраивается в общих параметрах; к площадке относятся временная сетка, кабинеты и время в пути. См. [Площадка](#page-glossary.site): там описаны сценарии использования и ограничения (две виртуальные площадки для одного места, выбор между несколькими площадками и несколькими учётными записями и т. д.). #### Настройка временной сетки У каждой площадки своя **временная сетка**: - время начала и окончания временных слотов, - перерывы, - обеденный перерыв, - закрытие (среда после обеда, суббота…). Обычные занятия привязываются к временным слотам этой сетки. Если вы позже измените время слота, поставленные на него занятия перейдут на время новой сетки. Нестандартное время и классы вне сетки — особые случаи, они описаны на странице [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid). Omniscol автоматически подбирает сетку по введённым данным, но просмотрите её и настройте под себя: это важно и для отображения, и для алгоритма. Временные слоты должны соответствовать [продолжительности временного слота](#page-core-concepts.timetable-grid--slot-duration), указанной на [предыдущем экране](#page-timetables.general-settings). Например, если для стандартного занятия вы указали 60 минут, каждый слот будет считаться равным 1 часу, независимо от фактически заданного времени — иногда это 50 или 55 минут, оно может немного отличаться из-за перерывов. Если расхождение между расчётной и фактической длительностью слота слишком велико, время может подсветиться красным, предупреждая о неверной настройке. Не задавайте перерывы как временные слоты! В любой слот можно поставить занятия (если только период не отмечен как недоступный). Частая ошибка — считать, что время влияет напрямую: это не так, Omniscol ставит занятия на временные слоты, а затем показывает их с тем временем, которое задано для каждого соответствующего слота. #### Ввод кабинетов Для каждой площадки создайте [кабинеты](#page-glossary.classroom). Поля: - **Название** (обязательное), - **Вместимость** (обязательное — без неё алгоритм не сможет проверить, подходит ли кабинет по размеру), - **[Специализации](#page-glossary.classroom-specialization)** (химия, информатика, спорт… вводятся свободно), - Максимальное количество классов для **[большого кабинета](#page-glossary.large-room)** (экзаменационный зал, театр, спортзал, бассейн, открытое пространство). Это поле появляется только после того, как задана специализация, - **Здание** (необязательно), - **Временные ограничения** (полезно для кабинетов, которые используются совместно с другим учебным заведением, или для открытых спортивных сооружений), - **Теги / комментарий** (флипчарт, розетки, компьютеры… вводятся свободно). Кабинеты можно создавать **массово**, вставив их из электронной таблицы. ##### Подразделение > _Plan: standard_ Параметр **подразделение** кабинета показывает, **какой части учебного заведения он служит**: факультету, департаменту, школе из группы, профилю непрерывного образования. Если у кабинета задано подразделение, он идёт первым для классов, у которых в параметре «предпочтительные кабинеты» выбрано это подразделение, и по этому названию его можно отфильтровать на экранах кабинетов. Это понятие пришло из высшего образования, где оно встречается чаще всего. Оно полезно и тогда, когда под одной крышей учатся разные ступени — комплекс основной и старшей школы, где у каждой ступени свои кабинеты, или площадка, на которой размещаются начальная и средняя школа. У кабинета может быть **несколько значений параметра «подразделение»**, при этом в поле «площадка» указывается **только одна** площадка. Так бывает с пространством, которое делят несколько факультетов или несколько школ одной группы. Эти два понятия отвечают на разные вопросы и сочетаются: «подразделение» описывает организацию, «площадка» описывает место и задаёт физические ограничения — временную сетку, локальную совместимость, время в пути. Список доступных значений параметра «подразделение» ведётся в [параметрах учётной записи](#page-admin.parameters). > _Premium_ ##### Несколько кабинетов Omniscol позволяет назначить на одно занятие несколько кабинетов; общая вместимость равна сумме вместимостей кабинетов. См. [Несколько кабинетов](#page-glossary.multi-room): там описаны типичные сценарии (экзамены сразу в нескольких лекционных залах, лекции с трансляцией, лабораторные работы сразу в нескольких кабинетах и т. д.). ##### Специализации **Специализации** (свободное поле) нужны, чтобы указать, что дисциплине требуется кабинет определённого типа. Алгоритм соблюдает это требование строго. ##### Большой кабинет Специализированный кабинет может стать **[большим кабинетом](#page-glossary.large-room)**: укажите его Максимальное количество классов, и в нём одновременно смогут проходить несколько разных занятий (с разными преподавателями и группами) в пределах этого числа и его вместимости. Это типично для экзаменационных залов, театров, спортзалов, бассейнов и открытых пространств. Поле появляется только после того, как кабинету задана специализация. #### Ввод ресурсов [Ресурсы](#page-glossary.resource) — это мобильное оборудование, не привязанное к конкретному кабинету (переносные проекторы, чемоданы с планшетами, наборы…). Для каждого ресурса укажите: - **Название**, - **Доступное количество**. Чемодан с 30 планшетами считается за 1 (а не за 30): вы вводите количество чемоданов. Не нужно моделировать ресурсы, которых вам «всегда хватает», — делайте это только для действительно ограниченных общих ресурсов. > _Premium_ **Площадки**, **кабинеты** и **ресурсы** можно синхронизировать из внешней системы — тогда у каждого списка появляется своя кнопка синхронизации (Синхронизировать, Синхронизировать, Синхронизировать). См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Что дальше Следующий шаг: [Назначить преподавателей](#page-timetables.assigning-teachers). #### Инструкция — Создать площадку и её временную сетку 1. **Площадка** моделирует отдельное физическое место со своей временной сеткой (временные слоты, перерывы, обед). Нужна как минимум одна площадка. В этой процедуре описано создание площадки и её минимальных зависимостей (кабинеты, ресурсы). 2. **Нажмите Создать площадку** и задайте название (`Главное здание`, `Филиал в Москве`…). Если вы начинаете с одной площадки, её достаточно. Если площадок несколько, добавьте столько, сколько физических мест нужно различать. 3. **Настройте временную сетку**: время начала и окончания временных слотов, перерывы между занятиями, обеденный перерыв, закрытие (среда после обеда, суббота…). 4. **Введите кабинеты**: название, вместимость (критичное поле для алгоритма), специализации (химия, информатика, спорт…), часы работы, подразделение, если оно используется в вашей организации. Подразделение у кабинета нужно, чтобы отдавать ему предпочтение для некоторых классов, не блокируя другие подходящие кабинеты. Один кабинет может относиться к нескольким подразделениям. Кабинет относится только к одной площадке — о кабинете, который используют несколько виртуальных площадок, см. [Площадки, кабинеты, ресурсы — основные понятия](#page-core-concepts.sites-rooms-resources). 5. **Введите ресурсы** (мобильное оборудование): название + доступное количество. Моделируйте только ресурсы с действительно ограниченным общим количеством (переносные проекторы, чемодан с планшетами, набор микрофонов), а не те, которых вам «всегда хватает». 6. **Если площадок несколько, укажите время в пути** в окне расстояний (треугольная полуматрица). Без этого времени алгоритм считает перемещение мгновенным — подробнее см. [Несколько площадок: политика и время в пути](#page-core-concepts.sites-rooms-resources). #### См. также - [Площадки, кабинеты, ресурсы — основные понятия](#page-core-concepts.sites-rooms-resources) - [Подразделение](#page-glossary.campus) - [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) - [Несколько кабинетов](#page-glossary.multi-room) - [Специализация кабинета](#page-glossary.classroom-specialization) ### 3.8 Шаг 3 — Назначить преподавателей *Source: `help/ru/timetables/assigning-teachers.md` · id: timetables.assigning-teachers · Audience: admin · Updated: 2026-06-13* На вкладке **Преподаватели** вы указываете, какие преподаватели **задействованы** в этом расписании, в отличие от тех, кто просто заведён на уровне школы. #### Назначение Нажмите Назначить преподавателей. Откроется список имеющихся преподавателей. Выберите нужных. Назначать можно **по частям**: сначала преподавателей, которые уже окончательно приняты на работу, затем по мере найма добавлять новых. > _Premium_ Преподавателей можно синхронизировать из внешней системы: Синхронизировать открывает сопоставление. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Виртуальные преподаватели Кнопка Виртуальный создаёт **виртуального преподавателя**, который временно представляет вакантную должность. Это удобно, чтобы подготовить начало учебного года, не дожидаясь, пока наём будет завершён. Рядом с именем появляется значок [ghost]. Когда наём завершён, кнопка Преобразовать в конце строки «превращает» виртуального преподавателя в настоящего: выберите настоящего преподавателя в списке, и все ссылки на виртуального перейдут к нему — и назначения на дисциплины в классах, и все занятия. Виртуальный преподаватель после этого исчезает навсегда. **Это действие необратимо.** #### Окончательная замена преподавателя Та же кнопка Преобразовать применима и к **настоящему** преподавателю: она передаёт все его курсы другому преподавателю из списка (уже назначенному на это расписание или просто заведённому на уровне школы), а затем убирает исходного преподавателя из расписания. Это **окончательная замена**. Она нужна, когда запланированный преподаватель выбывает, переведён в другое место или должен отказаться от своих курсов: все занятия и назначения переходят к новому преподавателю за одну операцию. **Это действие необратимо.** #### Доступность Если вы включили ввод доступности параметром «Доступность преподавателей» (см. [Доступность преподавателей](#page-core-concepts.wishes-and-availability)), то именно здесь вы **проверяете и подтверждаете** доступность, которую ввели преподаватели. Кроме того, вы можете: - изменить **рабочие часы** (число запланированных часов в неделю; они переносятся в новые расписания), - назначить **предпочтительный кабинет** (формирование расписания учитывает его в первую очередь для занятий преподавателя, если только у класса нет собственного закреплённого кабинета). #### Различие между школой и расписанием Важно: карточка преподавателя **на уровне школы** содержит идентифицирующие сведения (имя, e-mail, логин) и остаётся неизменной. Карточка преподавателя **на уровне расписания** содержит сведения, *относящиеся к этому расписанию* (доступность, предпочтительный кабинет, рабочие часы). Следствие: если вы исправите имя преподавателя в разделе Преподаватели после создания расписания, в расписании останется прежнее имя. Это сделано намеренно, чтобы сохранялась прослеживаемость, но из этого следует, что имя должно быть написано правильно в момент создания расписания. #### Внешние преподаватели (привлекаемые специалисты) О внешних преподавателях см. [глоссарий](#page-glossary.external-teacher). Они создаются так же, как обычные преподаватели. > _Premium_ Отметка **Внешний преподаватель** в карточке пользователя добавляет небольшой значок [user-tie], который на некоторых экранах отличает внешних преподавателей от штатных. Для приглашённых преподавателей, которые приходят эпизодически (на одно или два занятия), в зависимости от случая можно: - добавить их к занятию вторым преподавателем (см. [Совместное преподавание](#page-glossary.co-teaching)), - создать отдельный курс для их участия (в основном в режиме календаря). #### Что дальше Следующий шаг: [Создание классов и групп](#page-timetables.creating-classes). #### Инструкция — Назначение преподавателей на расписание 1. **Шаг 3 создания расписания**: укажите, какие преподаватели **задействованы** в этом расписании (в отличие от всех, кто заведён на уровне школы). 2. **Назначьте окончательно принятых на работу преподавателей** с помощью Назначить преподавателей. Откроется список преподавателей, заведённых на уровне школы. Выберите тех, кто относится к этому расписанию. Назначать можно **по частям**: начните со штатных преподавателей, а новых добавляйте по мере найма. 3. **Для каждой вакантной должности** создайте **виртуального преподавателя** с помощью Виртуальный. Его отличает значок [ghost]. Это удобно, чтобы подготовить начало учебного года, не дожидаясь окончания найма. Когда наём завершён, кнопка Преобразовать в конце строки переносит все ссылки на настоящего преподавателя, выбранного в списке. Уже размещённые занятия сохраняются. Эта же кнопка служит для **окончательной замены** настоящего преподавателя другим (перевод, отказ от работы…). **Укажите дисциплины**, которые виртуальный преподаватель ведёт в этом расписании: при назначениях он будет предложен в первую очередь для этих дисциплин. 4. **Доступность**: для недельного расписания вы **проверяете и подтверждаете** введённые данные. Для расписания любого типа вы можете **просматривать и заполнять** всю доступность. См. [Доступность преподавателей](#page-core-concepts.wishes-and-availability). 5. **Предпочтительный кабинет** (необязательно): если у преподавателя есть закреплённый кабинет, назначьте его здесь с помощью [location-pin]. Формирование расписания отдаёт ему приоритет для занятий преподавателя, если только у класса уже нет собственного закреплённого кабинета (приоритет класса выше приоритета преподавателя). 6. **Следующий шаг**: [создание классов и групп](#page-timetables.creating-classes). #### См. также - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Управление преподавателями на уровне школы](#page-admin.teachers) - [Преподаватель](#page-glossary.teacher) - [Внешний преподаватель](#page-glossary.external-teacher) ### 3.9 Шаг 4 — Создание классов и их групп *Source: `help/ru/timetables/creating-classes.md` · id: timetables.creating-classes · Audience: admin · Updated: 2026-10-01* Этот шаг больше всех остальных определяет структуру расписания. На вкладке **Классы** вы создаёте классы и их группы и задаёте количество часов по дисциплинам. #### 1. Создать классы Нажмите Создать класс. Для каждого класса укажите: - **Название** (обязательно), - **Уровень** (из существующих; чтобы добавить новый, нажмите Создать), - **Подразделение**, если в вашем учебном заведении используется такая организация, - **Площадка** по умолчанию (при формировании расписания кабинеты подбираются только на этой площадке, если только занятие явно не назначено на другую площадку), - **Выделенный учебный кабинет** (необязательно — занятия по умолчанию проходят в нём), - **Предпочтительные кабинеты** (необязательно — укажите Подразделение и/или метки кабинетов, которые нужно пробовать в первую очередь для этого класса), - **Теоретическое количество учеников** (необязательно, но рекомендуется для подбора кабинетов по вместимости). Подразделение и Площадка отвечают на два разных вопроса: Подразделение показывает, к какому подразделению учебного заведения относится класс; Площадка показывает, где класс находится физически и какие кабинеты используются по умолчанию. В расписании в режиме «календарь» у класса есть дополнительная опция: Повторяющиеся занятия, которая повторяет занятия по недельному шаблону вместо расстановки их по одному. См. [Режим календаря](#page-timetables.calendar-mode--recurrence). ##### Предпочтительные кабинеты Поле **Предпочтительные кабинеты** описывает кабинеты, в которых класс привык заниматься, без перечисления каждого: вы указываете [подразделение](#page-timetables.sites-rooms--campus), метки или и то и другое, и любой кабинет с одной из этих отметок входит в набор. Факультет, который работает в собственных кабинетах; программа дополнительного профессионального образования, которая занимается в своих двух лекционных залах; профиль обучения, занятия которого охватывают разные площадки: предпочтение сводится к одному-двум выборам и подхватывает кабинеты, которые вы добавите позже. Этот набор пробуется первым — и при автоматическом назначении, и при ручном выборе. Когда ни один из этих кабинетов не свободен, Omniscol выбирает другой подходящий кабинет. **Подразделение** класса, в свою очередь, служит для классификации и фильтров. Два поля дополняют друг друга: одно описывает, к какому подразделению относится класс, другое — где он обычно занимается. ⚠ Если вы забудете указать площадку, занятия нельзя будет расставить (нет ни кабинетов, ни сетки). Об этом напомнит предупреждение. #### 2. Создать группы для каждого класса Нажмите кнопку Добавить группу у нужного класса. Создайте столько групп, сколько есть курсов, на которых ученики занимаются не всем классом. Для каждой группы укажите: - **Название** и **код** (используйте оба, чтобы группу было легко опознать), - **Теоретическое количество учеников**, - Если несколько групп должны или могут заниматься в одном **временном слоте** (лабораторная-А и лабораторная-Б или второй иностранный язык — немецкий и французский), создайте [разделение](#page-core-concepts.class-divisions) с помощью Добавить разделение. Совет: если группы класса (почти) совпадают с группами другого класса, нажмите Импортировать из другого класса, чтобы импортировать настройки и подправить их. > _Premium_ **Классы** и **группы** можно синхронизировать из внешней системы: Синхронизировать и Синхронизировать открывают сопоставление. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### 3. Настроить дисциплины по классам (курсы) Перейдите на вкладку **Курсы** (или нажмите кнопку Курсы у класса). Каждая дисциплина, которую вы назначаете классу, — с её количеством часов и, при необходимости, типом (лекция, семинар, практическая работа…) — образует **[курс](#page-glossary.course)**: базовую единицу вашей образовательной деятельности («математика в 7 А, 4 часа в неделю, семинар»). Все курсы класса составляют его **программу обучения** (в вузах — учебный план). А [занятия](#page-glossary.lesson), которые вы затем расставите в сетке, — это экземпляры курсов. Для каждого курса укажите: - **Количество часов** в неделю, - **Тип занятия** (при необходимости: лекция, семинар, практическая работа…), - Назначенных **преподавателей**, - **Педагогическая нагрузка** (при формировании расписания алгоритм старается равномерно распределить дисциплину по дням), - **Требуемый специализированный кабинет** (из [специализаций](#page-glossary.classroom-specialization) площадки), - **Предпочтения по расстановке** (не ставить математику в конце дня, физкультуру — в самые жаркие часы…). Совет: нажмите Импортировать из другого класса, чтобы повторно использовать настройки дисциплин другого класса. В диалоговом окне можно даже импортировать класс из другого расписания и расширить состав импорта: с заменой существующего списка или без неё, с привязанными преподавателями или без них, с группами, несовместимостями, временными ограничениями класса или без них. Можно дойти до дублирования разбивки на занятия, снова выбрав состав импорта. Что касается положения занятий, то в расписании типа «календарь» можно сдвигать дни (последовательность при этом пересчитывается по рабочим дням источника и цели). Это очень удобно для организаций, у которых полные учебные циклы повторяются (например, по шесть или восемь недель подряд) несколько раз в году. #### 4. Несовместимости между дисциплинами [Несовместимость](#page-glossary.incompatibility) запрещает дисциплине **следовать** за другой. Правило **направленное**: «за дисциплиной A не должна идти дисциплина B» — это не то же самое, что обратное. Типичный случай: «никакой математики сразу после физкультуры». Задавайте их на вкладке **Несовместимость** класса. При создании правила выберите **окно** действия: - **Подряд** — не в занятии, которое следует сразу за ним, в тот же день. Например: не ставить сложную дисциплину сразу за утомительной, «никакой математики сразу после физкультуры». - **Половина дня** — не позже в пределах той же половины дня. Например: чередовать языки, «никакого французского после английского» — а для взаимного исключения добавьте обратное правило «никакого английского после французского». - **День** — не позже в тот же день. Например: распределить художественные дисциплины, «никакого рисования после музыки в тот же день». Для такой балансировки **педагогическая нагрузка** дисциплины часто оказывается более простым вариантом. - **Неделя** — не позже на той же неделе. Например: соблюдать порядок «лекция, затем практическая работа», «никаких практических работ по химии до лекции по химии». - **Всегда** *(календарное расписание)* — никогда после, за весь период: инструмент для выстраивания **последовательности** с учётом пререквизитов. Например: «никакого C++ до C», «никаких финансов до бухгалтерского учёта». Несколько ориентиров, чтобы не ошибиться с настройкой: - **Дисциплина, которую нельзя ставить в определённое время** («никакой математики первым занятием», «никакой физкультуры в середине дня»), — **не** несовместимость: используйте **временные ограничения курса** ([clock]), которые задают абсолютное положение занятий одного курса. - **Не допустить, чтобы дисциплина встречалась дважды в один день**, проще настроить глобальной опцией **автонесовместимости**, чем попарными правилами. - Несовместимость — **мягкое** ограничение (штраф, который алгоритм формирования старается устранить), а не запрет: она может сохраниться в сформированном расписании, где её отмечает [диагностика](#page-glossary.diagnostic). Не накапливайте их — каждая уменьшает свободу алгоритма формирования. #### Что дальше Следующий шаг: [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups), если у вас есть курсы, общие для нескольких классов ([общие курсы](#page-glossary.transverse-course)). В противном случае переходите сразу к [Распределению часов](#page-timetables.hour-distribution). #### Инструкция — Создать класс с группами и разделениями 1. **Класс** объединяет учеников одного направления подготовки. Он делится на **группы** (половины класса, факультативы, уровни), а **разделения** задают взаимоисключающие группы внутри класса. 2. **Нажмите «Создать класс».** Укажите название (`7А`, `1-ИТ`…), уровень (из настроенных), подразделение, если вы его используете, площадку по умолчанию, при необходимости выделенный кабинет и теоретическое количество учеников. Без площадки занятия нельзя будет расставить — появится явное предупреждение. 3. **Создайте группы** класса. Одна группа на каждое отдельное педагогическое назначение: `Лабораторная-А`, `Лабораторная-Б` (половины класса в лабораториях), `Немецкий (2-й язык)`, `Французский (2-й язык)` (факультативы), `Английский углублённый`, `Английский базовый` (уровни). Настоятельная рекомендация: **одна группа на каждый отдельный курс**, даже если ученики те же. 4. **Задайте разделения** — взаимоисключающие группы. Выберите группы (например, `Немецкий (2-й язык)` + `Французский (2-й язык)`), нажмите Добавить разделение. Без разделения при формировании расписания две группы одного класса считаются потенциально конфликтующими. 5. **Настройте дисциплины по классам**: недельное количество часов, назначенных преподавателей, тип занятия по умолчанию. Дисциплины выбираются из справочника школы (стандартные или собственные). 6. **Следующий шаг**: [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups), если у вас есть курсы, общие для нескольких классов, в противном случае сразу [Распределение часов](#page-timetables.hour-distribution). #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделение класса](#page-core-concepts.class-divisions) - [Подразделение](#page-glossary.campus) - [Класс](#page-glossary.class) - [Группа](#page-glossary.group) ### 3.10 Шаг 5 — Совмещения и группы групп *Source: `help/ru/timetables/alignments-and-groups-of-groups.md` · id: timetables.alignments-and-groups-of-groups · Audience: admin · Updated: 2026-05-10* Этот шаг **необязателен** — пропустите его, если у вас нет общих курсов для нескольких классов. Он нужен, когда ученики разных классов должны **проходить одно занятие вместе** (углублённая информатика для нескольких классов, межклассовые факультативы, профильные дисциплины и т. д.). #### Совмещения Совмещения можно использовать в **любых** типах расписания, но особенно они полезны в **повторяющихся** расписаниях (недельных и цикличных) с параллельными классами одинаковой структуры. Справочная страница: [Совмещение групп](#page-core-concepts.alignments). Кратко: - Сначала создайте в каждом из нужных классов **группу** с одним и тем же названием («Информатика» в 8А, в 8Б, в 8В). - Затем на вкладке **Совмещение групп** нажмите Добавить совмещение и свяжите группы трёх классов. - Проверьте, что **количество часов одинаково** у всех совмещённых групп (иначе Omniscol сообщит о несоответствии в диагностике). #### Группы групп Справочная страница: [Группы групп](#page-core-concepts.groups-of-groups). Кратко: - Вкладка **Группа групп**. - Создайте группу групп, выбрав входящие в неё группы (из одного класса или из разных). - Затем назначьте курсы группе групп — они появятся во всех классах, к которым относятся её группы. - Состав можно менять в любой момент (добавлять и убирать группы). #### Прямое назначение нескольких групп на занятие Есть и сокращённый путь: **назначить несколько групп прямо на занятие**, не создавая именованную группу групп. Этот способ удобен для **разовой** или пробной задачи: - вы отмечаете несколько групп в селекторе групп занятия; - занятие становится общим для этих групп, а отдельная именованная сущность не создаётся; - позже можно вернуться к обычной группе или оформить этот случай как группу групп, если потребность станет постоянной. Обратная сторона: такой способ **менее нагляден** и **менее пригоден для повторного использования**, чем именованная группа групп: теряется явный прикладной смысл, и сложнее найти, изменить или заново применить то же сведение к нескольким занятиям. #### Когда что использовать | Ситуация | Инструмент | | --- | --- | | Повторяющийся общий курс в недельном или цикличном режиме | **Совмещение** | | Разовый или меняющийся общий курс | **Группа групп** | | Состав может измениться | **Группа групп** | | Разовая потребность без именованной структуры | **Прямое назначение нескольких групп** | | Окончательная неизменная конфигурация | **Совмещение** или **группа групп** | #### Типичные ошибки - **Разное количество часов у совмещённых групп.** Если у одной группы 3 часа информатики, а у другой 2, совмещение попадёт в диагностику. Либо приведите часы к одному значению, либо отмените совмещение. - **Общий курс только у 2 классов из 3 совмещённых.** Чтобы у одного из классов было своё отдельное занятие в этом временном слоте, нужно продублировать его группу и отменить совмещение для копии. - **Ученики, числящиеся в двух классах** (например, ученик ходит на информатику в 8А, но зачислен в 8Б). Решение: создать группу «Информатика» и в 8А, и в 8Б, включить этого ученика в обе, затем совместить их. #### Что дальше Следующий шаг: [Распределить часы и создать занятия](#page-timetables.hour-distribution). #### Инструкция — Создать совмещение для нескольких классов 1. **Совмещение** объявляет, что несколько групп из **разных классов** должны проходить одно занятие в одно и то же время, в одном кабинете, с одним преподавателем. Типичный случай: группы углублённой информатики 8А, 8Б, 8В. 2. **Предварительное условие**: сначала создайте **в каждом из нужных классов** группу с **одним и тем же логическим названием** (`Информатика` в 8А, в 8Б, в 8В). См. [Создание классов и их групп](#page-timetables.creating-classes). 3. **Вкладка Совмещение групп** → нажмите Добавить совмещение. Выберите группы нужных классов (`Информатика 8А`, `Информатика 8Б`, `Информатика 8В`). Подтвердите. 4. **Проверьте количество часов**: оно должно быть одинаковым у всех совмещённых групп (например, по 3 часа информатики везде). Иначе Omniscol сообщит о несоответствии в диагностике. 5. **Режим календаря**: лучше подходят [группы групп](#page-core-concepts.groups-of-groups) — они гибче (их можно изменить позже, добавлять и убирать группы без дублирования). Кнопка Добавить группу групп находится на соответствующей вкладке. Если потребность **разовая**, можно также назначить несколько групп прямо на занятие через селектор групп, не создавая именованную группу групп. 6. **Следующий шаг**: [Распределить часы и создать занятия](#page-timetables.hour-distribution). #### См. также - [Совмещение групп](#page-core-concepts.alignments) - [Группы групп](#page-core-concepts.groups-of-groups) - [Общий курс](#page-glossary.transverse-course) - [Совмещение групп](#page-glossary.alignment) - [Группа групп](#page-glossary.groups-of-groups) ### 3.11 Шаг 6 — Распределить часы и создать занятия *Source: `help/ru/timetables/hour-distribution.md` · id: timetables.hour-distribution · Audience: admin · Updated: 2026-09-23* Вы уже указали объёмы часов по дисциплинам для каждого класса (шаг 4). Здесь эти объёмы раскладываются на **отдельные занятия**. Экран состоит из двух частей: - **Слева** — список классов и их **курсов** (дисциплины класса, при необходимости с разбивкой по типам) с динамическим счётчиком уже созданных часов по каждому курсу. - **Справа** — занятия, созданные для выбранного класса. #### Три режима отображения Правая панель работает в **трёх режимах**, которые переключаются селектором в левом верхнем углу панели. У каждого режима своё назначение, и переходить между ними можно **без потери текущей работы**. ##### Стикеры (по умолчанию) Занятия отображаются **карточками**, сгруппированными по дисциплинам или по датам (для расписаний типа «Календарь»). Именно этот режим описан в остальной части страницы: двойной щелчок для создания, перетаскивание границы для изменения продолжительности, значки на карточке для атрибутов. - **Плюсы**: очень наглядный; идеален для **создания** занятий, разбивки объёмов, подгонки продолжительности перетаскиванием и работы со сложными занятиями (чередующимися, сдвоенными…) прямо на карточке. - **Минусы**: неудобен, когда нужно действовать сразу над **большим числом** занятий, получить общую картину с точной фильтрацией, увидеть размещение и быстро разместить занятия. ##### Расписания (реорганизация) Занятия отображаются в виде, близком к расписанию, и готовы к **реорганизации пакетом**. - **Выбор**: щелчок выделяет занятие и открывает интерактивную карточку. - **Множественный выбор**: **Shift+щелчок** расширяет выделение на **диапазон**. Выбранные занятия затем редактируются **вместе** на общей карточке (массовое изменение продолжительности, общие атрибуты…). - **Динамические фильтры** и **выбор отображаемых дней** сужают экран до того, с чем вы работаете. - **Фильтры «в ожидании»**: выделите занятия **в ожидании кабинета** или **в ожидании преподавателя**, чтобы завершить недостающие назначения; предупреждающие метки показывают, что ещё нужно заполнить. - **Переключатель дни / сущности** меняет ось отображения в зависимости от того, что вы сравниваете. - **Плюсы**: очень эффективное ручное размещение, перекрёстные виды (например, класс + преподаватель), реорганизация множества занятий, точечная фильтрация для устранения пробелов, быстрое **пакетное** редактирование прямо в календаре. - **Минусы**: для первичного создания менее удобен, чем стикеры; нет создания сложных занятий; менее тонкая фильтрация для обзора и пакетного редактирования. ##### Таблица **Табличный вид** занятий: **одна строка на занятие**, **один столбец на каждое поле** (статус, класс, дисциплина, продолжительность, положение, чередование недель, преподаватель, группа, кабинет, численность, ресурс, заметка). - **Сортировка**: **любой столбец** можно сортировать — щёлкните его заголовок, чтобы отсортировать по нему, и щёлкните снова, чтобы изменить направление (по возрастанию / по убыванию). - **Фильтрация по столбцам**: под каждым заголовком **раскрывающееся меню с множественным выбором** фильтрует столбец (иногда **два** меню для составного столбца, например день + время; поле с интервалами `>=10, <5, 10-20` для численности). Несколько значений в **одном меню** объединяются по **ИЛИ**, кроме значений разных типов (например, для кабинетов: метки, видеоконференция, размер и название) — тогда действует **И**; фильтры, заданные по **нескольким столбцам**, объединяются по **И**. Одна кнопка сбрасывает все фильтры. - **Постраничный вывод**: при больших объёмах таблица разбивается на страницы; размер страницы **подстраивается автоматически** (от нескольких сотен до нескольких тысяч строк), чтобы работа оставалась плавной. - **Упрощённое массовое редактирование**: отметьте нужные занятия (столбец выбора), затем используйте **кнопку действия в заголовке** столбца (продолжительность, преподаватель, группа, кабинет…), чтобы применить изменение **сразу** ко всему выделению. - **Автоматическое распределение кабинетов**: выберите **набор занятий** и **набор кабинетов**; алгоритм предлагает **оптимальное назначение** (численность, ограничения кабинетов, доступность), которое вы **корректируете строка за строкой** перед подтверждением. См. [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment). - **Плюсы**: общий вид с сортировкой, **точная фильтрация по столбцам**, массовое редактирование и назначение кабинетов. - **Минусы**: меньше временного визуального контекста, чем в двух других режимах; нет создания сложных занятий. #### Создать занятие *Занятие* — это отдельный экземпляр **курса** (его дисциплина, продолжительность, иногда группа, обычно преподаватель и кабинет), который затем размещается в расписании. Выберите класс, затем **дважды щёлкните по курсу**: создаётся занятие по этой дисциплине со значениями по умолчанию (продолжительность равна единице времени класса, преподаватели курса, при наличии — кабинет по умолчанию). Оно создаётся **неразмещённым** и попадает к **ещё не размещённым занятиям**, готовое к размещению алгоритмом или вручную. Двойной щелчок работает во всех трёх режимах; список курсов просто находится в разных местах: по центру в режиме стикеров, **под каждым классом на левой панели** в режимах расписаний и таблицы. Чтобы затем **настроить** занятие (продолжительность, группа, преподаватель, кабинет, ресурс), интерфейс зависит от того, как оно отображается: - **Пока оно остаётся карточкой** — в режиме стикеров или ещё не размещённое в виде расписаний — перетащите **нижнюю границу**, чтобы изменить продолжительность, и щёлкайте **значки** карточки для атрибутов. - **После размещения в календаре или в режиме таблицы** настройки выполняются через **раскрывающееся меню**: карточку *Внесение изменений в занятия* (щелчок по занятию в календаре) либо меню строк и столбцов таблицы — последние дополнительно позволяют **массовое** редактирование. #### Разбить объём часов Пример: 4 ч в неделю по курсу математики можно разбить так: - 4 занятия по 1 ч, или - 2 занятия по 2 ч, или - 1 занятие на 2 ч + 2 занятия по 1 ч. Выбирайте в зависимости от вашего педагогического ритма. Счётчик курса постоянно отслеживает ваш прогресс (см. ниже). ##### Автоматическое распределение Меню Действия предлагает **Автоматическое распределение**, которое сразу восполняет **недостающий объём** каждого курса: оно добавляет занятия выбранной продолжительности (1 или 2 временных слота сетки, 3 и 4 в календаре — значение в часах зависит от продолжительности временного слота расписания) и в конце создаёт более короткое занятие, если остаток не целый. Оно учитывает уже созданные занятия, назначает преподавателей и кабинет по умолчанию и оставляет всё **неразмещённым**. Оно действует только на **видимые курсы**: сочетайте его с **фильтром** (Фильтровать) по дисциплине или по типу, чтобы распределить, например, только «Лекции». В режиме **таблицы** оно обрабатывает **все классы** сразу; в остальных режимах — **выбранный класс**. #### Счётчик часов по курсу У каждого курса слева есть счётчик, сопоставляющий **созданные часы** с **целевым объёмом**, указанным на шаге 4 (например, `3 ч / 4 ч`). О вашем прогрессе сигнализирует **вид карточки**: - **Меньше объёма**: обычный вид — остались часы, которые нужно создать. - **Ровно в объёме**: карточка **бледнеет** (сниженная непрозрачность) — признак того, что курс завершён. - **Больше объёма**: **красная рамка** — вы создали слишком много часов. Метка счётчика, в свою очередь, просто берёт **цвет дисциплины** (она может быть зелёной, синей… независимо от прогресса); при наведении карточка подчёркивается акцентным цветом интерфейса. Наведение также показывает подсказку с **разбивкой** созданных занятий (продолжительности, типы, чередование недель, черновики / отменённые). ##### Подгруппы и индикатор баланса Когда курс проводится в **разделении** (несколько подгрупп, у которых занятия идут **одновременно**, как правило деление класса пополам), счётчик **не умножает** объём на число групп: разделение считается **один раз**, иначе итог показывал бы `n × объём`, что не имело бы смысла. Остаётся проверить, что все подгруппы получают один и тот же объём: для этого служит значок [scale-balanced], который тогда появляется справа от курса. - **Зелёные весы** — *Группы в разделении в равновесии*: у всех подгрупп одинаковое число часов. - **Оранжевые весы** — *Группы в разделении в дисбалансе*: у одной из подгрупп часов больше или меньше, чем у остальных. Наведение на значок показывает **подробности по группам** (часы каждой подгруппы), чтобы сразу найти ту, которую нужно дотянуть. #### Дублировать занятие Существуют два уровня дублирования. **Быстрое клонирование.** Значок Копировать — присутствующий и на карточке-стикере, и в каждой строке таблицы — создаёт **копию** занятия во **временной области** (неразмещённую) вместе со всеми атрибутами. Удобно для создания серии одинаковых занятий. **Расширенное дублирование.** В карточке занятия (окно *Внесение изменений в занятия*) кнопка копирования со стрелкой открывает гораздо более богатое меню, которое чаще всего используется в виде **расписаний / календаря**. Сначала выбирается, **сколько** копий (от 1 до 999) — или, в расписании типа «Календарь», **до какой даты** — затем **как** их разместить: - **Новое занятие во временной области** — копии остаются неразмещёнными. - **Тот же временной слот** — повторяет занятие в том же слоте. - **Следующий(е) свободный(е) слот(ы)** — автоматически ищет слоты, подходящие по продолжительности. - **Следующий день (дни)** / **предыдущий день (дни)** — сдвигает на соседние дни. - **Следующая неделя (недели)** / **предыдущая неделя (недели)** — *(только календарь)* переносит с одной недели на другую. - **Выберите слоты** — вы сами указываете свободные слоты на сетке. В вариантах по дням или по неделям кнопка **«свободные»** ограничивает поиск только незанятыми слотами. В календаре этот поиск может даже выходить за пределы текущего расписания, если включено сравнение между расписаниями. #### Заметки К занятию можно прикрепить **заметку** (свободный комментарий) через значок Комментарий. Заметок может быть несколько, с разными **уровнями видимости**: - только администраторы, - администраторы + преподаватели, - все (видна ученикам и на информационной панели). Заметки появляются в подсказках при наведении на занятия в расписаниях. #### Сложные занятия Для сложных конфигураций см. отдельную страницу: [Сложные занятия](#page-core-concepts.complex-lessons). Кратко: - **Чередующиеся** (неделя A/B) — Добавить неделю в правом верхнем углу занятия добавляет чередующуюся неделю. - **Сдвоенные** (идущие подряд) — перетащите одно занятие под другое. - **Связанные** (чередование полугрупп) — кнопка, которая появляется между двумя сдвоенными занятиями. - **Совместное преподавание** (несколько преподавателей на одном занятии) — выбор нескольких преподавателей в Назначить преподавателей. #### Массовые действия Меню Действия в правом верхнем углу открывает доступ к массовым операциям: - **Отменить размещение** всех занятий (кроме заблокированных), - **Снять блокировки** размещения, - **Очистить назначения кабинетов**, - **Назначить предварительно настроенные кабинеты** (кабинет класса или преподавателя по умолчанию, кроме специальных кабинетов), - **Автоматическое распределение** занятий на 1 или 2 периода, - **Импорт / экспорт в таблицу** (см. [Массовый импорт](#page-timetables.mass-import)), - **Удалить все занятия** класса ⚠. #### Динамическое обнаружение ошибок После каждого изменения Omniscol проверяет согласованность и показывает предупреждения в верхней части экрана, а также на затронутых классах и занятиях. См. [Диагностика](#page-glossary.diagnostic). В календарном расписании эта проверка учитывает также другие расписания, опубликованные на те же даты, и связанные аккаунты: см. [конфликты с другим расписанием](#page-timetables.conflicts--other-timetable). #### Сохранение ⚠ Удаление занятия **немедленно и необратимо** (если только вы ещё не сохранили изменения). Регулярно сохраняйте изменения с помощью Сохранить. На этом экране нет общей функции отмены / повтора действий. Перед сохранением просмотрите удаления и массовые действия. #### Что дальше Следующий шаг: [Автоматическое формирование](#page-timetables.generation). #### Инструкция — Распределить часы курса 1. **Вы указали объёмы часов каждого курса** для его классов на шаге 4. Этот шаг **раскладывает** эти объёмы на отдельные занятия (одно занятие = один слот, который затем размещает алгоритм или вы вручную). 2. **Выберите класс слева.** Правая панель показывает занятия, уже созданные для этого класса, сгруппированные по курсам. Счётчик каждого курса сопоставляет созданные часы с целевым объёмом (`3 ч / 4 ч`): карточка бледнеет, когда объём достигнут, и получает красную рамку, если он превышен. 3. **Дважды щёлкните по курсу**, чтобы добавить занятие с параметрами по умолчанию (продолжительность, тип). Перетащите **нижнюю границу** занятия, чтобы изменить продолжительность. Щёлкайте **значки** на карточке, чтобы изменить группу, преподавателя, кабинет, ресурсы. 4. **Разбейте объём как вам удобно**: курс на 4 ч = 4 занятия по 1 ч, или 2 занятия по 2 ч, или сочетание. Карточка курса бледнеет, как только вы достигли целевого объёма. При разделении (одновременные подгруппы) зелёный / оранжевый значок [scale-balanced] показывает, получают ли все подгруппы одинаковый объём. 5. **Для серии одинаковых занятий** создайте первое, затем **продублируйте**: быстрое клонирование во временную область через Копировать или расширенное дублирование из карточки (тот же слот, соседние дни / недели, свободные слоты…), в основном в виде календаря. 6. **Сложные занятия** (чередующиеся A/B, сдвоенные в двойное занятие, связанные со сменой групп, совместное преподавание нескольких преподавателей): см. специальные значки на карточке занятия и страницу [Сложные занятия](#page-core-concepts.complex-lessons). 7. **Следующий шаг**: [Автоматическое формирование](#page-timetables.generation). #### См. также - [Сложные занятия](#page-core-concepts.complex-lessons) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [Курс](#page-glossary.course) - [Занятие](#page-glossary.lesson) ### 3.12 Политика распределения часов *Source: `help/ru/timetables/distribution-policy.md` · id: timetables.distribution-policy · Audience: admin · Plan: premium · Updated: 2026-09-14* > **Premium** > _Premium_ Курс несёт объём часов с точки зрения ученика: 24 ч финансового анализа в первый год обучения. Чтобы составить расписание, этот объём нужно превратить в занятия — а если класс работает с разделениями, эти 24 ч повторяются столько раз, сколько групп нужно обслужить. **Необязательное** звено между этим объёмом и занятиями, которые его воплотят, — политика распределения часов. Она описывает, ещё до появления первого занятия, что должно содержать расписание: > Группа А · И. И. Иванова · 4 занятия по 2 ч Это **предварительное планирование**. Во многих учебных заведениях его даже не определяет планировщик: учебная часть утверждает программу обучения, а планировщик применяет её почти без свободы выбора. Политика — место, где это решение записывается явно, рядом с курсом, которого оно касается. После того как политика задана, она служит трижды: - она **направляет создание занятий**: на экране [Распределить часы и создать занятия](#page-timetables.hour-distribution) занятия, которые она описывает и которых ещё нет, создаются одним действием — вместе с составом участников, преподавателями, кабинетом и длительностью; - она **в реальном времени контролирует расхождение**: пока вы работаете, индикатор сравнивает то, что ожидает политика, с тем, что содержит расписание, и сообщает о малейшем несоответствии; - она **устраняет это расхождение**: один щелчок по «Согласовать» приводит отклонившееся занятие к критериям, которые требует правило, — без удаления и повторного создания. #### Политика описывает разбивку, но ничего не планирует Политика **задаёт**: столько-то занятий, такой-то длительности, для такого-то состава участников. Сама она не создаёт ни одного занятия и не ставит ни одного на сетку. Работа по планированию ведётся **на экране [Распределить часы и создать занятия](#page-timetables.hour-distribution) и только там**: именно там занятия создаются, корректируются и расставляются. Политика лишь указывает, что должен содержать этот экран, — и сообщает, когда это не так. #### Где находится политика ```mermaid flowchart LR M["Дисциплина
сама по себе
напр. финансовый анализ"] C["Курс
дисциплина в классе
объём часов, преподаватели"] subgraph P["Политика распределения (необязательная)"] L1["Правило 1
группа А · 4 × 2 ч"] L2["Правило 2
весь класс · 1 × 3 ч"] end S["Занятия
то, что реально есть
в расписании"] M -->|преподаётся классу| C C -->|несёт свою политику| P L1 -->|ожидаемые занятия| S L2 -->|ожидаемые занятия| S S -.->|измеренное расхождение — обратная связь| P ``` Политика принадлежит **курсу** — дисциплине в том виде, в каком её преподают классу. Два класса, изучающих одну дисциплину, имеют каждый свою политику. Дисциплина, разбитая по типам занятий (лекция, семинар), считается отдельным курсом, а значит, у неё отдельная политика. #### Открыть политику курса В расписании откройте класс, затем его вкладку «Курсы». Каждый курс раскрывается и показывает свои параметры; пункт «Политика распределения часов» открывает редактор кнопкой Политика распределения часов. В редакторе перечислены **правила — по одному на каждую серию ожидаемых занятий**. Строка ввода находится внизу таблицы; заполните её и подтвердите кнопкой Добавить. Каждое сохранённое правило можно дублировать или удалять кнопками в конце строки, а кнопка Подтвердить сохраняет всё сразу. #### Столбцы правила «Код» — код этих занятий в номенклатуре учебного заведения. Необязательный, задаётся произвольно: два правила могут иметь один и тот же код, если они описывают один и тот же учебный модуль, разбитый на два ритма, или преподавание, общее для нескольких групп. «Группа» — одна или несколько групп класса. Если поле пусто, оно равносильно значению «Группа отсутствует»: занятие адресовано всему классу. Несколько групп, указанных вместе, образуют единый состав участников — как в занятии. «Преподаватели» и «Кабинеты» имеют три состояния, те же, что и у занятия: - **если оставить пустыми, они ничего не требуют**: правило ничего о них не говорит, и создаваемые им занятия остаются свободными в этой части. Затем их заполняют, как любое другое занятие; - «Нет преподавателей» и «Учебного кабинета нет» требуют занятий соответственно без преподавателей и без кабинетов; - заданный список требует **в точности** его. «Распределение часов» — количество занятий и длительность каждого: `4 × 2 ч`. Одно правило описывает только занятия одинаковой длины; объём, разбитый на разные длительности, задаётся несколькими правилами. «Периодичность» — желаемый ритм: например, два раза в неделю или раз в три недели. **Это указание для автоматического формирования расписания**: оно подсказывает, как распределить занятия во времени. Ритм не участвует в контроле расхождения, который оценивает только наличие занятий. Этот столбец управляется двумя параметрами на двух уровнях. У класса есть параметр «Повторяющиеся занятия»: его занятия повторяются по недельному шаблону, а не расставляются по одному; этот параметр существует только в расписании типа «Календарь». Курс этого класса может отказаться от него с помощью параметра «Вне периодичности»: тогда его автоматическая расстановка не будет следовать никакому шаблону. Поэтому столбец появляется только у повторяющегося курса повторяющегося класса; в остальных случаях политика по-прежнему говорит, сколько занятий и какой длительности, но ничего не говорит об их ритме. Значение «Автоматический» позволяет вывести ритм из **отношения числа занятий к учебным неделям**: восемь занятий на двенадцать недель дают два занятия раз в три недели. **Следите за согласованностью этого ритма и запрошенного числа занятий.** Ритм, который требует больше занятий, чем содержит правило, невыполним: число выделяется красным, чтобы предупредить об этом. «Комментарий» — произвольный текст для того, кто будет расставлять эти занятия: «кабинет с расстановкой буквой П», «лучше утром». Кнопка Комментарий закрашивается, как только появляется комментарий. Сам комментарий виден при наведении указателя. ##### Отложить правило Правило, которое требует **0** занятий, считается **отложенным** и отмечается оранжевым: оно ничего не ожидает и не сообщает ни о каком расхождении, но сохраняет свою группу, преподавателей, длительность и код на будущее. Так можно приостановить серию, не потеряв её описание. ##### Ввод в таблице Значок Таблица переключает список в режим «Таблица»: одна строка на правило и один столбец на каждую характеристику. Это переключение нужно, чтобы вставить всю политику сразу из электронной таблицы, а не правило за правилом. Вернитесь к списку, чтобы снова пользоваться выпадающими списками и флажками: оба вида работают с одной и той же политикой. #### Читать расхождение На экране «Распределение часов» у каждого курса под счётчиком часов есть индикатор соответствия. Его цвет подводит итог: | Цвет | Что он означает | | --- | --- | | Зелёный | Все ожидаемые занятия существуют; каждое соответствует какому-либо правилу. | | Оранжевый | Расхождение не превышает 10 % ожидаемых часов, либо есть занятия, не соответствующие ни одному правилу. | | Красный | Расхождение превышает 10 % ожидаемых часов. | Занятие **соответствует** правилу, если выполняется **всё**, что оно требует: те же группы, те же преподаватели, те же кабинеты и та же длительность. Достаточно, чтобы отличался любой из этих пунктов, и занятие будет учтено как расхождение. При наведении показана ситуация по каждому правилу: что оно требует, что получает и его комментарий, если он есть. Следующие за этим строки, если они есть, собирают по группам занятия **без соответствия** — те, которые политика не описывает. То же расхождение попадает на **панель диагностики** расписания под названием «Расхождение с политикой распределения часов». Вы найдёте его там, не обходя классы по одному (см. [Конфликты и диагностика](#page-timetables.conflicts)). На этой панели каждая строка называет класс и курс. Лупа в строке [magnifying-glass] показывает расхождение по занятиям, в том же виде, что и окно, описанное ниже. Занятие, отклонившееся от правила, показано напротив ближайшего ожидаемого занятия, а то, что их отличает, выделено цветом. Лишнее занятие помечено **+1**. Ожидаемые занятия, которые ничем не заменены, идут последними и подсчитываются по каждому правилу: **−2** для двух недостающих занятий. Щелчок по занятию показывает его в расписании. #### Создать, согласовать, удалить Щёлкните по индикатору, чтобы перейти к действию. **Пока для этого курса не создано ни одного занятия**, выбирать не из чего: все занятия, которые описывает политика, создаются сразу. **Если же занятия уже есть**, открывается окно и для каждого правила предлагает следующие действия: - «Создать» — недостающие занятия, с группой, преподавателями, кабинетом и длительностью, которые задаёт правило; - «Согласовать» — существующее занятие, отклонившееся от ожидаемых критериев: оно подгоняется под правило, а не создаётся заново. Подходящие занятия показаны свёрнутыми, самые близкие — первыми, вместе с тем, что изменится; - «Удалить» — занятия, которым в политике нет соответствия. Среди удалений заранее ничего не отмечено; одно и то же занятие нельзя одновременно согласовать и удалить. #### Автоматическое распределение следует политике В меню Действия экрана распределения есть пункт «Автоматическое распределение» на занятия в один, два или три периода. Для курса, у которого есть политика, главенствует политика: она описывает создаваемые занятия, какую бы длительность ни задавала кнопка. Курсы без политики следуют запрошенной длительности. #### Найти код на занятии На экране распределения, в режиме «Вид стикеров», карточка занятия показывает код правила, которому оно соответствует, — при условии, что оно соответствует **только одному** правилу. Этот код в занятии не сохраняется: он каждый раз определяется заново по содержимому занятия. Измените его группу, преподавателей, кабинет или длительность — и показанный код изменится вместе с ними или исчезнет, если ни одно правило его больше не описывает. А если на занятие претендуют два правила с разными кодами? Карточка не покажет ничего, а не выберет за вас. #### Инструкция — Задать политику курса 1. **Откройте класс** в расписании, затем его вкладку «Курсы». Разверните нужный курс и откройте пункт «Политика распределения часов». 2. **Опишите первую серию** в строке ввода: нужную группу (или ничего — для всего класса), преподавателей и кабинет, если правило их требует, затем количество занятий и их длительность. 3. **Добавьте правило**, затем повторите это для каждой серии, которая отличается составом участников, длительностью или преподавателями. Курс в 24 ч может уместиться и в одно правило, и в пять. 4. **Дополните то, что поможет планировщику**: код учебного модуля и комментарий, который говорит то, что не скажет ни один столбец. 5. **Подтвердите.** Теперь у курса есть политика. 6. **Перейдите на экран [Распределить часы и создать занятия](#page-timetables.hour-distribution)** и посмотрите на индикатор курса. Щёлкните по нему, чтобы создать недостающие занятия, согласовать отклонившиеся или удалить те, которым нет соответствия. 7. **Возвращайтесь к нему в течение года.** Пока индикатор зелёный, то, что построено, соответствует тому, что ожидается. #### См. также - [Распределить часы и создать занятия](#page-timetables.hour-distribution) - [Конфликты и диагностика](#page-timetables.conflicts) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [Политика распределения часов](#page-glossary.distribution-policy) - [Курс](#page-glossary.course) - [Занятие](#page-glossary.lesson) ### 3.13 Автоматическое назначение кабинетов *Source: `help/ru/timetables/auto-room-assignment.md` · id: timetables.auto-room-assignment · Audience: admin · Updated: 2026-08-08* **Автоматическое назначение кабинетов** назначает кабинет **за один раз** набору выбранных занятий. Вы выбираете **набор кабинетов-кандидатов**, алгоритм предлагает оптимальный вариант назначения, а вы **подтверждаете его после просмотра** — при необходимости строка за строкой. Этот инструмент занимается **только подбором кабинетов**. Он не переносит занятия во времени, не меняет их продолжительность, не назначает ресурсы и не запускает заново полное формирование расписания. Чтобы кабинеты назначались **во время** формирования, см. вместо этого [Автоматическое формирование](#page-timetables.generation). #### Где найти Инструмент находится в **режиме списка** экрана [Распределить часы и создать занятия](#page-timetables.hour-distribution) (табличное представление, одна строка на занятие). 1. Переключите отображение занятий в **режим списка**. 2. **Отметьте** не менее двух занятий (столбец выбора). При необходимости воспользуйтесь **сортировкой** и **фильтрами по столбцам**, чтобы выделить нужные занятия — например, занятия **в ожидании кабинета**. 3. Откройте групповое действие с кабинетами в заголовке таблицы, Назначить кабинет. 4. В окне выбора кабинетов включите режим Автоматическое назначение учебных кабинетов. Занятия, проходящие **дистанционно** или в формате **самостоятельной работы** (в зависимости от [формата занятия](#page-glossary.lesson-modality)), пропускаются: физический кабинет им не нужен. **Гибридные** занятия по-прежнему учитываются. Занятия с **заблокированным** кабинетом оставьте **вне выбора**: инструмент не обходит блокировку. #### Выбор набора кабинетов-кандидатов В автоматическом режиме кабинеты в окне выбора сгруппированы по **площадкам**, а затем по **зданиям**, с флажками на трёх уровнях: - флажок на **площадке** выбирает все её подходящие кабинеты; - флажок на **здании** выбирает все кабинеты этого здания; - флажок на **кабинете** добавляет только его. Кабинеты, уже назначенные выбранным занятиям, **отмечены заранее**. Кабинет, чья **специализация** не подходит ни одному из выбранных занятий, или кабинет, **слишком маленький** для всех совместимых занятий, **недоступен для выбора**. Вместимость отображается **красным**, если кабинет не может принять ни одно из совместимых занятий, и **оранжевым**, если он подходит лишь для части из них. Чтобы запустить расчёт, подтвердите набор. #### Что делает алгоритм Исходя из выбранного набора, алгоритм назначает **один кабинет на занятие**, соблюдая **жёсткие правила** и оптимизируя всё остальное: - **специализация**, которую требует дисциплина занятия; - **вместимость** кабинета с учётом численности участников занятия; - **текущая занятость** кабинета в этом временном слоте — занятия из других расписаний или связанных аккаунтов, события, временные ограничения кабинета, общие [большие кабинеты](#page-glossary.large-room); - **предпочтительные кабинеты** класса — кабинеты, которым присвоено одно из значений, выбранных в карточке класса, — [подразделение](#page-timetables.sites-rooms--campus) или метки: они пробуются раньше остальных, а если все они заняты, алгоритм продолжает поиск среди других совместимых кабинетов; - **предпочтение основной площадки** занятия; - **чередование недель**: два занятия, которые никогда не выпадают на одну и ту же неделю, могут использовать один и тот же кабинет. Алгоритм может **переставлять кабинеты между выбранными занятиями**, чтобы лучше их разместить, и предпочитает **наименьший подходящий кабинет**. Если текущий кабинет уже подходит, а другой дал бы лишь незначительный выигрыш, алгоритм **оставляет** его, не делая лишних изменений. Если в наборе **нет** подходящего кабинета, занятие остаётся **без решения**. #### Просмотр, корректировка, применение После расчёта открывается **окно предварительного просмотра**: пока оно открыто, реальное расписание **не изменяется**. У каждой строки есть **статус** — назначено, без изменений, без решения или скорректировано вручную, — а также кабинет **до** и **предложенный** кабинет. - **Корректировка строки**: нажмите на предложенный кабинет, чтобы открыть обычное окно выбора. Ручной выбор **не ограничен** исходным набором кандидатов; строка получает статус «скорректировано», а возможные конфликты немедленно пересчитываются по всем строкам. - **Сбросить**: кнопка возвращает предложение алгоритма в скорректированных строках. - **Снятие отметки** со строки **исключает** её из применения. - **Подтвердить** применяет отмеченные строки к расписанию; **Отмена** закрывает окно без изменений. После применения изменённые занятия **мигают**, а сводка показывает **число изменённых занятий, занятий без изменений и занятий без решения**. #### Обратите внимание - Занятие, у которого было **несколько кабинетов**, после автоматического назначения может остаться **с одним**. - Занятию **без заданного временного слота** кабинет всё же может быть назначен (по набору, специализации, вместимости и площадке), но проверить для него конфликты по времени при этом невозможно. - Чтобы только **проставить кабинеты по умолчанию** (класса или преподавателя, кроме специальных кабинетов) или **стереть** назначения, в меню Действия есть отдельные массовые действия — см. [Распределить часы и создать занятия](#page-timetables.hour-distribution). #### См. также - [Распределить часы и создать занятия](#page-timetables.hour-distribution) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [Специализации кабинетов](#page-core-concepts.classroom-specializations) - [Большой кабинет](#page-glossary.large-room) ### 3.14 Шаг 6а — Массовый импорт курсов из таблицы *Source: `help/ru/timetables/mass-import.md` · id: timetables.mass-import · Audience: admin · Updated: 2026-06-02* Если список ваших курсов уже есть в таблице — экспорт из школьной информационной системы, график, заранее подготовленный в Excel, или даже экспорт из другой программы, например Hyperplanning или Aurion, — его можно **скопировать и вставить** прямо в Omniscol. #### Как открыть импорт В меню Действия (на экране распределения часов) выберите **«Таблица - импорт/экспорт»**. Если ни одного класса ещё не создано, там же есть прямая ссылка. Импорт выполняется в **четыре шага**. #### Шаг 1 — вставка таблицы Открывается редактируемая область с **готовым шаблоном столбцов**, который предлагает Omniscol. Тип данных столбца определяется его положением (3-й столбец — дисциплина и так далее); вы можете **переставить столбцы шаблона**, чтобы их порядок совпал с порядком в исходной таблице. Тогда копирование из Excel или Google Sheets проходит чисто, и переписывать файл не нужно. Распознаваемые поля: - **Класс** и **дисциплина** (минимум, необходимый для корректного курса), - **Продолжительность**, либо **время начала и время окончания** (а также **день** для занятий, уже поставленных в сетку), - **Группа** (для нескольких групп разделители любые), - **Тип занятия** (лекция, семинар, практическое занятие…), - **Преподаватель(и)** (разделители любые), - **Площадка** и **Кабинет(ы)** (на одно занятие можно указать несколько кабинетов, см. [несколько кабинетов](#page-glossary.multi-room)), - **Ресурс(ы)**, - **Чередование недель** (формат `A/B`, `1/2`…), - **Комментарий**. Можно также импортировать **список уже созданных курсов** (именно его выдаёт экспорт), если вы хотите доработать его в Excel и импортировать повторно. #### Шаг 2 — проверка графика и площадок Omniscol показывает распознанные часы (их по-прежнему можно править). Если определено несколько площадок, классы, кабинеты и ресурсы, попавшие не на свою площадку, можно **перетащить** на нужную. Если создана лишняя площадка, очистите её, и она исчезнет. #### Шаг 3 — устранение неоднозначности После разбора импортированных значений таблица появляется снова, с **выпадающими меню** в неоднозначных полях. Проверьте и исправьте предложенные соответствия. Здесь, например, решаются такие вопросы: - «Математика» — это какая именно дисциплина (с типом или без)? - «И. И. Иванов» — какой из трёх И. И. Ивановых? - «А102» — это кабинет А102 на площадке в Москве, на площадке в Казани или где-то ещё? #### Шаг 4 — создание неизвестных объектов Если при импорте найдены объекты, которых нет в базе (классы, группы, группы групп, преподаватель, собственная дисциплина, тип занятия, площадка, кабинет, ресурс…), на последнем шаге вам предлагается: - **подтвердить создание** в расписании; - для **собственных дисциплин** и некоторых **преподавателей** при необходимости запросить создание в модуле «Администрирование», чтобы они стали доступны во всей школе. #### Ограничения Импорт автоматизирует подготовку, но не заменяет проверку человеком: - **Сложные занятия** (многократное чередование, сдвоенные занятия, связанные занятия) иногда воссоздаются неточно — рассчитывайте на ручную доводку. - При очень специфических внутренних обозначениях часть столбцов останется неоднозначной — вы решите это на шаге 3. - Для **целевых переходов** с конкретной программы (Aurion, ASC…) есть [специальные адаптеры](#page-migration.overview). #### Инструкция — Подготовка и импорт курсов 1. **Прежде чем нажать «Импорт»**, потратьте 10 минут на подготовку исходного файла. Аккуратный файл — импорт без возвратов на предыдущие шаги. В Excel или Google Sheets удалите объединённые строки, многострочные заголовки и промежуточные итоги. **Одна строка — одно занятие.** Используйте единообразные названия для классов, дисциплин, преподавателей, групп, площадок, кабинетов и ресурсов. 2. **Откройте экран импорта** на экране распределения часов: меню *Действия → Таблица - импорт/экспорт*. Переставьте столбцы шаблона так, чтобы их порядок совпал с порядком в вашей таблице, затем **вставьте таблицу** в редактируемую область. Это шаг 1. 3. **Шаг 2 — проверка графика и площадок.** Omniscol показывает распознанные часы и определённые площадки. При необходимости перетащите классы, кабинеты и ресурсы на нужную площадку или очистите лишнюю площадку, чтобы она исчезла. 4. **Шаг 3 — устранение неоднозначности.** Таблица появляется снова, с выпадающими меню в неоднозначных полях: точная дисциплина, однофамильцы-преподаватели, кабинеты с одинаковым названием и так далее. Здесь решение принимаете вы. 5. **Шаг 4 — создание неизвестных объектов.** Подтвердите предложенные создания в соответствии с вашим файлом: классы, группы, группы групп, преподаватели, дисциплины и типы, площадки, кабинеты, ресурсы. Для собственных дисциплин и некоторых преподавателей можно также запросить создание в модуле «Администрирование». После этого курсы загружаются в расписание. 6. **По завершении** вы получите частично настроенное расписание. Рассчитывайте на ручную доводку для сложных случаев (многократное чередование, сдвоенные занятия, связанные занятия), которые импорт не всегда воссоздаёт полностью. Для перехода с другой программы см. [Переход с другого программного обеспечения — обзор](#page-migration.overview). #### См. также - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Переход с другого программного обеспечения — обзор](#page-migration.overview) - [Предыдущий шаг — Распределить часы и создать занятия](#page-timetables.hour-distribution) - Следующий шаг — [Автоматическое формирование](#page-timetables.generation) ### 3.15 Шаг 7 — Автоматическое формирование расписания *Source: `help/ru/timetables/generation.md` · id: timetables.generation · Audience: admin · Updated: 2026-10-01* Когда занятия созданы, вы размещаете их на сетке. Составление расписания на практике — это **цикл**, а не однократное действие: 1. **несколько занятий размещаются вручную** — чтобы закрепить неподвижные занятия или заблокировать жёсткие ограничения (занятия с точными датами, экзамены, ручные привязки); 2. **запускается формирование** (всего расписания или его части), чтобы алгоритм разместил остальное с учётом ограничений; 3. **остаётся подправить детали** — исправить частный случай, переместить занятие, передумать; 4. и всё это **может повторяться**: расписание формируется заново по мере работы (добавились занятия или — в режиме календаря — нужно обработать интервал дат, набор классов или подразделений). Можно также всё сделать **полностью вручную**, без алгоритма. Ручному размещению (разместить, переместить, заблокировать — по одному или сразу несколько) посвящена отдельная страница: [Ручное размещение](#page-timetables.manual-placement). Общий порядок работы описан на странице [Обзор модуля](#page-timetables.overview). Эта страница посвящена **автоматическому формированию**. #### Формирование размещает занятия, но не создаёт их Алгоритм работает с уже существующими занятиями. Он подбирает для них временной слот и кабинет. Преподаватели — те, кого вы назначили на курс: алгоритм не заменяет их и не назначает других, он лишь отказывается от слота, в котором они недоступны. Отсюда порядок действий: 1. **укажите дисциплину и её объём** для каждого класса: это *курс*, строка с количеством часов; 2. **создайте занятия** на основе этого объёма на шаге [Распределить часы и создать занятия](#page-timetables.hour-distribution) — именно их алгоритм и размещает; 3. **затем запустите формирование**. Если открыть вкладку формирования до создания занятий, кнопка окажется неактивной: размещать нечего, а на экране проверки отображается сообщение **Не определено ни одного занятия**. #### Почему кнопка формирования неактивна Кнопка отражает диагностику, показанную прямо над ней, на вкладке «Проверка». Возможны три ситуации: - **Нет оповещений или есть только предупреждения** — кнопка остаётся активной, но выглядит приглушённо. Предупреждение (жёлтое) сообщает о риске, а не о невозможности; синее оповещение носит информационный характер. - **Блокирующее оповещение (красное)** — основная кнопка отключена. Расчёт всё же можно запустить через Дополнительные опции, на ваш страх и риск: алгоритм не увидит проблему, о которой сообщает оповещение, и всё равно построит расписание, а за результат отвечаете вы. Лучше устранить оповещение. - **Критическое оповещение** — отключены и кнопка, **и** меню опций. Не хватает данных, без которых расчёт теряет смысл: нет ни одного занятия, нет ни одного пригодного класса (класс пригоден, когда у него есть площадка *и* занятия), либо у используемой площадки не задана временная сетка. Так бывает, если в учебном заведении ещё не создано ни одной площадки: без площадки ни один класс не пригоден. В последнем случае статистика **Количество настроенных классов** становится красной. Каждое оповещение сформулировано в списке понятным языком, с указанием соответствующего класса, площадки или преподавателя. О шкале серьёзности и о том, как её читать, см. [Конфликты и диагностика](#page-timetables.conflicts); об устранении причин, по которым формирование не завершается, см. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Доступность Автоматическое формирование доступно для [недельных](#page-glossary.weekly-timetable), [циклических](#page-glossary.cyclic-timetable) и [календарных](#page-glossary.calendar-mode) расписаний. В режиме календаря занятия размещаются на реальные даты, а опции позволяют ограничить диапазон дат, для которого выполняется формирование. #### Подготовка Прежде чем нажать Сформировать расписание: - откройте вкладку «**Формирование**» (в календарном расписании она называется «Проверка») и проверьте общую статистику, - устраните **блокирующие оповещения** (красные) — см. предыдущий раздел о неактивной кнопке, - просмотрите **предупреждения** (жёлтые) — они не блокируют формирование, но сообщают о риске (слишком ограниченная доступность, предельная вместимость и т. д.). На экране также указано: - количество созданных занятий и количество размещённых, - введённые объёмы часов и нагрузка преподавателей, - группы, назначенные хотя бы на один курс (чтобы заметить забытые или неиспользуемые группы). #### Запуск Нажмите Сформировать расписание. Omniscol запускает отдельную параллельную вычислительную среду. Длительность зависит от размера расписания, количества ограничений и выбранных опций. Управлять очередью на стороне учебного заведения не нужно; подготовка часто занимает около десяти секунд, после чего начинается сам расчёт. Расчёт **ограничен двадцатью минутами**, но на практике этого с большим запасом хватает: расписание примерно из 200 курсов часто готово примерно за двадцать секунд — сам алгоритм работает почти мгновенно, дольше всего запускается машина, — а около 600 курсов обрабатываются примерно за минуту. Если очень крупное учебное заведение приближается к этому пределу, команда Omniscol по запросу может увеличить мощность вычислительной машины. #### Опции формирования По умолчанию формирование размещает все созданные, но ещё не размещённые занятия. Оно может также перемещать уже размещённые занятия, если это улучшает расписание. Заблокированные занятия сохраняют своё положение. Меню опций позволяет, в частности: - управлять кабинетами, выбрав один из трёх вариантов: оптимизированное назначение (по умолчанию), только проверка или полное игнорирование кабинетов; - выбрать только некоторые классы или некоторые дисциплины; - ограничить календарное расписание целевым временным окном; - игнорировать уже назначенные кабинеты или текущее размещение; - назначить только кабинеты, не пересчитывая всё размещение; - запустить быстрое формирование без оптимизации; - разрешить гибкое размещение по частям слотов сетки, если в расписании используются части слотов. Расширенные параметры оптимизации позволяют также сократить «окна», не допускать двух занятий по одной дисциплине в один день, равномерно распределять занятия, задавать минимальное или максимальное число часов либо выбирать, сколько дней в неделю преподаватели присутствуют в учебном заведении. Практика различается от страны к стране: во Франции некоторые учебные заведения стремятся сократить число дней присутствия преподавателей, а в других условиях, наоборот, могут предпочесть распределить эти дни, например, чтобы выделить время на другие задачи на площадке. #### Опции, специфичные для режима календаря В режиме календаря расширенные опции позволяют ограничить формирование **целевым временным окном**, более коротким, чем весь диапазон расписания. Это удобно, если нужно сформировать только часть года: пробный расчёт на один месяц, поэтапное построение семестра или продолжение уже подготовленного периода. Вторая важная опция — **уплотнение дней** для классов. По умолчанию алгоритм стремится скорее к равномерной нагрузке по доступным дням; если вы формируете лишь часть занятий года, из-за этого занятия могут искусственно растянуться. Уплотнение позволяет запросить группировку: - в начале окна; - в конце окна; - без предпочтения начала или конца, но с максимально плотными днями. #### Периодичность в режиме «календарь»: сначала типовая неделя В расписании в режиме «календарь» каждое занятие датируется по отдельности. Однако некоторые программы устроены иначе: занятие в понедельник в 10:00 по возможности повторяется каждую неделю. Класс объявляет такие занятия пунктом «Повторяющиеся занятия»; курс этого класса исключается из повторения пунктом «Вне периодичности». **Ничего не угадывается**: без этой настройки формирование размещает каждое занятие на его дату, как бы ни были похожи занятия между собой. Политика распределения необязательна (см. [политика распределения](#page-timetables.distribution-policy)): периодичность работает и сама по себе, а явная политика задаёт ритм, который алгоритм должен соблюдать по мере возможности. Как только в расписании появляется хотя бы один класс с периодичностью, формирование проходит в три этапа. 1. **Сначала типовая неделя.** Занятия объединяются в серии. Возможны два случая: - у курса задана «политика распределения часов»: алгоритм собирает занятия так, чтобы соблюсти это распределение внутри серий, которые могут нести точное пожелание о периодичности; - в остальных случаях серии угадываются по сходству: та же дисциплина, та же группа, тот же характер — сопоставимые продолжительность и преподаватели. Группы в рамках одного элемента «разделение класса» остаются раздельными, поскольку две группы, занимающиеся одновременно, занимают два слота. Единственное занятие в своём роде серии не образует. Затем каждая серия ищет себе место на условной неделе, как в расписании типа «недельное». **Формирование считывает там ритм, заданный политикой**: столбец «Периодичность» правила говорит «два раза в неделю» или «раз в три недели»; значение «Автоматический» позволяет вывести ритм из числа занятий, отнесённого к учебным неделям. Курс, который проходит четыре раза в неделю, занимает четыре слота типовой недели. Эта теоретическая неделя уже учитывает календарные ограничения: зафиксированные занятия, недоступность в определённые даты или слоты. Серии могут также занимать один и тот же слот, сменяя друг друга. 2. **Развёртывание на календаре.** Найденная неделя затем повторяется на интервале дат класса: на его «временно́е окно», если оно задано, иначе на всём периоде расписания. Каждое занятие серии получает там свою неделю, день и слот. Конфликты проверяются по датам; если точное место уже занято, алгоритм выбирает ближайшее решение. 3. **Обычное календарное формирование завершает работу** — уже без периодичности. То, что типовая неделя не смогла датировать, не навязывается: такие занятия присоединяются к пакету неповторяющихся занятий, который алгоритм размещает следом. #### Как работает формирование Понимание логики алгоритма помогает предвидеть, что он разместит, чем пожертвует и как им управлять. Он преследует **две цели в таком порядке**: 1. **Разместить всё** — безусловный приоритет: расставить *все* занятия с соблюдением жёстких ограничений. 2. **Оптимизировать качество** — когда всё размещено, сократить «окна», сгладить дни, учесть пожелания. Алгоритм начинается с чистого состояния (**заблокированные** занятия сохраняют место, остальные размещаются заново) и размещает занятия **от самого трудного к самому лёгкому**. Трудность определяется главным образом **узостью ограничений**: курс, преподаватель которого свободен лишь один раз в неделю во второй половине дня, или **блок из четырёх часов**, который нужно уместить целиком, идёт первым. При равной трудности алгоритм чередует дисциплины и обрабатывает **более редкие раньше более распространённых**, чтобы шансы у каждой были равными. ##### Если всё не помещается: жертвование занятиями Если расписание слишком ограничено, чтобы разместить всё, алгоритм **не сдаётся**: он выбирает наименьший набор занятий, которые нужно **оставить без места**, чтобы остальное уместилось, и оптимизирует это неполное расписание. Принесённые в жертву занятия остаются на панели стикеров, ожидающих размещения. Поскольку сортировка отдаёт приоритет самому трудному и самому редкому, уступают скорее **лёгкие и многочисленные** занятия: 5-й час дисциплины с большим объёмом, а не единственный час редкой дисциплины. Вы сохраняете контроль над этим выбором: **блокируйте** занятия, которые никогда не должны двигаться, — они размещаются первыми и не приносятся в жертву, — и **ослабляйте избыточные ограничения** (открытые слоты, доступность) там, где это возможно, чтобы всё поместилось. ##### Жёсткие и мягкие ограничения Не все ограничения равнозначны: - **Жёсткие** — не нарушаются никогда: **занятость** (преподаватель, класс, группа, кабинет или ресурс не используются дважды в одно и то же время), периоды, отмеченные как **Недоступно** (чёрным) у преподавателя, класса, кабинета, курса или группы, **отсутствие свободного кабинета или ресурса** в слоте, **закрытые дни**, **заблокированные позиции** и **совмещения**. - **Мягкие** — всё остальное; алгоритм может **нарушить** их ценой штрафа, чтобы разместить всё: периоды, отмеченные как **Нежелательно** (красным — их стоит избегать, но они не запрещены), и пожелания по оптимизации (компактность, равномерность, группировка по дням и т. д.). Ограничение с *высоким* приоритетом весит больше, чем с *низким*, но ни одно из них не блокирует формирование. Алгоритм также точечно идёт на послабления (размещение по частям слотов сетки и т. п.), когда это цена за то, чтобы не жертвовать ни одним занятием. ##### Проверка без оптимизации Опция **быстрого формирования** (без оптимизации) запускает облегчённый проход, который отвечает главным образом на один вопрос: *всё ли помещается?* Это удобно, чтобы проверить осуществимость конфигурации, прежде чем тратить время на полную оптимизацию. #### Результат - **Зелёный баннер**: формирование прошло успешно. Занятия запрошенного охвата размещены, результат можно просмотреть. - **Красный баннер**: полного решения найти не удалось. Лучшее из вычисленных расписаний остаётся доступным для просмотра, а неразмещённые занятия отображаются на панели стикеров для диагностики. См. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Консолидировать или создать копию После успешного формирования Omniscol предлагает два варианта: - **Консолидировать** результат в текущее расписание (размещение заменяет существующее). - **Создать копию** (текущее расписание остаётся нетронутым, оптимизированный результат становится новым расписанием). Если вы планируете формировать расписание повторно позже (например, потому что строите его поэтапно), **не консолидируйте**: иначе уже размещённые занятия станут отправной точкой для нового формирования. #### Заблокировать занятие перед повторным формированием Чтобы заблокировать уже размещённое занятие, воспользуйтесь **замком** позиции. Следующее формирование не переместит его, а подстроит вокруг него остальные занятия. Это удобно для «неподвижных» занятий (занятия внешних преподавателей с фиксированным временем, экзамены с точными датами, ручные привязки и т. д.). Подробности — на странице [Блокировка занятия](#page-timetables.lesson-lock): массовая блокировка, влияние на диагностику (красный → оранжевый), поведение алгоритма. #### Экспорт расписания в JSON Кнопка [download] экспортирует **только текущее расписание** в формате JSON. Это не полный экспорт учётной записи, описанный на странице [Импорт и экспорт](#page-admin.import-export). Типичные случаи: - сохранить копию черновика или сценария перед удалением; - архивировать промежуточное состояние перед серьёзной перестройкой; - передать именно это расписание команде Omniscol в рамках поддержки. Как и в случае полного экспорта учётной записи учебного заведения в JSON, повторный импорт не является стандартным сценарием, свободно доступным на стороне учебного заведения. #### Что дальше Завершающий шаг: [Публикация расписания](#page-timetables.publication). #### Инструкция — Запустить автоматическое формирование 1. **Автоматическое формирование** размещает занятия на сетке с соблюдением десятков ограничений (доступность, вместимость, совмещения, специализации, чередование). Доступно для недельных, циклических и календарных расписаний. 2. **Проверьте вкладку «Формирование».** На ней отображается общая статистика: созданные и размещённые занятия, введённые объёмы часов и нагрузка преподавателей, блокирующие оповещения (красные) и предупреждения (жёлтые — предупреждают, но не блокируют). 3. **Устраните красные оповещения** перед запуском. Пока они остаются, формирование запустить нельзя — разве что принудительно через меню «Дополнительные опции», но делать это не рекомендуется. Жёлтые нужно оценить, но они не мешают формированию. 4. **При необходимости задайте опции формирования**: кабинеты (назначать, только проверить или игнорировать); целевые классы или дисциплины; быстрое формирование без оптимизации; игнорирование уже назначенных кабинетов или текущих позиций. В режиме календаря расширенные опции позволяют также ограничить временное окно формирования и уплотнить занятия в начале периода, в конце периода или без предпочтения. 5. **Нажмите Сформировать расписание.** Обработка идёт в фоновом режиме; на экране отображается состояние формирования, а когда результат готов, его можно просмотреть. 6. **Сохраните**, когда оценка вас устраивает. Расписание размещено. Дальше: просмотрите возможные конфликты, вручную подправьте частные случаи (см. [Ручное размещение](#page-timetables.manual-placement)), затем опубликуйте. 7. **Что дальше**: [Публикация расписания](#page-timetables.publication). #### См. также - [Ручное размещение](#page-timetables.manual-placement) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) - [Формирование](#page-glossary.solver) - [Обнаружение и устранение конфликтов](#page-timetables.conflicts) ### 3.16 Шаг 8 — Публикация расписания *Source: `help/ru/timetables/publication.md` · id: timetables.publication · Audience: admin · Plan: standard · Updated: 2026-06-13* ⚠ Этот шаг **часто забывают**: сформированное расписание **не публикуется автоматически**. Пока оно не опубликовано, это черновик, песочница — его видят только администраторы и только в модуле Управление расписанием. Когда расписание опубликовано, его занятия попадают во все остальные модули, в том числе в модуль [Расписание](#page-schedules.consult-and-filter), которым пользуются все пользователи с соответствующими правами. #### Как опубликовать На главной странице модуля Управление расписанием: 1. Выберите нужный **учебный год** на **шкале времени вверху**. По умолчанию показан **текущий учебный год**. Если вы готовите следующий учебный год, нажмите **правую стрелку шкалы времени**, чтобы перейти на год N+1. Иначе вы попытаетесь опубликовать расписание на недели текущего года, а они уже заняты действующим расписанием. Общее описание понятия см. на странице [Шкала времени и навигация по периодам](#page-core-concepts.timeline-navigation). 2. Нажмите Публикация расписаний (Публикация расписаний). 3. Появится сетка: расписания в строках, недели в столбцах. 4. Для каждого расписания **выберите недели**, на которые оно распространяется (щёлкните или проведите мышью по полосе недель). Кнопка Добавить период добавляет ещё один диапазон для расписания. 5. Сохраните изменения кнопкой Сохранить. #### Стандартный аккаунт: одно расписание на неделю В стандартном аккаунте на одну неделю допускается **только одна публикация**. Если вы хотите опубликовать два разных расписания, их диапазоны не должны пересекаться (например, 1-й семестр и 2-й семестр). > _Option: Несколько расписаний, опубликованных параллельно_ #### Одновременные публикации Если в вашем аккаунте доступна эта возможность (она входит в Premium), вы можете публиковать **несколько расписаний одновременно** на одни и те же недели. Система динамически сводит представления: если два опубликованных расписания включают одного преподавателя или один кабинет, его сводное расписание показывает занятия из обоих. Типичный случай: недельное расписание для регулярных занятий общего блока и календарное расписание для разовых мастер-классов. #### Календарное расписание: публикация «да или нет» Расписание в [режиме календаря](#page-glossary.calendar-mode) не публикуется по диапазонам недель (его занятия уже привязаны к конкретным датам). Публикация работает по принципу «да или нет»: расписание либо опубликовано, либо нет. #### Недельное и цикловое расписание: публикация по диапазонам Для недельных и цикловых расписаний вы добавляете **один или несколько диапазонов** публикации, а затем сохраняете. Несохранённые изменения отображаются штриховкой для добавлений и прозрачностью для удалений. #### Чередование недель: какие занятия на какие даты Когда расписание с чередованием недель вводится в работу, на каждой реальной неделе остаётся только то занятие, порядковый номер которого в цикле соответствует **счёту недель**. Каникулы могут сдвигать этот счёт: на шкале чередования экрана [«Учебный год и каникулы»](#page-admin.school-year) можно принудительно задать места, где счёт начинается заново с недели A, чтобы на каждую дату выбирались нужные чередующиеся занятия. #### Распределение учеников после публикации Когда расписание опубликовано для текущего учебного года, вы можете **распределить учеников по классам и группам**: 1. Модуль «Ученики». 2. Выберите нужных учеников. 3. Назначить в класс. Ученики увидят своё персональное расписание только после этого распределения. Если вы готовите следующий учебный год, то ещё и после смены текущего года. #### Инструкция — Публикация расписания за 5 шагов 1. **Публикация вводит расписание в работу**: его занятия попадают во все остальные модули, в том числе модуль Расписание, которым пользуются все пользователи с соответствующими правами. Пока расписание не опубликовано, оно остаётся черновиком, песочницей, видимой только администраторам. 2. **Проверьте учебный год, показанный** на шкале времени вверху. По умолчанию это текущий год. Чтобы опубликовать расписание на следующий год, прежде чем продолжить, нажмите **правую стрелку шкалы времени** и перейдите на год N+1. 3. **Нажмите Публикация расписаний.** Появится сетка: расписания в строках, недели учебного года в столбцах. 4. **Выберите недели**, на которые должно распространяться расписание. Щёлкните или проведите мышью по полосе недель. Выбранные недели окрашиваются, остальные остаются белыми. 5. **Сохраните публикацию.** Расписание сразу вводится в работу: его занятия появляются в модуле Расписание у всех пользователей с соответствующими правами. 6. **Следующий шаг: распределите учеников** по классам и группам. Это можно сделать только после первой публикации. Тогда ученики увидят своё персональное расписание. #### См. также - [Публикация расписания](#page-glossary.publication) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Подготовка к следующему учебному году](#page-timetables.next-school-year) ### 3.17 Несколько расписаний, опубликованных параллельно *Source: `help/ru/timetables/multiple-active-timetables.md` · id: timetables.multiple-active-timetables · Audience: admin · Options: multiple-active-timetables · Updated: 2026-09-23* > **Option: Несколько расписаний, опубликованных параллельно** На стандартном тарифе на заданный период можно опубликовать только **одно расписание**. Для обычной работы средней школы этого достаточно. В некоторых случаях — как правило, в высшем образовании, в модульных программах, в учебных заведениях с несколькими траекториями обучения — возникает необходимость **публиковать параллельно несколько расписаний**, которые дополняют друг друга. Эта возможность по умолчанию входит в аккаунты Premium. В некоторых смешанных школьных аккаунтах, например при объединении средней и старшей школы или начальной, средней и старшей школы с действительно раздельными расписаниями, Omniscol может включить эту возможность отдельно. Объём и тарификация тогда подбираются под реальную потребность. #### Зачем нужно несколько расписаний параллельно Несколько типичных сценариев: - **Общая часть и специализации** — недельное расписание охватывает общую часть (дисциплины, общие для всех наборов), а расписания по профилям или траекториям добавляются поверх него со своими ограничениями. - **Регулярное расписание и календарное для разовых занятий** — регулярное недельное расписание содержит большинство занятий, календарное — занятия с конкретной датой (лекции, экзамены, заседания комиссий). - **Несколько площадок** — по одному расписанию на площадку с локальным управлением, а при просмотре они сливаются для студентов, которые переходят с одной площадки на другую. - **Программы разной продолжительности** — например, программа MBA на 18 месяцев, бакалавриат по календарным семестрам и недельные подготовительные курсы, причём преподаватели и кабинеты общие. Без этой опции приходится собирать всю сложность в одном расписании, и вскоре оно становится неуправляемым. #### Как это работает Вы создаёте несколько расписаний в модуле «Управление расписанием», как обычно. При **публикации** на недели экран публикации принимает несколько расписаний на одни и те же недели, а не одно. При использовании (порталы, информационные панели, iCal, API) расписания, опубликованные на неделю, **динамически сливаются**: студент видит все занятия, которые его касаются, независимо от того, из какого расписания они пришли. В рамках одного аккаунта параллельно опубликованные расписания разделяют занятость соответствующих ресурсов: кабинетов, преподавателей и, там где это уместно, классов. Так один и тот же преподаватель или кабинет не окажется занят дважды в двух опубликованных расписаниях. Случай классов, общих для нескольких расписаний, тоже встречается, но он остаётся более редким и сильно зависит от организации учебного процесса. #### Обнаружение конфликтов между расписаниями Два механизма дополняют друг друга, в зависимости от того, где вы работаете. ##### При составлении расписания Когда вы составляете или реорганизуете расписание в модуле «Управление расписанием», кнопка Синхронизация (на панели инструментов реорганизации, как и редактирования календарного расписания, на **общих датах**) сверяет вашу работу с **другими опубликованными расписаниями**. Она автоматически учитывает те, чьи **даты пересекаются** с датами текущего расписания и у которых есть хотя бы один общий **преподаватель**, **кабинет** или **класс** — локально (в том же аккаунте) и со **[связанными аккаунтами](#page-integrations.linked-accounts)**. Поэтому она включается сама, как только появляются общие ресурсы (оранжевый цвет — кнопка активна). Эта автоматическая связь соединяет **датированные (календарные)** расписания. Удобное исключение: кнопка **игнорирует простую копию** текущего расписания (те же занятия). Так вы можете работать над **продублированным черновиком**, не вступая в конфликт с самим собой. Занятость этих расписаний затем попадает в механизм конфликтов: - **возможные слоты** для размещения (цветные метки) становятся оранжевыми или красными, если преподаватель или кабинет уже заняты в другом месте; - **диагностика** сообщает о двойном бронировании между расписаниями. В описании конфликта занятие из другого расписания после названия своего класса сопровождается значком [calendar-days] и названием этого расписания. Занятие из связанного аккаунта сопровождается значком [building-columns] и названием этого аккаунта. В раскрывающемся меню кнопки перечислены учитываемые расписания и аккаунты: снимите отметку с тех, за которыми не хотите следить, например чтобы сознательно допустить пересечение. ##### При просмотре (операционное расписание) После публикации расписания **сливаются** в единое **операционное** расписание — вид просмотра в Omniscol (модуль «Расписание») и всё, что использует расписание (порталы, информационные панели, iCal, API). Конфликты между расписаниями видны там сами собой: если преподаватель (или кабинет) заняты на двух одновременных занятиях из двух опубликованных расписаний, на сетке после слияния они накладываются друг на друга. В этом логика слияния: оно образует фактическое расписание, **всех типов вместе** (включая недельное и календарное). В режиме реорганизации это создаёт конфликт. В обоих случаях разрешение конфликта остаётся работой над расписанием: перенести, изменить или принять конфликт в зависимости от ситуации. #### Как распознать один и тот же класс, кабинет или ресурс в разных расписаниях В разных расписаниях аккаунта один и тот же класс, кабинет или ресурс может иметь разные внутренние идентификаторы, например после импорта или дублирования. Omniscol сопоставляет их по идентичности: 1. **внешний идентификатор** — когда у обоих есть идентификатор из одной и той же внешней системы (ERP, система учёта обучающихся), решает только он. Если идентификаторы совпадают, это один и тот же объект, даже после переименования; если различаются — это два разных объекта, даже под одним названием; 2. при его отсутствии — **название**, сравниваемое буквально (с учётом регистра, диакритических знаков и пробелов). Кабинет или ресурс ищется на соответствующей площадке, которая распознаётся так же. Группа ищется в соответствующем классе: внешний идентификатор, затем название, затем код. Преподаватели — это преподаватели аккаунта: один и тот же преподаватель распознаётся во всех расписаниях. Это сопоставление используется для обнаружения конфликтов между расписаниями. В фильтре модуля «Расписание» класс, присутствующий в нескольких расписаниях учебного года, тоже образует одну запись; его расписание собирает занятия из каждого из них. Если два разных класса отмечены как конфликтующие в разных расписаниях, хотя у них нет общего преподавателя или кабинета, значит, они были распознаны как один класс: у них одинаковый внешний идентификатор или одинаковое название. Исправьте идентификатор в исходной системе или сделайте названия различными. Между связанными аккаунтами сопоставление идёт по другим правилам: см. [Связанные учётные записи и общие ресурсы](#page-integrations.linked-accounts). #### Инструкция — Параллельная публикация регулярного и календарного расписаний 1. **Классический гибридный случай**: **недельное** регулярное расписание для большинства занятий и **календарное** расписание для занятий с конкретной датой (лекции приглашённых лекторов, экзамены, заседания комиссий). 2. **Предварительное условие**: два расписания, созданные в модуле «Управление расписанием», — недельное с регулярными занятиями и календарное с датированными занятиями. Настройте их независимо друг от друга. См. также [Режим календаря](#page-timetables.calendar-mode). 3. **Запустите формирование расписания** отдельно для каждого расписания, если вы пользуетесь автоматическим формированием. Сначала проверьте конфликты, свойственные каждому расписанию. 4. **Опубликуйте недельное расписание** на нужные недели (как правило, на весь год). См. [Публикация](#page-timetables.publication). Затем **опубликуйте второе расписание** (календарное) на **те же недели**. Экран публикации принимает несколько расписаний параллельно (в отличие от одного на стандартном тарифе). 5. **Проверьте слияние**: откройте портал студента или преподавателя — занятия обоих расписаний отображаются на одной сетке, динамически слитые. iCal, API и информационные панели показывают то же самое. 6. **Конфликты между расписаниями**: между недельным и календарным расписанием пересечение видно прежде всего в **операционном расписании после слияния** (просмотр, порталы) — если лекция (календарное расписание) выпадает на слот регулярного занятия (недельное расписание) у того же преподавателя или в том же кабинете, оба занятия накладываются там друг на друга. Разрешение — как у обычного конфликта: перенести, изменить или принять. #### См. также - [Публикация расписания](#page-timetables.publication) - [Режим календаря](#page-timetables.calendar-mode) - [Связанные учётные записи и общие ресурсы](#page-integrations.linked-accounts) - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) ### 3.18 Ручное размещение занятий *Source: `help/ru/timetables/manual-placement.md` · id: timetables.manual-placement · Audience: admin · Updated: 2026-06-23* Разместить занятие **вручную** означает самостоятельно выбрать для него временной слот, а не поручать выбор алгоритму. Почти всегда это сочетается с формированием расписания (см. [Автоматическое формирование](#page-timetables.generation)): построение расписания идёт **циклом** (разместить несколько занятий → сформировать расписание → скорректировать), он описан на странице [Обзор модуля](#page-timetables.overview). #### Когда размещать вручную - **Расставить неизменные элементы до формирования** — занятие на конкретную дату, экзамен, жёстко заданное время: его размещают (и часто **блокируют**, см. [Блокировка занятия](#page-timetables.lesson-lock)), чтобы формирование строило расписание *вокруг* него. - **Внести точечные правки после формирования** — перенести занятие, решить частный случай, передумать насчёт слота. - **Составить расписание целиком вручную** — для небольшого расписания или когда вы предпочитаете вести работу от начала до конца сами (см. ниже). #### Порядок действий: кнопка размещения, затем цветной слот Размещение занятия **никогда не выполняется перетаскиванием**. Нажмите кнопку размещения (значок канцелярской кнопки, Разместить в расписании) у занятия — на его стикере, в строке списка или в карточке занятия (Разместить в расписании), если оно уже размещено. Omniscol покажет **все возможные слоты**, окрашенные по уровню конфликта: - **зелёный** — конфликтов нет; - **жёлтый**, затем **оранжевый** — от незначительных до умеренных конфликтов (причина показывается); - **красный** — блокирующий конфликт. Подробное описание каждого уровня и полный перечень выявляемых конфликтов — на странице [Конфликты и диагностика](#page-timetables.conflicts). Слоты отображаются и для класса, **и** для соответствующих преподавателей, вместе с другими уже размещёнными занятиями, чтобы проще было выбрать. **Нажмите на выбранный слот**, чтобы разместить в нём занятие. Чтобы снять занятие, дважды щёлкните по уже размещённому занятию (оно вернётся в зону неразмещённых занятий, но не будет удалено). #### Размещение серией — представление «Планирование» Нажмите Сетка: откроется представление «Планирование» классов и преподавателей, удобное для последовательного размещения. Порядок действий не меняется — кнопка размещения [thumbtack] у занятия, затем щелчок по цветному слоту. Это удобно в режиме календаря, чтобы поставить занятия на заданные даты или локально доработать результат формирования. #### Заблокировать, чтобы сохранить ручное размещение Занятие, размещённое вручную, по умолчанию может быть сдвинуто при следующем формировании. Чтобы оно **больше не двигалось**, заблокируйте его позицию (замок): формирование будет строить расписание вокруг него. Подробности (массовая блокировка, влияние на диагностику): [Блокировка занятия](#page-timetables.lesson-lock). #### Всё вручную (без формирования) Запускать формирование расписания необязательно. В небольшом недельном расписании или когда размещение сильно ограничено решениями людей, вы можете разместить **каждое занятие** по одному (или серией в представлении «Планирование») и ни разу не запускать формирование. Диагностика в реальном времени остаётся активной: конфликты (преподавателя, кабинета, класса, ресурса) отмечаются по ходу работы, как и при формировании. Затем вы публикуете расписание как обычно. О занятиях, выходящих за рамки сетки (явно заданное время, экзамены увеличенной продолжительности), см. [Занятия вне сетки](#page-timetables.off-grid-lessons). #### Что дальше Когда занятия расписания размещены — вручную, формированием или обоими способами — [Публикация расписания](#page-timetables.publication). #### См. также - [Автоматическое формирование](#page-timetables.generation) - [Блокировка занятия](#page-timetables.lesson-lock) - [Занятия вне сетки](#page-timetables.off-grid-lessons) - [Распределить часы и создать занятия](#page-timetables.hour-distribution) ### 3.19 Редактирование занятия *Source: `help/ru/timetables/lesson-edit.md` · id: timetables.lesson-edit · Audience: admin · Updated: 2026-06-12* Когда занятие создано (см. [Распределить часы и создать занятия](#page-timetables.hour-distribution)), вы настраиваете его **поля** одно за другим: дисциплину, группу, преподавателя, кабинет, ресурсы, продолжительность, заметку и — в зависимости от вашего тарифа — статус и формат проведения. На этой странице собраны **все поля** занятия и способы их изменить. #### Где редактируется занятие Одни и те же поля настраиваются **тремя способами**, в зависимости от режима отображения распределения (см. [Три режима отображения](#page-timetables.hour-distribution)): - **Стикеры**: на каждой карточке занятия есть ряд **значков** (по одному на поле); щелчок открывает соответствующее окно выбора. - **Реорганизация**: щелчок по занятию открывает **карточку занятия** с теми же полями; если выбрать несколько занятий, они редактируются одновременно. - **Список**: **по столбцу на каждое поле**, с массовым редактированием из заголовка столбца для отмеченных занятий. Каким бы путём вы ни пошли, вы меняете **одно и то же занятие**: значения одинаковы во всех режимах, и ничего не публикуется, пока вы не сохраните изменения. #### Стандартные поля Доступны на всех тарифах: - **Дисциплина** Назначить дисциплину — дисциплина, относящаяся к занятию, из числа заданных для класса. - **Группа** Назначить группу — группа или подгруппа, для которой проводится занятие, если класс разделён. - **Преподаватель** Назначить преподавателей — один или несколько преподавателей. Если выбрать **нескольких** преподавателей для одного занятия, это будет **совместное преподавание** (см. [Сложные занятия](#page-core-concepts.complex-lessons)). - **Кабинет** Назначить кабинет — выберите основной кабинет занятия; расширенные варианты описаны ниже и зависят от функций, включённых для аккаунта. - **Ресурсы** Назначить ресурсы — используемое оборудование (проектор, планшеты и т. д.) с проверкой доступности. - **Продолжительность** — потяните **нижнюю границу** карточки (в режиме стикеров), чтобы удлинить или сократить занятие. - **Положение и блокировка** Разместить в расписании — заблокируйте занятие, чтобы формирование расписания его не перемещало (см. [Блокировка занятия](#page-timetables.lesson-lock)). - **Заметка** Комментарий — свободный комментарий с уровнями видимости (см. [Заметки](#page-timetables.hour-distribution)). #### Кабинет и назначение Назначение кабинета Назначить кабинет доступно на всех тарифах: выберите кабинет в списке или позвольте **автоматическому режиму** предложить подходящий кабинет (по вместимости, меткам и доступности). В списке сохраняется **стабильный порядок** — сначала ваши избранные кабинеты, затем по алфавиту — а хорошие варианты отмечаются без перемещения: - **звезда** отмечает лучший на данный момент кабинет, **полузвезда** — следующие за ним. Наведите на них курсор, чтобы увидеть, чем они отличаются: площадка, степень заполнения, специализация и, при наличии, предпочтение класса; - **зелёная точка** на одном из значений «[подразделение](#page-timetables.sites-rooms--campus)» или «метки» кабинета означает, что это значение совпадает с параметром «предпочтительные кабинеты» класса. Это тот же код, что и у специализации: она зелёная, когда соответствует занятию; - **вместимость** становится оранжевой, а затем красной по мере того, как кабинет оказывается слишком мал для числа учеников. Звезда остаётся среди предпочтительных кабинетов класса. Полузвезда может выйти за их пределы, когда другой кабинет заметно лучше подходит по числу учеников: если для 25 учеников выбран кабинет на 60 мест, полузвезда укажет на свободный кабинет на 30 мест. > _Premium_ #### Расширенные функции занятия ##### Статус занятия **Статус** Статус показывает, на каком этапе планирования находится занятие. Четыре значения: - **Запланирован** — обычный статус расставленного занятия. - **Черновик** — занятие **скрыто** и **игнорируется автоматическим формированием расписания**: удобно, чтобы подготовить занятие, пока не включая его в расписание. - **Отменен** — занятие **показано как отменённое**, но сохранено для истории; оно **игнорируется при формировании расписания**. - **Реализован** — занятие **проведено**; оно учитывается в сводных панелях и при выставлении счетов. Этот статус предлагается в расписаниях типа «Календарь», где отслеживание фактически проведённых занятий имеет смысл. Статус относится к **занятию целиком** (а не к варианту чередования недель). Его меняют для каждого занятия отдельно или **массово** в режиме списка. ##### Формат проведения **Формат проведения** уточняет, как проходит занятие: - **Очный**; - **Дистанционный**; - **Гибридный**; - **Самостоятельная работа**. Формат выбирается в окне выбора кабинета, рядом с назначением. Он действует на практике: для занятия в формате «**дистанционный**» или для **самостоятельной работы** **кабинет не нужен**, и формирование расписания его не потребует. Значок занятия отражает выбранный формат. ##### Несколько кабинетов Одному занятию можно назначить **несколько кабинетов**: удерживайте **Shift ⇧** и щёлкайте, чтобы расширить выбор. Это удобно, когда поток делится между двумя соседними кабинетами или занятие занимает сдвоенное помещение. Все выбранные кабинеты резервируются и участвуют в конфликтах. ##### Индивидуальная продолжительность и время Помимо продолжительности, считываемой с сетки, занятие может иметь **индивидуальную продолжительность** (фактическую — для сводных панелей, учитываемую — для выставления счетов) и **время вне сетки** (явно заданные начало и окончание). Эти настройки, как и классы вне сетки, описаны на отдельной странице: [Занятия вне сетки](#page-timetables.off-grid-lessons). #### Редактирование нескольких занятий сразу Чтобы применить одно значение к группе занятий: - в режиме **реорганизации** **Shift+щелчок** расширяет выбор до диапазона; общая карточка редактирует все занятия сразу; - в режиме **списка** отметьте нужные занятия и воспользуйтесь **кнопкой действия в заголовке** столбца (продолжительность, преподаватель, группа, кабинет, статус…). Это быстрый способ, например, перевести набор занятий в статус **Черновик** или назначить им общий кабинет. #### Удаление занятия Значок Удалить удаляет занятие. Удаление становится **окончательным** при сохранении: перед сохранением проверьте удаления, потому что общей отмены на этом экране нет. #### Инструкция — Изменить статус занятия 1. Откройте распределение класса ([Шаг 6](#page-timetables.hour-distribution)). 2. Щёлкните значок **статуса** Статус на занятии (или откройте его карточку в режиме реорганизации). 3. Выберите нужный статус — например, **Черновик**, чтобы исключить занятие из формирования расписания. 4. Чтобы обработать несколько занятий, перейдите в режим **списка**, отметьте занятия и примените статус из заголовка столбца. 5. **Сохраните** изменения, чтобы опубликовать их. #### См. также - [Распределить часы и создать занятия](#page-timetables.hour-distribution) - [Занятия вне сетки](#page-timetables.off-grid-lessons) - [Блокировка занятия](#page-timetables.lesson-lock) - [Сложные занятия](#page-core-concepts.complex-lessons) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [Обнаружение и устранение конфликтов](#page-timetables.conflicts) ### 3.20 Занятия и классы вне сетки *Source: `help/ru/timetables/off-grid-lessons.md` · id: timetables.off-grid-lessons · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Занятие вне сетки** — это занятие, поставленное с явно заданным временем начала и окончания, а не точно по границам временного слота сетки. Эта возможность есть в недельных, циклических и календарных расписаниях. **Класс вне сетки** — отдельная настройка: это свойство класса, доступное для расписаний типа «календарь». #### Занятие с пользовательским временем Пользовательское время нужно, когда разовое занятие не попадает точно в сетку: экзамен, который начинается в `08:30`, вечернее занятие, занятие с заходом на перерыв, бронирование, которое начинается раньше самого занятия. Занятие остаётся видимым в расписании и по-прежнему участвует в конфликтах. Любая сущность, задействованная в занятии — преподаватель, кабинет, класс, группа или ресурс, — считается занятой, как только пользовательское время заходит на временной слот. При формировании расписания такое занятие считается неперемещаемым: его положение блокируется автоматически. #### Когда использовать событие вместо занятия Используйте [разовое событие](#page-schedules.events), если речь идёт не о занятии расписания: собрание, простое бронирование, обслуживание кабинета, особый день без учебной нагрузки, которую нужно учитывать. Оставьте занятие, если нагрузка должна быть привязана к курсу, дисциплине, классу, преподавателю, группе или к сводной панели учебной нагрузки. #### Класс вне сетки Класс вне сетки подходит для программ, у которых все занятия должны храниться с точным временем независимо от сетки площадки. Его настраивают при создании или изменении класса, только в расписаниях типа «календарь». Типичный случай: программа дополнительного образования использует те же кабинеты и тех же преподавателей, что и основные образовательные программы, но работает по совсем другому графику. Тогда класс можно настроить вне сетки, задав шаг времени по умолчанию, например четверть часа. В этом режиме занятия класса напрямую содержат время начала и окончания. Они **резервируют** задействованных преподавателей, кабинеты, классы, группы и ресурсы: пересечение с другим занятием отмечается как **конфликт**. При ручной расстановке он не блокирует действие, но при формировании расписания на слот с конфликтом ничего поставлено не будет. #### Пользовательская продолжительность У занятия могут быть и пользовательские значения продолжительности: - **Расчётная продолжительность** — продолжительность, выведенная из времени начала и окончания; - **Фактическая продолжительность** — значение, которое используется в первую очередь в сводных панелях; - **Учитываемая продолжительность** — значение, которое используется для выставления счетов или расчёта оплаты преподавателя. Пример: для экзамена вы можете зарезервировать кабинет до и после испытания, а в разделе «Сводная панель» учитывать только фактическую продолжительность самого экзамена. Для сотрудника, наблюдающего за экзаменом, учитываемая продолжительность может быть больше, если учебное заведение компенсирует ещё и проверку работ. #### На что обратить внимание - Занятие с пользовательским временем может пересекаться с перерывом или со слотом, который обычно свободен; убедитесь, что это сделано намеренно. - Поскольку занятие заблокировано для формирования расписания, оно может сильно ограничивать автоматическую расстановку вокруг себя. - Класс вне сетки — структурообразующая настройка: выбирайте его до массового создания занятий этого класса. - **Сложные занятия** (чередование недель, сдвоенные и связанные занятия) **отключены**, как только задано явное время или есть класс вне сетки: в этом случае функция недоступна. #### Инструкция — Создать занятие с пользовательским временем 1. Поставьте занятие в расписание или откройте его. 2. Откройте редактирование пользовательского времени занятия. 3. Введите время начала и время окончания. 4. Проверьте конфликты по задействованным преподавателям, кабинетам, классам, группам и ресурсам. 5. При необходимости снова запустите формирование расписания: занятие останется заблокированным, а алгоритм расставит остальное вокруг него. #### См. также - [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) - [Общие параметры](#page-timetables.general-settings) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) - [Автоматическое формирование](#page-timetables.generation) - [Разовые события](#page-schedules.events) ### 3.21 Блокировка положения занятия *Source: `help/ru/timetables/lesson-lock.md` · id: timetables.lesson-lock · Audience: admin · Updated: 2026-06-13* **Заблокировать занятие** значит заблокировать его **положение** в расписании. Занятие по-прежнему учитывается при формировании расписания, но автоматическое формирование больше не может его переместить. Ориентир на экране — **закрытый замок** [lock]. Напротив, **открытый замок** [unlock] означает, что положение всё ещё может быть изменено при формировании расписания или при реорганизации. Не путайте: значок **размещения** [thumbtack] служит для того, чтобы поставить занятие в расписание. Он открывает или включает размещение, но не является признаком блокировки. #### Когда блокировать занятие Типичные случаи: - **Внешний преподаватель**, время занятий которого задано заранее. - **Экзамен с назначенной датой**, для которого слот или кабинет уже определены. - **Экскурсия или посещение**, запланированные на конкретный слот. - **Внешний кабинет с заданным временем работы** (спортивный зал, бассейн…): это можно сделать блокировкой, но часто лучше использовать **доступность кабинета**, которая направляет алгоритм формирования расписания, не фиксируя каждое занятие по отдельности. - **Занятие [свободной группы](#page-core-concepts.free-groups)**, поставленное вручную рядом с основным занятием. - **Положение, полученное при предыдущем формировании**, которое вы хотите сохранить, прежде чем повторно запустить формирование в более широком объёме. #### Как заблокировать 1. Поставьте занятие в расписание, если это ещё не сделано. 2. Откройте сведения о положении занятия. 3. Включите **закрытый замок**, чтобы заблокировать положение. 4. Проверьте, что у положения занятия отображается замок. Чтобы освободить положение, используйте **открытый замок**. После этого занятие может быть перемещено при формировании расписания или в ходе некоторых операций реорганизации. #### Массовые действия В распределении часов меню Действия также предлагает общие операции: - Заблокировать все запланированные занятия блокирует уже размещённые занятия; - Разблокировать все запланированные занятия снимает блокировку, но оставляет положение; - Отменить все размещения занятий снимает блокировку и убирает положение. Последний вариант удобен перед новым чистым формированием, когда вы хотите начать с неразмещённых занятий. #### Влияние на формирование расписания и диагностику Заблокированное занятие остаётся для алгоритма формирования расписания жёстким ограничением. Остальные занятия должны размещаться вокруг него. Важное следствие: если вы блокируете занятие на сильно ограниченном слоте, Omniscol соблюдает это решение. Конфликты и предупреждения остаются видимыми, но блокировка показывает, что положение выбрано намеренно. Поэтому в диагностике проблема, связанная с заблокированным занятием, понижается с блокирующего сигнала (красного) до предупреждения (оранжевого): Omniscol указывает на неё, но больше не требует обязательного исправления. #### Не путайте - **Блокировка положения занятия**: занятие сохраняет свой слот при формировании расписания. - **Блокировка при совместной работе**: механизм, связанный с одновременным редактированием несколькими администраторами. См. [Совместная работа администраторов](#page-core-concepts.collaboration). - **Заблокированное отсутствие кабинета**: особый случай, когда занятие должно остаться без автоматически назначенного кабинета; задаётся через Заблокировать. #### Хорошая практика - Перед повторным формированием расписания проверьте заблокированные занятия: слишком много фиксированных положений сужает возможности оптимизации. - После этапа тестирования разблокируйте то, что не нужно сохранять. - Для свободных групп поставьте занятие вручную, затем заблокируйте его положение. См. [Свободные группы](#page-core-concepts.free-groups). #### См. также - [Автоматическое формирование](#page-timetables.generation) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) - [Свободные группы](#page-core-concepts.free-groups) - [Обнаружение и устранение конфликтов](#page-timetables.conflicts) - [Формирование](#page-glossary.solver) ### 3.22 Обнаружение и устранение конфликтов (при формировании расписания) *Source: `help/ru/timetables/conflicts.md` · id: timetables.conflicts · Audience: admin · Plan: standard · Updated: 2026-09-23* Omniscol обнаруживает конфликты **непрерывно** во время **подготовки** расписания и при каждом **ручном размещении**. Диагностика различает **блокирующие конфликты**, **несоблюдённые ограничения** и **предупреждения**, требующие решения, и обозначает эту степень серьёзности **цветом** — на возможных временных слотах и в списках выбора, когда вы размещаете занятие, и на каждой строке панели диагностики. **Автоматическое формирование расписания** — отдельный расчёт (алгоритм размещает занятия с учётом ограничений или оставляет занятие неразмещённым): его диагностика описана на странице [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Что проверяет диагностика - **Занятость (двойное бронирование)** — преподаватель, класс, группа, ученик, кабинет или ресурс не могут участвовать в двух занятиях, которые пересекаются по времени, если только это не задано в модели явно (совместимые группы, разделения, большие кабинеты). - **Доступность и временные ограничения** — период, объявленный недоступным, или несоблюдённое временное ограничение (преподавателя, класса, группы, кабинета, курса, площадки), уровень которого зависит от приоритета ограничения. Заданное окно дат всегда блокирует. - **Вместимость и рабочие часы** — превышение вместимости кабинета, ресурс, запрошенный в большем количестве экземпляров, чем есть, неподходящий кабинет (вместимость, специализация, площадка) или превышение рабочих часов преподавателя. - **Переполнение сетки** — часы занятий, которые нужно разместить, превышают число открытых временных слотов сетки или приближаются к нему, для преподавателя или для класса в целом. - **Места и поездки** — недостаточное время в пути между двумя площадками для преподавателя или класса, либо две дисциплины, объявленные несовместимыми, в одно и то же время. - **Календарь** — занятие, поставленное на отсутствие (преподавателя или класса), на закрытый день или каникулы, либо на несовместимое событие. - **Модель** — нарушенное совмещение (совмещённые группы без общего занятия), разное число занятий у групп одного разделения или одного совмещения, отсутствующий преподаватель или кабинет, либо неполная настройка (площадка, сетка, параметр, нужный до формирования расписания). #### Конфликты с другим расписанием В модуле Управление расписанием, при реорганизации и при редактировании календарного расписания, диагностика сверяет расписание также с другими опубликованными расписаниями на те же даты и со связанными учётными записями — теми, которые отмечены в меню Синхронизация. Преподаватель, класс или кабинет, уже занятые в одном из них, создают конфликт, даже если в текущем расписании в это время других занятий нет. В описании конфликта занятие из другого расписания после названия своего класса помечено значком [calendar-days] и названием этого расписания. Занятие из связанной учётной записи помечено значком [building-columns] и названием этой учётной записи. Omniscol распознаёт один и тот же класс, кабинет или ресурс в разных расписаниях по внешнему идентификатору, а если его нет — по названию: см. [распознавание одного и того же класса в разных расписаниях](#page-timetables.multiple-active-timetables--same-entity). #### Уровни серьёзности Одна и та же шкала серьёзности — зелёный, жёлтый, оранжевый, красный — окрашивает несколько мест при редактировании. **На возможных временных слотах**, когда вы размещаете занятие (см. [Ручное размещение](#page-timetables.manual-placement)). **И на каждом варианте в списках выбора**: когда вы выбираете для занятия преподавателя, кабинет, ресурс, группу или участников, каждая запись получает значок календаря, окрашенный по её уровню на выбранный временной слот, — зелёный, если объект свободен, красный, если занят, — а подробности видны при наведении. Выбрать невозможно только при **красной** недоступности (занято, период закрыт); слишком маленький или неподходящий по специализации кабинет остаётся доступным для выбора, но с предупреждением. | Цвет | Значение | | --- | --- | | **зелёный** | конфликтов нет — объект свободен (или ресурс не превышает лимит) | | **жёлтый** | небольшое неудобство, не блокирующее (временное ограничение среднего приоритета, полностью замещённое отсутствие, кабинет подходит, но не идеален) | | **оранжевый** | жёсткое ограничение (временное ограничение высокого приоритета, кабинет заполнен до 110 % вместимости, рабочие часы до 110 %, слишком короткое время в пути между площадками, несовместимые дисциплины, закрытый день) | | **красный** | блокирующий конфликт (двойное бронирование, обязательное временное ограничение или заданное окно дат, кабинет заполнен более чем на 110 % вместимости, отсутствие без замещения, нарушенное совмещение) | **На панели диагностики.** Каждая перечисленная проблема имеет уровень, который используется в фильтре. Панель объединяет оранжевый и жёлтый в один уровень «важное» и добавляет уровень «совет» для неблокирующей информации: | Уровень | Смысл | Соответствующие цвета временных слотов | | --- | --- | --- | | **красный** | Блокирующий конфликт | красный | | **жёлтый** | Несоблюдённое ограничение / Предупреждение | оранжевый + жёлтый | | **синий** | Совет / Близко к пределу | нагрузка на сетку, разделения | Когда включён параметр Блокировка конфликтующих вариантов (жёсткие ограничения), Omniscol не допускает варианты, которые создали бы жёсткое ограничение; в противном случае оповещение остаётся на виду, чтобы администратор принял решение. ##### Переполнение и нагрузка на сетку Omniscol постоянно сравнивает **часы занятий, которые нужно разместить**, с **числом открытых временных слотов** сетки — для каждого преподавателя (по классам и по площадкам) и для каждого класса в целом. В сообщении указаны оба значения, например «18 ч / 16 ч». Три ступени, в зависимости от заполнения: | Ступень | Заполнение | Как читать | | --- | --- | --- | | **синий** — нагрузка | сетка заполнена на 90–100 % | пределы скоро будут достигнуты; размещать уже непросто | | **оранжевый** — небольшое переполнение | 100–110 % (часов больше, чем временных слотов, до 110 %) | допустимое расписание, *вероятно*, невозможно | | **красный** — сильное переполнение | свыше 110 % | допустимое расписание *почти наверняка* невозможно | Этот расчёт выполняется, только если настроена хотя бы одна площадка, и ничего не сообщает, пока заполнение сетки ниже 90 %. Он сопоставляет требуемые часы с доступными временными слотами — не путайте его с **превышением рабочих часов** преподавателя (проведённые часы против часов по договору): оно окрашивается теми же цветами, но остаётся отдельной проверкой. ##### Все проверки | Проверка | Семейство фильтра | Уровень | | --- | --- | --- | | Преподаватель, класс или группа уже заняты | Конфликты | красный | | Кабинет уже занят | Конфликты | красный | | Нарушенное совмещение (совмещённые группы без общего занятия) | Конфликты | красный (оранжевый, если различается только кабинет или ресурс) | | Несоблюдённое временное ограничение (преподаватель, класс, группа, кабинет, курс, площадка) | Временные ограничения | обязательное → красный, высокий → оранжевый, средний → жёлтый (окно дат → всегда красный) | | Превышение вместимости кабинета | Вместимость | оранжевый до 110 % вместимости, красный выше | | Ресурсов больше, чем есть | Вместимость | оранжевый | | Неподходящий кабинет (вместимость, специализация, площадка) | Вместимость | жёлтый — можно разрешить принудительно | | Превышены рабочие часы преподавателя | Вместимость | оранжевый до 110 %, красный выше | | Переполнение / нагрузка на сетку | Переполнение сетки | синий → оранжевый → красный (см. выше) | | Недостаточное время в пути между площадками (преподаватель, класс) | Расстояние | оранжевый | | Несовместимые дисциплины в одно и то же время | Совместимость | оранжевый | | Нет свободного кабинета среди разрешённых | Отсутствует кабинет | жёлтый (красный, если нет ни одного) | | Отсутствует преподаватель (курс без назначенного преподавателя) | Отсутствует преподаватель | жёлтый | | Отсутствует кабинет (занятие размещено без нужного кабинета) | Отсутствует кабинет | жёлтый | | Разное число занятий у групп разделения | Разделения | синий (информационно) | | Разное число занятий у совмещённых групп | Совмещения | красный (блокирующая настройка) | | Преподаватель отсутствует на своём занятии | Отсутствия | без замещения → красный, с замещением → жёлтый, частичное замещение (совместное преподавание) → оранжевый | | Класс отсутствует | Отсутствия | красный | | Занятие в закрытый день / на каникулах | Календарь | оранжевый (иногда принудительно красный) | | Неполная настройка (площадка, сетка, параметр) | — | блокирует до формирования расписания | ##### Переход от оповещения Каждая строка панели **кликабельна**: лупа [magnifying-glass] ведёт прямо к соответствующему занятию, группе или классу — это самый быстрый способ выделить контекст конфликта. Для конфликта **групп** (разделение, совмещение) значок [link] оставляет только связанные группы, и ограничение становится заметнее, когда необработанной диагностики недостаточно. > _Premium_ #### Фильтрация диагностики Кнопка Фильтры диагностики (треугольник-предупреждение в верхней части панели) открывает меню, где можно оставить только оповещения, полезные для текущего анализа. Пока какой-либо фильтр активен, её значок оранжевый. В меню настраивается: - **Уровни** — показать или скрыть красный (блокирующий), жёлтый (важное / требует проверки), синий (совет / близко к пределу). - **Объекты** — классы, преподаватели, кабинеты, ресурсы, группы и типы календарных событий (события, каникулы, отсутствия). - **Уровни классов**, **подразделения**, **площадки** — ограничить выборку. Подразделение выделяет организационную единицу (филиал, факультет, центр); площадка относится к физическому месту. - **Причины** — включение или отключение каждого семейства проверок: временные ограничения, конфликты, вместимость, расстояние, отсутствующий преподаватель, отсутствующий кабинет, совместимость, разделения, совмещения. - **Интервал** (календарное расписание) — ограничить ближайшими неделями или месяцами и скрыть прошедшее. - **Поведение** — параметр Блокировка конфликтующих вариантов (жёсткие ограничения) активно не допускает размещений, которые создали бы жёсткий конфликт. - **Сбросить** — показать всё снова. Фильтр не устраняет конфликт: он лишь скрывает то, что не помогает текущему анализу. #### Устранение конфликта Чаще всего помогают такие исправления: - перенести занятие; - сменить преподавателя, кабинет или ресурс; - скорректировать слишком жёсткое ограничение; - исправить недоступность или отсутствие, внесённые по ошибке; - создать или исправить группы, разделения или совмещения; - добавить подходящий кабинет, вместимость или специализацию; - заблокировать занятие, которое должно остаться на месте, прежде чем заново запускать формирование расписания. Если формирование расписания не находит полного решения, оно может вернуть частичное расписание: неразмещённые занятия остаются на панели стикеров занятий, которые нужно разместить. Исправьте самые важные проблемы диагностики, затем запустите формирование снова или разместите оставшиеся занятия вручную. #### Случаи, требующие решения Некоторые сигналы отражают организационное решение, а не ошибку ввода. Например: - экзамен с основным кабинетом и кабинетом для учеников с дополнительным временем; - заявленная вместимость больше введённого числа мест, когда образовательная организация знает, что часть записанных не придёт; - дополнительный кабинет, не заданный в Omniscol. В таких случаях, если возможно, лучше явно описать ситуацию в модели: несколько кабинетов, адаптированные группы, исправленная вместимость или отдельное событие. Оставленное намеренно оповещение должно быть решением, известным команде, а не постоянным шумом. #### Инструкция 1. Откройте диагностику расписания. 2. При необходимости отфильтруйте по уровню, подразделению, площадке, объекту или типу проблемы. 3. Сначала устраните блокирующие конфликты. 4. Откройте описание проблемы, чтобы увидеть, какие занятия и ресурсы в неё вовлечены. 5. Исправьте занятие, ограничение или модель. 6. Запустите диагностику или формирование расписания заново, чтобы убедиться, что проблема исчезла. #### См. также - [Конфликт](#page-glossary.conflict) - [Диагностика](#page-glossary.diagnostic) - [Подразделение](#page-glossary.campus) - [Автоматическое формирование](#page-timetables.generation) - [Ручное размещение](#page-timetables.manual-placement) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) ### 3.23 Диагностика неудачного формирования расписания *Source: `help/ru/timetables/diagnosing-generation.md` · id: timetables.diagnosing-generation · Audience: admin · Updated: 2026-06-24* Формирование расписания «не удаётся», когда алгоритму не получается **разместить всё**: он возвращает лучшее частичное расписание из найденных, а занятия, которыми ему пришлось **пожертвовать**, остаются на панели стикеров, ожидающих размещения (красный баннер сообщает о блокировке). Почти всегда причина — **избыток ограничений**: слишком много курсов для открытых временных слотов или слишком жёсткие ограничения, которые не стыкуются друг с другом. Выход — **ослабить** всё, что можно ослабить; об этом и говорится на этой странице. Как алгоритм расставляет приоритеты и чем он жертвует, объясняется на странице [Автоматическое формирование](#page-timetables.generation); каталог конфликтов уже составленного расписания см. на странице [Конфликты и диагностика](#page-timetables.conflicts). #### Диагностика — подсказка, а не вердикт Когда занятие не удаётся разместить, Omniscol выделяет **сущность, с которой за время попыток возникло больше всего проблем**: «у этого преподавателя не хватает временных слотов», «этот класс не помещается в свою сетку». **Это эвристика**: названа та сущность, которая чаще всего встречается в блокировках, но не обязательно *единственная* причина. Ограничения **пересекаются**, и ослабление в другом месте может всё разблокировать. Поэтому рассматривайте сообщение как **направление поиска**: настоящее решение часто состоит в том, чтобы **ослабить общий избыток ограничений** (чуть больше временных слотов, менее строгая доступность), а не упорно заниматься только указанной сущностью. #### Самые частые причины ##### 1. Слишком жёсткая доступность Преподаватель отметил так много промежутков как **невозможные**, что не остаётся достаточно временных слотов для его занятий. **Диагностика**: откройте экран доступности соответствующего преподавателя. Посчитайте свободные временные слоты и сравните с его объёмом часов. **Решения**: - смягчить часть промежутков (перевести из чёрного в красный — нежелательно, но не невозможно); - перераспределить курсы (передать часть другому преподавателю); - обсудить с преподавателем, можно ли пересмотреть его доступность. ##### 2. Нет подходящего кабинета Дисциплина требует **специализации**, для которой не создан ни один кабинет, либо все подходящие кабинеты заняты в единственные возможные временные слоты. **Решения**: - создать недостающую специализацию для подходящего кабинета; - ослабить требование специализации; - добавить кабинет. ##### 3. Недостаточная вместимость Численность группы или класса превышает вместимость всех подходящих кабинетов. **Решения**: - назначить кабинет побольше; - назначить [несколько кабинетов](#page-glossary.multi-room) одному курсу (общая вместимость равна сумме); - разбить класс или группу на части. ##### 4. Структурно невозможное совмещение Объёмы часов совмещённых групп различаются, либо у исходных классов несовместимые сетки, либо совмещённый преподаватель не может находиться в двух местах сразу. **Решения**: - согласовать объёмы часов у совмещённых групп; - отменить совмещение и создать по курсу на каждый класс; - проверить, что у площадок совмещённых классов есть общая сетка на нужный временной слот. ##### 5. Слишком много занятий для сетки Когда у класса или преподавателя явно больше часов, чем открытых временных слотов, **предупреждение появляется заранее** (вкладка **Формирование**, счётчики часов и временных слотов). Коварнее другой случай: по отдельности явного переполнения нет, но **накопление** ограничений у преподавателей и классов — и их **пересечения** — в итоге перестаёт укладываться в сетку. **Решения**: - уменьшить введённые объёмы часов; - расширить сетку (например, открыть вторую половину дня в среду); - смягчить часть отметок недоступности, выбирая **промежутки, которых одновременно избегают многие сущности**: их совокупность перегружает сетку. ##### 6. Слишком много несовместимостей Нагромождение ограничений «не X после Y» может создать систему без решения. **Решение**: заменить часть несовместимостей более мягкими **педагогическими весами**. ##### 7. Не хватает кабинетов (узкое место) Очень частый случай: даже если каждый кабинет подходит, их **количество** не покрывает спрос в одно и то же время. Занятия скапливаются в одних и тех же временных слотах, и нехватка кабинетов становится **узким местом**, из-за которого всё вместе не помещается. **Решения**: - добавить кабинеты (или сделать часть кабинетов общими для нескольких классов); - распределить спрос, расширив сетку; - ослабить ограничения, которые сосредоточивают занятия в немногих временных слотах. ##### 8. Несколько площадок: поездки отнимают часы Когда площадок несколько, **время в пути** между ними сокращает временные слоты, которыми реально может воспользоваться преподаватель (или класс): смена площадки отнимает время, которое уже нельзя использовать для занятия. Фактическая доступность сужается, и задача усложняется. **Решения**: - собрать занятия преподавателя на одной площадке в течение дня; - проверить указанное время в пути между площадками; - ограничить поездки туда и обратно между площадками в течение одного дня. #### Контрольный список перед повторным запуском формирования - У всех классов назначена площадка? - У всех классов есть дисциплины и преподаватели? - У всех групп, использованных в курсах, указана расчётная численность или вместимость, с которой можно работать? - Доступность всех преподавателей подтверждена? - Нет критических (красных) оповещений на вкладке **Формирование**? #### Встроенные средства диагностики - **Вкладка «Формирование»** — *заранее*: статистика (курсы и часы по преподавателям, классам и площадкам) и предупреждения (часы и временные слоты, критические оповещения, которые нужно исправить до запуска). - **Неразмещённые занятия** (стикеры справа) — *после неудачи*: результат неполного формирования. Кнопка размещения (со значком канцелярской кнопки) на каждом из них показывает цветными временными слотами, почему ни одно место не подходит. - **Обнаружение забытых групп**: группы, которые определены, но не назначены ни одному курсу. #### Инструкция — Диагностика неудачного формирования расписания 1. **Когда формирование не удаётся**, Omniscol показывает красный баннер, оставляет на экране частичное расписание и помещает занятия, которые не удалось разместить, на **панель стикеров** справа. 2. **Прочитайте баннер**: он даёт **направление** (эвристика, см. выше), а не вердикт. 3. **Начните с неразмещённых занятий, а не с «конфликтов».** Формирование никогда не создаёт конфликтов: оно просто оставляет в стороне то, что не помещается. Возьмите занятие на панели стикеров и нажмите его кнопку размещения (значок канцелярской кнопки, Разместить в расписании). 4. **Прочитайте цветные временные слоты.** Omniscol показывает все возможные временные слоты; для занятия, которое невозможно разместить, все они заблокированы. Выясните **почему**, проверяя три обычные причины по порядку: занят или недоступен **преподаватель**, занят **класс** (или группа), либо нет **свободного подходящего кабинета**. Причина показывается при наведении на временной слот. 5. **Ослабьте ограничение, которое блокирует размещение**: в зависимости от случая — смягчите доступность, добавьте или освободите кабинет, согласуйте совмещение, расширьте сетку (см. причины выше) — и запустите формирование снова. 6. **Перед повторным запуском** пройдитесь по контрольному списку выше (площадки назначены, дисциплины и преподаватели на месте, численность указана, доступность подтверждена, нет критических оповещений на вкладке **Формирование**). #### См. также - [Автоматическое формирование](#page-timetables.generation) - [Конфликты и диагностика](#page-timetables.conflicts) - [Диагностика](#page-glossary.diagnostic) - [Конфликт](#page-glossary.conflict) - [Особые случаи и расширенные настройки](#page-faq.edge-cases) ### 3.24 Визуализировать, копировать, преобразовать расписание *Source: `help/ru/timetables/visualize-duplicate.md` · id: timetables.visualize-duplicate · Audience: admin · Updated: 2026-06-25* В школе часто бывает **несколько расписаний** на разных стадиях: расписание, опубликованное на текущий учебный год, черновик на следующий год, тестовый сценарий для проверки реорганизации. На этой странице описано, как работать с такими версиями без путаницы и для чего нужны экраны **Визуализировать** и **Преобразовать**, когда расписание уже сформировано. #### Список расписаний Модуль **Управление расписанием** открывается списком расписаний аккаунта: опубликованных и черновиков. Для каждого расписания вы видите: - его **название** (`Учебный год 2026-2027`, `Черновик на 2027 год`, `Сценарий объединения 5-х и 6-х классов`), - его **статус** (опубликовано или не опубликовано), - **диапазон недель**, на которых оно опубликовано (если он задан), - **краткую статистику** (число классов, число курсов, число преподавателей). Среди доступных действий: открыть, скопировать или удалить расписание. Удаление отключено для опубликованного расписания. #### Визуализация сформированного расписания Кнопка Визуализировать открывает расписание в режиме **«только чтение»**: вы видите итоговое расписание, но не можете его изменить. Этот экран лучше всего подходит, чтобы **перечитать** расписание перед публикацией, **проверить** неделю или цепочку занятий, **показать** расписание, не открывая доступ к функциям редактирования, **экспортировать** его или **поделиться** им. ##### Просмотр без риска Экран использует привычный механизм отображения расписаний, но в **защищённом** режиме: занятия нельзя переносить, изменения не сохраняются, случайных исправлений не будет. Здесь есть фильтры отображения, выбор дней, разные режимы отображения (сетка, список, таблица, планирование, день, месяц, сопоставление — подробно см. [Отображение расписаний](#page-schedules.schedule-display)) и быстрое закрытие нескольких календарей, открытых рядом друг с другом. ##### Чередование недель и варианты Особенно это удобно, когда в расписании используется **чередование недель**: вы открываете вид **Все недели**, а затем по очереди просматриваете **варианты** на отдельных вкладках (A/B, 1/2 и т. д.). Часто это самый простой способ убедиться, что повторяющееся расписание согласовано во всех вариантах, без лишних инструментов редактирования. ##### Поделиться в режиме только чтения С этого экрана вы открываете функцию **общего доступа**: полное теоретическое расписание передаётся третьей стороне (внешнему партнёру, руководству, руководителю площадки) по веб-ссылке в режиме только чтения, без доступа к аккаунту Omniscol. Для расписания типа «календарь» доступна также ссылка **iCal**. Подробности — на странице [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link). ##### Экспорт (PDF, Excel, печать) Экран **Визуализировать** — естественное место, чтобы получить файл с отображаемым расписанием: - Экспортировать данные в формате PDF — создать **PDF**, - Экспортировать данные в формате Excel — выполнить экспорт в **Excel / XLSX**, - Печать — **печать**. Для расписаний классов и преподавателей это, как правило, самый прямой способ получить аккуратный документ для передачи. #### Быстрая реорганизация готового расписания Кнопка Преобразовать открывает то же расписание в режиме **быстрого редактирования**. Цель не в том, чтобы заново строить всё расписание, а в том, чтобы быстро исправить отдельные частные случаи в уже готовом расписании. Типичные случаи: - перенести уже сформированное занятие, - сменить кабинет, слот или разовое назначение, - добавить отдельное занятие, - исправить несколько оставшихся конфликтов, не проходя заново всю цепочку **распределение часов → формирование расписания**. На этом экране есть сетка, фильтры, панель свободных слотов, кнопка Добавить и кнопка Сохранить, чтобы сохранить изменения. Если изменение становится **структурным** (классы, группы, дисциплины, объёмы часов, общие ограничения), лучше вернуться к этапам построения расписания или скопировать расписание и работать с черновиком. #### Копирование расписания Три типичных случая: - **Подготовить следующий учебный год** на основе опубликованного расписания — см. [Подготовка к следующему учебному году](#page-timetables.next-school-year). - **Создать тестовый сценарий** на основе опубликованного расписания, чтобы без риска проверить значительное изменение (объединение классов, реорганизацию площадок, добавление нового направления подготовки). - **Начать со старого расписания, сохранённого в аккаунте**, — взять структуру одного из прошлых лет за основу нового. Действие Копировать открывает диалоговое окно. Созданная копия всегда является **неопубликованным черновиком**: её занятия попадают в другие модули только после того, как вы опубликуете её явно. В диалоговом окне показано дерево флажков, **по умолчанию все отмечены**: если оставить всё отмеченным, копия будет идентичной; если снять флажок, соответствующий элемент в копию не попадёт. ##### Выбор того, что переносится Дерево повторяет структуру расписания; снимите флажок с ветки, чтобы построить её заново: - **Площадки** — вместе с их кабинетами и ресурсами. Если снять флажок с площадок, исчезнут также кабинеты и ресурсы, указанные в занятиях, **и размещение занятий**: копия начнёт с сетки, которую нужно заполнить заново. - **Преподаватели** — список преподавателей расписания. Если снять флажок со списка, то одновременно исчезнут назначения «преподаватель — класс — дисциплина» и преподаватели в занятиях. - **Классы** — вместе с их группами, временными ограничениями, несовместимостями и распределением часов. Каждая вложенная ветка отключается отдельно: группы, временные ограничения класса, несовместимости или подробности занятий (группы, кабинеты, ресурсы, форма проведения, комментарий, размещение…). - **Размещение занятий** — если снять только этот флажок, копия сохранит всю структуру, но **сетка будет пустой**: это правильный способ скопировать подготовку, чтобы заново запустить формирование расписания с нуля. Зависимости применяются автоматически: нельзя, например, оставить кабинет у занятия и при этом убрать все площадки. И независимо от того, какой уровень подробности вы сняли, Omniscol убирает ссылки, оставшиеся без объекта, — например, класс, который указывал на удалённую площадку. ##### Изменение типа расписания > _Premium_ В том же диалоговом окне можно **конвертировать** копию в тип, отличный от исходного. Селектор предлагает только два **других** типа. При конвертации занятия переносятся в новое представление. - **В календарь** (из недельного или цикличного) — вы указываете **период** (дату начала и дату окончания). Каждое повторяющееся занятие **разворачивается в датированное занятие на каждый соответствующий рабочий день** периода; праздничные дни, дни закрытия и отсутствия пропускаются. Объём часов каждой дисциплины подстраивается под число недель периода, а чередование недель разрешается для каждой даты по нужному варианту (A/B, A/B/C…). - **В цикл** — вы указываете **длину цикла** в рабочих днях; каждая позиция становится номером дня в цикле. - **В недельное** (из цикличного или календарного) — каждое занятие возвращается на свой **день недели**. Конвертация в недельное расписание или в цикл намеренно упрощает данные: несколько занятий, приходившихся на один день недели, объединяются в одном слоте, а датированная доступность календаря не переносится. Конвертируйте в календарь только тогда, когда вам действительно нужны явные даты. > _Premium_ ##### Сдвиг дат (календарное расписание) Для расписания типа **календарь** при копировании можно **пересчитать все занятия** на новую дату начала — это удобно, чтобы повторить ту же организацию на следующий год. Вы отмечаете параметр сдвига, указываете новую дату начала, и Omniscol сдвигает период, а затем выравнивает каждое занятие. Принцип такой: Omniscol **сохраняет последовательность учебных дней**. N-й учебный день исходного периода становится N-м учебным днём нового периода — выравнивание идёт по рабочим дням, а не по необработанной календарной дате. Поэтому занятие может **сменить день недели** по двум причинам. Во-первых, новая дата начала не обязательно приходится на тот же день недели, что и прежняя: если исходный период начинается в понедельник, а новый — в среду, всё сдвигается на два дня. Во-вторых — и это самый частый случай — праздничные дни и дни закрытия в двух периодах не совпадают. Занятия, которые выходят за пределы нового периода, **становятся неразмещёнными**: занятия и все их подробности сохраняются, теряется только размещение. #### Реорганизация школы в Omniscol Для значительной реорганизации (переход от традиционных классов к работе по группам, объединение параллелей, открытие новой площадки) работайте в отдельном **черновике расписания**: 1. Скопируйте опубликованное расписание под названием `Сценарий реорганизации 2027-2028`. 2. Измените структуру (классы, группы, площадки) в черновике. 3. Запустите диагностику и формирование расписания, чтобы оценить осуществимость. 4. Повторяйте, не затрагивая рабочий аккаунт. 5. Когда сценарий подтверждён, можно переходить к публикации. Преимущество: пока сценарий остаётся черновиком, конечные пользователи (ученик, преподаватель) ничего не видят. Доступ к черновику есть только у администраторов. #### Удаление ненужного черновика Неопубликованное расписание можно удалить из списка. Чтобы сохранить копию перед удалением, сначала откройте расписание и экспортируйте его в JSON с помощью [download]. Подробности — на странице [Автоматическое формирование](#page-timetables.generation). Опубликованное расписание не следует удалять напрямую: если его действительно нужно вывести из работы, сначала снимите его с публикации в сетке публикации. #### Инструкция — Создать тестовый сценарий на основе опубликованного расписания 1. **Чтобы изучить реорганизацию** (объединение классов, новая площадка, переход на группы), не затрагивая рабочий аккаунт, работайте в **черновике сценария**, скопированном из опубликованного расписания. Пока он остаётся черновиком, пользователи ничего не видят. 2. **Откройте модуль Управление расписанием**: в списке показаны расписания аккаунта со статусом «опубликовано / не опубликовано», диапазоном недель и краткой статистикой (классы, курсы, преподаватели). 3. **Нажмите [copy] Копировать** у опубликованного расписания. В диалоговом окне отметьте, что переносится: **площадки** (кабинеты, ресурсы), **преподаватели**, **классы** (группы, временные ограничения), **курсы** и их подробности. Для сценария часто оставляют структуру и курсы, снимая флажок с назначений преподавателей, которые предстоит сделать заново. 4. **Дайте понятное название**: `1-е полугодие 26-27`, `Триместр 3 2027`, `Тест новой площадки Москва`, `Реорганизация групп по выбору`. Чем яснее название, тем меньше риск запутаться через три месяца. 5. **Измените структуру в черновике**: создайте или объедините классы, добавьте площадку, реорганизуйте группы. **Запустите формирование расписания**, чтобы оценить осуществимость. Повторяйте спокойно — опубликованное расписание это никак не затронет. 6. **Если сценарий подтверждён**, переходите к публикации (см. [Публикация](#page-timetables.publication)). Если нет, оставьте его черновиком или экспортируйте в JSON перед удалением. #### См. также - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Отображение расписаний](#page-schedules.schedule-display) - [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) - [Подготовка к следующему учебному году](#page-timetables.next-school-year) - [Публикация расписания](#page-timetables.publication) ### 3.25 Подготовка к следующему учебному году *Source: `help/ru/timetables/next-school-year.md` · id: timetables.next-school-year · Audience: admin · Plan: standard · Updated: 2026-06-25* Составлять расписание на следующий учебный год можно начинать за шесть–девять месяцев до его начала, параллельно с текущей работой. Принцип такой: скопируйте опубликованное расписание, чтобы получить черновик, и работайте с этим черновиком, не изменяя опубликованное расписание. #### Три элемента для переноса Из текущего учебного года в следующий переносятся три категории данных: 1. **Структура** — площадки и кабинеты, классы, группы, разделения, совмещения, группы групп. Обычно переносится на 80–90 % из года в год, с небольшими поправками. 2. **Занятия** — список курсов, которые нужно запланировать (дисциплина, класс, преподаватель, продолжительность, число экземпляров в неделю). Переносится на 70–80 %, с учётом изменений в программе. 3. **Назначения преподаватель — класс — дисциплина** — кто что преподаёт. Самая изменчивая часть (уходы, приходы, изменения нагрузки). #### Запуск копирования В модуле Управление расписанием используйте действие Копировать для расписания, которое послужит основой. В диалоге по умолчанию отмечено всё; снимите отметку с того, что предпочитаете создать заново: - **Площадки** — вместе с их кабинетами и ресурсами. - **Преподаватели** — назначение преподавателей в расписание; их доступность переносится вместе с ними. В зависимости от вашей политики, для повторяющегося расписания можно запросить у преподавателей доступность на новый год заново, вместо того чтобы оставлять прежнюю. - **Классы** — вместе с их курсами, группами, совмещениями, временными ограничениями и несовместимостями. - **Занятия** (разбивка часов) — с настройкой того, что сохранить, а что нет: назначения преподавателей на занятия, группы, кабинеты, ресурсы, позиции. Эти данные часто нужно пересматривать, ведь преподаватели и ученики изменятся. Созданный черновик не опубликован: он не затрагивает расписание, опубликованное на текущий учебный год. Для недельных и цикличных расписаний публикация на недели следующего учебного года выполняется позже, в сетке публикации. При копировании можно также **сдвинуть даты** занятий (для календарного расписания) или **изменить тип расписания**: эти две возможности и их последствия — в частности, перестроение занятий и сведение — подробно описаны на странице [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate). #### Работа с черновиком Подготовленное расписание появляется в списке как черновик. Переименуйте его понятным названием, например `Семестр 1 27-28`. Вы можете: - открыть его, чтобы изменить классы, добавить новых преподавателей и убрать ушедших, - запросить у действующих преподавателей их доступность на новый год (массовая рассылка из модуля Администрирование), - запустить автоматическое формирование расписания, чтобы проверить осуществимость, - спокойно дорабатывать расписание в течение нескольких месяцев. #### Публикация к началу года Когда черновик готов и наступает новый учебный год, вы **публикуете** его на нужные недели. См. [Публикация](#page-timetables.publication). Черновик становится опубликованным расписанием, а прежнее расписание остаётся доступным для просмотра как архив. #### Инструкция — Подготовка к началу года N+1 1. **Начните работу над N+1 параллельно с текущей работой**: Omniscol изолирует черновик от текущего расписания. Вы можете спокойно дорабатывать его месяцами, ничего не нарушая. 2. **Предварительное условие**: создайте учебный год N+1 в разделе [Администрирование → Учебный год](#page-admin.school-year) с его датами и каникулами. Он понадобится в момент публикации на недели этого года. 3. **В модуле Управление расписанием** используйте действие Копировать для базового расписания. По умолчанию отмечено всё; снимите отметку с того, что будет создано заново: - **Площадки**, кабинеты и ресурсы. - **Преподаватели**, назначенные в расписание (их доступность переносится вместе с ними) — часто нужно пересмотреть или даже запросить заново на новый год. - **Классы**, группы и совмещения — переносятся на 80–90 %. - **Занятия** и их детали (назначения, кабинеты, позиции…) — нужно пересмотреть, ведь преподаватели и ученики изменятся. 4. **Черновик создан**. Дайте ему чёткое название, откройте его, затем скорректируйте классы (приходы, уходы, слияния), добавьте новых преподавателей и уберите ушедших. 5. **Запросите доступность** у действующих преподавателей массовой рассылкой из модуля Администрирование. **Запустите автоматическое формирование расписания**, чтобы как можно раньше проверить осуществимость, и дорабатывайте ограничения, объёмы часов, состав преподавателей. 6. **Когда всё готово к началу года**, **опубликуйте** черновик на нужные недели (см. [Публикация](#page-timetables.publication)). Черновик становится опубликованным расписанием на N+1, а прежнее расписание N остаётся доступным для просмотра как архив. ⚠ Не забудьте нажать **стрелку вправо** на шкале времени или сменить год в переключателе, иначе вы останетесь в году N (см. [Шкала времени и навигация по периодам](#page-core-concepts.timeline-navigation)). #### См. также - [Учебный год и каникулы](#page-admin.school-year) - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Публикация расписания](#page-timetables.publication) - [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate) --- ## 4. Сводная панель ### 4.1 Обзор модуля «Сводная панель» *Source: `help/ru/dashboard/overview.md` · id: dashboard.overview · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-25* Модуль **Сводная панель** (значок [gauge-high] в меню слева) собирает статистику, рассчитанную по действующему расписанию (занятия, которые действительно размещены и опубликованы, с учётом [отсутствий](#page-glossary.absence) и [замещений](#page-glossary.substitution)). Это инструмент **отчётности** и **управления**: сколько часов провёл каждый преподаватель, насколько загружены кабинеты, какой объём часов приходится на дисциплину в каждом классе, сколько дней присутствия у каждого ученика. #### Доступные показатели Шесть направлений анализа, доступных на вкладках модуля: - Преподаватели — преподаваемые дисциплины, число классов, учтённые часы, сверхурочные часы, отменённые часы. - Кабинеты — занятые часы, дни работы, часы в день, принятые ученики. - Ресурсы — часы использования, дни использования, количество в день. - Дисциплины — часы занятий, дни, занятия, разбивка по классам. - Классы — общее число часов (с долей по группам), дни, разбивка по дисциплинам и по преподавателям. - Ученики — занятия, часы, дни присутствия, разбивка по дисциплинам. #### Период анализа Данные можно отфильтровать по **неделе**, **месяцу**, **учебному году** или **произвольному диапазону дат**. Шкала времени в верхней части экрана позволяет перемещаться по периодам. #### Экспорт Кнопка Печать открывает таблицу, которую можно скопировать, распечатать или экспортировать в CSV. Чтобы передать эти цифры, см. [Ссылка общего доступа](#page-glossary.share-link). Ссылка iCal здесь не имеет смысла: модуль Сводная панель содержит только статистику, а не занятия с конкретными датами. #### Общий доступ Кнопка Общий доступ создаёт публичную ссылку только для чтения на статистику за выбранный период. Она удобна для внешних аудиторов, руководителей учебной части без учётной записи в Omniscol и других получателей. #### См. также - [Сводная панель](#page-glossary.dashboard) - [Статус](#page-glossary.lesson-status) - [Просмотр и фильтры](#page-schedules.consult-and-filter) - [Управление расписанием](#page-timetables.overview) ### 4.2 Работа с таблицами и графиками *Source: `help/ru/dashboard/tools-and-filters.md` · id: dashboard.tools-and-filters · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Вкладки модуля «**Сводная панель**» сочетают таблицу и графики. Таблица нужна, чтобы проверять детали; графики помогают быстро увидеть распределение или крайние значения. #### Поиск и графики Поиск отбирает строки таблицы. Графики пересчитываются по видимым строкам: если вы ищете дисциплину, площадку или преподавателя, графики показывают только эту выборку. Поиск не зависит от регистра, диакритических знаков и лишних пробелов. Несколько слов в одном запросе интерпретируются как условия, которые должны выполняться одновременно. Запятая позволяет искать сразу несколько вариантов. Примеры: - `алгебра иванов` показывает строки, содержащие и `алгебра`, и `иванов`. - `актовый, лаборатория` показывает строки, соответствующие одному из двух терминов. - `площадка север >50` в списке кабинетов позволяет отобрать кабинеты северной площадки, вместимость которых превышает 50 мест. #### Сортировка столбцов Заголовки столбцов с сортировкой позволяют изменить порядок строк в таблице: по алфавиту для названий, в числовом порядке для счётчиков, по времени для продолжительности. Чтобы изменить направление сортировки, нажмите на тот же заголовок ещё раз. Сортировка полезна перед экспортом: например, можно поднять наверх преподавателей с наибольшим числом добавленных часов, самые загруженные кабинеты или классы с наибольшим объёмом часов. #### Копирование графика Чтобы использовать график в документе, письме или презентации: 1. при необходимости отфильтруйте таблицу; 2. убедитесь, что график показывает нужную выборку; 3. щёлкните по графику правой кнопкой мыши; 4. выберите в браузере пункт **Копировать изображение**. Скопированный график соответствует тому, что показано на экране. #### Экспорт или общий доступ Кнопка Печать открывает варианты копирования, печати или экспорта для отображаемой таблицы. В зависимости от вкладки экспорт можно использовать, чтобы подготовить файл Excel для бухгалтерии, передать отчёт заместителю директора по учебной работе или сохранить данные для аудита. Кнопка Общий доступ создаёт ссылку общего доступа только для чтения. Получатель просматривает статистику за период, но не может изменять расписание. #### См. также - [Поиск и фильтры](#page-core-concepts.search-and-filter) - [Статистика преподавателей](#page-dashboard.teachers) - [Статистика кабинетов](#page-dashboard.classrooms) ### 4.3 Статистика преподавателей *Source: `help/ru/dashboard/teachers.md` · id: dashboard.teachers · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Вкладка Преподаватели собирает часы, фактически учтённые за выбранный период. Она нужна для контроля нагрузки, подготовки расчёта заработной платы, бухгалтерских экспортов и проверки замещений. #### Основные показатели - **Учтённые часы**: объём, принимаемый для административного учёта и, в зависимости от организации учреждения, для расчёта заработной платы. - **Дополнительные часы** (Дополнительные часы): часы, возникшие из замещения в модуле «Управление отсутствиями» или из ручного добавления занятия с конкретной датой в повторяющемся расписании. - **Отменённые часы** (Отмененные часы): часы, снятые из-за отсутствия или из-за ручного удаления занятия с конкретной датой в повторяющемся расписании. - **Классы и дисциплины**: классы и дисциплины, которые преподаватель ведёт в течение периода. - **Типы занятий**: разбивка объёмов по типам занятий, когда курсам назначен тип. Дополнительные и отменённые часы позволяют отличить запланированную нагрузку от фактически выполненной за период. #### Детализация по типам занятий Детализация по типам занятий полезна, когда учёт зависит от формата обучения: лекция, семинар, практикум, консультация, мастерская или любая другая типология, настроенная учреждением. Такая детализация помогает проверить оплачиваемые объёмы, внутренние правила оценки часов и потребность в обосновании перед бухгалтерией или аудиторской организацией. #### Экспорт, общий доступ и бухгалтерия Таблицу можно скопировать, распечатать или экспортировать для обработки в Excel или в бухгалтерской программе. Ссылка общего доступа только для чтения позволяет передать отчёт, не давая права редактировать расписание. Для постоянного подключения к бухгалтерской программе ETL-поток или специальная интеграция может забирать эту статистику в формате, которого требует учреждение. > _Premium_ В аккаунте **Premium** экспорт этой таблицы добавляет два столбца, получаемых из детального учёта занятий: **Фактическая длительность** (время, которое занятие действительно длилось, в отличие от учтённой длительности) и **Реализован** (объём занятий, отмеченных статусом «Реализован»). Это удобно для сверки запланированной, учтённой и фактически выполненной нагрузки. В эти цифры, наоборот, не входят занятия в статусе «**Черновик**» или «**Отменен**». См. [Статус](#page-glossary.lesson-status). #### Контрольные точки Прежде чем использовать эти цифры для расчёта заработной платы, убедитесь, что период выбран верно, что отсутствия одобрены, что замещения действительно внесены и что добавленные или снятые занятия с конкретной датой отражают действительное положение дел. #### См. также - [Контроль и экспорт отсутствий](#page-absences.statistics) - [Статус](#page-glossary.lesson-status) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) - [Обзор модуля «Сводная панель»](#page-dashboard.overview) ### 4.4 Статистика кабинетов *Source: `help/ru/dashboard/classrooms.md` · id: dashboard.classrooms · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Вкладка Кабинеты анализирует, как на самом деле используются кабинеты за отображаемый период. Она помогает находить кабинеты, которые используются слабо или, наоборот, перегружены, а также дисбалансы между площадками и зданиями. #### Отслеживаемые показатели В таблице показаны, среди прочего, число занятий, занятые часы, дни использования, часы в день и число размещаемых учеников. Если данные заполнены, столбцы площадки, здания, специализации и тегов облегчают анализ по зонам или по типам кабинетов. Графики помогают увидеть распределение загруженности, объёмы часов и различия в посещаемости. #### Недогрузка и перегрузка Кабинет, заполненный намного меньше своей вместимости, может указывать на неудачное назначение, неэффективно используемый специализированный кабинет или на возможность перераспределения. Кабинеты, используемые менее чем на 25 % своей вместимости, обычно стоит проверить. И наоборот, кабинет, используемый сверх своей вместимости, сигнализирует об эксплуатационном риске: слишком много учеников, неудачное назначение кабинета или ошибки в данных о вместимости, которые нужно исправить. #### Анализ зданий Вкладка позволяет ответить на такие вопросы: - в каких зданиях сосредоточена основная загруженность; - какие кабинеты остаются малозагруженными; - каких специализированных кабинетов не хватает, а каких слишком много; - какие площадки можно было бы реорганизовать. Для более тонкого анализа, например чтобы сравнить занятые часы с часами работы здания или с возможными часами занятий, учебное заведение может экспортировать таблицу и доработать её во внешнем инструменте либо обратиться к аккаунту из внешнего ИИ-агента, подключённого по [MCP](#page-integrations.mcp), в зависимости от профиля, прав и доступных инструментов. #### Фильтрация кабинетов Поиск принимает операторы сравнения для вместимости (`>50`, `<=100` и т. д.) и термины, относящиеся к площадке, зданию, специализации или тегам. Графики пересчитываются по отфильтрованным кабинетам. #### См. также - [Поиск и фильтры](#page-core-concepts.search-and-filter) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) - [Площадки, кабинеты и ресурсы](#page-timetables.sites-rooms) ### 4.5 Статистика по дисциплинам *Source: `help/ru/dashboard/subjects.md` · id: dashboard.subjects · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Вкладка Дисциплины показывает, как объёмы учебных часов распределяются за отображаемый период: в целом, по классам, по преподавателям и по типам занятий, если тип занятия указан. #### Что можно проверить на этой странице - общий объём часов по каждой дисциплине; - распределение по классам; - распределение по преподавателям; - долю каждого типа занятий, например практических работ, семинаров, лекций или мастер-классов; - форматы проведения занятий, если учебное заведение их использует. #### Педагогический анализ Этот экран помогает убедиться, что фактически запланированные объёмы соответствуют программам обучения, обязательствам по подготовке и ожидаемому распределению между типами преподавания. Он особенно полезен, когда нужно ответить на такие вопросы: сколько часов практических работ запланировано, какой класс получает больше всего часов по дисциплине или какие преподаватели ведут дисциплину в этот период. #### Графики и фильтры Поиск позволяет выделить дисциплину, класс, преподавателя или тип занятий. Графики пересчитываются по видимым строкам, поэтому можно быстро получить нужную выборку, прежде чем скопировать данные или выполнить экспорт. #### См. также - [Статистика по классам](#page-dashboard.classes) - [Статистика преподавателей](#page-dashboard.teachers) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) ### 4.6 Статистика по классам *Source: `help/ru/dashboard/classes.md` · id: dashboard.classes · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Вкладка Классы сводит объёмы часов, которые проходит каждый класс за отображаемый период. Она помогает проверять фактическую учебную нагрузку, распределение по дисциплинам и данные, которые запрашивают при аккредитации или сертификации. #### Отслеживаемые показатели На странице можно, в частности, отслеживать: - общее число часов класса; - расчётное и фактическое число учеников, если заполнены группы; - учебные дни; - распределение по дисциплинам; - распределение по преподавателям; - детализацию по типам занятий; - задействованные группы и подгруппы. #### Аккредитация и сертификация Статистика по классам помогает подтвердить объёмы часов, проведённых в рамках программы обучения. Она может пригодиться для процедур вроде Qualiopi или CTI во Франции, а также AMBA, EQUIS и AACSB на международном уровне, когда учебному заведению нужно обосновать объёмы, форматы и распределение преподавания. #### Качество данных Точность зависит от того, насколько аккуратно в расписании заполнены классы, группы, дисциплины, типы занятий и назначения преподавателей. Если группы заполнены правильно, цифры по объёмам, которые действительно проходят соответствующие ученики, получаются надёжнее. #### См. также - [Статистика по дисциплинам](#page-dashboard.subjects) - [Статистика преподавателей](#page-dashboard.teachers) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) ### 4.7 Статистика по ученикам и ресурсам *Source: `help/ru/dashboard/students-resources.md` · id: dashboard.students-resources · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Вкладки Ученики и Ресурсы дополняют анализ в разделе Сводная панель. Они более узконаправленные, чем представления по преподавателям, кабинетам, дисциплинам или классам, но по-прежнему полезны для проверки оперативных данных. #### Ученики Вкладка Ученики показывает занятия, часы и дни, которые посещает каждый ученик за отображаемый период. Если классы, группы и подгруппы заполнены правильно, статистика точнее отражает объёмы, которые действительно относятся к каждому ученику. Отсутствия учитываются в отдельных столбцах: прежде всего это количество часов, занятий и дней отсутствия. Это представление помогает находить индивидуальные случаи, которые нужно проверить или которым требуется административное сопровождение. #### Ресурсы Вкладка Ресурсы отслеживает использование материальных ресурсов: часы использования, дни использования и количество, задействованное в день. Она нужна прежде всего для того, чтобы убедиться, что общее оборудование действительно используется, и найти периоды или ресурсы, которые востребованы мало. #### Работа с данными Как и на других вкладках, поиск фильтрует видимые строки, графики подстраиваются под отображаемый охват, а сами данные можно скопировать, распечатать, экспортировать или открыть к ним общий доступ только для чтения. #### См. также - [Статистика по классам](#page-dashboard.classes) - [Отсутствия классов и учеников](#page-absences.class-and-student-absences) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) --- ## 5. Ежедневное использование (модуль «Расписание») ### 5.1 Просмотр и фильтрация расписаний *Source: `help/ru/schedules/consult-and-filter.md` · id: schedules.consult-and-filter · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-09-23* Модуль **Расписание** (значок [calendar-days] в меню слева) — экран для ежедневного просмотра. Он показывает опубликованные расписания за выбранный период со всеми нужными фильтрами и видами. #### Доступные фильтры - **Класс**, **преподаватель**, **группа** (с целым классом или без него), - **Кабинет**, **ресурс**, - **Преподаватели по дисциплинам**, **педагогическая команда** (все преподаватели класса), **дисциплина**, - **Тип занятия** (лекция, семинар, практическая работа, экзамен…), если он настроен, - **Ученик** (если ученики внесены и распределены по классам). Когда в течение года опубликовано несколько расписаний, класс, который есть в нескольких из них, образует одну запись фильтра: его расписание собирает занятия из каждого. Omniscol [узнаёт один и тот же класс в разных расписаниях](#page-timetables.multiple-active-timetables--same-entity) по внешнему идентификатору, а если его нет, то по названию. Вы можете **выводить несколько расписаний одно за другим**: удобно, чтобы держать перед глазами класс и конкретного преподавателя или несколько классов одновременно. #### Виды Компонент отображения сочетает два уровня: - **режим отрисовки**: **сетка**, **список** или **таблица** наподобие электронной; - **временная организация**: **неделя**, **день**, **месяц**, **планирование** (и **планирование по часам**) или **параллельный просмотр**. Сетка — стандартный вид календаря. Таблица же служит для того, чтобы показать текущий вид в табличном формате, более близком к электронной таблице; это не базовый вид. См. [Отображение расписаний](#page-schedules.schedule-display). #### Шкала времени и навигация **Шкала времени** вверху показывает: - **каникулы** в виде серых горизонтальных полос, - **выбранный период** (неделю, месяц, иногда учебный год) в виде зелёной зоны с датами поверх неё, - **навигацию**: клавиши «влево» и «вправо», смахивание на смартфоне или кнопки `◀ ▶︎`. Кнопки `◀` и `▶︎` на **концах** шкалы времени позволяют **сменить учебный год**. #### Кэш и производительность Omniscol активно использует кэш браузера. Приложение перезагружает расписания только при смене недели — повторный щелчок по активной неделе **принудительно обновляет данные**. Благодаря этому Omniscol работает даже при соединении 2G (Edge) и продолжает работать при кратковременных обрывах интернета (запросы будут отправлены повторно, когда связь вернётся). #### Режим редактирования Кнопка Реорганизация переключает в режим редактирования: см. [Разовые изменения](#page-schedules.ad-hoc-changes). #### Экспорт и общий доступ - Печать — распечатать текущую выборку (или сохранить её в PDF средствами браузера). - Общий доступ — открыть окно общего доступа: публичная [веб-ссылка](#page-glossary.share-link), подписка [iCal](#page-glossary.ical) или представление JSON (API) в зависимости от ваших прав. #### См. также - [Разовые изменения](#page-schedules.ad-hoc-changes) - [Конфликты и диагностика](#page-timetables.conflicts) - [Отображение расписаний](#page-schedules.schedule-display) - [Статус](#page-glossary.lesson-status) - [Печать и общий доступ](#page-schedules.print-and-export) ### 5.2 Отображение расписаний: сетка, список, таблица, планирование, месяц, параллельный просмотр *Source: `help/ru/schedules/schedule-display.md` · id: schedules.schedule-display · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26* На этой странице описано **общее отображение расписаний** в Omniscol. Оно используется в разделе **Расписание**, на экране **Распределение часов**, когда вы переключаетесь на вид **расписаний**, на экранах **Визуализировать** и **Преобразовать** раздела **Управление расписанием**, а также в целом на других экранах, где календарь расписаний открывается тем же механизмом отображения. Одни и те же занятия можно читать в разных представлениях, не меняя выводимые данные: меняется отображение, а не расписание. #### Как сменить отображение Значки переключения привязаны к **каждому показанному расписанию**. Чтобы они появились, **наведите курсор на заголовок расписания**: в строке заголовка откроются значки переключения вида. Нажмите нужный: - [calendar] для **сетки**, [table-list] для **списка**, [table] для **таблицы** (только для администраторов, на компьютере); - в **планировании по часам** [up-down] **меняет местами дни и столбцы**. В строке заголовка также находятся кнопки общего доступа и закрытия календаря. Поскольку у каждого расписания своё отображение, при нескольких календарях, расположенных друг под другом, один можно читать в виде списка, а другой — в виде сетки. #### Три режима вывода одного расписания Первый уровень переключения — это **вывод** одних и тех же занятий. ##### Сетка **Сетка** (Вид сетки) — стандартный календарный вид: дни в столбцах, слоты или часы в строках, занятия размещены в своих ячейках. Это основной вид для чтения расписания неделя за неделей. Он особенно полезен, чтобы: - сразу заметить окна, наложения и протяжённость дня, - наглядно сравнить класс, преподавателя или кабинет, - изменять или перечитывать расписание в привычной системе отсчёта времени. ##### Список **Список** (Вид списка) выводит занятия одно под другим в хронологическом порядке. Он особенно полезен, чтобы: - быстро просмотреть длинный период на маленьком экране, - найти конкретное занятие с помощью фильтров, - последовательно перечитать время, кабинеты и назначения. ##### Таблица **Таблица** — это **вывод текущего вида в формате электронной таблицы**. Она нужна, чтобы проводить аудит, печатать, копировать их в электронную таблицу или, в зависимости от экрана, сразу запускать экспорт в файл. Это **не** стандартный календарный вид. В зависимости от контекста она может показывать: - сетку «дни × слоты» в более табличном формате, - или одно занятие в строке, когда исходное отображение уже является списком. Она особенно полезна для: - административного контроля, - копирования и вставки в программу для работы с электронными таблицами, - прямого экспорта в **PDF**, **CSV** или **Excel / XLSX**, если экран это предлагает, - проверки строка за строкой. #### Охват по времени: неделя, день, месяц Второй уровень переключения — это **отображаемый период**. - **Неделя**: вид по умолчанию в большинстве случаев. - **День**: та же логика, что и у стандартной сетки, но сжатая до одного дня, чтобы подробнее читать насыщенный день. - **Месяц**: взгляд на длительный период. В календарном режиме отображение принимает форму матричной сетки месяца; в режиме таблицы остаётся табличный вывод того же содержимого. Селектор Выбрать дни для отображения позволяет также скрывать или показывать отдельные дни в соответствующих видах. #### Планирование **Планирование** составляется из меню фильтров: оно размещает рядом несколько объектов или несколько дней в одном виде, чтобы рассматривать их как наборы. Есть два варианта, в зависимости от того, какую ось вы хотите читать: - **Добавить планирование** (значок [table-cells]) помещает **один объект в строке** (класс, преподаватель, кабинет, дисциплина), а часы каждого дня — в столбцы: так удобно сравнивать несколько объектов в один и тот же день. - **Добавить планирование (составление расписания) по часам** (значок [table-columns]) помещает **часы на вертикальную ось** (в масштабе времени), а **столбец отводит на каждый объект и каждый день**: так удобно читать загрузку и последовательность занятий на настоящей часовой шкале. Кнопка [up-down] при необходимости меняет местами дни и столбцы. Планирование нужно, в частности, чтобы: - показать **несколько объектов рядом за один и тот же день**, - показать **несколько дней для одного или нескольких объектов**, - читать загрузку за месяц, - контролировать последовательность занятий, переходы или доступность. Оно дополняет календарную сетку и отвечает на другие вопросы: выбирайте его, когда нужно рассматривать наборы объектов или дней. #### Параллельный просмотр Функция Разделить экран открывает **параллельный просмотр**: от двух до четырёх расписаний рядом, у каждого из которых свои фильтры и свой режим отображения. Он полезен, чтобы: - сравнить два класса или двух преподавателей, - согласовать общее занятие или совместное дежурство, - убедиться, что свободный слот есть одновременно с обеих сторон. #### Что остаётся прежним при смене отображения Переход из одного режима в другой не меняет занятия. Данные остаются теми же, при этом, в зависимости от случая, сохраняются: - те же фильтры по объектам, - тот же выбранный период, - те же видимые конфликты и отсутствия, - те же действия печати, экспорта и общего доступа, в зависимости от прав пользователя. #### Инструкция — Выбор подходящего отображения в зависимости от задачи 1. **Чтобы быстро прочитать расписание**: начните с **сетки**. Это стандартный календарный вид, самый наглядный для учебной недели. 2. **Чтобы просматривать занятия по одному**: переключитесь на **список**. Он удобен на маленьком экране или чтобы найти конкретное занятие. 3. **Чтобы копировать, печатать, экспортировать или проводить аудит как в электронной таблице**: используйте **таблицу**. Это табличный вывод текущего вида, а не базовый вид расписания. 4. **Чтобы приблизить один день**: выберите охват **день**. 5. **Чтобы взглянуть шире — на несколько недель или несколько дат**: переключитесь на **месяц** или откройте **планирование** — в зависимости от вопроса. 6. **Чтобы сопоставить несколько объектов или несколько дней в одном представлении**: добавьте **планирование** (или **планирование по часам** для часовой шкалы). 7. **Чтобы сравнить два отдельных расписания**: используйте **параллельный просмотр**. #### См. также - [Просмотр и фильтры](#page-schedules.consult-and-filter) - [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate) - [Режим визуального отображения расписания](#page-glossary.schedule-view-mode) ### 5.3 Разовые изменения опубликованного расписания *Source: `help/ru/schedules/ad-hoc-changes.md` · id: schedules.ad-hoc-changes · Audience: admin · Plan: standard · Updated: 2026-06-26* Omniscol — это не только генератор расписания перед началом учебного года, но и рабочий инструмент для ежедневных изменений в течение года. #### Включить режим редактирования Нажмите Реорганизация. Все открытые календари переходят в режим реорганизации. Календари, которые вы откроете позже, тоже будут сразу доступны для редактирования. Перейдите к неделе, которую нужно изменить (шкала времени вверху). #### Изменить занятие Нажмите на занятие: появится панель (её можно перемещать или делать полупрозрачной) со всеми изменяемыми атрибутами: - преподаватель или преподаватели, - группа, если она есть, - ресурсы, - кабинет или кабинеты (см. [несколько кабинетов](#page-glossary.multi-room)), - комментарии. #### Изменить несколько занятий сразу В режиме реорганизации **Shift+щелчок** по нескольким занятиям выделяет их вместе (начиная с двух они подсвечиваются). Панель превращается в **общую карточку**: кабинет, преподаватель или преподаватели, ресурсы, комментарий или продолжительность, которые вы в ней задаёте, при сохранении применяются ко **всем выделенным занятиям**. Это удобно, когда нужно разом сменить кабинет для целого блока занятий. См. [Редактирование занятия](#page-timetables.lesson-edit). Вместо того чтобы нажимать на каждое занятие, меню Выделение в карточке **расширяет выделение** одним нажатием: - по **временному окну** — весь **день**, вся **неделя** или весь **месяц** (в зависимости от типа расписания); - по **сходству** — **следующие похожие занятия** (тот же класс, дисциплина, группа и временной слот: повторение курса); - по **разделению** — занятия той же группы в разделении. Каждый пункт показывает, сколько занятий он добавляет, а переключатель ограничивает охват текущим видом планирования или распространяет его на **все** открытые календари. Соседнее меню **дублирования** ([copy]) копирует одно или несколько занятий — в нескольких экземплярах или до выбранной даты в расписании типа «Календарь». Подробно оно описано на странице [Распределить часы и создать занятия](#page-timetables.hour-distribution). #### Открепить или удалить занятие Чтобы **открепить** занятие от сетки, нажмите значок [scissors] на панели или дважды щёлкните по занятию. Занятие переместится в область неразмещённых занятий справа, где его тоже можно изменить. Чтобы **удалить** занятие, откройте его панель и нажмите Удалить: открепление оставляет занятие в области для повторного размещения, а удаление убирает его из расписания. Как и любое изменение, удаление попадает в журнал изменений, где его можно отменить (см. ниже). #### Перенести занятие Откройте занятие и нажмите кнопку размещения (Разместить в расписании, значок булавки): возможные временные слоты отобразятся цветными метками (от зелёного к красному в зависимости от конфликтов). Нажмите на новый временной слот. Чтобы перенести занятие на другую неделю, есть два способа: - **вид «месяц»** — отобразите сразу несколько недель, затем разместите занятие в нужном временном слоте; - **открепить / сменить неделю / разместить заново** — извлеките занятие, смените активную неделю и разместите его снова. #### Отличие от расписаний типа «Календарь» В [календарном](#page-glossary.calendar-mode) расписании изменение **напрямую затрагивает занятие с конкретной датой** (оно и так единственное на эту дату). В [недельном](#page-glossary.weekly-timetable) или [цикличном](#page-glossary.cyclic-timetable) расписании разовое изменение **не** нарушает типовую неделю: оно сохраняется как исключение на нужную дату. Остальные недели продолжают следовать типовой неделе. #### Просмотр и отмена изменений Кнопка Просмотреть список изменений показывает список текущих изменений за период. Любое из них можно отменить по отдельности. В **недельном или цикличном** расписании разовое изменение сохраняется как исключение на свою дату: его можно отменить из этого журнала **в любой момент**. ⚠ В **календарном** расписании, напротив, изменения **окончательно закрепляются при сохранении**: отменяйте их **до сохранения**. Эти изменения относятся к **конкретной дате**, а не к структуре расписания. Структура — классы, группы, **типовая неделя** — меняется при **построении расписания**, а не здесь. Поэтому правка **прошедшей** даты исправляет историю только этой даты: делайте это осознанно. #### Обнаружение конфликтов Обнаружение конфликтов в режиме редактирования работает так же, как в модуле Управление расписанием: как только вы переносите или изменяете занятие, Omniscol в реальном времени проверяет двойные бронирования, превышение вместимости, временные ограничения и отсутствия. В календаре занятие с конфликтом выделяется **двойной цветной рамкой**: красной — при блокирующем конфликте, оранжевой или жёлтой — при помехе, по которой нужно принять решение. Подробности (тип конфликта, задействованные занятия, например нехватка кабинета) показываются во **всплывающей подсказке** при наведении на занятие. Полный перечень типов конфликтов, уровни серьёзности и панель диагностики описаны на странице [Конфликты и диагностика](#page-timetables.conflicts). #### См. также - [Просмотр и фильтрация расписаний](#page-schedules.consult-and-filter) - [Конфликты и диагностика](#page-timetables.conflicts) - [Разовые события](#page-schedules.events) ### 5.4 Разовые события (вне расписания) *Source: `help/ru/schedules/events.md` · id: schedules.events · Plan: premium · Updated: 2026-08-07* > **Premium** > _Premium_ **Разовое событие** — это занятие, которое не входит в регулярную структуру расписания: внеочередное собрание, экскурсия, экзамен на один день, день открытых дверей, педагогический совет. Вместо того чтобы менять регулярную структуру занятий, вы создаёте событие с датой, которое накладывается **поверх** сетки на точно заданный интервал. Создание разовых событий доступно в аккаунтах с тарифом **Премиум**. #### Когда создавать событие, а когда занятие - **Регулярное занятие** повторяется каждую неделю (или раз в две недели) в течение всего года. Оно настраивается в модуле Управление расписанием и участвует в автоматическом формировании расписания. - **Разовое событие** проходит на интервале с конкретной датой, без регулярного повторения. Его настраивают прямо в модуле Расписание. Практическое правило: если вы записали бы это от руки в календаре, а не в недельной сетке, то это событие. #### Создание события: агенда событий Событие не вводится в отдельной форме: его рисуют **прямо на агенде**, как в календаре. На сетке событий **нажмите и протяните**, чтобы отметить интервал внутри одного дня (во время выделения показывается предварительный вид). Когда вы отпускаете кнопку мыши, рядом с выделением открывается карточка, в которой даты и время **уже заполнены**; вам остаётся указать: - **Заголовок** — `Педагогический совет 6 «Б»`, `Экскурсия в Третьяковскую галерею`, `Пробный экзамен по русскому языку`. - **Начало** и **конец** — дата, время начала, время окончания. - **Участники** — классы, группы, преподаватели, ученики или участники, вписанные **произвольным текстом**. - **Место** — кабинет, известный Omniscol, или место, вписанное **произвольным текстом**. - **Ресурсы** — оборудование или ресурс, который нужно забронировать при необходимости. - **Дисциплины** и **метки** — чтобы привязать событие и потом найти его; подробнее ниже. - Ссылка на видеоконференцию — необязательно, чтобы участвовать в событии удалённо. - **Комментарий** — произвольная заметка, которая отображается вместе с событием. - **Цвет** — визуальная подсказка, чтобы отличить событие в сетке. Выделение мышью ограничено **одним днём**. ##### Где находится агенда - **В модуле Расписание.** Включите фильтр **События**: агенду можно изменять (рисование мышью включено) только в режиме **«Реорганизация»**; при обычном просмотре она доступна только для чтения. - **При редактировании расписания типа «Календарь».** Фильтр **События** предлагается только для расписания **типа «Календарь»**; в расписании с недельной сеткой его нет. #### Дисциплины и метки Два поля позволяют привязать событие к чему-то более общему и затем найти его. **Дисциплины.** Событие можно привязать к одной или нескольким дисциплинам: лекция, которая засчитывается по информатике, защита, относящаяся к своему направлению подготовки. Тогда событие появляется в расписании, когда вы фильтруете по этой дисциплине, рядом с занятиями, а его название включает её, так что событие узнаётся с первого взгляда. Дисциплина, указанная в событии, **не расходует ни одного часа**: она не учитывается ни в объёме часов дисциплины, ни в нагрузке преподавателей. Событие остаётся событием; привязка нужна, чтобы показать, к чему оно относится, а не чтобы вести обучение. **Метки.** Вы помечаете события собственными словами — `экскурсия`, `комиссия`, `без подписи` — и можете использовать их повторно в разных событиях: уже использованные метки предлагаются вам, чтобы одно и то же понятие не писалось десятью способами. Метка сама по себе ничего не запускает. Она служит для сортировки и, главное, для того, чтобы решать, что выходит за пределы Omniscol: коннекторы к внешним инструментам умеют фильтровать по этим меткам, например, чтобы отправлять всё, кроме событий с меткой `без подписи`. #### Прямое сохранение параллельно с расписанием Событие сохраняется **сразу и отдельно**, как только вы подтверждаете его карточку: создание, перемещение или удаление события немедленно запускает собственное сохранение (о нём сообщает уведомление). Общая кнопка **Сохранить** в режиме реорганизации и при редактировании расписания вам **не нужна**: события уже сохранены. И наоборот, сохранение реорганизации или размещения занятий в расписании касается **занятий**, а не событий: это параллельная подсистема, которая сохраняется по ходу работы. #### Конфликты с занятиями расписания Событие ссылается на **те же сущности**, что и расписание, — преподавателей, классы, группы, кабинеты, ресурсы, — поэтому Omniscol может обнаруживать пересечения с регулярными занятиями. Пока вы заполняете карточку, каждый участник, а также каждый кабинет и ресурс проверяются на то, что уже размещено на этом интервале: - для **преподавателя**, **класса** или **группы** событие сравнивается с занятиями **и с другими событиями**; - **кабинеты** и **ресурсы** проверяются на уже существующую занятость в это время. Эти проверки формируют подсказки о доступности в списках выбора и отображаются как конфликты в режиме реорганизации. Событие накладывается на сетку: оно **сообщает** о конфликте, но само не освобождает занятия, с которыми пересекается. Разбирайтесь с ними отдельно (перенос, разовое изменение, отсутствие…). #### Участники: все или любой желающий Помимо участников, названных по имени, есть два особых участника, и в отношении конфликтов они ведут себя по-разному: - **Все** — событие касается **всей школы** и является **обязательным**. Оно отображается во всех расписаниях **и вступает в конфликт** с существующими занятиями: выбирайте его для дня открытых дверей или события, которое действительно задействует всё учреждение. - **Любой желающий** — событие открыто для всех, кто захочет, и является **необязательным**. Оно тоже отображается во всех расписаниях, но **не создаёт конфликтов**: так оформляют необязательное предложение, которое ни у кого не должно блокировать сетку. Оба варианта отображаются везде; конфликты вызывает только **Все**, потому что присутствие становится обязательным. #### Отображение в расписаниях После создания событие **проецируется в каждое соответствующее расписание**: оно появляется в расписании каждого из участвующих преподавателей, классов, групп и учеников, а также каждого выбранного кабинета и ресурса (и везде — для **Все** и **Любой желающий**). Это одно и то же событие, увиденное с разных сторон, поэтому его нормально находить сразу в расписании класса, преподавателя и кабинета; это не дубликаты. У события нет поля «тип»: от регулярного занятия его отличают заголовок, даты, участники и, возможно, цвет. #### Перемещение, подбор времени, освобождение часов На агенде событий, в отличие от занятий, событие **перемещается и изменяет размер перетаскиванием**. **Отображаемый временной диапазон** агенды определяется параметром **часы работы** учреждения: он тянется от самого раннего открытия до самого позднего закрытия из настроенных, а если ничего не задано, то используется интервал 7:00 – 20:00. В карточке есть также кнопка с **булавкой**: она переключает на размещение по свободным слотам, и щелчок по выбранному слоту переносит его дату и время в карточку — это альтернатива рисованию мышью, чтобы точно разместить событие. Наконец, время начала и окончания **совершенно свободно**: оно не обязано совпадать со слотами сетки. Событие может начаться в 9:50 и закончиться в 11:34, даже если регулярные занятия привязаны к целым слотам: в этом и состоит смысл события, накладываемого поверх сетки. #### Изменение или отмена Событие изменяют так же, как создавали: переносят во времени, меняют кабинет, добавляют или убирают участников. #### Инструкция — Создание разового события 1. **Разовое событие** накладывается **поверх** сетки на интервал с точной датой: педагогический совет, экскурсия, пробный экзамен, день открытых дверей, собрание. Регулярное повторение моделировать не нужно. 2. **Нажмите и протяните на агенде событий**, чтобы отметить интервал (в режиме реорганизации). Откроется карточка с заполненными датами; укажите заголовок (`Педагогический совет 6 «Б»`, `Экскурсия в Третьяковскую галерею`). 3. **Выберите участников**: классы, группы, соответствующих преподавателей, учеников, если они доступны, или произвольных участников. 4. **Добавьте место, ресурсы, ссылку на видеоконференцию и комментарий**, если нужно. Эти поля описывают событие; они не изменяют регулярные занятия. 5. **Сохраните.** Событие появится в соответствующих расписаниях. Если Omniscol сообщит о конфликте с регулярными занятиями, исправьте соответствующие занятия в режиме «Реорганизация». #### См. также - [Занятия вне сетки](#page-timetables.off-grid-lessons) - [Разовые изменения](#page-schedules.ad-hoc-changes) - [Просмотр и фильтрация расписаний](#page-schedules.consult-and-filter) - [FAQ — особые случаи](#page-faq.edge-cases) ### 5.5 Печать и общий доступ *Source: `help/ru/schedules/print-and-export.md` · id: schedules.print-and-export · Plan: standard · Updated: 2026-06-25* Все расписания, доступные в модуле «Расписание», можно **распечатать** или **открыть для общего доступа** в нескольких форматах. Выбор зависит от получателя: бумага для использования без подключения к сети, PDF для рассылки по электронной почте, iCal для электронного календаря, веб-ссылка для прямого просмотра. Для числового анализа объёмов в электронной таблице **Сводная панель** суммирует часы и экспортирует их в CSV / XLSX. #### Печать Кнопка Печать (в верхней части представления) открывает предварительный просмотр печати с вёрсткой, оптимизированной для бумаги: - занятия выводятся **без заливки**: Omniscol печатает только их **цветной контур** на белом фоне, чтобы экономить краску и при этом сохранить цветовые ориентиры, - поля, ориентация и размер подобраны под формат A4 / Letter, - в заголовке указаны название учебного заведения, название просматриваемого расписания (ученика, класса, кабинета…) и диапазон дат. Предварительный просмотр использует систему печати браузера, поэтому доступно всё, что она умеет (встроенный экспорт в PDF, выбор принтера, двусторонняя печать и т. д.). #### Экспорт в PDF В Omniscol есть **отдельные кнопки экспорта в PDF**, которые аккуратно оформляют расписание. Самая полная находится на экране «Визуализировать» модуля «Управление расписанием» (см. [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate)). Представление расписания в виде **таблицы** (см. [Отображение расписаний](#page-schedules.schedule-display)) тоже предлагает экспорт в PDF — рядом с CSV и Excel. В противном случае в большинстве современных браузеров печать умеет создавать PDF (`Microsoft Print to PDF`, `Save as PDF`, «Печать в файл»). Рекомендация: используйте PDF для разовых сообщений (например, чтобы отправить родителю расписание на неделю), а ссылку общего доступа — для регулярных (PDF неизменен, ссылка отражает изменения). #### Анализ в электронной таблице (CSV / XLSX) К электронной таблице ведут два пути. **С экрана просмотра** переключите представление расписания в **таблицу** (см. [Отображение расписаний](#page-schedules.schedule-display)): такой вид можно распечатать, скопировать и вставить, а также экспортировать напрямую в **CSV**, **Excel / XLSX** или **PDF**. **Для сводного анализа объёмов** откройте **Сводная панель**: он считает часы по преподавателям, дисциплинам, классам или кабинетам за выбранный период и предлагает тот же экспорт в **CSV** (универсальный) или **XLSX** (заранее отформатированный для Excel). Типичные случаи использования такого экспорта: - подсчитать проведённые часы по преподавателям, дисциплинам, классам; - передать данные во внешний кадровый инструмент (расчёт оплаты, учёт рабочего времени); - найти расхождения между запланированной и фактической нагрузкой. См. [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) и [Статистика преподавателей](#page-dashboard.teachers). Чтобы получить сами занятия в машиночитаемом формате, общий доступ предлагает представление **JSON (API)**; см. [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link). #### Экспорт в iCal Чтобы динамически поделиться расписанием с электронным календарём (Google Calendar, Apple Calendar, Outlook), используйте **подписку iCal**, а не разовый экспорт. Получатель постоянно видит изменения. См. [iCal — подписка и динамическая ссылка](#page-integrations.ical). В окне общего доступа также показан **QR-код**, готовый к сканированию: получатель наводит телефон на экран компьютера и подписывается на календарь, не вводя адрес. Если всё же нужен неизменный файл `.ics` для архива, разовый экспорт тоже доступен в окне общего доступа. #### Фильтрация перед экспортом Экспорт учитывает **активные фильтры** текущего представления: если вы отфильтровали данные по определённому классу или диапазону дат, в экспорт попадут только эти данные. Для более широкого экспорта (весь год, все классы) заранее измените фильтры соответствующим образом и только потом запускайте экспорт. #### Инструкция — Печать расписания или общий доступ к нему 1. **Два способа вывода с экрана просмотра**: печать (PDF) для распространения в неизменном виде и общий доступ (веб, iCal, JSON) для распространения с автоматическим обновлением. Числовой анализ в электронной таблице выполняется через модуль «Сводная панель». 2. **Сначала отфильтруйте** представление, оставив нужные данные: класс, преподаватель, кабинет, диапазон дат, тип занятия. Печать и общий доступ учитывают активные фильтры: узкий фильтр даёт узкий результат. 3. **Для PDF** (отправка по электронной почте, архив): самый полный вариант — экспорт в PDF с экрана «Визуализировать» (см. [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate)); с экрана просмотра кнопка Печать открывает предварительный просмотр печати (занятия без заливки, заголовок с названием учебного заведения, названием расписания и диапазоном дат), откуда тоже можно получить PDF. 4. **В окне печати браузера** выберите **Save as PDF** / **Microsoft Print to PDF** / **Печать в файл**. PDF неизменен: он не отражает последующие изменения расписания. Для динамического варианта лучше использовать **ссылку общего доступа** (см. [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link)). 5. **Для анализа в электронной таблице**: переключите расписание в **таблицу** для прямого экспорта (CSV / XLSX / PDF, см. [Отображение расписаний](#page-schedules.schedule-display)) или откройте модуль **Сводная панель** для сводных объёмов — часов по преподавателям / дисциплинам / классам — и затем экспортируйте в CSV или XLSX (см. [Статистика преподавателей](#page-dashboard.teachers)). 6. **Для электронного календаря** лучше выбрать **подписку iCal**, а не неизменный файл: получатель постоянно видит обновления (см. [iCal — подписка и динамическая ссылка](#page-integrations.ical)). #### См. также - [Отображение расписаний](#page-schedules.schedule-display) - [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) - [Импорт и экспорт](#page-admin.import-export) ### 5.6 Общий доступ к расписанию по публичной ссылке *Source: `help/ru/schedules/share-link.md` · id: schedules.share-link · Audience: admin/teacher · Plan: standard · Updated: 2026-05-15* В модуле **Расписание** есть кнопка Общий доступ, которая создаёт подписанные URL-адреса для просматриваемого расписания. Получатель открывает веб-ссылку и видит расписание в режиме только для чтения, без входа в систему. Это самый быстрый способ передать расписание тому, у кого нет учётной записи Omniscol, — как правило, родителю ученика, внешнему партнёру или административной службе. #### Форматы, создаваемые при предоставлении доступа В зависимости от контекста и ваших прав диалоговое окно общего доступа может предложить несколько URL-адресов: - **адаптивная веб-страница** — удобный для навигации вид, как на портале, с представлениями «неделя», «день» и «список»; - **поток iCal `.ics`** — для подписки из Google Calendar, Apple Calendar, Outlook; - **JSON (API)** — для разработчиков и интеграций между системами, если этот формат разрешён. Получатель выбирает то, что ему удобно: родитель откроет веб-страницу или подпишется через iCal, разработчик воспользуется JSON. #### Чем можно поделиться? Общий доступ не ограничивается экраном просмотра расписаний: тот же значок Общий доступ есть на многих экранах Omniscol. **В режиме только для чтения** можно предоставить доступ к: - **индивидуальному расписанию** ученика или преподавателя; - **расписанию целого класса**, **кабинета** или **дисциплины**; - **графикам дежурств** модуля Управление персоналом; - **сводной панели** и **контролю отсутствий**; - экранам **просмотра** и **реорганизации** расписания. **В режиме чтения и записи** — единственный случай — можно предоставить доступ к экрану **ввода доступности** преподавателей (и сотрудников): отдельная ссылка позволяет каждому указать свою доступность до даты истечения срока, **без учётной записи и пароля** Omniscol. Это единственный вид общего доступа, который разрешает ввод данных, а не только просмотр. Каждый подписанный URL содержит запрошенный объём доступа и дату истечения срока. #### Создание ссылки На экране просмотра нажмите Общий доступ на панели инструментов. В диалоговом окне доступны: - **Дата истечения срока** — дата, до которой созданные ссылки остаются действительными. - **Вкладки Web, iCal и JSON** — отображаются в зависимости от форматов, созданных для текущего выбора. Затем вы копируете нужный URL. Для веб-ссылок и ссылок iCal в окне может также отображаться **QR-код**, который можно распечатать. #### Ограничение общего доступа Для разовых целей выбирайте короткий срок действия. Ссылка принадлежит учётной записи, которая её создала. Чтобы аннулировать уже созданные ссылки этой учётной записи, используйте реальные способы: - сменить или сбросить пароль учётной записи-владельца; - деактивировать или удалить учётную запись-владельца. Совет: для общего доступа, которым занимается команда планировщиков, можно использовать **чётко обозначенную служебную учётную запись** (например, `rassylka-raspisaniya`), а не личную учётную запись коллеги. Тогда ответственность за выданные ссылки лежит на этой записи; доступом к ней и её паролем нужно управлять как административным доступом. Веб-ссылки работают только для чтения, за исключением ссылки для **ввода доступности** преподавателей, описанной выше: она разрешает ввод данных до даты истечения срока, не открывая доступа к учётной записи Omniscol. #### Безопасность - Ссылка содержит подписанный токен с высокой степенью защиты. - Она открывает доступ **только к тому, чем поделились** (расписанию или экрану), а не ко всей учётной записи. - Срок действия ограничен выбранной датой истечения. - Ссылки аннулируются, если пароль учётной записи-владельца изменён, даже если новый пароль в открытом виде совпадает с прежним. - Ссылки перестают работать, если учётная запись-владелец деактивирована или удалена. - Любой, у кого есть URL, может просматривать данные в пределах предоставленного объёма доступа до истечения срока или аннулирования ссылки. #### Отличие от ограниченной учётной записи Omniscol Когда нужно поделиться данными между командами, например с бухгалтерской службой, два варианта могут показаться конкурирующими. - **Подписанная публичная ссылка** = без идентификации, простой доступ, быстрая передача. - **Ограниченная учётная запись Omniscol** = отдельная идентификация, более долгий срок, ведение учётной записи пользователя, с возможностью использовать «[настраиваемые роли](#page-admin.customroles)». Для разовых целей выбирайте ссылку, а для организованного долгосрочного использования — ограниченную учётную запись. #### Инструкция — Создание ссылки общего доступа 1. **Ссылка общего доступа** открывает расписание только для чтения без входа в систему. Подходит для родителя, внешнего партнёра, административной службы. 2. **Откройте расписание, которым хотите поделиться**, в модуле Расписание: ученика, класса, кабинета, преподавателя или дисциплины. Отправная точка — страница просмотра. 3. Нажмите Общий доступ на панели инструментов. Откроется диалоговое окно с параметрами общего доступа. 4. **Выберите дату истечения срока.** Чем шире распространяется ссылка, тем ближе должна быть эта дата. 5. **Скопируйте нужный формат.** Web — для прямого просмотра, iCal — для подписки в календаре, JSON — если планируется интеграция по API. URL можно использовать сразу: открывший его человек видит данные в пределах предоставленного объёма доступа только для чтения, без входа в систему. 6. **Если ссылка попала не к тем, кому предназначалась**, создайте новую, более ограниченную ссылку с другой учётной записи и аннулируйте ссылки, принадлежащие прежней записи, сменив её пароль или, при необходимости, деактивировав её. #### См. также - [Публичные ссылки общего доступа](#page-portal.share-links) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Гостевой портал (публичные ссылки)](#page-portal.guest-portal) --- ## 6. Отсутствия и замещения ### 6.1 Обзор модуля «Управление отсутствиями» *Source: `help/ru/absences/overview.md` · id: absences.overview · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* Модуль **Управление отсутствиями** объединяет оформление и учёт недоступности преподавателей, классов, учеников и, если включён модуль Управление персоналом, сотрудников, которая должна отражаться в расписании. #### Управляемые сущности | Отсутствующая сущность | Влияние на расписание | | --- | --- | | **Преподаватель** | Занятие **отменяется**, если отсутствующий преподаватель ведёт его один, кроме случая, когда назначен **замещающий преподаватель** (он отображается рядом с зачёркнутым основным). При **совместном преподавании** занятие **сохраняется**: убирается только отсутствующий преподаватель, а остальные проводят занятие сами. | | **Класс** | Занятия отсутствующего класса скрываются из расписания на соответствующий период. | | **Ученик** | Занятия класса остаются на месте; отсутствие отражается только в расписании и учёте самого ученика. | | **Сотрудник** | Доступно только при активном модуле Управление персоналом; работает как отсутствие сущности в планировании сотрудников. | Школьные каникулы учебного года не вносятся как отсутствия: они задаются в настройках учебного года. #### Подтверждающие документы Модуль не поддерживает **загрузку подтверждающих документов**: управление расписанием не предназначено для хранения конфиденциальных данных (медицинские справки, сведения, составляющие профессиональную тайну), оно сосредоточено на планировании. Если всё же нужно приложить документ, сохраните его в привычном хранилище и вставьте **ссылку в поле комментария** к отсутствию. #### Статусы - **одобренный**: отсутствие одобрено и учитывается в отображении. - **в ожидании**: заявку подал сам пользователь, которого она касается, её должен подтвердить администратор. - **отвергнуто**: заявка отклонена. - **отменено**: заявка отозвана подавшим её пользователем. Влияют на расписание только отсутствия со статусом **одобренный**: они меняют отображение расписаний, отмечают затронутые занятия (при необходимости отменяя их) и попадают в **статистику** и **экспорт** отсутствий (см. [Контроль и экспорт отсутствий](#page-absences.statistics)). Остальные статусы — в ожидании, отвергнуто, отменено — никак не влияют на расписание. #### Организация экранов Модуль показывает вкладки по типам сущностей: - **Преподаватели**: отсутствия преподавателей и управление замещениями. - **Классы**: отсутствия классов (их оформляют только администраторы). - **Ученики**: индивидуальные отсутствия учеников. - **Сотрудники**: отсутствия сотрудников, если включён модуль Управление персоналом. Каждый экран показывает отсутствия за период, их статус, затронутые занятия (когда эти сведения доступны), навигацию по времени и список, который администраторы могут экспортировать. #### Предварительные условия - Хотя бы одно опубликованное расписание на соответствующий учебный год. - Для отсутствий преподавателей: преподаватели должны быть назначены на курсы. - Для отсутствий учеников: ученики должны быть зачислены в классы. - Для отсутствий сотрудников: должен быть активен модуль Управление персоналом. #### Инструкция — Знакомство с модулем «Управление отсутствиями» 1. Откройте модуль **Управление отсутствиями** в главной навигации. 2. Выберите вкладку нужной сущности: преподаватели, классы, ученики или сотрудники, в зависимости от включённых модулей. 3. Нажмите Объявить об отсутствии, чтобы открыть форму: отсутствующая сущность, даты, временной диапазон, причина, комментарий и статус (в зависимости от ваших прав). 4. Для одобренного отсутствия преподавателя откройте Управление замещениями, чтобы увидеть затронутые занятия и назначить разовых замещающих преподавателей или правила замещения. 5. Администраторы могут экспортировать отображаемую таблицу кнопкой Таблица. #### См. также - [Объявить об отсутствии](#page-absences.declaring) - [Политики замещений](#page-absences.substitution-policies) - [Отсутствие](#page-glossary.absence) - [Замещение / Замена](#page-glossary.substitution) ### 6.2 Как объявить об отсутствии (администратор / преподаватель / ученик) *Source: `help/ru/absences/declaring.md` · id: absences.declaring · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* #### Кто может объявлять об отсутствии? | Роль | За кого? | Начальный статус | | --- | --- | --- | | **Администратор** | Преподаватель, класс, ученик или сотрудник | одобренный по умолчанию, можно изменить | | **Преподаватель** | Только за себя | в ожидании | | **Ученик** | Только за себя | в ожидании | | **Сотрудник** | Только за себя, если модуль Управление персоналом активен | в ожидании | Отсутствия классов относятся к административным операциям: маршруты создания и изменения доступны только администраторам. #### Поля формы Кнопка Объявить об отсутствии открывает форму. Сохранение выполняется кнопкой Добавить. - **Сущность**: видна администраторам; остальные роли могут объявить только о собственном отсутствии. - **Период дат**: дата начала и дата окончания. Для отсутствия на один день укажите одну и ту же дату. Если дата окончания не задана в интерфейсе, Omniscol берёт в качестве технической границы конец учебного года: не используйте это для описания действительно бессрочного отсутствия. - **Временной диапазон**: по умолчанию весь день, либо конкретные временные слоты. - **Дополнительные фильтры**: - **Класс**, чтобы ограничить отсутствие преподавателя определёнными классами. - **Дисциплина**, чтобы затронуть только занятия по выбранной дисциплине. - **Назначение** для отсутствий сотрудников, если модуль Управление персоналом активен. - **Причина**: выбирается из предложенного списка; администраторы могут также ввести собственную причину. - **Комментарий**: короткий произвольный текст. - **Статус**: свободно задавать статус могут только администраторы (по умолчанию статус **одобренный**). Для остальных ролей заявка получает статус **в ожидании** и ожидает подтверждения администратора; при этом тот, кто объявил об отсутствии, может перевести собственную заявку в статус **отменено**, чтобы отказаться от неё. #### Инструкция — Первое отсутствие преподавателя 1. Откройте вкладку Преподаватели модуля Управление отсутствиями. 2. Нажмите Объявить об отсутствии. 3. Если вы администратор, выберите нужного преподавателя. Преподаватель, объявляющий о собственном отсутствии, не может выбрать другого преподавателя. 4. Укажите даты. Для одного дня укажите одну и ту же дату в полях начала и окончания. 5. Оставьте **весь день** или задайте нужные временные слоты, если отсутствие касается только части дня. 6. Выберите причину, при необходимости добавьте комментарий, затем сохраните кнопкой Добавить. 7. Если отсутствие одобрено и касается преподавателя, откройте управление замещениями кнопкой Управление замещениями, чтобы назначить замещающего преподавателя или задать правило замещения. #### Подтверждение ожидающей заявки Когда преподаватель, ученик или сотрудник объявляет о собственном отсутствии, заявка ожидает рассмотрения. Администраторы могут одобрить или отклонить её с помощью быстрых действий одобренный и отвергнуто либо открыв карточку. #### Последующие изменения - Администратор может изменить даты, время, причину, комментарий и статус. - Тот, кто объявил об отсутствии, может изменить собственное будущее отсутствие; после изменения оно снова получает статус «в ожидании». - Автор заявки может отказаться от неё. #### Видимость Сведения о том, что сущность отсутствует, могут отображаться в расписаниях или в модуле Управление отсутствиями в зависимости от прав на просмотр. Причина, комментарий, метаданные создания и статус показываются не всем ролям одинаково: пользователи без прав администратора не обязательно видят подробности чужих отсутствий. #### См. также - [Политики замещений](#page-absences.substitution-policies) - [Разовое замещение занятия](#page-absences.single-lesson-replacement) - [Отсутствие](#page-glossary.absence) ### 6.3 Политики замещений *Source: `help/ru/absences/substitution-policies.md` · id: absences.substitution-policies · Audience: admin · Plan: standard · Updated: 2026-06-13* **Политика замещений** позволяет закрыть сразу несколько занятий, затронутых одним и тем же отсутствием преподавателя. Не нужно выбирать замещающего для каждого занятия по отдельности, если достаточно простого правила. #### Доступ В строке отсутствия преподавателя откройте Управление замещениями. Панель показывает занятия, затронутые отсутствием, и сохранённые правила замещения. Занятия без замещающего по-прежнему отмечены как затронутые отсутствием основного преподавателя. #### Два уровня правил ##### Разовое замещение Для конкретного занятия Назначить замещающего позволяет выбрать замещающего только на это занятие. Такое назначение имеет приоритет над долгосрочными политиками. ##### Долгосрочная политика В разделе Долгосрочные замещения панели кнопка Назначить замещающего создаёт правило замещения. Для каждого правила вы указываете: - **замещающего** преподавателя; - **дату начала** и **дату окончания** действия; - **временные слоты**, если правило действует не весь день; - при необходимости **дисциплины**; - при необходимости **классы**; - внутренний **комментарий**. Несколько правил могут действовать одновременно. Они применяются в том порядке, в котором показаны; если приоритет меняется, измените порядок перетаскиванием. #### Как читать панель Список занятий показывает, какой замещающий закрывает каждое из них. Если правило не подходит ни к одному занятию из отсутствия, панель выводит предупреждение по этому правилу: исправьте даты, временные слоты, дисциплины или классы. #### Типичный случай: длительное отсутствие с распределением Для отсутствия на несколько недель: 1. Создайте первое правило с основным замещающим, без фильтра по дисциплине и по классу. 2. Добавьте второе, более узкое правило, например ограниченное одной дисциплиной или одним временным слотом. 3. Поставьте самое конкретное правило перед общим, если оно должно иметь приоритет. #### Инструкция — Распределить длительное отсутствие 1. Откройте отсутствие преподавателя с помощью Управление замещениями. 2. Нажмите Назначить замещающего. 3. Выберите основного замещающего, задайте даты действия, затем сохраните. 4. Добавьте дополнительное правило, если часть занятий должен вести другой замещающий. 5. Проверьте список затронутых занятий. Напротив них должен быть указан нужный замещающий; занятия без замещения остаются в списке как незамещённые. 6. Подтвердите изменения в панели с помощью Назначать. #### См. также - [Объявить об отсутствии](#page-absences.declaring) - [Разовое замещение занятия](#page-absences.single-lesson-replacement) - [Замещение / Замена](#page-glossary.substitution) ### 6.4 Разовое замещение занятия *Source: `help/ru/absences/single-lesson-replacement.md` · id: absences.single-lesson-replacement · Audience: admin · Plan: standard · Updated: 2026-06-13* **Разовое замещение** назначает замещающего преподавателя на одно занятие, затронутое отсутствием преподавателя. Оно настраивается на панели управления замещениями этого отсутствия. Этот механизм не переносит занятие, сам по себе не создаёт уведомлений и не предлагает несколько сценариев отмены. Он добавляет замещающего на выбранное занятие; отсутствующий основной преподаватель продолжает отображаться как замещаемый. #### Как открыть 1. Откройте вкладку Преподаватели модуля Управление отсутствиями. 2. Для нужного отсутствия нажмите Управление замещениями. 3. В списке затронутых занятий нажмите Назначить замещающего на занятии, на которое нужно назначить замещение. Панель показывает занятия, охваченные отсутствием, и уже заданные правила замещения. #### Результат разового замещения - Выбранный замещающий назначается только на это занятие. - Кабинет, класс, дата и время занятия при этом не меняются. - Разовое замещение имеет приоритет над общими правилами замещения того же отсутствия. - Если замещающий не назначен, занятие остаётся затронутым отсутствием преподавателя. #### Выбор замещающего Список для выбора строится из преподавателей, доступных в нужном временном слоте. Перед подтверждением вручную проверьте, что выбор подходит по дисциплине, площадке и внутренней организации учебного заведения. #### Удаление разового замещения Если разовое замещение добавлено по ошибке, нажмите [xmark]. Занятие вернётся под действие применимого длительного правила или останется незамещённым, если ни одно правило не подходит. #### Инструкция — Как назначить замещение на занятие 1. Создайте или откройте одобренное отсутствие преподавателя. 2. Нажмите Управление замещениями. 3. Найдите нужное занятие в списке затронутых занятий. 4. Нажмите Назначить замещающего, выберите замещающего, затем подтвердите выбор на панели кнопкой Назначать. 5. Проверьте отображение занятия: отсутствующий основной преподаватель должен остаться зачёркнутым, а замещающий должен появиться на занятии. #### См. также - [Политики замещений](#page-absences.substitution-policies) - [Объявить об отсутствии](#page-absences.declaring) - [Многодневные отсутствия](#page-absences.multi-day) - [Замещение / Замена](#page-glossary.substitution) ### 6.5 Многодневные отсутствия *Source: `help/ru/absences/multi-day.md` · id: absences.multi-day · Audience: admin · Plan: standard · Updated: 2026-06-13* **Многодневное отсутствие** — это отсутствие, оформленное с датой начала и датой окончания. Оно позволяет охватить непрерывный период, не создавая отдельное отсутствие для каждого занятия. Затем Omniscol вычисляет занятия, попадающие в этот период. При отсутствии преподавателя такие занятия можно оставить без замещения, покрыть политикой замещений или скорректировать разовыми замещениями. #### Указать период На вкладке Преподаватели модуля Управление отсутствиями: - выберите преподавателя; - укажите дату начала и дату окончания; - оставьте весь день или укажите нужные временные слоты; - выберите причину; - при необходимости добавьте комментарий; - сохраните кнопкой Добавить. #### Обработать затронутые занятия После оформления отсутствия: - откройте Управление замещениями; - проверьте список занятий, затронутых отсутствием; - создайте одно или несколько правил кнопкой Назначить замещающего, если логика замещения повторяется; - для исключений по отдельным занятиям используйте Назначить замещающего на нужном занятии. **Правила замещения** — механизм, предусмотренный для длительных отсутствий. Правило **без фильтра** применяется ко **всем** занятиям периода; добавьте класс, дисциплину, временные слоты или даты, чтобы охватить только часть занятий. Чтобы **оставить всё без замещения**, не создавайте правил: занятия, которые ведёт только отсутствующий преподаватель, будут отменены на весь период. #### Отсутствие в повторяющихся слотах Отсутствие, затрагивающее лишь некоторые слоты длительного периода, например по понедельникам утром в течение двух месяцев, оформляется **один раз**: укажите широкий диапазон дат, а затем уточните нужные **временные слоты** (и при необходимости класс или дисциплину). Omniscol выберет за весь период только те занятия, которые приходятся на эти слоты, так что вводить каждое повторение не нужно. #### Учёт и экспорт Таблица отсутствий позволяет администраторам выполнить экспорт отображаемых строк кнопкой Таблица. Об учёте отсутствий в модуле см. [Контроль и экспорт отсутствий](#page-absences.statistics). #### Инструкция — Как обработать длительное отсутствие 1. Оформите отсутствие с датой начала и датой окончания. 2. Если отсутствие охватывает не все дни целиком, укажите нужные временные слоты. 3. Сохраните отсутствие. 4. Откройте Управление замещениями. 5. Добавьте необходимые правила замещения, затем проверьте список затронутых занятий. 6. Разовые замещения используйте только для тех занятий, которые должны отступать от общих правил. #### См. также - [Объявить об отсутствии](#page-absences.declaring) - [Политики замещений](#page-absences.substitution-policies) - [Разовое замещение занятия](#page-absences.single-lesson-replacement) - [Контроль и экспорт отсутствий](#page-absences.statistics) ### 6.6 Отсутствия классов и учеников *Source: `help/ru/absences/class-and-student-absences.md` · id: absences.class-and-student-absences · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Модуль Управление отсутствиями различает отсутствия **целых классов** и отсутствия **отдельных учеников**. Объявляются они одинаково, но влияние на расписание у них разное. #### Отсутствие целого класса Типичные случаи: школьная экскурсия, поездка, коллективная практика, день экзаменов. Отсутствиями классов занимаются администраторы. На вкладке Классы в форме указываются: - класс; - период дат; - временной диапазон, если отсутствие охватывает не весь день; - при необходимости дисциплина, чтобы ограничить действие нужными занятиями; - причина; - комментарий. В повторяющемся расписании одобренное отсутствие класса убирает занятия этого класса из отображения на выбранный период. #### Отсутствие отдельного ученика Типичные случаи: болезнь, визит к врачу, семейные обстоятельства, уважительное или неуважительное отсутствие. Отсутствие ученика: - относится к выбранному ученику; - помечает занятия периода как **отменённые** в расписании ученика, не убирая занятия класса и занятия преподавателей; - может быть объявлено администратором или самим учеником в зависимости от его прав; - получает статус «в ожидании», если его объявил сам ученик. #### Видимость Администраторам доступен полный вид. Остальные роли видят ограниченную версию в зависимости от своих прав: сам факт отсутствия может быть виден без причины, комментария и служебных данных о подтверждении. #### Инструкция — Объявить об отсутствии класса 1. Откройте вкладку Классы модуля Управление отсутствиями. 2. Нажмите Объявить об отсутствии. 3. Выберите класс, даты и время. 4. Укажите причину и при необходимости комментарий. 5. Сохраните. Занятия этого класса убираются из отображения на период одобренного отсутствия; у остальных классов занятия сохраняются. #### Инструкция — Объявить об отсутствии ученика 1. Откройте вкладку **Ученики**. 2. Если вы администратор, выберите нужного ученика. 3. Заполните даты, время, причину и комментарий. 4. Сохраните. Если заявку создал сам ученик, она остаётся в ожидании до подтверждения. 5. Когда отсутствие одобрено, занятия этого периода помечаются как **отменённые** в расписании ученика и учитываются при отслеживании его отсутствий и в статистике. Остальные ученики класса не затрагиваются. #### См. также - [Объявить об отсутствии](#page-absences.declaring) - [Контроль и экспорт отсутствий](#page-absences.statistics) - [Многодневные отсутствия](#page-absences.multi-day) - [Разовые события](#page-schedules.events) ### 6.7 Контроль и экспорт отсутствий *Source: `help/ru/absences/statistics.md` · id: absences.statistics · Audience: admin · Plan: standard · Updated: 2026-06-13* Отсутствия можно отслеживать в нескольких местах, дополняющих друг друга: в модуле Управление отсутствиями — для оперативного контроля, в **Сводная панель** — для сводной статистики, и в модуле Администрирование — для истории конкретного ученика. Эти два последних представления учитывают только отсутствия в статусе **одобренный**. #### Контроль в модуле Управление отсутствиями В зависимости от выбранной вкладки и периода на экране отображаются: - сущности, отсутствующие в выбранном периоде; - статусы заявок со счётчиками; - занятия, затронутые отсутствиями в статусе одобренный; - навигация по неделям, месяцам, учебным годам или диапазонам дат; - таблица со списком отсутствий. Для отсутствия преподавателя управление замещениями (Управление замещениями) дополнительно показывает затронутые занятия и назначенных замещающих. Администраторы экспортируют отображаемую таблицу кнопкой Таблица: сущность, даты, время, дисциплина (если указана), причина, комментарий и статус — в зависимости от прав доступа. Это удобно для внутреннего отчёта или обработки вне Omniscol. #### Статистика в модуле Сводная панель Для **объёмов и процентных показателей** откройте **Сводная панель**. Вкладка Ученики суммирует по каждому ученику за период **часы**, **занятия** и **дни отсутствия**, а также соответствующий **процент отсутствия**; данные можно экспортировать в CSV / XLSX (см. [Статистика по ученикам и ресурсам](#page-dashboard.students-resources)). Для **преподавателей** вкладка Преподаватели показывает, как отсутствия влияют на нагрузку: столбец **Отмененные часы** учитывает снятые часы (отсутствие без замещения отменяет занятие), а **Дополнительные часы** — дополнительные часы. В каждом столбце указано число затронутых занятий, а во всплывающей подсказке они перечислены подробно (дисциплина, класс, день и время); для занятия, отменённого из-за отсутствия, там также указана причина, если она заполнена. Эта вкладка тоже экспортируется в CSV / XLSX (см. [Статистика преподавателей](#page-dashboard.teachers)). #### История в модуле Администрирование В модуле Администрирование карточка **ученика**, как и карточка **преподавателя**, содержит сводку его отсутствий за учебный год и собственный экспорт таблицы — это удобно для индивидуального контроля или для обсуждения (с семьёй — в случае ученика, с самим преподавателем — в случае преподавателя). #### Ограничения, о которых стоит знать - В отображении и статистике учитываются только отсутствия в статусе **одобренный**; отсутствия в статусе **в ожидании**, **отвергнуто** или **отменено** носят справочный характер. - Причины и комментарии могут быть скрыты в зависимости от роли пользователя. #### Инструкция — Экспорт данных для контроля 1. Откройте нужную вкладку модуля Управление отсутствиями. 2. Выберите период для проверки. 3. При необходимости проверьте статусы и затронутые занятия. 4. Нажмите Таблица. 5. Используйте экспортированный файл для внутренних проверок или дальнейшей обработки. 6. Чтобы получить **объёмы и процент отсутствия** по ученикам, откройте Сводная панель, вкладка Ученики (см. [Статистика по ученикам и ресурсам](#page-dashboard.students-resources)). #### См. также - [Обзор модуля «Управление отсутствиями»](#page-absences.overview) - [Отсутствия классов и учеников](#page-absences.class-and-student-absences) - [Политики замещений](#page-absences.substitution-policies) - [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) --- ## 7. Управление персоналом ### 7.1 Обзор модуля «Управление персоналом» *Source: `help/ru/staffing/overview.md` · id: staffing.overview · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Управление персоналом** Модуль **Управление персоналом** служит для планирования персонала **по задачам**, а не по занятиям: нужно думать в терминах «кто занимает какой пост и когда», а не «кто что преподаёт». Он дополняет учебное расписание там, где образовательной организации нужно организовать воспитательную работу, надзор, самоподготовку, экзамены или мероприятия по сопровождению. #### Основной сценарий: воспитательная служба и помощники воспитателей Модуль создан для давней потребности воспитательных служб: заместителей по воспитательной работе, помощников воспитателей, дежурных и других сотрудников, которые в течение дня закрывают множество постов независимо от занятий. Примеры: - надзор в коридорах; - контроль входа в образовательную организацию и выхода из неё; - приём посетителей; - надзор на школьном дворе во время перемен; - надзор в столовой в обеденное время; - присмотр на самоподготовке и в зале для самостоятельной работы; - организация работы или надзор в библиотеке, комнате отдыха или рабочем пространстве; - сопровождение учеников за пределами школы, например на выездное занятие физкультурой, которое поручают только уполномоченным сотрудникам; - разовый надзор во время смены занятий; - надзор на экзаменах, вступительных испытаниях или в особые дни. Задача описывает потребность в присутствии. В отличие от занятия, она не несёт ни дисциплины, ни учебной программы, ни обязательной группы учеников. Сетка здесь часто намного мельче, чем у учебного расписания: в воспитательной службе шаг в четверть часа — обычное дело. Потребность может сильно меняться в течение дня: 0 человек во дворе во время занятий, 3 человека в обед, 1 человек в библиотеке всю вторую половину дня. #### Экраны модуля ##### Сетка Сетка задаёт временные рамки работы: рабочие дни, временные слоты (часто мельче, чем в сетке занятий) и периоды года, в которые она действует. Она служит рабочей заготовкой до того, как будут назначены люди. Здесь же задаются площадки и расстояния между ними: они нужны, чтобы сигнализировать о несовместимых назначениях на удалённых друг от друга площадках. См. [Построение сетки дежурств](#page-staffing.building-grids). ##### Назначения На экране «Назначения» определяются посты, или задачи, которые нужно закрыть: название, необходимое и желательное число людей, приоритет, площадка, допущенные сотрудники и совместимость задач — например, два соседних коридора, которые один человек может закрывать в спокойный временной слот при нехватке людей. Потребности могут меняться от слота к слоту. См. [Определение задач, которые нужно обеспечить](#page-staffing.assignments). ##### Планировщик В планировщике сотрудников назначают на реальные задачи недели или диапазона дат. Назначение делается выделением, перетаскиванием, дублированием и ручной правкой. Отсутствия, недоступность, конфликты и назначения людей, не допущенных к задаче, отображаются как предупреждения. См. [Назначение сотрудников](#page-staffing.planner). ##### График дежурств График дежурств показывает каждому человеку список его задач или его неделю в виде сетки. Его можно напечатать, экспортировать или открыть другим в зависимости от прав и способа распространения, выбранного образовательной организацией. В нём выводятся итоги, полезные для чтения недели, и сохраняются сигналы об отсутствии или недоступности. См. [Графики дежурств](#page-staffing.roster). #### Что проверяет модуль - доступность людей; - объявленные отсутствия; - назначенная рабочая нагрузка; - сотрудники, допущенные к каждой задаче; - конфликты с другими задачами или присутствиями; - согласованность потребностей по площадкам и временным слотам с учётом расстояний между площадками. Планирование персонала **ручное**: сетка, предупреждения и инструменты исправления направляют каждое назначение, а контроль остаётся за вами. Omniscol не расставляет персонал автоматически. #### Практическая польза Выигрыш даёт прежде всего централизация: - общая сетка потребностей вместо отдельной электронной таблицы; - назначения, которые можно менять от недели к неделе; - дублирование стабильных недель; - отсутствия, видимые в графике сотрудников; - графики дежурств, которые можно напечатать или передать другим; - меньше переписки туда и обратно между воспитательной службой, назначенными людьми и администрацией. По опыту использования в организации примерно на тысячу учеников экономия составляет около 20 часов административной работы в неделю. > «Мы выбрали Omniscol, чтобы перевести в цифровой формат управление > графиками нашей воспитательной службы (расписание помощников > воспитателей). Решение оказалось интуитивным, полным и полностью > подходящим для наших задач. Каждый чётко видит, куда он назначен.» > > — Жанна Вебер, заместитель директора коллежа Севинье (основан в 1880 г.), Париж #### Другие сценарии - **Надзор на экзаменах**: экзаменационные сессии, выпускные экзамены, вступительные испытания, несколько дней, несколько кабинетов, потребность в дежурных на каждое испытание. - **Самоподготовка под присмотром**: посты надзора, меняющиеся в зависимости от ожидаемого числа учеников. - **Сопровождение в педагогике Монтессори и активных методиках**: мероприятия или мастерские, которые нужно закрыть без жёсткой структуры обычного занятия. - **Графики педагогов-организаторов и задач**: центр досуга, продлённый день, интернат, график по поручениям. - **Сопровождение выездов**: школьная поездка, учебная экскурсия, посещение организации. - **Разовое присутствие**: приём родителей, день открытых дверей, педагогический совет. #### Отличие от занятия Занятие несёт дисциплину, группу учеников или студентов и квалифицированного преподавателя. Задача модуля Управление персоналом несёт **потребность в присутствии**: нужен человек на этом посту, с подходящей доступностью и, при необходимости, с допуском к работе на этом посту. Поэтому модуль работает с сетками потребностей, назначениями людей и графиками дежурств, а не отталкивается от разбивки «дисциплина / класс / преподаватель». #### Состав модуля Учётная запись с модулем Управление персоналом включает: - модуль Управление персоналом: сетки, задачи, планировщик, графики дежурств; - модуль Управление отсутствиями для сотрудников, которых можно назначать; - экраны администрирования, нужные для учётных записей и ролей; - сквозной поиск в соответствии с правами учётной записи. #### Роль *Сотрудник* Роль **Сотрудник** предназначена для воспитательных служб (заместители по воспитательной работе, помощники воспитателей, дежурные, вахтёры). В зависимости от прав учётной записи она открывает доступ к модулю Управление персоналом, к личному графику и к отсутствиям сотрудников, не открывая всех общих настроек школы. Один и тот же пользователь может совмещать несколько ролей: например, преподаватель, работающий по активной методике, может одновременно иметь роль «преподаватель» и роль «сотрудник» и при этом планироваться по задачам. #### См. также - [Построение сетки дежурств](#page-staffing.building-grids) - [Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [Назначение сотрудников](#page-staffing.planner) - [Графики дежурств](#page-staffing.roster) - [Обзор модуля «Управление отсутствиями»](#page-absences.overview) - [Управление персоналом](#page-glossary.staffing) - [Самоподготовка под присмотром (школа)](#page-k12.study-halls) ### 7.2 Построение сетки дежурств *Source: `help/ru/staffing/building-grids.md` · id: staffing.building-grids · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-26* > **Option: Управление персоналом** **Сетка дежурств** задаёт временные рамки дежурств: рабочие дни, временные слоты и периоды года, в которые она действует. Этот шаг выполняется **до** назначения людей: вы задаёте рамки, задачи, которые нужно покрыть, описываются затем на экране Назначения, а заполнение выполняется в планировщике. Вместе с потребностями, заданными для каждой задачи, сетка отвечает на вопросы вроде «сколько человек должно быть во дворе в 10:00?» или «какие слоты должен покрыть дежурный персонал на этой неделе?». #### Создать сетку На вкладке Сетка модуля Управление персоналом показаны существующие сетки и их распределение по году. Для каждой сетки вы указываете: - **название** — короткое и узнаваемое, например `Типовая неделя`, `Экзамены 1 полугодия`, `Каникулы`; - **Рабочие дни** — например, с понедельника по пятницу для типовой недели или особый набор дней для экзаменационной недели; - **Временная сетка** — временные слоты сетки, которые вы задаёте произвольно. Для дежурств обычно берут четверть часа, и такие слоты могут быть мельче, чем сетка учебных занятий. Кнопка Распределение сеток затем назначает каждую сетку неделям или диапазонам дат года, которые она охватывает. При первом открытии предлагается пустая сетка. Чтобы создать ещё одну, продублируйте существующую с помощью Копировать, переименуйте её и измените под себя. #### Определить задачи и их потребности Сами задачи — название, число людей, площадка, допущенные сотрудники — задаются на экране Назначения, см. [Определение задач, которые нужно обеспечить](#page-staffing.assignments). Затем для каждой задачи в редакторе потребностей указывается, слот за слотом на сетке, сколько человек требуется (0 = потребности нет). Потребность может сильно меняться в зависимости от времени: 0 человек во дворе во время занятий, 3 человека в полдень в столовой, 1 человек в библиотеке всю вторую половину дня. #### Площадки и расстояния Если в вашем учебном заведении несколько площадок, задайте их внизу экрана Сетка вместе с расстояниями между ними. Задача, привязанная к удалённой площадке, вызывает предупреждение, если этот же человек нужен в другом месте и времени на дорогу не хватает. #### Совместимости при нехватке персонала Когда доступных людей меньше, чем требуется в идеале (так часто бывает при цепочке отсутствий или в экзаменационные периоды), вы можете задать **совместимости** между соседними задачами: один человек тогда может выполнять две задачи одновременно. Типичный пример: `коридор 2` и `коридор 3` объединяемы — один человек может следить за обоими. Вы задаёте это в задаче, на экране Назначения, чтобы подсказать выбор при назначении. Не задавайте совместимость, чтобы надолго скрыть нехватку персонала. Совместимость должна соответствовать ситуации, которую учебное заведение действительно допускает на практике. #### Шаблоны сетки Если из недели в неделю у вас одна и та же структура графика, вы можете **продублировать существующую сетку**, чтобы начать с готовой основы. Повторяющиеся случаи: - **Типовая неделя** — базовая сетка (с начала и до конца учебного года). - **Каникулярная неделя** — меньше задач, сокращённая команда. - **Экзаменационная неделя** — надзор в лекционных залах добавляется к обычным задачам. - **Особый день** — день открытых дверей, экскурсия, внутреннее мероприятие, педсовет или особый приём гостей. #### Проверить согласованность перед назначением Перед переходом к назначению используйте сетку как рабочий чек-лист: - покрывают ли задачи каждый нужный период? - реалистичны ли потребности по сравнению с доступной командой? - учитывают ли посты на нескольких площадках время на дорогу? - соответствуют ли ограничения по допущенным сотрудникам людям, которые действительно имеют допуск? - остаются ли совместимости между задачами приемлемыми даже при нехватке персонала? Когда сетка подтверждена, переходите к этапу **назначения**. См. [Назначение сотрудников](#page-staffing.planner). #### Инструкция — Построение сетки дежурств 1. **Сетка дежурств** описывает рамки дежурств на год: рабочие дни, временные слоты, площадки. 2. **Создайте сетку.** Дайте ей короткое название (`Типовая неделя`). Выберите рабочие дни, затем задайте временные слоты — как правило, по четверти часа для дежурных. Вы также можете продублировать существующую сетку, чтобы начать с готовой основы. 3. **Распределите сетку по году** с помощью Распределение сеток: каждая сетка охватывает недели или диапазоны дат, в которые она действует (типовая неделя, экзамены, каникулы). 4. **Задайте площадки**, если в вашем учебном заведении их несколько. Расстояния между площадками позволяют отмечать назначения, которые нельзя выполнить вместе. 5. **Сохраните сетку**, затем опишите задачи и их потребности слот за слотом на экране Назначения. См. [Определение задач, которые нужно обеспечить](#page-staffing.assignments). 6. **Следующий шаг: назначьте сотрудников** в планировщике. См. [Назначение сотрудников](#page-staffing.planner). #### См. также - [Обзор модуля «Управление персоналом»](#page-staffing.overview) - [Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [Назначение сотрудников](#page-staffing.planner) ### 7.3 Определение задач, которые нужно обеспечить *Source: `help/ru/staffing/assignments.md` · id: staffing.assignments · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Управление персоналом** Экран Назначения нужен, чтобы определить задачи или посты, которые должен будет обеспечить модуль Управление персоналом. Это этап настройки: вы описываете потребности до того, как назначать людей в [Планировщике](#page-staffing.planner). **Рассылка** сотрудникам выполняется позже, через График дежурств (см. [Графики дежурств](#page-staffing.roster)). #### Что описывает задача Задача может содержать: - понятное название: `Вход`, `Школьный двор`, `Столовая`, `Надзор на экзамене в актовом зале`; - минимально необходимое число людей и желаемое число; - уровень приоритета; - площадку или место; - список сотрудников, которым разрешено выполнять эту задачу (пусто = все сотрудники); - правила совместимости с другими задачами; - подробные потребности по каждому слоту на сетке дежурств. Задача должна быть описана достаточно точно, чтобы её поняли в планировщике и в графике дежурств, который выдаётся сотрудникам. Частые примеры: - `Коридор 2`; - `Северный вход`; - `Школьный двор на перемене`; - `Столовая`; - `Дежурство в кабинете 112`; - `Надзор на экзамене в актовом зале`; - `Сопровождение на стадион (физкультура)`. #### Потребности и допущенные сотрудники Потребности показывают, сколько людей должно обеспечивать задачу в каждом слоте сетки дежурств (0 = потребности нет), сверх минимума и желаемого числа, заданных для самой задачи. Список допущенных сотрудников ограничивает круг тех, кого можно назначить: используйте его только для постов, которые требуют особого допуска или компетенции — сопровождение на физкультуру вне школы, специальный надзор, особый приём посетителей, доступ на площадку. Благодаря этому назначение не превращается в простой список имён: Omniscol хранит связь между постом, потребностью и людьми, которым разрешено его обеспечивать. Для ответственной задачи ограничьте список допущенных сотрудников, а не рассчитывайте на устное указание: тогда планировщик сообщит о любом назначении человека, у которого нет допуска. #### Совместимость задач Некоторые близкие задачи может обеспечивать один и тот же человек, если учреждение это разрешает. Пример: два соседних коридора в слот, когда обстановка спокойная. Задавайте такую совместимость, только когда она соответствует реальному правилу работы. Слишком широкая совместимость делает план дежурств менее читаемым и может скрыть нехватку людей. Чего следует избегать: объединять удалённые друг от друга посты лишь потому, что кого-то не хватает. #### Импорт и перенос структуры Когда задач уже много, экран позволяет сэкономить время с помощью инструментов импорта и переноса структуры, доступных в модуле. После импорта проверьте названия, потребности и допущенных сотрудников, прежде чем переходить к планировщику. После корректного импорта названия должны быть сразу понятны назначенным людям. Если вы импортируете внутренние коды, переименуйте их до рассылки. #### Зачем разделять задачи и планировщик Разделение позволяет не смешивать два решения: - **определить потребность**: какие посты существуют, где и по каким правилам; - **назначить людей**: кто обеспечивает эти посты на определённую неделю или период. Когда структура меняется мало, такое разделение позволяет использовать одни и те же задачи повторно и менять только людей или исключения. #### Инструкция 1. Откройте Управление персоналом > Назначения. 2. Создайте или импортируйте задачи, которые нужно обеспечить. 3. Проверьте названия, которые увидит команда. 4. Укажите потребности, площадки и допущенных сотрудников. 5. Задавайте только те совместимости, которые действительно разрешены. 6. Сохраните, затем откройте планировщик, чтобы назначить людей. #### См. также - [Построение сетки дежурств](#page-staffing.building-grids) - [Назначение сотрудников](#page-staffing.planner) - [Графики дежурств](#page-staffing.roster) - [Обзор модуля «Управление персоналом»](#page-staffing.overview) - [Обзор модуля «Управление отсутствиями»](#page-absences.overview) ### 7.4 Назначение сотрудников *Source: `help/ru/staffing/planner.md` · id: staffing.planner · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Управление персоналом** Экран Планировщик нужен, чтобы назначать людей на задачи, заданные в сетке дежурств. Это оперативный рабочий экран: выберите неделю, заполните ячейки, устраните предупреждения и сохраните изменения. #### Ручное назначение Для каждого временного слота и каждой задачи вы размещаете доступных сотрудников в нужной ячейке. Omniscol отмечает ситуации, которые стоит проверить: - сотрудник отсутствует; - недоступность или заданное ограничение; - сотрудник уже назначен в другом месте; - сотруднику не разрешена эта задача; - недельная нагрузка требует внимания. Планировщик рассчитан на реальные ситуации школьного надзора: студенты, работающие дежурными, у которых меняется доступность, периоды экзаменов, отсутствия, объявленные утром, посты, которые нужно срочно закрыть, и команды, которые нужно распределить равномерно. Планирование выполняется **вручную**: предупреждения, копирование и инструменты исправления направляют составление графика. Omniscol не расставляет сотрудников автоматически. #### Чтение предупреждений Цвета и подсказки показывают, почему назначение стоит проверить: отсутствие, недоступность, другая задача в тот же временной слот, сотрудник без разрешения на задачу или превышение нормы часов. Недельная сводка позволяет вернуться к нужной ячейке. Предупреждения различаются по степени серьёзности: красный конфликт требует немедленного исправления; предупреждение указывает на ситуацию, которую нужно решить в соответствии с правилами учебного заведения. #### Инструменты исправления Планировщик позволяет, в частности: - переходить по неделям и по дням; - показывать один день или всю неделю — как удобнее; - копировать одну неделю на другую, если структура повторяется, при необходимости отбирая копируемые дни или задачи; - включать режим ластика, чтобы стереть ячейку, строку или столбец; - отменять недавнее исправление; - сохранять изменения. Сотрудники, заблокированные в ячейке, остаются на месте при последующих ручных исправлениях. #### Копирование вместо работы с нуля Когда структура стабильна, скопируйте предыдущую неделю и исправьте только исключения: отсутствие, разовую недоступность, изменение экзамена, экскурсию или повышенную потребность на каком-либо посту. Это привычный способ не собирать заново весь график надзора вручную каждую неделю. Для нетипичных недель используйте подходящую сетку: каникулы, экзамены, дни открытых дверей или период с сокращённой командой. #### Отсутствия Отсутствия сотрудников, объявленные в модуле «Управление отсутствиями», учитываются при назначении. Отсутствующий сотрудник может появиться в предупреждениях по уже расставленным задачам, и так видно, какие посты нужно закрыть. Отсутствия показывают проблему там, где она возникает: администратор или координатор переназначает задачу, зная обстоятельства. #### Рабочая нагрузка Планировщик рассчитывает сведения о нагрузке по каждому сотруднику и по каждому дню, в частности охваченные периоды и длительность. Используйте эти данные, чтобы один сотрудник не брал на себя слишком много слотов и чтобы тяжёлые задачи не доставались всё время одной и той же команде. #### Общий доступ Планировщиком можно делиться в соответствии с параметрами общего доступа, доступными для аккаунта. Чтобы передать каждому сотруднику его личный график, лучше воспользуйтесь [графиком дежурств](#page-staffing.roster): он нагляднее и рассчитан на печать и рассылку. #### Инструкция 1. Откройте Управление персоналом > Планировщик. 2. Выберите неделю или период, с которым будете работать. 3. Убедитесь, что активна нужная сетка дежурств. 4. Назначьте сотрудников в ячейки. 5. Устраните предупреждения о доступности, об отсутствии или о сотруднике без разрешения на задачу. 6. Скопируйте неделю, если структура повторяется. 7. Сохраните, затем откройте график дежурств для рассылки. #### См. также - [Построение сетки дежурств](#page-staffing.building-grids) - [Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [Графики дежурств](#page-staffing.roster) - [Обзор модуля «Управление отсутствиями»](#page-absences.overview) ### 7.5 Создание графиков дежурств и общий доступ к ним *Source: `help/ru/staffing/roster.md` · id: staffing.roster · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-05-18* > **Option: Управление персоналом** Вкладка График дежурств показывает задачи, назначенные одному человеку или всем сотрудникам за выбранный период. Она нужна, чтобы разослать график после того, как назначения расставлены. Этот экран призван просто ответить на вопрос: «где мне нужно быть, во сколько и для какой задачи?» #### Два вида - **Вид списка**: задачи, сгруппированные по дням и расположенные в хронологическом порядке, с данными, удобными для личного просмотра. - **Вид сетки**: неделя в виде таблицы, где временные слоты идут по строкам, а дни — по столбцам. Отсутствия, периоды недоступности и полезные комментарии остаются на виду, чтобы не разослать противоречивый график. Вид списка показывает итоги по дням и по неделям. #### Печать и экспорт График дежурств можно распечатать. Вид сетки также предлагает экспорт в удобочитаемую таблицу, а из окна экспорта можно получить PDF. В зависимости от организации учебного заведения график можно: - распечатать для вывешивания; - экспортировать в PDF; - отправить по электронной почте за пределами Omniscol; - просматривать напрямую сотрудникам, вошедшим в свою учётную запись; - открыть по ссылке, если эта возможность используется в учётной записи. Печать остаётся привычным способом для службы надзора; тот же экран позволяет подготовить персональный PDF, передать вид одному человеку или дать сотрудникам возможность смотреть свой график под своей учётной записью. #### Общий доступ и календарь Общий доступ может включать веб-ссылку и подписку iCal, в зависимости от доступных опций. Как и для других ссылок общего доступа, задайте срок действия, соответствующий передаваемому периоду. Когда график адресован конкретному человеку, всегда проверяйте, что выбран нужный человек, прежде чем печатать, экспортировать или открывать к нему доступ. #### Все сотрудники или один человек Вы можете открыть график одного человека или всех сотрудников. Индивидуальный вид подходит для персональной рассылки; общий вид скорее служит для внутренней проверки перед рассылкой. #### Инструкция 1. Откройте Управление персоналом > График дежурств. 2. Выберите человека или всех сотрудников. 3. Выберите период. 4. Выберите Вид списка или Вид сетки. 5. Проверьте отсутствия и возможные предупреждения. 6. Распечатайте, экспортируйте или откройте доступ к графику в соответствии с предусмотренным способом рассылки. #### См. также - [Назначение сотрудников](#page-staffing.planner) - [Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [Ссылки общего доступа](#page-glossary.share-link) --- ## 8. Администрирование ### 8.1 Пользователи и роли *Source: `help/ru/admin/users-and-roles.md` · id: admin.users-and-roles · Audience: admin · Updated: 2026-08-07* Раздел администрирования пользователей объединяет учётные записи, с которыми можно войти в Omniscol. Основные представления — администраторы, преподаватели, ученики и, если включён модуль Управление персоналом, сотрудники. #### Основные роли | Техническая роль | Название в интерфейсе | Назначение | | --- | --- | --- | | `admin` | Администратор | Администрирование аккаунта школы. | | `teacher` | Преподаватель | Портал преподавателя, доступность, личное расписание, собственные отсутствия. | | `student` | Ученик | Портал ученика, личное расписание, собственные отсутствия. | | `staff` | Сотрудник | Сотрудники, планируемые в модуле Управление персоналом, если он включён. | Пользователь может совмещать несколько ролей. Тогда в меню отображаются модули, соответствующие всем его правам. Техническая роль `share` существует для некоторых подписанных ссылок. Это не обычная учётная запись: она нужна, чтобы открыть строго определённый круг данных, чаще всего только для чтения, по ссылке общего доступа. #### Доступные экраны - Администраторы: учётные записи администраторов. - Сотрудники: сотрудники учебного заведения (если модуль включён). - Преподаватели: преподаватели и приглашённые специалисты. - Ученики: ученики, студенты или слушатели — в зависимости от терминологии учебного заведения. - Все пользователи: сводное представление всех учётных записей. #### Общие поля Форма пользователя содержит, в частности: - имя, фамилию и пол; - дату рождения; - адрес электронной почты и телефон; - внешний идентификатор / номер личного дела; - логин, который формируется по параметрам аккаунта; - роли; - комментарий. В зависимости от роли появляются дополнительные поля: для преподавателей — рабочие часы, дисциплины и признак внешнего преподавателя; для учеников — распределение по классам и группам; для сотрудников — параметры работы. #### Действия со списком В зависимости от выбранной роли на экране доступны: - Импортировать данные для импорта или массового редактирования; - Пригласить пользователя для отправки приглашений; - Сменить пароль для задания паролей; - Отправить письмо для отправки сообщения; - Назначить в класс и Группы для учеников. Какие действия видны, зависит от доступных API, типа учётной записи и прав вошедшего в систему пользователя. > _Option: Настраиваемые роли_ #### Настраиваемые роли Опция **Настраиваемые роли** добавляет ограниченные административные роли для учётных записей администраторов. Она позволяет исключить некоторые модули или операции для учётной записи, которая должна администрировать не всё, а только часть. См. [Настраиваемые роли](#page-admin.customroles). Чтобы ограничить не операции, а данные — одно подразделение, одно направление подготовки, одно расписание, — та же опция добавляет [области](#page-admin.planning-domains): их назначают учётной записи как роль, и они складываются с ней. #### Ссылки общего доступа Публичные ссылки и подписанные ссылки общего доступа не обязательно подразумевают создание учётной записи. Веб-ссылки на расписания доступны только для чтения; однако некоторые целевые ссылки могут разрешать ограниченное действие, например ввод доступности преподавателя до истечения срока действия. #### Инструкция — Пригласить группу пользователей 1. Откройте экран, соответствующий роли: преподаватели, ученики, сотрудники или все пользователи. 2. Выберите нужные строки. 3. Нажмите Пригласить пользователя. 4. Убедитесь, что у каждого пользователя есть логин и адрес электронной почты. 5. Отправьте приглашения. Затем пользователи задают пароль по полученной ссылке. #### См. также - [Архитектура и роли](#page-overview.architecture-and-roles) - [Приглашение и активация пользователей](#page-getting-started.inviting-users) - [Настраиваемые роли](#page-admin.customroles) - [Области](#page-admin.planning-domains) - [Управление сотрудниками](#page-admin.staff) ### 8.2 Управление администраторами *Source: `help/ru/admin/admins.md` · id: admin.admins · Audience: admin · Updated: 2026-08-07* Экран **Администраторы** — это отфильтрованный список пользователей с ролью администратора (см. таблицу ролей в разделе [Пользователи и роли](#page-admin.users-and-roles)). Эта роль открывает доступ к операциям по настройке школы: пользователи, расписания, отсутствия, параметры, импорт, экспорт и публикация. #### Создать администратора Нажмите Добавить администратора в списке. Форма та же, что и для пользователей: - имя и фамилия; - пол; - e-mail и телефон, при необходимости; - внешний идентификатор / табельный номер, если учреждение его использует; - логин, сформированный по параметрам аккаунта; - роль администратора; - комментарий. У созданной учётной записи уже есть логин для входа. Чтобы активировать доступ, откройте карточку человека в списке пользователей: можно **задать пароль** (Пароль), **отправить письмо** (Отправить письмо) и **активировать или деактивировать** учётную запись (Активировать). Вход через поставщика удостоверений (SSO) остаётся альтернативой, см. [OIDC / SSO](#page-integrations.oauth2). #### Совмещать несколько ролей Одна учётная запись может иметь несколько ролей. Координатор может одновременно иметь роль «преподаватель» и роль администратора: он сохраняет свой портал преподавателя и получает доступ к экранам администрирования. Настраиваемые роли позволяют ограничить операции, которые может выполнять администратор. Без настраиваемой роли роль администратора остаётся глобальной. Чтобы ограничить данные, с которыми он работает, — подразделение, направление обучения, расписание, — учётной записи назначается [область планирования](#page-glossary.planning-domain) в дополнение к её ролям. См. [Области](#page-admin.planning-domains). #### Отозвать доступ администратора Чтобы снять права администрирования, отредактируйте учётную запись и уберите роль администратора. Не создавайте вторую учётную запись для того же человека без реальной необходимости: для такого случая предусмотрено совмещение ролей в одной учётной записи. Всегда оставляйте хотя бы одну рабочую учётную запись администратора, прежде чем менять права других администраторов. #### Инструкция — Создать администратора 1. Откройте Администраторы. 2. Нажмите Добавить администратора. 3. Укажите личные данные и e-mail, если собираетесь отправлять человеку письмо, затем убедитесь, что роль администратора указана. 4. Сохраните. Для подтверждения любого создания или изменения учётной записи администратора из соображений безопасности нужно ввести **свой** пароль администратора. 5. При необходимости выберите учётную запись в списке, чтобы **задать пароль**, **отправить письмо** или **активировать / деактивировать** доступ, в зависимости от способа развёртывания. #### См. также - [Пользователи и роли](#page-admin.users-and-roles) - [Настраиваемые роли](#page-admin.customroles) - [Области](#page-admin.planning-domains) - [OIDC / SSO](#page-integrations.oauth2) ### 8.3 Настраиваемые роли администрирования *Source: `help/ru/admin/customroles.md` · id: admin.customroles · Audience: admin · Options: customroles · Updated: 2026-08-07* > **Option: Настраиваемые роли** **Настраиваемые роли** позволяют ограничить права учётной записи администратора. Принцип здесь вычитающий: сначала берётся объём администрирования, а затем из него убираются модули и операции, которыми пользователь не должен пользоваться. Эту опцию нужно включить, чтобы передать часть администрирования другому человеку, не выдавая ему все глобальные права. #### Почему не дать все права администратора? Стандартная роль администратора даёт все права на учётную запись школы. Для многих координирующих функций это слишком много: - координатор отсутствий должен видеть отсутствия и управлять ими, но не изменять расписания или глобальные параметры; - планировщик должен строить расписания, не обязательно имея доступ к импорту и экспорту; - кадровой службе может понадобиться редактировать карточки преподавателей, не затрагивая курсы; - техническая служба может просматривать кабинеты, информационные панели и ресурсы, не управляя пользователями. #### Что позволяет форма Экран **Настраиваемые роли** предлагает: - **название роли**; - разрешения по модулям; - разрешения по операциям, в зависимости от того, что предоставляет каждый модуль. Разрешения относятся к модулям и их операциям, а не к самим данным: настраиваемая роль не ограничивает доступ к конкретному классу, площадке, дисциплине или периоду. Она определяет, что человек может делать, но не то, с какими данными он может это делать. #### Настраиваемая роль и область планирования За данные отвечает [область планирования](#page-glossary.planning-domain). Эти два понятия отвечают на разные вопросы и назначаются вместе: - настраиваемая роль определяет, **какие операции** выполняет администратор; - область определяет, **с какими данными** он их выполняет — какие классы, площадки, кабинеты, дисциплины, расписания. Как только координатор должен управлять своим подразделением, своим направлением или своим учебным заведением, не затрагивая данные коллег, ограничение задаёт область. См. [Области](#page-admin.planning-domains). #### Назначение настраиваемой роли После создания роль появляется в списках выбора ролей в карточках пользователей. Вы назначаете её учётной записи администратора так же, как любую другую роль. Пользователь может совмещать несколько стандартных и настраиваемых ролей. Тогда он получает объединение оставшихся разрешений. #### Типичные сценарии использования - **Учебная часть и дежурные сотрудники** — права на отсутствия, Управление персоналом и просмотр расписаний, без доступа к настройке. - **Методические координаторы** — права на нужные экраны расписания, без глобальных параметров. - **Техническая служба** — доступ к кабинетам, информационным панелям или ресурсам в зависимости от разрешённых операций. - **Административные помощники** — управление учениками или преподавателями без доступа к чувствительным настройкам. #### Аудит действий Действия, выполненные с настраиваемой ролью, появляются в журналах, если опция журналов включена и соответствующий маршрут фиксируется в журнале. См. [Журналы активности (логи)](#page-admin.logs). #### Инструкция — Создать роль «Координатор отсутствий» 1. Откройте **Настраиваемые роли** в модуле Администрирование. 2. Создайте роль с названием `Координатор отсутствий`. 3. Разрешите необходимые действия в модуле Управление отсутствиями. 4. Оставьте доступ на чтение расписаний, если координатору нужно сверяться с ними при обработке отсутствия, но уберите возможность изменения. 5. Исключите модули, которые не должны быть доступны, в частности Управление расписанием, глобальные параметры или импорт и экспорт, если они не входят в его зону ответственности. 6. Сохраните, затем назначьте роль нужным учётным записям администраторов. 7. Если журналы активности включены, контролируйте действия через [Журналы активности (логи)](#page-admin.logs). #### См. также - [Области](#page-admin.planning-domains) - [Пользователи и роли](#page-admin.users-and-roles) - [Управление администраторами](#page-admin.admins) - [Ограничения видимости](#page-admin.visibility-restrictions) - [Журналы активности (логи)](#page-admin.logs) ### 8.4 Области планирования *Source: `help/ru/admin/planning-domains.md` · id: admin.planning-domains · Audience: admin · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Настраиваемые роли** **Область планирования** задаёт администратору **рамки** — данные, которыми он управляет, — и **права** — действия, которые он может в них выполнять. Если в одном аккаунте и в одном расписании объединены несколько подразделений, направлений или учебных заведений, каждый планировщик работает со своей частью: он не теряется в общем массиве и не затрагивает чужие данные. Администратору можно назначить одну или несколько областей. Пока у него нет ни одной, он сохраняет полный доступ к аккаунту: области ограничивают только те учётные записи, которые вы хотите ограничить, остальные остаются без изменений. #### Область или настраиваемая роль? [Настраиваемые роли](#page-admin.customroles) и области отвечают на два разных вопроса и используются вместе: - настраиваемая роль определяет, **какие операции** выполняет администратор — какие модули ему доступны для просмотра, изменения или удаления; - область определяет, **с какими данными** он работает — какие классы, площадки, кабинеты, дисциплины и расписания. Настраиваемая роль не отличает один класс от другого, а область отличает. Обе настройки можно дать одному человеку: роль ограничивает его операции, область — его поле деятельности. Области доступны в аккаунтах Premium и включаются той же опцией, что и настраиваемые роли. #### Открыть области Областями управляют из списка администраторов. В разделе Администрирование откройте **Пользователи**, вкладку администраторов, затем нажмите Области. Открывать этот экран и назначать области может только администратор без ограничений, то есть без области. Управление самими учётными записями администраторов тоже остаётся за ним: планировщик, ограниченный областью, не создаёт и не изменяет учётные записи администраторов. #### Рамки: какие данные Рамки задаются в разделе Фильтр. Они делятся на измерения — от самого широкого до самого узкого: - **Подразделение** и **Дисциплины** фильтруют сквозным образом: они действуют на всё, с чем работает планировщик, независимо от расписания; - **расписание**, а ниже **площадки** (и их **кабинеты**) и **классы** (и их **группы**) следуют структуре расписания. Измерение, оставленное на значении **Все**, ничего не ограничивает. Чтобы его ограничить, выберите критерий и значение: - **Равно** — точное значение (площадка, уровень…); - **Начинается с** — префикс; удобен, когда коды дисциплин или классов указывают на учебный модуль (`МАТ-`, `ИНФ-ПР`…); - **Содержит** — значение, входящее в название. Для числовых критериев, например вместимость кабинета, эти варианты заменяются порогами **≥** и **≤** — так можно передать лекционные залы отдельному планировщику или, наоборот, исключить их из области. Любой критерий можно переключить в режим **Исключить**, чтобы не включать, а убирать. Кнопка **+** добавляет альтернативу («или») в том же измерении — несколько площадок, несколько уровней, — а измерения действуют одновременно: занятие входит в рамки, когда удовлетворяет **всем** ограниченным измерениям. Каждое измерение предлагает свои критерии: | Измерение | Критерии | | --- | --- | | Подразделение | Название | | Дисциплины | Название, Код, Тип занятия, Группа дисциплин | | Расписание | Название, Опубликовано, Дата начала и Дата окончания | | Площадки | Название | | Кабинеты | Название, Здание, Специализация, Метки, Вместимость | | Классы | Название, Уровень, Площадка | | Группы | Название, Код | Вверху фильтра значок глаза открывает Обзор: Обзор показывает число охваченных объектов и выборку из них, чтобы проверить рамки до сохранения. У каждой строки есть собственный такой значок — для проверки одного измерения отдельно. #### Права: какие действия Раздел Права предлагает два способа применить рамки: - **Ограничить** — «Изменять можно только данные фильтра, с отмеченными ниже правами». Планировщик видит всё, но изменяет только то, что входит в его рамки, и только в пределах предоставленных прав. - **Спрятать** — «Фильтр настраивает только отображение: все права сохраняются». Рамки разгружают экран, ничего не отнимая: это удобно, чтобы сосредоточиться на своём подразделении, сохраняя возможность работать со всем остальным. В режиме Ограничить права уточняются в матрице. Принцип тот же, что у настраиваемых ролей, — вычитающий: по умолчанию разрешено всё, а вы снимаете флажки с того, что область запрещает. Две таблицы читаются по столбцам Изменение, Создание и Удаление: - **объекты**: Параметры расписания (только изменение), Классы, Преподаватели, Кабинеты, Дисциплины и Площадки; - **Занятия**: их создание, изменение и удаление, а для точечного изменения — позиции на сетке, преподаватель, кабинет, формат, ссылка на видеоконференцию, статус, продолжительность и комментарий занятия. Кабинет, формат и ссылка на видеоконференцию находятся в одном окне, но остаются тремя отдельными правами: право выбирать очный или дистанционный формат не открывает назначение кабинетов. Чтение остаётся открытым всегда: область ограничивает то, что человек записывает, но никогда не то, что он видит. #### Что видит планировщик Планировщик видит расписание целиком — это позволяет ему заметить конфликт между его рамками и рамками коллеги, — но в списках классы, кабинеты и дисциплины показаны только его объекты. Там, где элементы отфильтрованы, появляется отметка **Скрыто вашими областями**; по щелчку она показывает, что скрыто и какой областью. Это прямой ответ на вопрос «я не вижу такой-то кабинет»: информация есть на экране. Если действие выходит за рамки, Omniscol отклоняет его и объясняет причину: фильтрация отображения дополняется проверкой при каждом сохранении. #### На экране занятий Элемент управления, недоступный по правам, остаётся **видимым, но неактивным** и не исчезает: планировщик видит, что функция существует, и понимает, чего ожидать. Это верно везде, где изменяется занятие, — на сетке, в карточке занятия и в табличном виде. Меню Действия подчиняется тому же правилу, действие за действием: массовое снятие кабинетов зависит от права на кабинет, «автоматическое распределение» — от права на создание, «удалить все занятия» — от права на удаление. Кроме того, массовое действие применяется только к занятиям из рамок: выделение, которое за них выходит, **обрезается**, а не отклоняется целиком, и планировщик получает предупреждение. ##### Формирование расписания Формирование требует отдельного права: многие делегированные планировщики управляют своими занятиями и ни разу не запускают формирование. Когда право предоставлено, охват расчёта **ограничен рамками**: планировщик может сузить его ещё больше, но не расширить. Именно это делает результат применимым: иначе формирование, перемещающее занятие за пределы рамок, было бы отклонено при сохранении, и вся работа пропала бы. Настройки формирования — исключение из правила: они сохраняются с правом формировать, даже без права на параметры расписания. ##### Импорт таблицы занятий Столбцы, которые планировщику нельзя изменять, отображаются только для чтения: он читает данные, но не меняет их. Класс, дисциплина и группа — исключение, потому что это не простые поля: очистив любое из них, вы удалите занятие, а изменив — перенесёте его в другое место. Поэтому эти три столбца открываются только при наличии всех трёх прав вместе — на создание, изменение **и** удаление. Если хотя бы одна строка выходит за рамки, весь импорт отклоняется, а проблемные строки указываются. Omniscol никогда не отправляет ничего, кроме введённого: лучше явный отказ, чем молча урезанный импорт. #### Назначить область Область назначается из карточки администратора, как и роль. Можно назначить несколько областей: тогда рамки планировщика суммируются, каждая со своими правами. Области складываются, не сливаясь: действие разрешено, как только его покрывает хотя бы одна область. Создать, дублировать или удалить область можно с того же экрана: Добавить добавляет область, Сохранить сохраняет. #### Инструкция — Создать область «Подразделение Москва» 1. Откройте Администрирование → **Пользователи**, вкладку администраторов, затем нажмите Области. 2. Нажмите Добавить, затем назовите область «Подразделение Москва». 3. В разделе Фильтр для измерения Подразделение выберите Равно и значение подразделения. Остальные измерения оставьте на значении Все. 4. Проверьте охват с помощью значка глаза Обзор. 5. Оставьте режим Ограничить. В матрице снимите флажки с того, что этому планировщику делать не следует, — например, с удаления классов. 6. Сохраните с помощью Сохранить. 7. Назначьте область нужной учётной записи администратора из её карточки. #### См. также - [Настраиваемые роли](#page-admin.customroles) - [Пользователи и роли](#page-admin.users-and-roles) - [Управление администраторами](#page-admin.admins) - [Ограничения видимости](#page-admin.visibility-restrictions) ### 8.5 Управление преподавателями *Source: `help/ru/admin/teachers.md` · id: admin.teachers · Audience: admin · Updated: 2026-05-15* На экране **Преподаватели** собраны пользователи с ролью «преподаватель». В зависимости от учреждения их называют также педагогами, лекторами или инструкторами. Этот экран нужен, чтобы создавать учётные записи, вести данные преподавателей, их дисциплины и доступность, а также просматривать их расписание. #### Поля карточки Карточка преподавателя содержит общие поля пользователя и поля, свойственные только преподавателям: - имя, фамилия и пол; - дата рождения; - электронная почта и телефон; - внешний идентификатор / табельный номер; - логин; - рабочие часы; - преподаваемые дисциплины; - статус внешнего преподавателя для почасовиков и приглашённых лекторов; - доступность и временные ограничения; - комментарий. На вкладке **Расписание** собрано полное расписание преподавателя за все учебные годы, а фоном показана его сводная доступность. Это экран только для просмотра: учебная нагрузка распределяется в самих расписаниях. Кнопка **Общий доступ** в карточке открывает экран общего доступа, где, в частности, есть подписка iCal именно этого преподавателя, действующая на все учебные годы. #### Преподаваемые дисциплины Дисциплины, закреплённые за преподавателем, используются для фильтрации и подготовки распределения нагрузки. Их выбирают в справочнике официальных или собственных дисциплин. #### Доступность Вкладка **Доступность** позволяет администратору вводить или исправлять доступность преподавателя. В зависимости от настроек учреждения ввод ведётся в недельном режиме, в режиме календаря, в смешанном режиме или отключён. Преподаватель также может сам указать свою доступность на своём портале, если учреждение это разрешает. #### Массовые действия Выбрав преподавателей в основном списке, вы можете также пригласить их, задать им пароль или отправить сообщение — в зависимости от функций, включённых для учётной записи. Список можно предварительно отфильтровать. Кнопка **Импортировать данные** открывает таблицу, похожую на электронную: в ней можно добавлять, исправлять или удалять сразу нескольких преподавателей, а также экспортировать их список. Два столбца доступны только для чтения и предназначены лишь для экспорта: - **Доступность** — выводится текстом в том виде, в каком была сохранена; - **Классы** — классы, в которых у преподавателя есть занятия, по данным опубликованных расписаний текущего учебного года. > _Premium_ Преподавателей можно синхронизировать из внешней системы: Синхронизировать открывает сопоставление с этой системой. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Инструкция — Создать преподавателя 1. Откройте Преподаватели. 2. Нажмите Добавить преподавателя. 3. Укажите личные данные, электронную почту, логин или внешний идентификатор — в соответствии с внутренними правилами вашего учреждения. 4. Добавьте преподаваемые дисциплины. 5. Укажите рабочие часы, если ваше учреждение их использует. 6. Сохраните, затем пригласите преподавателя, если он должен входить в систему. #### См. также - [Пользователи и роли](#page-admin.users-and-roles) - [Управление учениками](#page-admin.students) - [Управление дисциплинами](#page-admin.subjects) - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Внешние преподаватели (приглашённые лекторы)](#page-higher-ed.external-faculty) ### 8.6 Управление учениками *Source: `help/ru/admin/students.md` · id: admin.students · Audience: admin · Plan: standard · Updated: 2026-05-15* На экране **Ученики** перечислены пользователи с ролью ученик. В зависимости от типа учебного заведения их называют также студентами или слушателями. Этот экран нужен, чтобы создавать учётные записи, следить за их статусом и управлять распределением учеников по классам и группам по учебным годам. #### Поля карточки Карточка ученика содержит общие поля пользователя: - имя, фамилия и пол; - дата рождения; - e-mail и телефон; - внешний идентификатор / номер личного дела; - логин; - комментарий. Законные представители, подтверждающие документы и уведомления родителям не входят в поля этой карточки. #### Распределение по классам и группам Учебные назначения задаются на вкладке распределения ученика. Распределение, в частности, указывает: - основной класс; - учебный год, к которому оно относится; - даты начала и окончания, если распределение охватывает не весь год; - группы, которые посещает ученик, при необходимости по неделям; - возможные пересечения, которые нужно устранить. В течение учебного года у ученика может быть несколько распределений, например после перехода в другой класс, при частичном обучении или при частичном повторном обучении. #### Массовые действия Выделив учеников в основном списке, вы можете назначить их в класс кнопкой **Назначить в класс** или в группы кнопкой **Группы** (если ученики из одного класса), пригласить их, задать им пароль, отправить сообщение, деактивировать при выбытии из учебного заведения или удалить насовсем. Список можно заранее отфильтровать, в частности по классу, в который они распределены. Кнопка **Импортировать данные** открывает таблицу, похожую на электронную: в ней можно добавить или исправить сразу нескольких учеников и экспортировать их список (CSV, Excel, PDF). Для каждого учебного года в ней есть два столбца, доступных только для чтения и предназначенных исключительно для экспорта: - **Классы** — класс или классы, в которых ученик числится в текущем учебном году и следующих; - **Группы** — группы, которые он посещает в текущем учебном году и следующих. #### Повторное обучение и нестандартные случаи Частичное повторное обучение — когда ученик проходит курсы, распределённые между двумя уровнями, — оформляется так: его распределяют в оба класса на один и тот же период, и его расписание объединяет курсы обоих классов. Omniscol не проверяет пересечения по времени между ними, это нужно сделать вам. #### Инструкция — Создать и распределить ученика 1. Откройте Ученики. 2. Создайте ученика или импортируйте его в массовом режиме. 3. Откройте его карточку, затем вкладку распределения нужного учебного года. 4. Добавьте класс, проверьте даты, затем при необходимости выберите группы, которые он посещает. 5. Сохраните распределения. 6. Пригласите ученика, если хотите, чтобы он входил на портал. #### См. также - [Пользователи и роли](#page-admin.users-and-roles) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Импорт и экспорт](#page-admin.import-export) ### 8.7 Управление сотрудниками *Source: `help/ru/admin/staff.md` · id: admin.staff · Audience: admin · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-25* > **Option: Управление персоналом** Экран **Сотрудники** содержит список пользователей с ролью **Сотрудник**. Он есть только в аккаунтах с модулем **Управление персоналом**: здесь вы заводите людей (дежурных, организаторов экзаменов, помощников воспитателей…), которых затем будете планировать в [Управление персоналом](#page-staffing.overview). Эта вкладка нужна, чтобы создавать учётные записи, вести данные сотрудников и их рабочие часы. **Назначение на задачи** (дежурства, надзор, экзамены…) выполняется в модуле Управление персоналом — см. [Назначения](#page-staffing.assignments). #### Поля карточки Карточка сотрудника содержит общие поля пользователя и несколько полей, свойственных только сотрудникам: - имя, фамилия и пол; - дата рождения; - e-mail и телефон; - внешний идентификатор / табельный номер; - логин; - **рабочие часы** (базовый объём для учёта); - роли и комментарий. Из списка открывается **подробная карточка** (Детальная информация), где можно просмотреть и дополнить эти сведения по каждому сотруднику. #### Сотрудник и модуль Управление персоналом Разделение сделано намеренно: **здесь** вы ведёте *людей* (справочник сотрудников), **в [Управление персоналом](#page-staffing.overview)** — их *планирование*: сетки, задачи и назначения. Сотрудника, созданного на этом экране, можно выбрать среди допущенных сотрудников в [назначениях](#page-staffing.assignments). #### Действия со списком В списке кнопка Добавить сотрудника добавляет сотрудника, а Импортировать данные открывает **массовое** создание или исправление. Действия над выделенными записями позволяют также приглашать сотрудников, задавать пароли, активировать учётные записи или удалять их, в зависимости от доступных API. #### Инструкция — Создать сотрудника 1. Откройте Сотрудники. 2. Нажмите Добавить сотрудника. 3. Укажите личные данные, e-mail, логин или внешний идентификатор в соответствии с правилами вашего учреждения. 4. Укажите **рабочие часы**, если ваше учреждение ведёт их учёт. 5. Сохраните, затем пригласите сотрудника, если хотите, чтобы он входил на свой портал. 6. После этого спланируйте его задачи в [Управление персоналом](#page-staffing.assignments). #### См. также - [Пользователи и роли](#page-admin.users-and-roles) - [Управление преподавателями](#page-admin.teachers) - [Управление персоналом — обзор](#page-staffing.overview) - [Назначения](#page-staffing.assignments) - [Управление персоналом](#page-glossary.staffing) ### 8.8 Управление дисциплинами (официальными и собственными) *Source: `help/ru/admin/subjects.md` · id: admin.subjects · Audience: admin · Updated: 2026-05-14* Экран **Дисциплины** служит для управления собственными дисциплинами школы и, если общий справочник включён, позволяет искать официальные дисциплины страны, указанной в настройках. #### Общие и собственные дисциплины - **Общие дисциплины** берутся из справочника Omniscol для страны школы. Их можно искать и добавлять, пока этот справочник не отключён. - **Собственные дисциплины** принадлежат школе. Они охватывают местные названия, модули, факультативы и учебные блоки, которых нет в общем справочнике. #### Поля собственной дисциплины | Поле | Обязательное? | Назначение | | --- | --- | --- | | **код** | Да | Краткое обозначение дисциплины, которое используется вместе с названием (оно может быть длинным, особенно в высшем образовании). Часто это официальный шифр — например, коды дисциплин из перечней министерств образования, — как правило, заглавными буквами и/или цифрами. | | **название** | Да | Полное наименование дисциплины: отображается в списках выбора курсов, в расписании и в файлах экспорта. | | **краткое название** | Нет | Сокращённое наименование для показа в расписании, короче полного названия. | | **родительская дисциплина** | Нет | Привязывает дисциплину к другой дисциплине, чтобы построить иерархию. | | **группа дисциплин** | Нет | Объединяет дисциплины. В списке доступны группы по умолчанию из справочника страны и группы, созданные в вашей учётной записи. | | **цвет** | Нет | Цвет для визуального отличия. При создании вы выбираете его из палитры оттенков, хорошо читаемых на экране; если цвет не выбран, он подбирается автоматически по названию. | Код и название — оба обязательны при создании. Старайтесь не менять код после того, как он стал использоваться в ваших импортах, экспортах или обмене данными с внешней системой. #### Массовое создание и редактирование Кнопка [table] открывает **массовое** создание и редактирование собственных дисциплин: можно ввести или заменить сразу несколько дисциплин одной операцией в сетке, похожей на электронную таблицу. Если удалить строку сетки и подтвердить изменения, соответствующая дисциплина будет удалена из каталога: сетка заменяет весь набор собственных дисциплин своим содержимым. В этой сетке цвет принимает любое шестнадцатеричное значение, без палитры оттенков, предлагаемой при создании, — но результат может плохо читаться. Собственную дисциплину можно удалить, даже если она использовалась в прошлых или опубликованных расписаниях. Так вы можете из года в год очищать каталог дисциплин, не затрагивая эти расписания: каждый класс хранит локальную копию данных дисциплины (название, краткое название, код), а расписание сохраняет назначенный ей цвет. Поэтому дисциплина продолжает отображаться и после удаления из каталога. О принципе локальной копии см. [Полная модель данных](#page-integrations.data-model-full). > _Premium_ Если настроена синхронизация с внешней системой, Синхронизировать открывает сопоставление с этой системой. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Типы занятий На этом же экране показан и простой список типов занятий. См. [Типы занятий](#page-admin.lesson-types). > _Premium_ Типы занятий также можно синхронизировать из внешней системы: Синхронизировать открывает сопоставление. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Инструкция — Добавить дисциплину 1. Откройте Дисциплины. 2. Для общей дисциплины воспользуйтесь поиском по справочнику, если он доступен. 3. Для дисциплины, существующей только в вашем учреждении, нажмите кнопку **Создать** — Создать. 4. Укажите код и название — оба поля обязательны, — затем при необходимости заполните краткое название, группу дисциплин, родительскую дисциплину или цвет. 5. Сохраните. Дисциплина станет доступна в списках выбора курсов и в карточках преподавателей. #### См. также - [Типы занятий](#page-admin.lesson-types) - [Управление преподавателями](#page-admin.teachers) - [Дисциплина](#page-glossary.subject) ### 8.9 Типы занятий *Source: `help/ru/admin/lesson-types.md` · id: admin.lesson-types · Audience: admin · Updated: 2026-05-14* В модуле **Администрирование** **тип занятия** — это короткая метка, которая закрепляется за занятиями и позволяет различать такие форматы, как `Лекция`, `Семинар`, `Практикум`, `Экзамен` или `Проект`. Типы занятий образуют список текстовых меток; цвет и значок к ним не привязываются. #### Где ими управлять Список типов занятий ведётся на экране **Дисциплины** и на экране **Параметры**, в разделе **Тип занятия**. Используются следующие кнопки: - **Создать** — добавить новый тип; - **Сохранить** — сохранить список. Порядок отображения меняется перетаскиванием. #### Параметр «Обязательный тип занятия» Параметр Обязательный тип занятия настраивается на экране **Параметры**. Когда он включён, при вводе курса (то есть дисциплины, назначенной классу в расписании) необходимо указать тип. Это удобно, если вы экспортируете занятия в ERP-систему, которой нужны эти сведения. #### Рекомендации - Держите список коротким и стабильным. - Не переименовывайте тип, который уже используется в работе, не проверив импорт и экспорт, опирающиеся на него. - Используйте типы, чтобы различать педагогические форматы, а не чтобы заменять дисциплины или формы проведения занятий (очно/дистанционно). #### Инструкция — Добавить тип 1. Откройте экран **Дисциплины**. 2. В разделе **Тип занятия** нажмите **Создать**. 3. Введите название типа. 4. При необходимости измените порядок в списке. 5. Сохраните кнопкой **Сохранить**. #### См. также - [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types) - [Управление дисциплинами](#page-admin.subjects) ### 8.10 Учебный год и каникулы *Source: `help/ru/admin/school-year.md` · id: admin.school-year · Audience: admin · Plan: standard · Updated: 2026-06-26* В модуле **Администрирование** экран **Учебный год** задаёт периоды, в рамках которых интерпретируются расписания, каникулы, отсутствия и распределение учеников. Иногда учебный год называют академическим годом. #### Создать учебный год Учебный год включает: - **название**; - **дату начала**; - **дату окончания**. При создании Omniscol может предложить импортировать общие каникулы выбранной в настройках страны, если для этого периода есть данные. Ненужные каникулы можно снять с выбора. #### Текущий учебный год Список **Текущий учебный год** определяет год, который по умолчанию показывается в приложении и на порталах. При смене значения у всех пользователей меняется контекст по умолчанию. Это также единственный год, доступный ученикам. Пусть текущим будет год, по которому школа реально работает каждый день. Чтобы подготовить следующий год, создайте новый учебный год и работайте с его расписаниями, не назначая его текущим слишком рано. #### Каникулы В каждом учебном году есть список каникул: - название; - дата начала; - дата окончания. Их можно добавлять по одному, изменять, удалять или вести в таблице через **Таблица**. #### Чередование недель Если в общих параметрах включено чередование недель, на экране появляется шкала для настройки чередования в течение года. Сохранить настройки можно кнопкой **Сохранить**. Формат обозначений (`A, B, ...`, `1, 2, ...` или отключено) задаётся в общих параметрах. **Сдвиг из-за каникул**: если перед каникулами была неделя A, а после них нужно начать с недели B, щёлкните по нужным неделям на шкале, чтобы создать **виртуальный сдвиг**. Дальнейшее чередование пересчитается по календарю. #### Инструкция — Подготовить следующий год 1. Откройте экран **Учебный год**. 2. Создайте следующий год: укажите название, дату начала и дату окончания. 3. Импортируйте каникулы или введите их вручную. 4. Настройте чередование недель, если ваше учебное заведение его использует. 5. Затем создайте или продублируйте расписания в модуле **Управление расписанием**. 6. Меняйте текущий учебный год только тогда, когда пользователи должны видеть этот год по умолчанию. #### См. также - [Учебный год](#page-core-concepts.school-year) - [Учебный год](#page-glossary.school-year) - [Публикация расписания](#page-timetables.publication) - [Подготовка к следующему учебному году](#page-timetables.next-school-year) ### 8.11 Общие параметры школы *Source: `help/ru/admin/parameters.md` · id: admin.parameters · Audience: admin · Updated: 2026-05-14* В модуле **Администрирование** на экране **Параметры** находится общая конфигурация школы. Одни параметры сразу применяются ко всей учётной записи, другие служат значениями по умолчанию для будущих расписаний. #### Основные параметры На экране можно, в частности, настроить: - **название школы**; - **часовой пояс**; - **текущий учебный год**; - **уровни классов** с помощью Создать; - **часы работы** для учётных записей, которые используют модуль Управление персоналом; - **способ ввода доступности преподавателей**; - **ограничение просмотра для учеников**; - **ограничение просмотра для преподавателей**; - **ограничение входа по ролям**; - **использование отчества**; - **правило написания имён заглавными буквами**; - **синтаксис логина**; - **первый день недели**; - **формат чередования недель**; - **обязательность типа занятия**; - **включение или отключение общего справочника дисциплин**; - **логотип школы**. Квоты на резервные копии и срок хранения журналов не относятся к обычным настройкам этого экрана. Omniscol включает или меняет их в соответствии с договором учебного заведения. #### Уровни **Уровни** позволяют упорядочить классы по ступеням обучения: 5 класс, 6 класс, бакалавриат, магистратура, 1 курс, 2 курс и т. д. Они входят в **общие** настройки учётной записи. Здесь их можно создавать, удалять и менять их порядок. Затем уровни используются в классах, в некоторых фильтрах и в нескольких представлениях диагностики. #### Параметры просмотра и входа Параметры Ограничение просмотра расписания для учеников, Ограничение просмотра расписания для преподавателей и Ограничение входа в приложение описаны в разделе [Ограничения видимости](#page-admin.visibility-restrictions). #### Типы занятий и общие дисциплины Параметр Обязательный тип занятия определяет, нужно ли обязательно указывать тип при вводе курса. Параметр общих дисциплин управляет доступом к официальному справочнику страны. #### Логотип Загруженный логотип хранится в учётной записи, и интерфейс использует его там, где это предусмотрено, в частности на экранах входа и в самом приложении. #### Инструкция — Настройка учётной записи 1. Откройте **Параметры**. 2. Проверьте название школы, часовой пояс и текущий учебный год. 3. Перед созданием расписаний настройте уровни, первый день недели и чередование недель. 4. Настройте ограничения просмотра и входа в соответствии с политикой вашего учебного заведения. 5. Сохраните общие параметры с помощью Сохранить. #### См. также - [Настройка аккаунта школы](#page-getting-started.setup-school) - [Учебный год и каникулы](#page-admin.school-year) - [Управление дисциплинами](#page-admin.subjects) - [Ограничения видимости](#page-admin.visibility-restrictions) - [Расширенные параметры и персонализация](#page-admin.advanced-parameters) ### 8.12 Расширенные параметры и персонализация *Source: `help/ru/admin/advanced-parameters.md` · id: admin.advanced-parameters · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ В модуле **Администрирование** экран **Параметры** на аккаунтах Premium содержит **расширенные** настройки в дополнение к общим параметрам. Эта страница описывает расширенные функции; о базовых настройках см. [Общие параметры школы](#page-admin.parameters). #### Подразделения **Подразделения** позволяют группировать классы по внутренней организации: филиал, факультет, направление, программа или любая другая структура, принятая в вашем учебном заведении. Это понятие **необязательное** и не совпадает с площадками: площадка — это физическое место со своей временной сеткой, кабинетами и временем в пути, а подразделение — просто уровень логической организации. Подразделение особенно полезно, когда география плохо совпадает с вашей логической организацией: несколько факультетов в одних и тех же зданиях или несколько школ одной группы, которые совместно используют несколько площадок в разных сочетаниях. Даже если подразделения и площадки совпадают, такой уровень может пригодиться для фильтров и группировок. С помощью **Создать** создавайте только те подразделения, которые действительно помогают организовывать или фильтровать работу. После этого они становятся доступны на экранах создания классов и в некоторых фильтрах диагностики. #### Переопределение переводов и терминологии На этом экране можно также **переопределять переводы**, чтобы адаптировать отображаемую лексику под ваше учебное заведение. Эта область служит для настройки подписей, которые видны в интерфейсе, и не затрагивает функциональную структуру продукта. Есть два разных механизма: - Правила замены переводов: они заменяют один термин другим в наборе подписей; - Переопределения переводов: они напрямую заменяют значение конкретного перевода. ##### Правила замены Правила замены нужны, чтобы привести лексику к единообразию сразу во многих подписях. Типичные примеры: - заменить `Преподаватель` на `Лектор`; - заменить `Ученик` на `Студент`; - адаптировать отдельные термины к культуре учебного заведения. Правила **упорядочены**. Порядок имеет значение: правило, стоящее выше, применяется раньше последующих. На экране можно: - ввести исходный и целевой текст, затем подтвердить кнопкой **Добавить**; - просмотреть затронутые подписи; - изменить порядок правил; - удалить правило. Доступные опции уточняют тип замены: - `Aa`: учитывать регистр; - `ab` с подчёркиванием: полное совпадение; - `.*`: регулярное выражение. Используйте правила, когда нужно последовательно изменить термин сразу на нескольких экранах. Правила сохраняются **в своей собственной области**: добавление, удаление и изменение порядка записываются отдельно от остальных параметров страницы. ##### Переопределение отдельных ключей Переопределение отдельных ключей нужно, чтобы исправить или переписать подпись **в конкретном случае**. На экране можно: - найти существующий перевод; - добавить его в список переопределений; - ввести собственный вариант; - сохранить или удалить это переопределение. Используйте этот режим, когда общее правило было бы слишком широким или когда нужно переписать целую фразу, а не отдельный термин. Каждое переопределение ключа сохраняется **построчно** с помощью собственной кнопки сохранения или удаления. ##### Рекомендации по использованию Правила и переопределения предназначены для настройки **отображаемой лексики**. Они не меняют ни лежащие в их основе предметные понятия, ни внутренние идентификаторы, ни поведение приложения. Отдавайте предпочтение: - **правилу** для повторяющегося переименования; - **переопределению ключа** для локального исключения или целой подписи. Избегайте слишком широких или неоднозначных замен: из-за них справка, поиск и терминология могут стать несогласованными от экрана к экрану. #### Инструкция 1. Откройте **Параметры** в модуле **Администрирование**. 2. Найдите расширенную область, подходящую для вашей задачи: подразделения или переопределение переводов. 3. Для подразделений создайте и упорядочьте подписи, нужные вашей организации. 4. Для переводов выберите между общим правилом и точечным переопределением в зависимости от масштаба изменения. 5. Сохраняйте каждую область её собственным способом: правила сохраняются в своём блоке, а переопределения ключей подтверждаются построчно. #### См. также - [Общие параметры школы](#page-admin.parameters) - [Ограничения видимости](#page-admin.visibility-restrictions) - [Подразделение](#page-glossary.campus) - [Конфликты и диагностика](#page-timetables.conflicts) ### 8.13 Ограничения видимости и входа *Source: `help/ru/admin/visibility-restrictions.md` · id: admin.visibility-restrictions · Audience: admin · Plan: standard · Updated: 2026-05-14* В модуле **Администрирование** на экране **Параметры** собраны несколько точечных ограничений: горизонт просмотра для учеников, скрытие расписания преподавателей друг от друга и блокировка входа по ролям. #### Ограничение для учеников Параметр Ограничение просмотра расписания для учеников задаёт количество будущих недель, включая текущую, в течение которых опубликованное расписание остаётся видимым для учеников. Вы можете указать число недель или значение **Неограниченно**. Это ограничение определяет временное окно, открытое для учеников: каждый видит опубликованное расписание вплоть до выбранного горизонта. #### Ограничение для преподавателей Параметр Ограничение просмотра расписания для преподавателей скрывает расписание других преподавателей. Он распространяется на фильтры и экраны просмотра: преподаватель видит своё собственное расписание, но не имеет доступа к расписанию коллег. #### Ограничение входа Параметр Ограничение входа в приложение блокирует вход для выбранных профилей: **Преподаватели**, **Сотрудники** или **Ученики**. Пользователь, у которого несколько ролей, может войти, пока хотя бы одна из его ролей остаётся разрешённой. #### Инструкция — Ограничить видимость для учеников 1. Откройте экран **Параметры**. 2. Найдите параметр Ограничение просмотра расписания для учеников. 3. Выберите **Неограниченно** или число недель. 4. Подтвердите кнопкой **Сохранить**. #### См. также - [Общие параметры](#page-admin.parameters) - [Пользователи и роли](#page-admin.users-and-roles) - [Портал ученика](#page-portal.student-portal) - [Портал преподавателя](#page-portal.teacher-portal) ### 8.14 Второй фактор аутентификации (MFA) *Source: `help/ru/admin/second-factor.md` · id: admin.second-factor · Audience: admin/staff/teacher · Plan: premium · Updated: 2026-10-21* > **Premium** > _Premium_ **Второй фактор аутентификации** защищает учётную запись, даже если её пароль кто-то узнал: после пароля или после входа через вашего поставщика удостоверений человек доказывает, что у него в руках принадлежащее ему устройство — телефон или компьютер. Второй фактор аутентификации — опция тарифа Premium, которую Omniscol подключает по запросу. Затем ваше учебное заведение выбирает затронутые роли и допустимые вторые факторы аутентификации. #### Включение второго фактора аутентификации В разделе **Администрирование** → **Параметры**, в секции **Безопасность**, кнопка Настроить в строке Второй фактор аутентификации (MFA) открывает настройки: - Затронутые роли — роли, учётные записи которых предъявляют второй фактор аутентификации: Администратор, Сотрудник, Преподаватель. Если ни одна роль не выбрана, опция не действует. Ученики никогда не предъявляют второй фактор аутентификации. - Допустимые вторые факторы аутентификации — что учётная запись может зарегистрировать: Ключ доступа, Приложение для аутентификации или Код по электронной почте. Нужен хотя бы один. - Запоминать браузер — при предъявлении второго фактора аутентификации предлагает больше не запрашивать его в этом браузере в течение заданного вами числа дней, от 1 до 90. Пароль по-прежнему запрашивается. Рядом с кнопкой метка показывает, действует ли опция и для каких ролей. Как только опция сохранена, сеанс учётной записи выбранной роли, открытый без второго фактора аутентификации, прерывается при её следующем действии: человек входит заново и регистрирует свой. Приложения, которым он ранее разрешил доступ (например, ассистент, подключённый через MCP), нужно разрешить заново. #### При входе После пароля учётная запись выбранной роли проходит второй шаг. ##### Первый вход: регистрация второго фактора аутентификации При первом входе учётная запись регистрирует второй фактор аутентификации из тех, которые допускает учебное заведение: - Ключ доступа — кнопка Создать ключ доступа регистрирует ключ доступа на устройстве; затем каждый вход подтверждается отпечатком пальца, лицом или кодом блокировки устройства; - Приложение для аутентификации — человек сканирует QR-код приложением для аутентификации на своём телефоне, затем вводит шестизначный код, который оно показывает; - Код по электронной почте — кнопка Получить код по электронной почте отправляет шестизначный код, который действует десять минут, на адрес электронной почты учётной записи. Учётная запись без адреса электронной почты не может его выбрать. Учётная запись регистрирует только один второй фактор аутентификации и сохраняет его, даже если учебное заведение позже перестанет допускать этот тип. **Администраторы** дополнительно получают десять **резервных кодов**, которые показываются один раз. Каждый из них один раз заменяет второй фактор аутентификации при входе, если устройство потеряно: храните их в надёжном месте. ##### Последующие входы Затем при каждом входе запрашивается зарегистрированный второй фактор аутентификации: ключ доступа, код из приложения или код, отправленный по электронной почте, — он уходит автоматически. Администратор может также ввести резервный код. Если учебное заведение это разрешает, флажок позволяет больше не запрашивать его в этом браузере в течение заданного числа дней. В другом браузере он запрашивается всегда, как и при входе после его сброса. ##### При едином входе (SSO) После входа через поставщика удостоверений ([OIDC / SSO](#page-integrations.oauth2)) тот же шаг отображается на странице входа: второй фактор аутентификации добавляется к единому входу. #### Сброс второго фактора аутентификации Учётная запись, потерявшая второй фактор аутентификации (сменился телефон, удалён ключ доступа), регистрирует новый после сброса: - для одной учётной записи — кнопка Сбросить второй фактор аутентификации в её развёрнутой строке, рядом с кнопкой Пароль, в списке её роли: Администраторы, Преподаватели или Сотрудники; - для всех учётных записей — Сбросить второй фактор всех учетных записей внизу настроек второго фактора аутентификации. Сброс всех учётных записей, как и сброс учётной записи администратора, требует подтвердить вашу личность. Учётная запись регистрирует новый второй фактор аутентификации при следующем входе, а запомненные браузеры забываются. Её уже открытые сеансы продолжаются: чтобы прервать их, отключите учётную запись. Администратор, потерявший второй фактор аутентификации, входит с резервным кодом, либо другой администратор сбрасывает его. Поддержка Omniscol может сбросить второй фактор аутентификации последнего администратора. #### Полезно знать - Код по электронной почте — самый слабый второй фактор аутентификации: сброс пароля идёт через тот же почтовый ящик. Для более надёжной защиты допускайте только ключ доступа и приложение для аутентификации. - Ключ доступа привязан к адресу учебного заведения, на котором он был создан: с другого адреса он не работает. #### Инструкция — Включение второго фактора аутентификации 1. Откройте **Параметры** и в секции **Безопасность** нажмите Настроить в строке Второй фактор аутентификации (MFA). 2. Выберите затронутые роли и допустимые вторые факторы аутентификации. 3. При желании разрешите запоминать браузер и задайте число дней. 4. Сохраните с помощью Сохранить. 5. Предупредите соответствующих людей: при следующем входе они зарегистрируют свой второй фактор аутентификации. #### См. также - [Первый вход](#page-getting-started.first-login) - [OIDC / SSO](#page-integrations.oauth2) - [Пользователи и роли](#page-admin.users-and-roles) - [Общие параметры](#page-admin.parameters) ### 8.15 Импорт и экспорт *Source: `help/ru/admin/import-export.md` · id: admin.import-export · Audience: admin · Updated: 2026-06-03* В модуле **Администрирование** экран **Импорт/Экспорт** объединяет операции передачи данных аккаунта: экспорт в JSON, обмен с aSc, точки резервного копирования, синхронизацию с внешними системами и параметры API, включённые для аккаунта. В зависимости от страны могут быть доступны и обмены по стандартным протоколам. Для учебных заведений, подчиняющихся французскому Министерству национального образования, обмены, специфичные для Франции (STS, UnDeuxTemps, École Directe), описаны в разделе [admin.french-formats](#page-admin.french-formats). #### Экспорт JSON Кнопка **Скачать** запускает полный экспорт аккаунта в JSON. Этот файл содержит данные аккаунта и должен рассматриваться как конфиденциальная резервная копия. Экспорт JSON доступен всем администраторам. Чтобы ограничить доступ, нужна опция [Настраиваемые роли](#page-admin.customroles). #### Импорт JSON Полный импорт JSON использует тот же формат, что и экспорт. Он остаётся в ведении команды Omniscol в рамках поддержки: повторная загрузка данных выполняется по запросу, а не как обычная операция экрана администрирования. Для восстановления аккаунта отдавайте предпочтение точкам резервного копирования, если они включены, либо обратитесь в Omniscol, если необходима повторная загрузка JSON. Перед любым импортом, перезаписывающим данные, создайте точку резервного копирования, если эта функция активна. #### aSc Timetables На экране есть также раздел aSc Timetables: - импорт XML-файла aSc; - экспорт в XML aSc с настройками. Этот обмен касается полного файла aSc. Чтобы добавить курсы из электронной таблицы, лучше используйте [Массовый импорт курсов из таблицы](#page-timetables.mass-import). #### Точки резервного копирования Если **точки резервного копирования** включены, кнопка **Точки резервного копирования** открывает управление ими. См. [Точки резервного копирования](#page-admin.snapshots). #### Синхронизация с внешними системами и параметры API > _Premium_ На экране также доступны: - настройка синхронизации с внешними системами через **Настроить**; - глобальный общий доступ / OpenAPI; - настройки API; - настройка MCP; - управление OAuth2 / OIDC. #### Инструкция — Экспорт аккаунта 1. Откройте **Импорт/Экспорт**. 2. Нажмите **Скачать**. 3. Сохраните файл в надёжном месте. 4. Если планируется рискованная операция, создайте точку резервного копирования дополнительно к экспорту. #### См. также - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [Точки резервного копирования](#page-admin.snapshots) - [Обзор](#page-migration.overview) - [Синхронизация с внешними системами](#page-integrations.extsync) - [admin.french-formats](#page-admin.french-formats) ### 8.16 Точки резервного копирования *Source: `help/ru/admin/snapshots.md` · id: admin.snapshots · Audience: admin · Plan: premium · Feature: snapshots · Updated: 2026-05-15* > **Premium** > _Premium_ **Точка резервного копирования**, или *snapshot*, — это снимок аккаунта Omniscol. Функция доступна только в том случае, если команда Omniscol включила для аккаунта квоту точек резервного копирования в соответствии с договором учебного заведения. Квота согласовывается с Omniscol исходя из потребностей школы (ручные копии, автоматизация, нужный срок хранения) и может быть изменена по запросу. Администратор не задаёт её напрямую в этой панели. #### Открытие точек резервного копирования В модуле **Администрирование** откройте **Импорт/Экспорт**, затем нажмите **Точки резервного копирования**. Панель показывает существующие точки резервного копирования, использованную квоту и, если он доступен, **дайджест** содержимого: число пользователей, учебные годы, информационные панели, события, расписания и основные рабочие показатели. #### Доступные действия В зависимости от ваших прав вы можете: - создать точку резервного копирования с помощью **Создать**; - экспортировать точку резервного копирования в JSON с помощью **Скачать**; - удалить точку резервного копирования с помощью **Удалить**; - заблокировать точку резервного копирования, чтобы её нельзя было удалить; - задать или изменить срок действия; - просмотреть дайджест, чтобы быстро понять, что содержит точка резервного копирования; - восстановить точку резервного копирования (полностью или частично) с помощью **Восстановить**. Точки резервного копирования хранятся в реплицируемом хранилище. Каждую точку можно экспортировать в JSON для анализа или сравнения с помощью ваших собственных инструментов. #### Восстановление Восстановление требует усиленного подтверждения. Панель предлагает три режима, в зависимости от выбранных групп данных: - **Перезаписать данные**: выбранные данные заменяются состоянием из точки резервного копирования. Это режим отката; - **Восстановить только удаленные данные**: Omniscol возвращает только отсутствующие элементы, если режим поддерживается, например после случайного удаления пользователей; - **Восстановить без перезаписи**: Omniscol восстанавливает данные в виде копии, если это поддерживается, чтобы сравнить или перенести их вручную, не заменяя текущее состояние, например когда расписание с тех пор изменилось и не нужно затирать то, что было сделано с момента создания точки резервного копирования. Поэтому могут появиться дубликаты. Восстановление может касаться всего аккаунта или его частей, таких как расписания, события, информационные панели, отсутствия, пользователи, дисциплины, учебные годы или конфигурация. #### Автоматизация Кнопка **Автоматизация** позволяет настроить автоматическое создание точек резервного копирования. Периодичность зависит от конфигурации, выбранной для аккаунта: ежедневно, еженедельно, глубокой ночью — вы сами выбираете политику, подходящую для вашего учебного заведения. Сроки действия и блокировка определяют хранение: - точка резервного копирования с истёкшим сроком может быть удалена автоматически, если она не заблокирована; - заблокированная точка защищена от ручного удаления и от автоматической очистки; - если для новой автоматической копии не хватает места из-за исчерпанной квоты, Omniscol удаляет самую старую незаблокированную автоматическую точку. Если ни одну точку удалить нельзя (все заблокированы), создание новой копии завершается ошибкой. Такая схема даёт историю копий, похожую на Time Machine в среде Apple: удобно возвращаться назад, восстанавливать случайно удалённые данные или восстанавливать копию для сравнения. Она ограничена квотой, согласованной с Omniscol, которую можно изменить по запросу. #### Что обсудить до включения Перед включением или расширением опции уточните у Omniscol: - квоту точек резервного копирования и запас, нужный для ручных копий; - периодичность автоматических копий, которую вы собираетесь настроить; - ожидаемый срок хранения; - группы данных, к которым будет применяться частичное восстановление; - формат экспорта, нужный для внешних проверок. Каждую точку резервного копирования можно экспортировать в JSON. #### Инструкция — Создать точку резервного копирования перед рискованной операцией 1. Откройте **Импорт/Экспорт**. 2. Нажмите **Точки резервного копирования**. 3. Нажмите **Создать**. 4. Убедитесь, что новая точка резервного копирования появилась в списке. 5. Затем запускайте запланированный импорт, реорганизацию или изменение конфигурации. Если что-то пойдёт серьёзно не так, вы сможете вернуться назад во времени. #### См. также - [Импорт и экспорт](#page-admin.import-export) - [Журналы активности (логи)](#page-admin.logs) ### 8.17 Журналы активности (логи) *Source: `help/ru/admin/logs.md` · id: admin.logs · Audience: admin · Feature: logs · Updated: 2026-05-15* > **Premium** В модуле **Администрирование** экран **Журнал активности** показывает записи журнала, доступные для аккаунта, если включена опция логов. Срок хранения согласуется с командой Omniscol в соответствии с договором учебного заведения и может быть изменён по запросу. Этот экран служит для просмотра и экспорта записей, имеющихся в потоке логов. #### Что записывается в журнал Журнал фиксирует действия, изменяющие аккаунт, а не каждый просмотр. - **Каждое изменение** данных (карточка пользователя, расписание, параметры…) — создание, обновление или удаление — порождает запись с указанием автора, действия и времени. - **Входы в систему** — каждая попытка входа сохраняет использованный логин. - **Действия с паролями** — установка, смена, удаление или сброс фиксируются: записываются действие и его автор, но никогда сам пароль. - **Экспорт** — экспорт аккаунта в JSON попадает в журнал. Простые просмотры (открытие экрана, вывод списка данных) не записываются, за исключением нескольких чувствительных операций. Поэтому журнал отвечает на вопрос «кто что сделал и когда», а не «кто что смотрел». #### Что показывает экран Каждая строка может содержать: - метку времени; - выполненное действие; - определённый маршрут, если он известен; - сохранённые параметры и дополнительные данные; - HTTP-метод; - связанный веб-адрес; - соответствующего пользователя. Точное содержимое зависит от того, что Omniscol занёс в журнал: экран отражает записи, имеющиеся в потоке логов аккаунта. #### Поиск и экспорт Когда в списке достаточно записей, локальный поиск позволяет отфильтровать таблицу. Кнопка **Метка времени** открывает представление строк, пригодное для экспорта. #### Охват журналов - Каждая строка содержит выполненное действие, маршрут, параметры и соответствующего пользователя; детализация охватывает то, что занёс в журнал Omniscol. - Срок хранения зависит от опции, включённой для аккаунта, и от периодической очистки логов. - Журналы просматриваются и экспортируются с этого экрана; Omniscol не передаёт их автоматически во внешнюю систему мониторинга. Чтобы детально восстановить состояние аккаунта на определённую дату, используйте журналы вместе с точками резервного копирования. #### Что проверить в договоре Срок хранения, требования к аудиту и ожидаемый экспорт определяются договором и документами по безопасности, которые предоставляются по запросу. Эта страница не заменяет такие документы. #### См. также - [Точки резервного копирования](#page-admin.snapshots) - [Пользователи и роли](#page-admin.users-and-roles) --- ## 9. Интеграции ### 9.1 Обзор интеграций *Source: `help/ru/integrations/overview.md` · id: integrations.overview · Audience: admin · Updated: 2026-06-13* Omniscol подключается к вашей информационной системе несколькими способами, в зависимости от потребностей. Примеры сторонних инструментов и партнёров, которых регулярно подключают к Omniscol, см. также [integrations.partners](#page-integrations.partners). #### Сводная таблица | Механизм | Для чего | Направление потока | | --- | --- | --- | | [iCal](#page-integrations.ical) | Дать преподавателям и ученикам возможность видеть расписание в личном календаре | Omniscol → календарь | | [Ссылки общего доступа](#page-glossary.share-link) | Открыть расписание только для чтения или, в зависимости от контекста, ввод определённых данных | Omniscol → открытый веб | | [Iframe](#page-portal.share-links) | Встроить расписание в страницу на **том же домене**, что и Omniscol; на внешнем сайте блокируется (безопасность) | Omniscol → тот же домен | | [API Omniscol](#page-integrations.api-tokens) | Интеграции между системами с учётом прав и опций аккаунта | В зависимости от настройки | | [MCP](#page-integrations.mcp) | Подключить к Omniscol ИИ-агент, совместимый с MCP | ИИ-агент ↔ Omniscol | | [OAuth2 / OIDC (сервер)](#page-integrations.oauth-server) | Подключить сторонний сервис, который определяется по зарегистрированному клиенту, согласию и токену с скоупами (основа MCP и OneRoster) | Сервис ↔ Omniscol | | [OIDC / SSO (вход)](#page-integrations.oauth2) | Аутентификация пользователей через поставщика удостоверений (Google Workspace, Microsoft Entra ID, универсальный OIDC) | В зависимости от настройки | | [Синхронизация с внешними системами](#page-integrations.extsync) | Платформа коннекторов: Aurion, Auriga, Edusign, новые коннекторы под проект | Двусторонний | | [Информационные панели](#page-panels.lobby-panel) | Показывать расписание на публичных экранах | Omniscol → экраны | #### Как выбрать подходящую интеграцию - **Показать расписание преподавателю или ученику** — подписка [iCal](#page-integrations.ical). - **Открыть доступ только для чтения родителю или для аудита** — [ссылка общего доступа](#page-glossary.share-link). - **Синхронизировать обучающихся из вашей ERP или информационной системы** — см. [Синхронизация с внешними системами](#page-integrations.extsync), где перечислены доступные коннекторы. Если вашей ERP в списке нет, добавление коннектора согласуется со службой поддержки Omniscol. - **Единый вход** — [OIDC / SSO](#page-integrations.oauth2). - **Внешний ИИ-ассистент** для аккаунта, если опция включена, — [MCP](#page-integrations.mcp) для совместимых клиентов. - **Публичный показ в помещениях** — [информационные панели](#page-panels.lobby-panel). #### Рекомендации по безопасности - Использовать **OIDC / SSO**, когда опция включена, для аутентификации реальных пользователей. - Применять **токены API** только для интеграций между системами, с минимальным скоупом и периодической ротацией. - Задавать короткие **сроки действия** для ссылок общего доступа. - Не помещать токен API в публичный репозиторий Git. #### См. также - [iCal](#page-integrations.ical) - [API Omniscol](#page-integrations.api-tokens) - [MCP](#page-integrations.mcp) - [OAuth2 / OIDC (сервер)](#page-integrations.oauth-server) - [OIDC / SSO (вход)](#page-integrations.oauth2) - [Синхронизация с внешними системами](#page-integrations.extsync) - [integrations.partners](#page-integrations.partners) ### 9.2 Как устроен Omniscol — один API, один источник истины *Source: `help/ru/integrations/architecture.md` · id: integrations.architecture · Audience: admin · Plan: standard · Updated: 2026-07-12* Несколько особенностей устройства Omniscol стоит знать до того, как вы начнёте его интегрировать: они объясняют, почему API так полон, как интерфейс подстраивается под каждого пользователя, и на что следует обратить внимание в вопросах конфиденциальности. #### Одно приложение на одном API Omniscol работает как **единое веб-приложение** в вашем браузере. Каждый экран, кнопка и таблица строятся вызовами **публичного API** Omniscol — того же API, который можете вызывать и вы сами; он описан в интерактивном справочнике API Omniscol, на странице **Developers** ([omniscol.com/fr/developers](https://www.omniscol.com/fr/developers)). За тем API, который вы интегрируете, нет никакого скрытого «настоящего» API: то, что использует интерфейс, *и есть* то, что получаете вы. Некоторые операции устроены наоборот — они предусмотрены для интеграции, но **самим приложением не используются**. Например, это точки доступа **расширенного поиска и определения сущности** (они предназначены для ИИ-агента через [MCP](#page-integrations.mcp)) и те, которые позволяют внешней системе **наполнять Omniscol** (ETL, поддерживающий внешнюю базу в синхронном состоянии). #### operationId — один ключ, один источник истины Каждая операция — это **пара «метод + URL»** (например, `GET /api/schedules/lessons/{datesrange}`), и у каждой есть стабильный идентификатор — её **operationId** (здесь `os_schedules_dates_get`). Имя устроено по структуре: **`os`** (Omniscol), затем **модуль** (`schedules`), затем то, к чему относится **операция** (`dates` — иногда несколько сегментов, соединённых дефисами), и всегда последним — **HTTP-метод** (`get`, `post`, `put`, `delete`). Именно этот единый ключ Omniscol использует везде: чтобы назвать операцию на странице **Developers**, чтобы построить соответствующий инструмент [MCP](#page-integrations.mcp) и чтобы обратиться к ней из переопределения или из этой справки. Он задан один раз, поэтому все поверхности остаются согласованными: документация, инструменты и интерфейс не могут разойтись, ведь все они читают одно и то же определение. #### Интерфейс следует вашим правам **Графический элемент с действием** — кнопка, вкладка, пункт меню — появляется, только когда лежащая в его основе операция **доступна** вам. Это зависит от вашей роли и от того, какие [настраиваемые роли](#page-admin.customroles) вам назначены (см. [Пользователи и роли](#page-admin.users-and-roles)), а также от вашего тарифа и ваших опций (см. [Тарифные планы и опции Omniscol](#page-overview.plans-and-options)). Измените любой из этих факторов — и интерфейс перестроится: элементы, а то и целые модули появятся или исчезнут. Тот же принцип действует и за пределами ваших личных прав. ИТ-служба может отключить некоторые операции с помощью **переопределения API**, и соответствующие элементы исчезнут из интерфейса (см. [Настройка API](#page-integrations.api-customization)). То же происходит, когда данные поддерживаются **внешней синхронизацией**: их локальное создание и изменение могут быть отключены, и тогда их элементы управления уступают место синхронизации (см. [Синхронизация с внешними системами](#page-integrations.extsync)). Поэтому в Omniscol **нет отдельного портала** для учеников или преподавателей. Приложение одно; каждый видит интерфейс, согласованный с его собственными правами: ученик, преподаватель, администратор и обладатель настраиваемой роли получают ровно те операции, на которые имеют право, и ничего больше. #### Интерфейс — это удобство, а не замок Поскольку интерфейс управляется вашими правами, возникает соблазн считать скрытую кнопку границей безопасности. Это не так. **Каждый вызов перепроверяется на сервере** с учётом вашей личности и ваших прав; операция, на которую у вас нет права, там отклоняется, что бы ни показывал интерфейс. Интерфейс подстраивается ради ясности и удобства, а настоящая граница обеспечивается на стороне сервера, при каждом запросе. #### Токены и ссылки общего доступа — одна модель [Токен API](#page-integrations.api-tokens) или ссылка общего доступа **ограничены набором операций** — теми, которые вы разрешаете при его создании. Сервер применяет это ограничение при каждом вызове, точно так же, как для вошедшего в систему пользователя. Ссылка общего доступа, токен и человек в интерфейсе — это три способа добраться до одного и того же API с контролем прав, и никогда — не чёрный ход в обход него. #### Работа при обрыве соединения Поскольку каждый экран читает данные через API, Omniscol может также хранить в вашем браузере уже полученные ответы, чтобы кратковременная потеря сети не прерывала чтение. Эта **локальная копия** находится в собственной базе данных (IndexedDB), рядом с обычным кэшем страниц браузера. Это **кэш для чтения**: если соединение пропадёт, вы продолжите видеть то, что уже открывали. Он **не** ставит ваши изменения в очередь и не воспроизводит их повторно — изменение всегда проходит через сервер. Эта локальная копия создаётся только с вашего **согласия**. При первом использовании в браузере Omniscol спрашивает, доверяете ли вы ему; копия начинает создаваться после того, как вы согласились. Пункт Автономный кэш в меню пользователя затем в любой момент включает её или стирает; галочка показывает, что она включена. Нужно знать две вещи: - **Персональные данные в неё не попадают.** Сохраняются только успешные чтения; ответы, которые сервер помечает как не подлежащие хранению (данные сеанса и аутентификации), никогда не кэшируются, а из того, что *кэшируется*, программа удаляет контактные данные людей — e-mail, телефон, дату рождения, логин, идентификационный номер, состояние пароля — и полностью удаляет учётные записи администраторов. Локальная копия содержит обычные рабочие данные, а не именной справочник. - **На общем компьютере лучше использовать окно приватного просмотра.** Выход из системы не стирает эту локальную копию (как и обычный кэш браузера); приватное окно удаляет обе при закрытии. Такой осторожности заслуживает любое веб-приложение на компьютере, который вы не контролируете. #### См. также - [Обзор интеграций](#page-integrations.overview) - [Настройка API](#page-integrations.api-customization) - [API Omniscol](#page-integrations.api-tokens) - [MCP — подключение ИИ-агента](#page-integrations.mcp) ### 9.3 iCal — подписка и динамическая ссылка *Source: `help/ru/integrations/ical.md` · id: integrations.ical · Plan: standard · Updated: 2026-05-15* Формат **iCal** (`.ics`) — стандарт обмена календарями между приложениями. Omniscol предоставляет каждое расписание (личное, класса, кабинета, преподавателя) в виде **ссылки-подписки iCal**, которую пользователь может вставить в Google Calendar, Apple Calendar, Outlook, Thunderbird или любое другое приложение, работающее со стандартными календарями. #### Ссылка-подписка и разовый экспорт Два совершенно разных варианта: - **Ссылка-подписка** (рекомендуется) — HTTPS-адрес, ведущий в Omniscol. Клиентское приложение регулярно обращается к нему (раз в час или раз в день, в зависимости от настроек клиента) и постоянно обновляет календарь пользователя. Когда занятие переносится в Omniscol, пользователь видит это в своём календаре без всяких действий. - **Разовый экспорт** — скачивание файла `.ics` на определённый момент. Удобен для архива, отправки по почте или загрузки в систему, которая не умеет подписываться. Но этот файл статичен: если расписание изменится, файл не обновится. Выбирайте ссылку-подписку, когда конечный клиент — современное приложение, умеющее обновлять удалённый календарь (Google Calendar, Apple Calendar, Outlook). #### Как получить ссылку-подписку На экранах, где доступна функция общего доступа, кнопка Общий доступ открывает окно, в котором могут быть: - одна или несколько ссылок-подписок iCal с цифровой подписью, - кнопка «Копировать URL», - QR-код для сканирования, - скачивание файла `.ics`. В URL содержится секретный токен: не передавайте его другим — любой, кто его получит, увидит расписание в пределах ссылки до истечения срока её действия или до её отзыва. #### Где создать iCal Основные точки входа: - **Вверху модуля Расписание** — кнопка Общий доступ может создать iCal для всех показанных расписаний, объединённый iCal, который собирает их в одну подписку, а затем отдельные iCal для каждого. Эти ссылки ограничены показанным учебным годом. - **У каждого показанного расписания** — в строке заголовка расписания при наведении курсора доступен общий доступ только к этому расписанию. Ссылка охватывает соответствующий учебный год. - **В карточке преподавателя** — в модуле **Администрирование** кнопка Общий доступ в карточке создаёт личный iCal преподавателя. Он рассчитан на долгое использование, пока это позволяют ссылка, учётная запись-владелец и выбранный срок действия. - **В предпросмотре календарного расписания** — в модуле **Управление расписанием** кнопка Общий доступ в предпросмотре создаёт iCal того, что показано на экране, даже если это расписание ещё не опубликовано. При каждом создании пользователь может задать дату окончания действия. Эта дата закодирована в токене URL: изменить её позже нельзя. Чтобы изменить срок действия, нужно создать новую ссылку. Как и другие ссылки общего доступа, iCal привязан к учётной записи, которая его создала: смена пароля, деактивация или удаление учётной записи-владельца делают связанные ссылки недействительными. #### Публичная ссылка для класса или кабинета Администратор может создать ссылку-подписку для **класса** или **кабинета** (например, чтобы поделиться с родителями или с внешней службой). Такие ссылки подписаны и имеют срок действия. См. также страницу [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link), где описаны все варианты общего доступа (iCal, адаптивная веб-страница, JSON через API). #### Настройка на стороне клиента ##### Google Calendar 1. В Google Calendar слева, рядом с пунктом **Другие календари**, нажмите **+** > **Добавить по URL**. 2. Вставьте URL-адрес подписки Omniscol. 3. Календарь появится с условным названием и цветом по умолчанию — их можно изменить. Google обновляет подписку примерно раз в 8–24 часа. Для срочных изменений учитывайте задержку. ##### Apple Calendar (macOS, iOS) 1. **Файл > Новая подписка на календарь**. 2. Вставьте URL-адрес Omniscol. Ссылка iCal из Omniscol настроена на автоматическое обновление каждые полчаса. ##### Outlook (Microsoft 365) 1. **Добавить календарь > Из Интернета**. 2. Вставьте URL-адрес Omniscol. Частота обновления в Outlook зависит от версии; в старых настольных версиях учитывайте задержки. #### Ограничения - Изменения на стороне клиента (например, перенос события в Google Calendar) в Omniscol не передаются — подписка работает только на чтение. - Чтобы создать свой личный URL, у пользователя должна быть активная учётная запись Omniscol. - Срок действия ссылки записан в созданном URL: позже он не продлевается; при необходимости создайте новую ссылку. - События, не входящие в расписание, включаются только в том случае, если их включает общий доступ или фильтр iCal. #### Инструкция — Подписаться на своё расписание из Google Calendar 1. **Подписка iCal** синхронизирует ваше расписание в Omniscol с личным календарём (Google Calendar, Apple Calendar, Outlook). Обновление идёт автоматически и постоянно: не нужно ничего заново копировать и вставлять при каждом изменении расписания. 2. **На вашем экране Omniscol** (ученика, преподавателя или открытом по ссылке общего доступа) нажмите Общий доступ, если кнопка доступна. Откроется окно со ссылками, созданными для доступных вам данных. 3. **Скопируйте URL подписки** (кнопка «Копировать»). Не передавайте его другим: любой, у кого он есть, увидит данные в пределах ссылки до истечения срока её действия или до её отзыва. 4. **В Google Calendar**: на левой панели **Другие календари → + → Добавить по URL**, вставьте ссылку, подтвердите. Календарь появится с названием и цветом (их можно изменить). **В Apple Calendar**: `Файл → Новая подписка на календарь`, вставьте ссылку. **В Outlook M365**: `Добавить календарь → Из Интернета`, вставьте ссылку. 5. **Важно**: подписка работает **только на чтение**. Изменения в вашем личном календаре в Omniscol не передаются. Изменения, сделанные в Omniscol, попадут в ваш календарь при следующей синхронизации на стороне клиента. #### См. также - [iCal (экспорт в календарь)](#page-glossary.ical) - [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) - [Обзор интеграций](#page-integrations.overview) ### 9.4 API Omniscol — токены аутентификации *Source: `help/ru/integrations/api-tokens.md` · id: integrations.api-tokens · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **API Omniscol** — это REST API, описанный в OpenAPI. Он предназначен для интеграций между системами: внешняя сводная панель, индивидуальное отображение, синхронизация с ERP или информационной системой либо ИИ-агент через MCP. Токены API, которыми можно управлять в интерфейсе, доступны на аккаунтах, где предлагается эта интеграция. Производный токен даёт доступ только к тем конечным точкам API, которые были выбраны при его генерации; не считайте, что он охватывает весь API. #### Ключ и токен: два разных объекта Omniscol различает два объекта, которые нельзя путать. **Ключ** — постоянный объект, который хранится на стороне Omniscol. Он включает: - короткий **идентификатор**, сгенерированный случайным образом и открытый: именно его показывает список, и он входит в каждый токен, чтобы указать, какой ключ нужно проверять; - описательное **название**, которое можно изменить в любой момент; - необязательную **дату окончания срока действия**, которую можно изменить в любой момент; - длинный **случайный секрет**, созданный на стороне сервера и служащий криптографическим ключом подписи. Идентификатор, название и дата окончания срока действия — это административные сведения: идентификатор является лишь открытой ссылкой, а не секретом. **Секрет** же — единственный материал для подписи: он генерируется случайным образом при создании ключа, остаётся на стороне сервера, не изменяется и **никогда не отображается и не передаётся** — ни при создании, ни в списке ключей. Даже если бы он утёк, этого не хватило бы для подделки токена: подпись сочетает его с **солью, уникальной для аккаунта**, и с **серверным секретом**, которые тоже никогда не покидают Omniscol. **Токен** — это автономный **JWT** (JSON Web Token), подписанный секретом ключа. Именно его вы передаёте внешней системе. Его подписанное содержимое включает соответствующий аккаунт, список разрешённых конечных точек, ключ, на основе которого он создан, и собственную дату окончания срока действия. Иначе говоря: **ключ подписывает, токен подписан.** Один ключ может подписать несколько токенов — все они проверяются одним и тем же секретом, поэтому все они отзываются вместе, если ключ исчезнет. Omniscol не хранит токен: он генерирует его, показывает один раз, а затем проверяет заново при каждом вызове, восстанавливая подпись по секрету ключа (HMAC SHA-256). Поэтому разрешения, заложенные в токен, невозможно изменить без этого секрета. #### Создание токена Экран «Общий доступ» доступен в разделе Администрирование → Импорт/Экспорт на аккаунтах Premium. Создание проходит в два этапа: сначала создаётся **ключ**, затем по этому ключу **генерируется токен**. 1. **Создать ключ** — укажите понятное название и, если доступ временный, дату окончания срока действия. Название и срок действия можно изменить позже; секрет подписи изменить нельзя. 2. **Сгенерировать токен** — выберите ключ, отметьте разрешённые конечные точки, при желании задайте дату окончания срока действия самого токена и сгенерируйте JWT. При генерации Omniscol показывает токен **только один раз**. Сразу скопируйте его в менеджер секретов: повторно он не отобразится. Срок действия токена записан в его подписанном содержимом, поэтому позже его изменить нельзя. Чтобы изменить эту дату, сгенерируйте новый токен. Таким образом, существует два независимых друг от друга уровня срока действия: - **срок действия ключа** — изменяется в списке ключей; по его истечении **все** токены, созданные на основе этого ключа, отклоняются (вызов завершается ошибкой 401); - **срок действия токена** — задаётся при генерации, записывается в JWT и затем не изменяется. #### Разрешённые конечные точки Токен даёт доступ **только к конечным точкам, отмеченным при его генерации**: никогда не считайте, что он охватывает весь API. Список разрешённых точек передаётся внутри токена и проверяется при каждом вызове; обращение к неразрешённой конечной точке отклоняется (401). Помимо отдельных конечных точек, в списке выбора есть **быстрый выбор по модулям**: - пункт самого модуля, без уточнения операции, разрешает **все** его конечные точки; - варианты по операциям — **чтение**, **изменение**, **создание**, **удаление** — ограничивают модуль одним типом вызовов. Так, пункт «**Расписание** [чтение]» открывает весь доступ на чтение расписаний, не давая никакой возможности записи, и избавляет от необходимости отмечать каждую конечную точку по отдельности. Выдавайте минимум: только те модули и операции, которые строго необходимы для интеграции. #### Использование токена Токен отправляется в API двумя обычными способами: - **HTTP-заголовок**: `Authorization: Bearer <токен>` (рекомендуется). - **Строка запроса**: `?auth=<токен>` (удобно для отладки, но попадает в HTTP-журналы — в рабочей среде лучше избегать). Пример `curl`, который нужно адаптировать под реальную конечную точку из OpenAPI: ```bash curl -H "Authorization: Bearer $TOKEN" \ https://vasha-shkola.omniscol.com/api/<модуль>/<конечная-точка> ``` #### Документация OpenAPI На экране «Импорт/Экспорт» есть ссылка **OpenAPI 3.1**, которая открывает в Swagger Editor спецификацию, доступную для аккаунта. В ней вы найдёте: - список предоставляемых конечных точек API, - схемы обмениваемых данных, - методы и параметры, - ожидаемые ответы. Спецификацию также напрямую отдаёт ваш аккаунт, без аутентификации: - `/api/guest/openapi.json` — спецификация в формате JSON; - `/api/guest/openapi.yaml` (или `/api/guest/openapi?yaml=true`) — то же содержимое в формате YAML; - `/api/guest/school_schema.json` — JSON-схема данных аккаунта. #### Полная справка для вашего ИИ-ассистента Портал также публикует всю справку Omniscol одним текстовым файлом, который можно использовать как базу знаний для ИИ-ассистента (проект Claude, пользовательский GPT и т. п.): - [omniscol.com/ru/llms-full.txt](https://www.omniscol.com/ru/llms-full.txt) — полное руководство в формате Markdown, доступное на каждом языке справки (`/en/llms-full.txt`, `/fr/llms-full.txt`…); - [omniscol.com/llms.txt](https://www.omniscol.com/llms.txt) — индекс по стандарту `llms.txt`, который ИИ-системы находят автоматически. #### Отзыв доступа Отзыв выполняется на уровне **ключа**, а не отдельного токена. На экране перечислены **ключи**, по которым были сгенерированы токены. **Удаление ключа** стирает его секрет подписи на стороне Omniscol: после этого ни одну подпись, полученную от этого секрета, проверить уже нельзя, и любой вызов с токеном, созданным на основе этого ключа, завершается ошибкой **401**. Токены делает недействительными отсутствие секрета, а не список отозванных токенов. Для ИТ-отдела из этого следуют два вывода: - **Отзыва по отдельным токенам нет.** Omniscol не хранит выданные JWT и не может отключить один из них по отдельности: уже сгенерированный токен остаётся действительным до окончания собственного срока действия или до тех пор, пока его ключ не будет удалён или не истечёт. - **Изменение срока действия ключа** сразу влияет на все его токены: если перенести эту дату на более ранний срок, доступ закрывается у всех токенов, созданных на основе ключа. Рекомендация: немедленно удалите любой ключ, в утечке которого вы подозреваете, затем создайте взамен новый ключ с понятным названием. ##### Один ключ на каждую систему и каждое назначение Поскольку отзыв выполняется по ключу, **заведите отдельный ключ для каждой интеграции** (одна внешняя программа — один ключ). Секрет ключа подписывает только его собственные токены: удаление такого ключа лишает доступа только соответствующую интеграцию, не затрагивая остальные. И наоборот, один ключ, общий для нескольких систем, делает любой отзыв резким: удаление скомпрометированного ключа разом отключает все системы, которые им пользовались. #### Для каких интеграций API обычно применяется для: - **собственных систем информационных табло** (помимо встроенных информационных панелей Omniscol; см. [Настройка панелей](#page-panels.customization)), - **внешних сводных панелей**, объединяющих Omniscol и другие источники, - **коннекторов и синхронизации** с ERP или прикладной информационной системой, - **ИИ-агентов с поддержкой MCP**, работающих с Omniscol через сервер MCP; см. [MCP — подключение ИИ-агента](#page-integrations.mcp). Для доступа, делегированного **идентифицированному стороннему сервису** (токен с ограниченной областью действия, согласие пользователя, отзыв отключением клиента) лучше использовать сервер OAuth2 Omniscol: см. [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server). #### Инструкция — Генерация токена API 1. **Токен аутентификации** позволяет внешней системе (сводной панели, информационному табло, ИИ-агенту через MCP) обращаться к выбранным вами конечным точкам API. 2. **Перейдите в раздел Администрирование → Импорт/Экспорт**, затем откройте экран общего доступа с помощью Общий доступ. Там вы увидите существующие ключи, их названия и даты окончания срока действия, если они заданы. 3. **При необходимости создайте ключ.** Укажите понятное название (`Сводная панель финансов`, `Табло главного холла`, `ИИ-агент Claude desktop`) и срок действия, если интеграция временная. Позже этот срок действия ключа можно будет изменить. 4. **Выберите ключ**, затем отметьте конечные точки API, которые токен должен уметь вызывать. Держите список как можно короче. Если доступ должен быть ограничен по времени, задайте также срок действия токена. 5. **Сгенерируйте токен** и сразу скопируйте показанный JWT. Повторно он не отобразится, а его срок действия изменить будет нельзя. Затем используйте его в HTTP-заголовке `Authorization: Bearer <токен>`. 6. **Чтобы отозвать доступ**, удалите соответствующий ключ. Токены, созданные на основе этого ключа, станут недействительными. #### См. также - [Обзор интеграций](#page-integrations.overview) - [MCP — подключение ИИ-агента](#page-integrations.mcp) - [Расширенные запросы](#page-integrations.advanced-queries) - [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server) - [Настройка панелей](#page-panels.customization) ### 9.5 OAuth2 / OIDC — подключение сервиса к Omniscol *Source: `help/ru/integrations/oauth-server.md` · id: integrations.oauth-server · Audience: admin · Plan: premium · Updated: 2026-06-29* > **Premium** > _Premium_ Эта страница адресована **ИТ-службе**. Она описывает Omniscol в роли **сервера авторизации OAuth2 / OpenID Connect**: как сторонний сервис регистрируется как **клиент**, как пользователь **даёт согласие** на предоставление ему доступа и как сервис получает **токен**, ограниченный предоставленными **скоупами**. #### Что делает Omniscol как сервер OAuth2 Внешний сервис — ИИ-агент, коннектор, панель показателей — становится **клиентом**, зарегистрированным в вашем аккаунте; пользователь школы **одобряет** его доступ на экране согласия; после этого сервис получает **токен доступа** с коротким сроком действия, область действия которого ограничена предоставленными **скоупами** и правами пользователя. Этот механизм отличается от **SSO для пользователей**, описанного на странице [OIDC / SSO](#page-integrations.oauth2): там Omniscol, наоборот, выступает **клиентом** вашего поставщика удостоверений и подключает ваших пользователей. Здесь Omniscol находится на стороне **сервера**: к нему подключаются сервисы. Этот сервер используют две интеграции Omniscol: - **MCP** — стандартная аутентификация ИИ-агента проходит через этот сервер OAuth2 (см. [MCP — подключение ИИ-агента](#page-integrations.mcp)); - **OneRoster** — поставщик данных OneRoster аутентифицируется токеном OAuth2 «машина — машина», который выдаёт тот же сервер (см. [OneRoster](#page-integrations.oneroster)). Любой другой сервис, совместимый с OAuth2 / OIDC, может подключаться к нему так же. #### Обнаружение и конечные точки протокола Omniscol публикует **метаданные обнаружения** по стандартным адресам `.well-known` в корне домена вашего аккаунта (например, `https://vasha-shkola.omniscol.com`). Совместимый клиент находит там все конечные точки самостоятельно, без ручной настройки: - `/.well-known/oauth-authorization-server` — метаданные сервера авторизации (RFC 8414); - `/.well-known/openid-configuration` — метаданные OpenID Connect (содержимое то же, что в предыдущем пункте); - `/.well-known/jwks.json` — открытые ключи для проверки (JWKS), по которым проверяется подпись `id_token`; - `/.well-known/oauth-protected-resource` — метаданные защищённого ресурса (RFC 9728). Эти метаданные перечисляют конечные точки протокола: - `/oauth/authorize` — запрос авторизации (экран входа, затем экран согласия); - `/oauth/token` — обмен кода на токен и обновление токена; - `/oauth/register` — **динамическая регистрация клиентов** (RFC 7591); - `/oidc/userinfo` — сведения о вошедшем пользователе (OIDC); - `/oauth/revoke` — отзыв токена (RFC 7009). Эти конечные точки протокола **общедоступны**: они не ограничены аккаунтами Премиум, и открывать их вручную не нужно. К Премиум относится только **экран управления клиентами**, описанный ниже. #### Потоки авторизации Omniscol поддерживает три потока OAuth2: - **Код авторизации с PKCE** — поток по умолчанию для сервиса, который действует **от имени пользователя**. Сервис перенаправляет пользователя на `/oauth/authorize`; после входа и согласия Omniscol возвращает **код авторизации** (действителен 5 минут), который сервис обменивает на `/oauth/token`. Используется метод PKCE **S256**, а единственный допустимый `response_type` — `code`. - **Обновление (`refresh_token`)** — чтобы продлить делегированный доступ без повторного согласия. - **Client credentials** — поток «**машина — машина**», без пользователя; его используют, в частности, потребители **OneRoster**. Клиент аутентифицируется напрямую и получает токен доступа. При обмене сервер выдаёт **токен доступа** (`Bearer`, действует **1 час**) и, для пользовательских потоков, **токен обновления** (действует **30 дней**). Если запрошен скоуп `openid`, дополнительно выдаётся подписанный **`id_token`** OIDC; его подпись проверяется через `/.well-known/jwks.json`. Поток `client_credentials` выдаёт только токен доступа, без токена обновления и без `id_token`. Затем токен доступа передаётся в HTTP-заголовке `Authorization: Bearer <токен>`. При каждом вызове Omniscol проверяет его подпись, убеждается, что клиент по-прежнему имеет статус «**активный**», что пользователь по-прежнему существует и обладает нужной ролью, и что **скоупы** токена покрывают вызываемую конечную точку; в противном случае вызов отклоняется. #### Скоупы и согласие Скоупы, которыми вы управляете на клиенте: - **`read:basic`** — чтение расписаний, сводных панелей и экранов просмотра (модули Главная страница, Расписание, Сводная панель, Управление расписанием); - **`read:user`** — чтение списка пользователей; - **`write:data`** — запись в те же модули просмотра; - **`admin`** — административный доступ (модули Администрирование, Управление отсутствиями, Управление расписанием). Сервер знает также скоупы OIDC (`openid`, `email`, `profile`) и скоупы **OneRoster** только для чтения (префикс `imsglobal.org`). Эти скоупы **привилегированные**: клиент **не может** назначить их себе сам через динамическую регистрацию; их должен выдать администратор в карточке клиента. Фактически предоставляемый скоуп — это **пересечение** того, что запрашивает клиент, и того, что для него зарегистрировано: клиент никогда не получает больше, чем указано в его карточке. В пользовательском потоке **экран согласия** (`/oauth/consent`) показывает **название** и **логотип** запрашивающего сервиса, а также **понятный список** запрошенных скоупов, с кнопками **Принять** и **Отклонить**. Если пользователь одобряет запрос, выдаётся код авторизации и пользователь возвращается в сервис; если отклоняет, он возвращается в сервис с ошибкой `access_denied`. #### Динамическая регистрация клиентов Конечная точка `/oauth/register` реализует **динамическую регистрацию** (Dynamic Client Registration, RFC 7591): совместимый сервис может **зарегистрироваться клиентом сам**, без предварительного ручного вмешательства. Благодаря этому агент MCP настраивается по одному лишь URL сервера. Динамическая регистрация **не может** назначить привилегированный скоуп (скоупы OneRoster): они молча отбрасываются, а если не остаётся ни одного допустимого скоупа, по умолчанию выдаётся `read:basic`. Привилегированные скоупы остаются доступными только при выдаче администратором. #### Экран управления клиентами OAuth2 В аккаунтах **Премиум** вы управляете клиентами из раздела **Администрирование → Импорт/Экспорт**, секция **OAuth2**, с помощью кнопки OAuth2. Для доступа сначала требуется **пароль администратора** — дополнительное подтверждение перед открытием экрана. Экран перечисляет зарегистрированные клиенты и для каждого показывает его **состояние** (активный / неактивный), **название**, **скоупы**, **контакты** и **URI** (сайт, логотип, URI перенаправления). Вы можете: - **Зарегистрировать клиент** — укажите название, необязательный `software_id`, скоупы, контакты, сайт, логотип и URI перенаправления. При создании Omniscol показывает `client_id` и `client_secret` **только один раз**. - **Изменить** клиент — изменять можно только безопасные поля: название, скоупы, контакты, сайт и логотип. URI перенаправления, `software_id` и секрет здесь не меняются. - **Включить или отключить** клиент — у отключённого клиента токены отклоняются начиная со следующего вызова. - **Удалить** клиент — удаление **необратимо**. ##### Секрет клиента `client_secret` показывается **только один раз**, при регистрации. Omniscol хранит у себя лишь **хеш** секрета и никогда не хранит секрет в открытом виде: его **нельзя** ни показать повторно, ни получить позже. Сразу скопируйте его в менеджер секретов. `client_id`, напротив, **детерминирован**: он вычисляется из названия аккаунта, названия клиента и хеша его технических метаданных. Поэтому две полностью одинаковые регистрации дают один и тот же идентификатор. ##### Обновление секрета (ротация) **Ротация** секрета возможна: она выпускает новый секрет, сохраняет только хеш нового секрета и возвращает этот секрет **лишь один раз**. Она выполняется через конечную точку управления динамической регистрацией (`/oauth/register//rotation`) и требует предъявить **токен регистрации**, выданный клиенту при его динамической регистрации. Поэтому из описанного выше экрана управления ротация **не** запускается: этот токен экран не использует. #### OAuth2 или токен API: что выбрать Omniscol предлагает два механизма машинного доступа с разными моделями доверия: - **OAuth2** (эта страница) — **зарегистрированная третья сторона** после **согласия** пользователя получает токен с **коротким** сроком действия (1 ч), ограниченный предоставленными скоупами, который можно **обновлять** и **отзывать** (отключив клиент). Поток `client_credentials` дополнительно покрывает взаимодействие «машина — машина» без пользователя. Это подходящий способ для идентифицированного стороннего сервиса, для MCP и OneRoster. - **Токен API** (см. [API Omniscol](#page-integrations.api-tokens)) — **автономный токен**, подписанный сервером, который содержит **список разрешённых конечных точек** и который вы сами передаёте внешней системе: без зарегистрированной третьей стороны, без экрана согласия, без обновления. Это делегирование администратором собственных прав системе, которую он контролирует. Итак, **токен API** подходит, когда вы сами передаёте доступ системе, которую контролируете; **OAuth2** подходит, когда идентифицированный сторонний сервис должен получить делегированный, ограниченный скоупами и отзываемый доступ, либо когда этого требует протокол (MCP, OneRoster). #### Инструкция — Регистрация клиента OAuth2 1. **Откройте экран OAuth2.** В разделе **Администрирование → Импорт/Экспорт**, секция OAuth2, нажмите OAuth2, затем введите пароль администратора. 2. **Зарегистрируйте клиент.** Укажите его название, скоупы (`read:basic`, `read:user`, `write:data`, `admin`), URI перенаправления и, при необходимости, контакты, сайт и логотип. Скоупы OneRoster через динамическую регистрацию здесь не назначаются; их выдаёт администратор. 3. **Скопируйте показанные `client_id` и `client_secret`.** Секрет отображается **только один раз**: сохраните его в менеджере секретов. 4. **На стороне сервиса** настройте клиент с этими идентификаторами и URL сервера; совместимый клиент сам находит конечные точки через `/.well-known/`. 5. **Чтобы прекратить доступ,** вернитесь на экран и **отключите** либо **удалите** клиент. #### См. также - [MCP — подключение ИИ-агента](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [OneRoster](#page-integrations.oneroster) - [OIDC / SSO](#page-integrations.oauth2) - [Обзор интеграций](#page-integrations.overview) ### 9.6 Настройка API: переопределение конечных точек и вебхуки *Source: `help/ru/integrations/api-customization.md` · id: integrations.api-customization · Audience: admin · Plan: premium · Updated: 2026-06-27* > **Premium** > _Premium_ **Настройка API** — технический экран для **ИТ-службы**. Он позволяет изменить поведение API Omniscol для вашего аккаунта тремя способами: - **общая конфигурация** (общие HTTP-заголовки); - **переопределение конечной точки** — перенаправить веб-приложение на другой URL или отключить конечную точку; - **вебхуки** — исходящие вызовы, которые Omniscol отправляет в вашу систему, когда выполняется операция. #### Где найти Модуль **Администрирование**, экран **Импорт/Экспорт**, раздел **Настройка API**, кнопка **API**. Экран доступен **только на аккаунтах Premium** и защищён **усиленной аутентификацией**: перед открытием окна Omniscol повторно запрашивает пароль администратора. Любое действие на этом экране затрагивает технический контракт вашей интеграции, поэтому настройку выполняют совместно с Omniscol. #### Общая конфигурация Здесь вы задаёте **HTTP-заголовки** (формат `ключ1:значение1;ключ2:значение2`), которые применяются ко **всем вебхукам**. Это подходящее место, чтобы передавать **токен аутентификации** вашему собственному серверу (например, для `Authorization: Bearer …`, которого ожидает ваш сервер). Для **переопределения** аутентификация, напротив, указывается в заголовках самой конечной точки (см. ниже). #### Переопределение конечной точки **Переопределение** заново задаёт конечную точку API Omniscol так, что **веб-приложение** обращается вместо неё к **другому URL**. Есть три сценария использования — от самого мощного до самого простого. ##### Отдавать данные напрямую из вашей информационной системы Это самый мощный сценарий. Вы перенаправляете конечную точку **на чтение** на **внешний URL** — как правило, на **ETL**, который связан с **внутренней информационной системой** вашего учебного заведения. Тогда веб-приложение берёт данные **напрямую** из этой системы, а не из локальной копии, которую хранит Omniscol. На практике: если URL перенаправления — **абсолютный внешний адрес**, веб-приложение обращается к нему напрямую, минуя серверы Omniscol, и **использует ответ как есть** — точно так, как если бы он пришёл от Omniscol. Единственное условие: ваша система должна отвечать в **формате, которого Omniscol ожидает** для этой конечной точки (та же структура JSON): промежуточного преобразования нет. Для этой конечной точки локальная копия Omniscol больше не запрашивается; отображаются актуальные данные вашей системы. Пример: **каталог дисциплин** учебного заведения отдаётся на лету из вашей информационной системы, так что любое изменение на стороне школы сразу видно в Omniscol, без повторного импорта. Аутентификация в вашей системе указывается здесь в **заголовках самой конечной точки** (например, `Authorization: Bearer …`), в строке переопределения. **Метод** HTTP тоже можно задать для каждой конечной точки. Подключить конечную точку самого приложения к внешнему источнику актуальных данных — возможность столь же мощная, сколь и требовательная: пользуйтесь ею вместе с вашей ИТ-службой и по согласованию с Omniscol. ##### Включить в цепочку ваш собственный сервер или прокси Вызовы можно также пропускать через **ваш собственный сервер** или **прокси** — например, чтобы разрешить совместное использование ресурсов между источниками (CORS) или чтобы добавить собственную логику между веб-приложением и Omniscol. ##### Отключить конечную точку Чтобы **отключить** конечную точку, не указывайте для неё **никакого URL перенаправления** (метод `null`). Учтите, как это влияет на интерфейс. Omniscol — **одностраничное веб-приложение** (SPA), элементы интерфейса которого определяются **доступными конечными точками**: кнопки, вкладки и меню отображаются, только если существует конечная точка, от которой они зависят. Поэтому отключение конечной точки **динамически убирает** при следующем отображении зависящие от неё элементы интерфейса, а если вы отключите все конечные точки модуля, из навигации исчезнет **весь модуль**. Элементы именно убираются, а не просто скрываются, и всё это происходит **без какого-либо вмешательства в код**: достаточно изменить конфигурацию и перезагрузить приложение. В таблице для каждой конечной точки указаны: её **ключ** (внутренний код операции), **исходный URL**, **метод** HTTP, **новый URL** перенаправления и собственные **заголовки**. Поле поиска помогает найти конечную точку, которую нужно переопределить. #### Вебхуки (исходящие вызовы) **Вебхук** поручает Omniscol **отправить HTTP-запрос на ваш URL** **после** того, как операция выполнена успешно. Так **внешняя система получает актуальные сведения в реальном времени** — информационная панель, учебная онлайн-среда, система управления кадрами, собственная синхронизация… Вебхук привязывается двумя способами: - к **конкретной конечной точке** (ключ операции); - к **групповому событию**, которое сразу охватывает целое семейство операций. Существует три групповых события: - **изменение расписания** — любое изменение, затрагивающее **действующее расписание**, включая побочные эффекты: сохранение расписания, создание, перенос или удаление занятий, публикация расписания, отсутствия преподавателей или классов, как только затронута какая-либо дата, и структурные удаления (кабинета, дисциплины…) в **опубликованном** расписании — удаление дисциплины удаляет использовавшие её занятия, а это само по себе изменение. Правки, не выходящие за пределы неопубликованного черновика, это событие не запускают; - **изменение преподавателя** (добавление, обновление или удаление); - **изменение дисциплины** (собственные дисциплины). Для каждого вебхука вы указываете **URL обратного вызова**, **метод** HTTP, флажок **«с данными»** (прикладывать ли тело исходного запроса?) и собственные **заголовки**. ##### Что получает ваш сервер Вызов отправляется в формате `application/json` и содержит, помимо ваших заголовков: - **тело исходного запроса**, если включена опция «с данными»; - блок **метаданных** Omniscol: вызванный URL, код конечной точки, метод, параметры, токен аутентификации пользователя, идентификатор учебного заведения и конфигурацию самого вебхука; - заголовки для отслеживания: `X-OS-original-query`, `X-OS-original-endpoint`, `X-OS-auth` и `X-School`. Для события **изменение расписания**, если включена опция «с данными», вызов дополнительно содержит **перечень изменений по занятиям** (добавленные, изменённые, удалённые занятия) — это удобно, если нужно передавать дальше только то, что изменилось. ##### Поведение Вебхуки отправляются **в фоновом режиме** **после** того, как операция пользователя завершилась: они не замедляют интерфейс и **не блокируют его** в случае сбоя на вашем сервере. Исходящий вызов, который не удался, **записывается в журнал** и не прерывает работу в Omniscol. У каждого вызова короткий тайм-аут (несколько секунд): ваш сервер должен **быстро подтвердить получение** и обработать остальное у себя. #### Что нужно знать - API Omniscol предоставляет **часть** операций; переопределение или вебхук применяется только к фактически доступным конечным точкам. Список и аутентификацию см. на странице [API Omniscol](#page-integrations.api-tokens). - Для **интеграции с программным комплексом** (ERP, система управления кадрами, учебная онлайн-среда) часто лучше подходит специальная синхронизация — см. страницу [Синхронизация с внешними системами](#page-integrations.extsync). Внутри неё используется тот же механизм вебхуков. - Чтобы **ИИ-агент** мог обращаться к вашим данным без разработки, см. страницу [MCP — подключение ИИ-агента](#page-integrations.mcp). #### См. также - [API Omniscol](#page-integrations.api-tokens) - [MCP — подключение ИИ-агента](#page-integrations.mcp) - [Синхронизация с внешними системами](#page-integrations.extsync) ### 9.7 Полная модель данных: сущности JSON, связи и онтология *Source: `help/ru/integrations/data-model-full.md` · id: integrations.data-model-full · Audience: admin · Status: stable · Updated: 2026-06-18* На этой странице описана **полная модель данных** аккаунта Omniscol: сущности, их основные поля и связи. Она продолжает концептуальную страницу [Организация данных](#page-core-concepts.data-model), которая объясняет, *зачем* всё устроено так (справочник школы ↔ расписание, локальные копии); здесь речь о том, *что* именно хранится: это пригодная для работы структурная карта, в частности чтобы **связать модель с внешним справочником** (ERP-системой, каталогом пользователей, информационной системой). > **Техническая страница.** Этот справочник предназначен для интеграции и > сопоставления с внешней системой. Он **не нужен для > повседневной работы** в Omniscol: чтобы понять, как организованы данные > с прикладной точки зрения, см. [Организация данных](#page-core-concepts.data-model). Все данные учебного заведения организованы в виде дерева. Описанные ниже сущности (пользователи, учебные годы, расписания, отсутствия, события и т. д.) соответствуют разным ветвям этой структуры. Нормативный источник — **JSON-схема** аккаунта. Её можно посмотреть в двух видах: - **исходный текст** (JSON-схема как есть), который аккаунт отдаёт по адресу `https://api.omniscol.com/api/guest/school_schema.json`; - **древовидный просмотр**, удобный для чтения, на странице [omniscol.com/fr/datamodel](https://www.omniscol.com/fr/datamodel) (а соответствующий справочник API — на странице [omniscol.com/fr/developers](https://www.omniscol.com/fr/developers)). Эта схема точно описывает физическое хранение в базе в виде JSON-документа. На этой странице приведено её упорядоченное изложение, которое не меняется со временем. #### Документ школы: корень Корневой документ объединяет постоянный справочник учебного заведения и всё его планирование. Поддеревья первого уровня: | Корневой ключ | Сущность | Роль | | --- | --- | --- | | `config` | `SchoolConfig` | Параметры аккаунта (страна, опции, часовой пояс, внешняя синхронизация) | | `subjects_custom` | словарь `SubjectFull` | Собственные дисциплины школы | | `families_custom` | словарь `Family` | Собственные семейства дисциплин | | `users` | словарь `User` | Каталог пользователей (все роли) | | `school_years` | массив `SchoolYear` | Учебные годы и каникулы | | `timetables` | словарь `Timetable` | Расписания | | `absences` | группа `Absence*` | Отсутствия (преподавателей, классов, сотрудников, учеников) | | `staffing` | `Staffing` | Модуль управления персоналом и надзора | | `panels` | словарь `Panel` | Информационные панели | | `events` | словарь `Event` | Календарные события | | `api`, `snapshots`, `jobs`, `translations`, `logo` | разное | Технические настройки и журналы | Поддеревья, названные «словарём», — это JSON-объекты, в которых **ключи являются стабильными идентификаторами** (основа любого внешнего связывания — см. последний раздел). ```mermaid erDiagram SCHOOL ||--|| CONFIG : "config" SCHOOL ||--o{ SUBJECT : "subjects_custom" SCHOOL ||--o{ FAMILY : "families_custom" SCHOOL ||--o{ USER : "users" SCHOOL ||--o{ SCHOOL_YEAR : "school_years" SCHOOL ||--o{ TIMETABLE : "timetables" SCHOOL ||--o| STAFFING : "staffing" SCHOOL ||--o{ ABSENCE : "absences" SCHOOL ||--o{ PANEL : "panels" SCHOOL ||--o{ EVENT : "events" SCHOOL { string _id "домен учебного заведения" string name "название аккаунта" string country "страна аккаунта" string current_school_year "текущий учебный год" } ``` #### Сквозные поля: `_extids` и `wishes` Два поля встречаются во многих сущностях. Чтобы не повторять их в каждой схеме, они описаны один раз здесь. - **`_extids`** (`ExternalIds`) — таблица идентификаторов сущности во внешних системах, например `{ "auriga": "12345" }`. Есть у сущностей, которые можно синхронизировать (дисциплины, семейства, пользователи, площадки, кабинеты, ресурсы, преподаватели, классы, группы…). Это **точка привязки для сопоставления с внешним справочником** (см. последний раздел). - **`wishes`** — **временные ограничения**: доступность, желательные слоты или слоты, которых следует избегать, максимальная нагрузка в часах, предпочитаемый кабинет… Есть у большинства сущностей, которые можно планировать: пользователей, преподавателей расписания, курсов (дисциплин класса), групп, классов, кабинетов, временных диапазонов площадки, сеток надзора. В зависимости от охвата эти ограничения общие (на уровне школы) или относятся к одному расписанию. #### Уровень 1 — Справочник школы Справочник школы содержит то, что верно для учебного заведения независимо от расписания: каталог дисциплин, каталог пользователей, календарь учебных годов. ```mermaid erDiagram FAMILY ||--o{ SUBJECT : "family" SUBJECT ||--o{ SUBJECT : "parent" USER ||--o{ PLACEMENT : "распределения по годам" PLACEMENT ||--o{ PLACEMENT_GROUP : "groups" SCHOOL_YEAR ||--o{ HOLIDAY : "holidays" SUBJECT { string name string short "краткое название (для отображения)" string code string parent "родительская дисциплина" string family "семейство" string color object _extids "внешние идентификаторы" } FAMILY { string name string code } USER { string login string first_name string middle_name "(если уместно для страны)" string last_name string idnumber "официальный идентификатор" array roles "admin teacher staff student" string customrole "Настраиваемая роль" int servicehours "базовая часовая нагрузка" bool external "внешний преподаватель" object subjects "преподаваемые дисциплины" object wishes "общая доступность" object _extids } PLACEMENT { string class "назначенный класс" string date_start string date_end array groups "назначенные группы" } PLACEMENT_GROUP { string group "группа, группа групп или виртуальная группа" array weeks "диапазоны недель" } SCHOOL_YEAR { string name string date_start string date_end array altweeks "чередование недель" } HOLIDAY { string name string begin string end } ``` ##### Дисциплины — `SubjectFull` / `Subject` / `Family` Собственная дисциплина (`SubjectFull`) расширяет базовую дисциплину (`Subject`: `name`, `short`, `code`, `type`, `_extids`) полями `parent`, `family` и `color`. На уровне школы сосуществуют два источника: **общие дисциплины** страны (только для чтения) и **собственные дисциплины** учебного заведения. Подробное описание функций: [Управление дисциплинами](#page-admin.subjects). ##### Пользователи — `User` (включая преподавателей) `User` — это **единая сущность** каталога: личные данные (фамилия, имя, `idnumber`, контакты), аутентификация (`login`), `roles`, базовая часовая нагрузка (`servicehours`), общая доступность (поле `wishes`) и `placements`. **Преподаватель** — не отдельная сущность: это `User`, у которого среди `roles` есть `teacher` (один и тот же пользователь может совмещать несколько ролей). Поле `placements` (индексируется по учебному году) привязывает **ученика** к `class` и `groups` на определённый период. Подробности: [Управление преподавателями](#page-admin.teachers). ##### Учебные годы — `SchoolYear` / `Holiday` `SchoolYear` задаёт `date_start → date_end`, список `holidays` и `altweeks` (чередование недель). Это **временные рамки**, а не контейнер: расписания разворачиваются внутри них, но не вложены в них. См. [Учебный год](#page-core-concepts.school-year). #### Уровень 2 — Расписание `Timetable` — это целостная единица планирования. У него есть собственная локальная копия преподавателей, классов, групп и дисциплин — о принципе локальной копии см. [Организация данных](#page-core-concepts.data-model). ```mermaid erDiagram TIMETABLE ||--|| TIMETABLE_CONFIG : "config" TIMETABLE ||--o{ TIMETABLE_SITE : "sites" TIMETABLE ||--o{ TIMETABLE_TEACHER : "teachers" TIMETABLE ||--o{ TIMETABLE_CLASS : "classes" TIMETABLE ||--o{ LESSON : "lessons (группы групп, несколько групп)" TIMETABLE_SITE ||--o{ TIMETABLE_CLASSROOM : "classrooms" TIMETABLE_SITE ||--o{ TIMETABLE_RESOURCE : "resources" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_SUBJECT : "subjects" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_GROUP : "groups" TIMETABLE_CLASS ||--o{ LESSON : "lessons" TIMETABLE_CLASS_GROUP ||--o{ TIMETABLE_CLASS_GROUP : "parent (иерархия)" TIMETABLE_CLASS_SUBJECT }o--|| SUBJECT : "источник (частичная локальная копия)" TIMETABLE_CLASS_SUBJECT }o--o{ TIMETABLE_TEACHER : "teachers по умолчанию" TIMETABLE_TEACHER }o--o| USER : "частичная локальная копия и неявная связь по идентификатору" GROUPSET_ITEM }o--o{ TIMETABLE_CLASS_GROUP : "составляющие группы" TIMETABLE { bool active "опубликовано?" array lessons "общие занятия" } TIMETABLE_CONFIG { string type "week cycle calendar" int time_period "продолжительность слота" int time_unit "дробление слота" array weekdays "рабочие дни" string displaymode "hours periods agenda" int cycle "длина цикла" array dates "границы для calendar" object date_windows "окна формирования" } TIMETABLE_SITE { string name object distances "расстояния между площадками" object hours "временные сетки" } TIMETABLE_CLASSROOM { string name int capacity string specialisation "произвольная специализация" int maxclasses "одновременные классы" string building string description "произвольное описание" array tags "метки характеристик или оборудования" } TIMETABLE_RESOURCE { string name int number "доступное количество" } TIMETABLE_TEACHER { string first_name string last_name string virtual_name "вакансия" array subjects "дисциплины виртуальной вакансии" string idnumber int servicehours "можно переопределить для расписания" string classroom "предпочитаемый кабинет" } TIMETABLE_CLASS { string name string level string campus array sites "учитывается только одна площадка" int studentsnb "расчётное число учеников (для подбора подходящего кабинета)" string classroom "кабинет по умолчанию" bool offgrid "вне сетки (calendar)" string videolink "ссылка на видеоконференцию по умолчанию для всех занятий" string resourcelink "ссылка на ресурс (LMS) по умолчанию для всех занятий" } TIMETABLE_CLASS_SUBJECT { string code "наследуется от Subject" array incompatibilities "несовместимости" number pweight "педагогический вес" array teachers "преподаватели по умолчанию" number minutes "целевая нагрузка" string specialisation "требуемый кабинет" } TIMETABLE_CLASS_GROUP { string name string code bool free "свободная группа" string parent "родительская группа" int studentsnb "расчётное число учеников (для подбора подходящего кабинета)" } GROUPSET_ITEM { string name string code array groups "идентификаторы групп" } ``` ##### Конфигурация — `TimetableConfig` Определяющее поле — `type`: `week` (повторяющаяся неделя), `cycle` (цикл из нескольких дней, см. `cycle`) или `calendar` (реальные даты, см. `dates`). `time_period` и `time_unit` задают структуру сетки; `weekdays` — рабочие дни; `date_windows` — окна ограничений для автоматического формирования расписания. ##### Площадки, кабинеты, ресурсы `TimetableSite` (площадка) содержит свои `classrooms` (`TimetableClassroom`: `capacity`, `specialisation`, `maxclasses`, `building`) и свои `resources` (`TimetableResource`: `number` — доступное количество; система следит, чтобы ресурс не был забронирован сверх этого количества). `distances` описывает время в пути между площадками. См. [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) и [Специализации кабинетов](#page-core-concepts.classroom-specializations). ##### Преподаватели расписания — `TimetableTeacher` Дополненная частичная копия `User`: копируется лишь несколько идентифицирующих полей (`first_name`, `last_name`, `idnumber`), к которым добавляются поля, нужные для планирования (переопределяемое `servicehours`, предпочитаемый `classroom`, `wishes` для конкретного расписания). Непустое `virtual_name` обозначает **виртуального преподавателя** (вакансию, за которой нет реального `User`). ##### Классы, дисциплины класса, группы - **`TimetableClass`**: `name`, `level`, `campus`/`sites`, `studentsnb` и три ключевых поддерева — `subjects`, `groups`, `lessons`. - **`TimetableClassSubject`**: локальная копия дисциплины (расширяет `Subject`), дополненная для планирования: `minutes` (целевая нагрузка), `pweight` (педагогический вес), `incompatibilities`, `teachers` по умолчанию, `specialisation` кабинета. Назначение дисциплины **с типом занятия** создаёт отдельную запись для каждого типа. См. [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types). - **`TimetableClassGroup`**: часть класса. `free=true` отключает конфликты с остальным классом ([свободная группа](#page-core-concepts.free-groups)); `parent` выстраивает иерархию — см. [иерархия групп](#page-core-concepts.group-hierarchy). ##### Правила между группами — разделения, совмещения, группы групп Связи между группами хранятся в поддереве `groups` расписания и бывают трёх видов: | Схема | Сущность | Смысл | Страница | | --- | --- | --- | --- | | `TimetableGroupTimeset` | разделение | Взаимоисключающие группы **одного класса**, стоящие в расписании параллельно (половины класса, факультативы) | [Разделение класса](#page-core-concepts.class-divisions) | | `TimetableGroupSpaceset` | совмещение | Группы **разных классов**, которые занимаются вместе в зеркальных слотах | [Совмещение групп](#page-core-concepts.alignments) | | `TimetableGroupGroupset` | группа групп | Метагруппа (`GroupsetItem`: `name`, `code`, `groups[]`), объединяющая несколько групп | [Группы групп](#page-core-concepts.groups-of-groups) | См. также общий обзор [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups). #### Уровень 3 — Занятия **Занятие** (`Lesson`) — это единица обучения, которая реально размещена в расписании: продолжительность, дисциплина, группа, преподаватель (преподаватели), кабинет, ресурсы, позиция и статус. Оно формируется на основе дисциплины класса (см. уровень 2) и относится **либо к классу** (`class.lessons`), **либо непосредственно к расписанию** (`timetable.lessons`) — последний вариант для групп групп и занятий для нескольких групп, общих для нескольких классов. ```mermaid erDiagram TIMETABLE_CLASS ||--o{ LESSON : "lessons (занятия класса)" TIMETABLE ||--o{ LESSON : "lessons (группы групп, несколько групп)" LESSON ||--o{ LESSON : "assoc · concat · weekalt (сложные занятия)" LESSON }o--o| TIMETABLE_CLASS_GROUP : "group" LESSON }o--o{ TIMETABLE_TEACHER : "teachers" LESSON }o--o| TIMETABLE_CLASSROOM : "classroom" LESSON }o--o{ TIMETABLE_RESOURCE : "resources" LESSON ||--o{ MEMO : "memos" LESSON ||--|| POSITION : "position" LESSON { int duration "в числе периодов" int duration_actual "фактические минуты" int duration_accounted "оплачиваемые минуты" string modality "in_person remote hybrid self_study" string subject "идентификатор дисциплины" string group "идентификатор группы" array teachers "null принудительно означает отсутствие преподавателя" string classroom "null принудительно означает отсутствие кабинета" string status "planned draft canceled done" string _id "стабильная идентичность занятия" string _osrev "ревизия (оптимистичная блокировка)" } MEMO { string comment string pub "видимость комментария" string owner int tstp "отметка времени" } POSITION { string day "дата, день недели или номер дня цикла" int period "индекс слота в сетке" string start "точное время начала HH:MM (только вне сетки)" string end "точное время окончания HH:MM (только вне сетки)" bool fixed "занятие заблокировано (не перемещается при формировании)" } ``` ##### Основа занятия Занятие содержит поля планирования — `duration` (в периодах), `duration_actual` / `duration_accounted` (фактические / оплачиваемые минуты), `modality`, `subject`, `group`, `teachers`, `classroom`, `resources`, — к которым добавляются `position`, `status`, `memos` и идентичность (`_id`, `_osrev`). Если задать `teachers` или `classroom` равными `null`, это **явно задаёт** отсутствие преподавателя или кабинета. ##### Сложные занятия Одно занятие может **объединять другие**: - `assoc` — **связанные** занятия: группы меняются местами вместе. - `concat` — **сдвоенные** занятия: строго друг за другом. - `weekalt` — **чередование недель**: свой вариант занятия на каждую неделю. Эти механизмы образуют **сложные занятия** — см. [Сложные занятия: чередующиеся, связанные, сдвоенные](#page-core-concepts.complex-lessons). ##### Позиция занятия `position` — это **объект**, который размещает занятие во времени. Он включает следующие поля: - **`position.day`** — день занятия, **полиморфное поле, зависящее от режима расписания**: название дня (`monday`…`sunday`) в недельном режиме, **номер дня цикла** (`"1"`, `"2"`…) в циклическом режиме или **дата** `YYYY-MM-DD` в режиме календаря. Это одно и то же поле, которое меняет форму в зависимости от режима; оно присутствует всегда. - **`position.period`** — **индекс слота** во временной сетке. Занятие без `period` и без `start`/`end` соответствует праздничному дню. - **`position.start`** / **`position.end`** — точное время начала и окончания (`HH:MM`) для занятий **вне сетки** или в режиме календаря, которые не совпадают со стандартным слотом. - **`position.fixed`** — булево значение (по умолчанию ложь): **заблокированное** занятие, которое **автоматическое формирование расписания не переместит**. Занятия класса хранятся в `class.lessons`; массив `timetable.lessons` содержит **общие** занятия, связанные с группами групп. ##### Идентичность занятия У каждого занятия есть два технических поля идентичности, **доступные в аккаунтах Premium**: - **`_id`** — **стабильный** идентификатор, присваиваемый при создании занятия и в дальнейшем неизменный (он сочетает отметку времени и отпечаток содержимого). Это **ключ занятия** для совместного редактирования и для внешнего инструмента, который отслеживает занятия во времени. Для **повторяющихся экземпляров** календарного расписания (чередование недель, сдвоенные занятия, связанные занятия) `_id` каждого экземпляра **производится** от `_id` базового занятия, так что исходный идентификатор остаётся узнаваемым. - **`_osrev`** — маркер **ревизии** (оптимистичная блокировка), который увеличивается при каждом изменении (отметка времени + индекс изменения) и строго упорядочен по алфавиту (так легко определить, новее ли одна ревизия другой). Он позволяет совместному редактированию **обнаруживать и сливать одновременные изменения**: устаревшая клиентская ревизия сигнализирует о конфликте, который сервер разрешает или сливает вместо того, чтобы молча перезаписать данные. #### Отсутствия У отсутствий общая основа (`Absence`: `date_start`, `date_end`, `reason`, `hours`, `comment`, статус), которая уточняется для каждого субъекта. ```mermaid erDiagram ABSENCE ||--o{ ABSENCE_TEACHER : "teachers" ABSENCE ||--o{ ABSENCE_CLASS : "classes" ABSENCE ||--o{ ABSENCE_STAFF : "staff" ABSENCE ||--o{ ABSENCE_STUDENT : "students" ABSENCE_TEACHER ||--o{ SUBSTITUTE : "substitutes" ABSENCE_TEACHER { string date_start string date_end string reason "ключ перевода или название" array subjects "затронутые дисциплины" array classes "затронутые классы" string status } SUBSTITUTE { string substitute "имя замещающего" string date_start "начало правила (дата)" string date_end "окончание правила (дата)" array hours "затронутые слоты (begin/end в минутах, day)" array classes "затронутые классы" array subjects "затронутые дисциплины" string comment "комментарий" } ABSENCE_STUDENT { string date_start string reason array subjects "исключённые дисциплины" string status } ``` `AbsenceTeacher` можно ограничить определёнными `subjects`/`classes`; в ней хранится **массив правил замещения** (`substitutes`, каждое из которых — это `AbsenceTeacherSubstitute`: замещающий, период, временные слоты, классы и дисциплины, которые охватывает правило). Статусы различаются для каждого субъекта (например, `ok`/`aborted` для класса). См. глоссарий [Замещение / Замена](#page-glossary.substitution) и модуль **Управление отсутствиями**. #### Сотрудники Отдельный модуль (его можно приобрести и самостоятельно) для надзора и дежурств персонала. ```mermaid erDiagram STAFFING ||--o{ STAFFING_GRID : "grids" STAFFING ||--o{ STAFFING_ASSIGNMENT : "assignments" STAFFING ||--o{ STAFFING_STAFF_MEMBER : "staff" STAFFING ||--|| STAFFING_SCHEDULE : "schedule" STAFFING_ASSIGNMENT ||--o{ STAFFING_NEED_SPAN : "needs" STAFFING_GRID { array dates "периоды работы" array days array periods "слоты" } STAFFING_ASSIGNMENT { string name int req "минимальное число сотрудников" int ideal "желательное число" string site string priority "high normal low" array allowed_staff } STAFFING_NEED_SPAN { string day "день или дата" string begin "HH:MM" string end "HH:MM" int headcount "требуемое число" } STAFFING_STAFF_MEMBER { string first_name string last_name string virtual_name "вакансия" string color } STAFFING_SCHEDULE { object dates "смены по датам" } ``` `StaffingGrid` — это шаблон (дни, периоды); `assignments` описывают посты (`req`/`ideal`, `priority`, `needs`, подробно расписанные по слотам через `StaffingNeedSpan`); `schedule` фиксирует фактические смены по датам. См. модуль Управление персоналом. #### События **`Event`** — это запись календаря, **наложенная поверх сетки**: то, что происходит в учебном заведении **и не является обычным занятием** — педагогический совет, родительское собрание, однодневный экзамен, экскурсия, день открытых дверей. События хранятся в словаре `events` (ключи `event-`) и входят в функции Premium. Поля `Event` (обязательные: `title`, `start`, `end`): - **`title`** — отображаемое название. - **`start`** / **`end`** — начало и окончание в формате `YYYYMMDDTHHmmSS`. - **`rrule`** — необязательное правило **повторения**. - **`attendees`** — участники: пользователь, класс, группа, произвольное название (`custom`), либо всё учебное заведение (`everybody`) / любой желающий (`anyone`). - **`location`** — место (места): кабинет расписания или произвольное название. - **`resources`** — ресурсы, зарезервированные для события. - **`videolink`** — ссылка на видеоконференцию для дистанционного участия. - **`memos`** — комментарии; **`color`** — цвет (шестнадцатеричный). О работе с событиями в интерфейсе (создание, размещение на сетке, поля интерфейса) рассказано на странице [Разовые события](#page-schedules.events). #### Информационные панели **`Panel`** — это **информационная панель** с занятиями дня (холл, кабинет, экран в приёмной…). Она задаёт выбор `columns`, `topline`, `filters`/`exclusions` и настройки внешнего вида. См. глоссарий [Информационная панель](#page-glossary.panel). #### Идентификаторы, локальные копии и связывание с ERP Чтобы связать модель Omniscol с внешним справочником, главное — три принципа: 1. **Ключи словарей — это стабильные идентификаторы.** Дисциплины, пользователи, преподаватели, классы, группы, кабинеты, ресурсы индексируются неизменным идентификатором (JSON-ключом), а не названием. Именно эту основу — никогда не `name` — следует использовать для любого соответствия. 2. **Поле `_extids` (`ExternalIds`) хранит внешние идентификаторы.** Оно есть у сущностей, которые можно синхронизировать (`Subject`, `Family`, `TimetableSite`, `TimetableClassroom`, `TimetableResource`, `TimetableTeacher`, `TimetableClass`, `TimetableClassGroup`, `User`…) и сопоставляет каждой сущности её идентификаторы в сторонних системах, например `{ "auriga": "12345", "aimaira": "67890" }`. Это каноническая точка привязки для двустороннего сопоставления. 3. **Локальная копия «школа ↔ расписание» сделана намеренно.** Дисциплина класса или преподаватель расписания — это дополненная копия, а не живая ссылка. Поэтому внешний справочник должен решить, на каком уровне он сопоставляется: со **справочником школы** (постоянный каталог) или с конкретным **расписанием** (планирование с датами). Подробно правила распространения изменений описаны на странице [Организация данных](#page-core-concepts.data-model). Конфигурация синхронизации находится в `config.extsync` (`SchoolConfigExtsync`): `systems` (настроенные коннекторы), `sync` (направление и сущности), `export` и `schedules`, а также таблицы соответствия (`mappings`) по ключу и идентификатору Omniscol. Что касается программного доступа, REST API и токены описаны на странице [Токены API](#page-integrations.api-tokens); коннекторы синхронизации — на странице [Синхронизация с внешними системами](#page-integrations.extsync). > Точная и исчерпывающая форма каждого поля определяется эталонной > JSON-схемой аккаунта > (`https://api.omniscol.com/api/guest/school_schema.json`, > удобный для чтения просмотр на > [omniscol.com/fr/datamodel](https://www.omniscol.com/fr/datamodel)). Если > эта страница и схема расходятся, **верна схема**. #### См. также - [Организация данных](#page-core-concepts.data-model) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделение класса](#page-core-concepts.class-divisions) · [Совмещение групп](#page-core-concepts.alignments) · [Группы групп](#page-core-concepts.groups-of-groups) - [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types) · [Сложные занятия](#page-core-concepts.complex-lessons) - [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) - [Учебный год](#page-core-concepts.school-year) - [Токены API](#page-integrations.api-tokens) · [Синхронизация с внешними системами](#page-integrations.extsync) ### 9.8 Расширенные запросы — фильтрация, проекция и постраничный вывод в API *Source: `help/ru/integrations/advanced-queries.md` · id: integrations.advanced-queries · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Помимо вызова одной конечной точки за раз, API Omniscol предлагает **три поисковых интерфейса**. Вместе они охватывают полнотекстовый поиск, преобразование человеческого названия в технический идентификатор и выполнение **отфильтрованного, спроецированного и разбитого на страницы** запроса поверх любой конечной точки на чтение — без необходимости самостоятельно выстраивать цепочку из нескольких вызовов. Эти же инструменты отвечают на вопросы, которые чаще всего задают **интранет**, система бронирования или **ETL**, — прежде всего на *«какой кабинет или какой преподаватель свободен в этот промежуток времени?»* (см. [Поиск свободного кабинета или преподавателя](#поиск-свободного-кабинета-или-преподавателя)). #### Три интерфейса с первого взгляда | Конечная точка | Что делает | Лучше всего подходит для | | --- | --- | --- | | `POST /api/search` | Глобальный полнотекстовый поиск по всему аккаунту. Разбивает ваш текст на слова (без учёта регистра и диакритических знаков) и возвращает JSON-**пути**, где найдено каждое слово. | Быстрого ответа на вопрос «где встречается этот термин?». | | `POST /api/search/entity` | Находит сущность по названию. Учитывает диакритические знаки, подстановочные символы и приблизительное совпадение (сходство Дайса) и возвращает тип, идентификатор и контекст сущности. | Превращения `«7А»` в класс, а `«Мария Иванова»` — в преподавателя. | | `POST /api/search/query` | **Оркестратор запросов**: вызывает конечную точку на чтение, затем применяет к результату фильтр `where`, проекцию полей, сортировку и постраничный вывод. | Сложных отфильтрованных запросов, для которых иначе потребовалось бы несколько вызовов. | Все три описаны в интерактивном справочнике API (страница **/developers**), в разделе **Search**, и требуют аутентификации — см. [API Omniscol](#page-integrations.api-tokens). #### Фильтр `where` (в стиле Mango / MongoDB) `/api/search/entity` и `/api/search/query` принимают условие `where`: структурированный фильтр с **операторами в стиле MongoDB**. Поле сопоставляется либо с прямым значением (неявное равенство), либо с объектом операторов; несколько операторов для одного поля объединяются неявным **И**. В названиях полей допустима **запись через точку**, чтобы обратиться к родительскому контексту (например, `sites.name`). | Оператор | Значение | | --- | --- | | `$eq` / `$ne` | Равно / не равно | | `$gt` `$gte` `$lt` `$lte` | Сравнения | | `$in` / `$nin` | Значение входит в список / не входит в список | | `$exists` | Поле присутствует | | `$regex` | Регулярное выражение (без учёта регистра) | | `$contains` | Строка или массив содержит значение (без учёта регистра) | | `$like` | Приблизительное совпадение без учёта диакритических знаков и пунктуации (Дайс) | | `$and` `$or` `$not` | Логическая композиция | Несколько примеров: ```json { "capacity": { "$gte": 20, "$lte": 50 } } { "level": { "$in": ["L1", "L2", "L3"] } } { "name": { "$regex": "^lab" } } { "city": { "$like": "ivry sur seine" } } { "$or": [ { "capacity": { "$gte": 50 } }, { "specialisation": "chemistry" } ] } ``` #### Проекция, сортировка и постраничный вывод В `/api/search/query` есть ещё четыре параметра, которые делают ответ компактным и упорядоченным — это важно для сводной панели и ещё важнее для ИИ-агента, оплата которого идёт за токены: - **`project`** — список полей, которые нужно оставить (запись через точку допускается). Всё остальное отбрасывается. - **`sort`** — поле и порядок, `asc` или `desc`. Псевдополе `_count.<поле>` сортирует по длине поля-массива. - **`limit`** и **`offset`** — разбивают результаты на страницы. В ответе также есть блок `meta`: сколько элементов было до фильтрации, сколько прошло фильтр и сколько возвращено. #### Полный пример Найти кабинеты как минимум на 30 мест, оставить только название и вместимость, упорядочить от самого большого к самому маленькому и взять первые 20: ```bash curl -X POST "https://votre-etablissement.omniscol.com/api/search/query" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "call": "os_dashboard_classrooms_get", "where": { "capacity": { "$gte": 30 } }, "project": ["name", "capacity"], "sort": { "capacity": "desc" }, "limit": 20 }' ``` `call` — внутреннее имя конечной точки на чтение, которую нужно выполнить (как оно показано на странице **/developers**), `params` содержит параметры, свойственные этой конечной точке, а `extract_path` при необходимости указывает массив, который нужно отфильтровать внутри результата. Если его не указывать, как здесь, массив определяется автоматически. #### Поиск свободного кабинета или преподавателя Самая распространённая интеграция — снабжение данными интранета, системы бронирования или **ETL** — сводится к вопросу *«кто или что свободно в такой-то момент?»*. На него напрямую отвечают конечные точки **availability**: они возвращают по каждой сущности только **свободные** промежутки времени на запрошенные даты, уже учитывая занятия, отсутствия и обязательные пожелания. Доступность можно запросить двумя способами: - **По типу сущности** — `GET /api/schedules/availability/{datesrange}/{entity}` (при необходимости `/{entityId}`) для одного типа сущности — `teachers`, `classrooms`, `groups`, `resources`… - **С явным фильтром** — `GET /api/schedules/availability/{datesrange}` с параметром `filter`, где набор сужается тем же `$where`, что описан выше. `{datesrange}` записывается в формате `YYYYMMDD`, а **сегменты, разделённые запятыми, задают разрозненные даты** — это удобно для «двух конкретных понедельников»: `20261005,20261012`. Каждый возвращённый промежуток содержит `day`, `start`, `end` и `time` (в минутах): условие «не менее 3 часов» превращается в проверку `time >= 180` на вашей стороне. ##### Преподаватель, свободный в конкретный промежуток времени *«Какие преподаватели свободны в понедельник, 5 октября?»* — один вызов по типу сущности: ```bash curl -G "https://votre-etablissement.omniscol.com/api/schedules/availability/20261005/teachers" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode "with_entities=true" ``` Свободные промежутки возвращаются сгруппированными по типу, затем по преподавателю — например, `{ "availability": { "teachers": { "t.dupont": [ { "day": "2026-10-05", "start": "14:00", "end": "17:00", "time": 180 } ] } } }` — и ваш инструмент выбирает тот, который покрывает нужный промежуток. ##### Кабинеты определённой вместимости, свободные в два понедельника Объедините фильтр по сущности и доступность в одном вызове, используя **полезное подмножество** синтаксиса — только `$where` по вместимости: ```bash curl -G "https://votre-etablissement.omniscol.com/api/schedules/availability/20261005,20261012" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}' \ --data-urlencode "with_entities=true" ``` Omniscol возвращает свободные промежутки в оба понедельника для каждого кабинета как минимум на 30 мест. Затем ваш ETL оставляет кабинеты, у которых есть окно в **3 часа** (`time >= 180`) в **каждую** из дат — объединение результатов по нескольким дням остаётся на вашей стороне, поэтому правило остаётся явным и проверяемым. В `filter` для каждого типа сущности можно указать простой список идентификаторов (`{"classrooms":["A101","B204"]}`), подстановочный символ (`{"teachers":"*"}`), простое сопоставление по полю (`{"teachers":[{"email":"…"}]}`) или структурированный `$where`, показанный здесь. #### Как выбрать подходящий интерфейс - **«Где встречается это слово?»** → `POST /api/search`. - **«Какой сущности соответствует это название?»** → `POST /api/search/entity`. - **«Дай кабинеты более чем на 30 мест, отсортированные, первая страница»** → `POST /api/search/query`. - **«Кто или что свободно в этот промежуток времени?»** → `GET /api/schedules/availability/…`. #### Для ИИ-агента Эти интерфейсы существуют в значительной мере **для ИИ-агентов**. Полнотекстовый поиск и определение сущности превращают формулировку пользователя (`«преподаватель Иван Петров»`, `«класс 7А»`) в точные идентификаторы; затем оркестратор запросов отвечает на отфильтрованный вопрос одним вызовом и возвращает только запрошенные поля — вместо нескольких вызовов и слишком большого ответа. Когда вы подключаете агента через [MCP — подключение ИИ-агента](#page-integrations.mcp), эти инструменты входят в число тех, которыми он может пользоваться. #### Подключение к интранету, ETL или инструменту партнёра Именно эти интерфейсы на чтение ежедневно используют сторонние инструменты. Распространённые варианты: - **Запрос данных из интранета или сводной панели** — ваша страница обращается к конечным точкам на чтение (доступность, [конечная точка занятий](#page-integrations.lessons-api), сводные панели) с ограниченным **токеном API** и показывает результат. Со стороны Omniscol ничего устанавливать не нужно. - **Ночной ETL** — плановая задача забирает то, что ей нужно (занятия за интервал дат, часы преподавателя, загрузку кабинетов) и загружает это в вашу информационную систему. `search/query` делает каждую выборку отфильтрованной, спроецированной и разбитой на страницы, чтобы ответ был компактным. - **Передача данных из вашей системы** — обратное направление, чтобы Omniscol оставался согласованным с вашим источником достоверных данных: ночная задача может обновлять классы и преподавателей (`POST /api/external/classes`, `POST /api/external/teachers`) или загружать справочник собственных дисциплин (`POST /api/admin/subjects/custom`) из вашей базы. - **Школьная информационная система / ERP** — для Aurion, Auriga и подобных подходящий инструмент — специальный коннектор, см. [Синхронизация с внешними системами](#page-integrations.extsync). - **Управление по событиям** — чтобы получать уведомление об изменении, а не опрашивать систему в цикле, зарегистрируйте **вебхук**, см. [Настройка API](#page-integrations.api-customization). Делайте каждую интеграцию **ограниченной**: токен только для действительно нужных конечных точек, регулярно обновляемый и только на чтение везде, где интеграция только читает данные. См. [API Omniscol](#page-integrations.api-tokens). #### См. также - [API занятий](#page-integrations.lessons-api) - [API Omniscol](#page-integrations.api-tokens) - [MCP — подключение ИИ-агента](#page-integrations.mcp) - [Полная модель данных](#page-integrations.data-model-full) - [Встроенный ИИ-ассистент](#page-integrations.ai-assistant) - [Обзор интеграций](#page-integrations.overview) ### 9.9 API занятий — получение занятий на любую дату *Source: `help/ru/integrations/lessons-api.md` · id: integrations.lessons-api · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Когда внешней системе нужно знать, *что происходит и когда*, она обращается к этой конечной точке: ``` GET /api/schedules/lessons/{datesrange} ``` Она возвращает **занятия с датами** из ваших расписаний — каждое занятие стоит на своей реальной дате — для запрошенных дат и сущностей. Почти любая интеграция (интранет, ETL, инструмент партнёра) начинается отсюда. На этой странице разобраны параметры, благодаря которым одна конечная точка подходит для множества задач. #### Занятия и структуры Две конечные точки, две роли: - **`GET /api/schedules/lessons/{datesrange}`** — **занятия**: каждое занятие, поставленное на реальную дату, с дисциплиной, преподавателями, кабинетом, группой и продолжительностью. Её читают, чтобы узнать, кто где находится и когда. - **`GET /api/schedules/`** — **структуры**: сами опубликованные расписания (классы, дисциплины, площадки, сетка). Её читают, когда нужна базовая модель, а не занятия с датами. Структуры можно также добавить в вызов занятий с помощью `with_timetables=true` (см. ниже): тогда один запрос возвращает и то, и другое. #### Выбор дат `{datesrange}` записывается в формате `YYYYMMDD` и намеренно допускает разные формы: | Форма | Значение | | --- | --- | | `20261005` | Один конкретный день | | `20261005-20261011` | Закрытый интервал (неделя) | | `20260901-` / `-20260630` | Интервал, открытый с одной стороны | | `20261005,20261012,20261019` | **Разрозненные** даты — три конкретных понедельника | | `20261005-20261011,20261102-20261108` | Несколько интервалов сразу | | `` или `-` | Все даты | Разрозненная форма (через запятую) позволяет уложить вопрос вроде «эти три понедельника» в один вызов. #### Выберите только то, что нужно Параметр `filter` ограничивает запрос нужными сущностями — по той же грамматике фильтра, что и конечные точки доступности ([Расширенные запросы](#page-integrations.advanced-queries)): - простой список идентификаторов — `{"classes":["3a","3b"]}`, - подстановочный знак — `{"teachers":"*"}`, - простое совпадение по полю — `{"classrooms":[{"site":"nord"}]}`, - или структурированный `$where` — `{"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}`. Результат группируется **по типу фильтра, затем по идентификатору сущности** — например, `schedules.classes.3a.lessons[]`, `schedules.teachers.j-doe.lessons[]`. Ещё два параметра задают рамки выборки, а один ограничивает её объём: - **`timetables_restrict`** / **`timetables_exclude`** — оставить или исключить идентификаторы расписаний (строка, CSV или массив). - **`limit`** — ограничить число занятий, возвращаемых на каждый фильтр. #### Как выглядит занятие Каждый элемент `lessons[]` — это поставленное занятие: ```json { "position": { "day": "2026-10-05", "period": 0, "start": "8:15", "end": "9:10" }, "duration": 2, "subject": "maths", "teachers": ["j-doe"], "classroom": "nord:B12", "class": "3a", "schedid": "3" } ``` - **`position.day`** — дата занятия. - **`position.period`** — номер занятия на сетке расписания; он есть у занятий, поставленных на сетку. У занятия вне сетки (со своими явными `start`/`end`, не совпадающими с обычными слотами) вместо него указаны `start`/`end`, а `period` отсутствует. - **`position.start`** / **`position.end`** (время) всегда сопровождают занятие вне сетки и добавляются к занятиям на сетке, если передать **`with_hours=true`** (заранее вычисленное время). Включайте этот параметр, когда целевой системе нужно время по часам, а не номер на сетке. #### Отсутствия, отмены и замещения По умолчанию конечная точка **учитывает отсутствия**: отсутствующий преподаватель исключается из занятия, а занятие, у которого не осталось преподавателей, считается отменённым и отбрасывается. Это меняют несколько параметров: - **`without_absences`** — полностью игнорировать отсутствия; вернуть исходную запланированную сетку. - **`with_absences`** — добавить к занятиям необработанные отсутствия за период. - **`with_cancellessons`** — сохранить отменённые занятия (все преподаватели отсутствуют), а не отбрасывать их. - **`with_studentcancellessons`** — оставить только занятия, отменённые из-за отсутствия ученика. - **`with_removedlessons`** — вернуть снятые занятия (несовместим с `with_cancellessons`). - **`without_teacher_consolidation`** — оставить отсутствующих преподавателей в списке `teachers` каждого занятия, а не исключать их. - **`without_holidays`** — не подставлять каникулы в диапазон. По умолчанию, если на время отсутствия назначен замещающий, он **просто занимает место отсутствующего преподавателя в списке `teachers`** занятия — замещение прозрачно, без дополнительных полей. Если передать **`with_cancellessons`** или **`without_teacher_consolidation`**, у занятия появляется ещё и блок **`substitutes`** (идентификатор замещающего, причина отсутствия и само отсутствие, из-за которого потребовалось замещение): так в одном ответе видно, кого заменили и почему. #### Структуры и справочники Нужные справочные данные можно присоединить в том же вызове: - **`with_timetables=true`** — исходные структуры расписаний, по которым вычислены занятия (классы, дисциплины, сетка, по идентификатору). Включайте, чтобы расшифровать идентификаторы; для компактного ответа оставьте выключенным. - **`with_entities=true`** — краткие название и код (и поля имени человека) сущностей из результата. - **`with_teachers`** / **`with_all_teachers`** — преподаватели, участвующие в занятиях, или все преподаватели расписания и справочника. - **`with_students`** — ученики с их распределением по датам. - **`with_events=true`** — события вне сетки (педагогические советы, родительские собрания…) за тот же диапазон. #### Ночной забор данных для ETL Получить занятия за неделю по всем классам, со временем начала и окончания, и загрузить их в вашу информационную систему: ```bash curl -G "https://votre-etablissement.omniscol.com/api/schedules/lessons/20261005-20261011" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classes":"*"}' \ --data-urlencode "with_hours=true" ``` В ответе занятия сгруппированы в `schedules.classes..lessons[]`. Отсутствия уже учтены: загружаемые данные отражают реальное и актуальное расписание — добавьте `with_absences=true`, если хотите сохранять ещё и причину изменения. #### Передача данных в Omniscol Интеграция работает и в обратную сторону — чтобы Omniscol совпадал с внешним источником достоверных данных. Для школьной информационной системы или ERP (Aurion, Auriga…) лучше использовать специальный коннектор, а не приведённые ниже низкоуровневые конечные точки — см. [Синхронизация с внешними системами](#page-integrations.extsync). ##### Классы и преподаватели Эти конечные точки существуют **только** для синхронизации с внешней системой; сам интерфейс Omniscol их никогда не вызывает: - **`POST /api/external/classes`** (`os_external_classes_post`) — обновить существующие классы (название, площадка, уровень, кабинет, численность) по данным, индексированным по идентификатору класса. Он обновляет известные классы, но новых не создаёт. Чтобы очистить поле, задайте ему значение `null` (кроме названия класса — у класса название остаётся всегда). - **`POST /api/external/teachers`** (`os_external_teachers_post`) — добавить или обновить преподавателей по идентификатору, как в расписаниях, так и в справочнике (при необходимости создавая пользователя с ролью преподавателя и автоматически сформированным логином). Варианты `DELETE` удаляют класс или преподавателя. Есть и особая конечная точка, которую можно **только переопределить**, `os_external_classes_get`: Omniscol не поставляет для неё реализации по умолчанию, но когда партнёр или поставщик направляет её на собственный сервис (через [Настройка API](#page-integrations.api-customization)), экран создания класса предварительно заполняется из этого **закрытого списка классов** вместо формы ручного ввода. Без переопределения она просто ничего не делает. ##### Собственные дисциплины **`POST /api/admin/subjects/custom`** (`os_admin_subjects-custom_post`) загружает **каталог собственных дисциплин** или создаёт одну дисциплину. Интерфейс тоже пользуется ею. Тело запроса для каталога — `{ "subjects": [ … ], "replace": false, "duplicates_reuse": true }`: по умолчанию данные добавляются, `replace: true` — полное обновление, `duplicates_reuse: true` (значение по умолчанию) — сопоставлять существующие дисциплины по внешнему идентификатору, коду или названию. Это конечная точка для ночной передачи дисциплин. #### См. также - [Расширенные запросы](#page-integrations.advanced-queries) - [API Omniscol](#page-integrations.api-tokens) - [Полная модель данных](#page-integrations.data-model-full) - [Синхронизация с внешними системами](#page-integrations.extsync) - [Настройка API](#page-integrations.api-customization) - [Обзор интеграций](#page-integrations.overview) ### 9.10 MCP — подключение внешнего ИИ-агента к Omniscol *Source: `help/ru/integrations/mcp.md` · id: integrations.mcp · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Model Context Protocol (MCP)** — открытый стандарт, который позволяет ИИ-ассистенту, совместимому с MCP, использовать прикладные инструменты внешнего сервиса. Omniscol предоставляет значительную часть своего API в виде **сервера MCP**: ИИ-агент после аутентификации может обращаться к вашему аккаунту в рамках разрешённых конечных точек API или прав — через OAuth2, стандартный для MCP способ, или с помощью токена. #### Что может делать агент Агент MCP очень хорошо справляется с **вопросами на получение информации**, когда нужные данные есть в Omniscol: - *«Покажи загрузку кабинетов относительно часов открытия на этой неделе.»* - *«Найди кабинет, свободный в три понедельника октября в один и тот же временной слот длительностью 2 часа.»* - *«Сколько часов занятий провёл И. И. Иванов в текущем учебном году?»* - *«Какие занятия по математике проходят сегодня?»* - *«Выведи преподавателей, которые отработали меньше 70 % своих рабочих часов в этой четверти.»* Такие запросы обычно объединяют несколько инструментов: расписание, статистические сводные панели, рассчитанную доступность, карточки преподавателей. Агент сам организует вызовы и формулирует ответ на естественном языке. #### Предоставляемые инструменты Сервер MCP строит свои инструменты из маршрутов API Omniscol, разрешённых для MCP. Маршруты, явно исключённые, и некоторые технические модули (например, связанные с аутентификацией пользователей) инструментами не становятся. Список отражает поэтому API, доступный для MCP, а не всё внутреннее устройство приложения. Тем не менее это очень значительная его часть. Кроме того, есть ряд маршрутов, созданных специально для MCP и не используемых самим Omniscol. Таковы инструменты расширенного поиска: свободный текст, обозначающий сущность («преподаватель И. И. Иванов», «класс 6А»), Omniscol сопоставляет с её техническим идентификатором, по которому затем точно запрашиваются данные. Таковы же сложные инструменты, для которых в Omniscol нет графического интерфейса, потому что они лучше подходят для запроса в свободной форме: например, поиск загрузки и доступности сущности («найди кабинет, свободный 2 часа во второй половине дня три понедельника подряд», «есть ли свободный преподаватель математики на неделе 14 октября на 3 часа?»). Инструменты охватывают, в частности: - модуль «**Администрирование**» (пользователи, дисциплины, учебные годы, параметры), - модуль «**Управление расписанием**» (конфигурация, площадки, кабинеты, классы, курсы), - модуль «**Расписание**» (планирование, сводные панели, поиск), - модуль «**Управление отсутствиями**» (объявление об отсутствиях, статистика), - глобальный поиск. Маршруты чтения лучше всего подходят для работы с агентом. Некоторые операции записи могут присутствовать в каталоге, в зависимости от прав токена и доступного API, но их следует держать под контролем: запрос, изменяющий несколько прикладных объектов, должен быть проверен пользователем, прежде чем его можно считать надёжным. #### Включение сервера MCP Сервер MCP доступен на аккаунтах с тарифом «**Премиум**». Всё начинается с **экрана MCP**, который открывается из модуля «**Администрирование**» кнопкой **Настроить**: он показывает **URL сервера** и выдаёт готовые для копирования элементы настройки вашего клиента. **Стандартный способ аутентификации в MCP — OAuth2.** Совместимый клиент (например, Claude) просто подключается к URL сервера, находит там конфигурацию OAuth2 аккаунта, а пользователь одобряет доступ на экране согласия: **кроме URL, ничего вводить не нужно**. Предоставляемый объём доступа соответствует правам аккаунта и его ограничениям видимости. Сервер OAuth2 в Omniscol, экран управления клиентами и подробности согласия описаны на странице [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server). Для клиента, который не поддерживает OAuth2, тот же экран создаёт **токен** (ключ API, объём доступа — глобальный или ограниченный одним модулем, срок действия, при желании связанный пользователь, права на запись отмечаются флажком) и предлагает готовые для вставки форматы на нужный случай: заголовок `Authorization: Bearer`, блок настройки **Claude Desktop** (бесплатный режим) и команду локального прокси. Токен опирается на систему ключей, описанную на странице [API Omniscol](#page-integrations.api-tokens). #### Рекомендации по безопасности - **Аутентификация OAuth2** — удобнее, и её стоит предпочесть, если ваш агент её поддерживает (платная версия Claude). - **Отдельный токен для ИИ** — создайте токен с понятным названием (`ИИ-агент — Claude desktop`), который при необходимости можно отозвать. - **Минимальный объём доступа** — для токена API выбирайте только нужные конечные точки API. Для токена OAuth ограничивайте scopes реальной потребностью. - **Журналы активности (логи)** — вызов появляется в журналах, связанных с токеном, если соответствующий маршрут журналируется. Эти журналы фиксируют сам вызов; подробности возвращённых данных и содержимое запроса, пригодное для повторного воспроизведения, они не хранят. - **Ограничения видимости** — агент видит то, что возвращает ему Omniscol. Если для роли токена вы настроили строгие ограничения видимости, они применяются. #### Инструкция — Подключение Claude к Omniscol Рекомендуемый путь — **аутентификация OAuth2**: вы подключаете Claude к серверу MCP по его URL, не работая с токеном. 1. **Включите сервер MCP** на аккаунте Премиум и получите его URL (обычно `https://vasha-shkola.omniscol.com/mcp`). Экран MCP (модуль «**Администрирование**», кнопка **Настроить**) показывает его и снабжён кнопкой копирования. 2. **Добавьте Omniscol как коннектор в Claude.** В настройках коннекторов Claude добавьте пользовательский коннектор и вставьте URL сервера MCP Omniscol. 3. **Одобрите доступ.** Claude перенаправит вас на экран согласия Omniscol: войдите в систему и разрешите доступ. Предоставляемый объём доступа соответствует правам вашего аккаунта и возможным ограничениям видимости. 4. **Инструменты появятся в Claude**, который будет вызывать их, когда это уместно для вашего запроса. 5. **Первая проверка**: *«Сколько часов занятий провёл И. И. Иванов в этом году?»* — Claude сопоставит доступные данные и ответит на естественном языке. **Альтернативный способ — токен.** Для клиента MCP, который не поддерживает OAuth2, создайте отдельный токен на экране MCP (понятное название, конечные точки, ограниченные реальной потребностью, права на запись отмечены явно) и передавайте его в заголовке `Authorization: Bearer`. Экран MCP выдаёт соответствующий блок настройки. Выбирайте OAuth2, как только ваш клиент его поддерживает. #### См. также - [Встроенный ИИ-ассистент](#page-integrations.ai-assistant) - [API Omniscol](#page-integrations.api-tokens) - [Расширенные запросы](#page-integrations.advanced-queries) - [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server) - [Обзор интеграций](#page-integrations.overview) ### 9.11 Встроенный ИИ-ассистент *Source: `help/ru/integrations/ai-assistant.md` · id: integrations.ai-assistant · Audience: admin · Status: stable · Updated: 2026-09-30* **Встроенный ИИ-ассистент** — это чат Omniscol, в котором можно задать вопрос на естественном языке прямо из интерфейса. Он открывается на вкладке **ИИ-ассистент** панели справки; эта вкладка доступна только администраторам. Ассистент опирается на материалы справки и, в зависимости от договора аккаунта, на инструменты Omniscol, доступные агенту. Охват зависит от аккаунта: документационный ассистент отвечает по онлайн-справке, а аккаунты, чей договор это предусматривает, получают дополнительный доступ к прикладным инструментам, которые обращаются к данным аккаунта. Чтобы подключить к вашему аккаунту внешнего ИИ-агента, см. [MCP — подключение ИИ-агента](#page-integrations.mcp). #### Что умеет ассистент Ассистент рассчитан на два типа запросов: - **вопросы по документации** — найти нужную процедуру, объяснить понятие, указать подходящую страницу справки; - **рабочие вопросы** — запросить данные аккаунта через разрешённые инструменты, например о курсах, кабинетах, преподавателях, отсутствиях или статистике. Примеры: - *«Как опубликовать расписание?»* - *«Где настроить ссылки iCal?»* - *«Какие занятия по математике запланированы на сегодня?»* - *«Почему после этого формирования расписания остаются неразмещённые занятия?»* #### Что ассистент видит на вашем экране Ассистент знает, какой экран вы открыли. Но что на этом экране показано (имена, цифры, открытые окна), он не видит, пока вы не прикрепите это. Кнопка с фотоаппаратом (Прикрепить то, что показывает экран) слева от поля ввода предлагает: - **Снимок экрана** или **Снимок области**: изображение экрана или его части, в аккаунтах Premium; - **Контекст экрана (без данных)**: адрес экрана, его заголовок и видимые элементы, без их содержимого; - **Содержимое на переднем плане**: текст того, что открыто поверх экрана, например подробности конфликта; - **Полное содержимое (с данными)**: текст всей страницы вместе с данными, которые на ней показаны. В аккаунтах без Premium контекст экрана передаётся с каждым вопросом. Когда какое-то содержимое находится на переднем плане, ассистент сообщает об этом над полем ввода: «Ассистент не видит содержимое на переднем плане.» Его текст передаётся только после нажатия на **Содержимое на переднем плане**. #### Права и охват У ассистента нет неограниченного доступа к аккаунту. Его ответы и действия зависят от: - договора аккаунта, который определяет, включены ли прикладные инструменты; - прав администратора, вошедшего в систему; - инструментов, которые действительно доступны агенту; - данных, имеющихся в Omniscol. Действие, изменяющее прикладные данные, выполняется только после явного подтверждения. Для внешних интеграций с ИИ-агентами используйте MCP (см. [MCP — подключение ИИ-агента](#page-integrations.mcp)) и отдельные токены API. #### Рекомендации - Проверяйте предложенные действия, прежде чем их применять. - Не вставляйте в разговор конфиденциальные данные, если они не нужны для запроса. - Для внешнего агента создайте отдельный токен API с минимальными правами и подходящим сроком действия. #### См. также - [MCP — подключение ИИ-агента](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) ### 9.12 OIDC / SSO — вход через поставщика удостоверений *Source: `help/ru/integrations/oauth2.md` · id: integrations.oauth2 · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ OpenID Connect (OIDC), построенный на OAuth2, позволяет вашим пользователям входить в Omniscol **со своей корпоративной учётной записью**, а не с отдельным паролем Omniscol. Три преимущества: один пароль, который нужно помнить, централизованное отключение при приходе и уходе работника, автоматическое применение политики безопасности (MFA, длина пароля, срок действия…), которая задаётся в вашей информационной системе. Эта страница описывает **SSO для пользователей**: вход людей в Omniscol через вашего поставщика удостоверений. Обратный случай — Omniscol как **сервер** OAuth2 / OIDC, к которому подключаются сторонние сервисы, с экраном управления клиентами — описан на странице [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server). #### Поддерживаемые поставщики Omniscol поддерживает: - **Google Workspace**, - **Microsoft Entra ID** (прежнее название — Azure AD), - **Keycloak**, - **универсального поставщика OIDC** по его issuer / discovery URL (любой поставщик, совместимый с OIDC). #### Настройка в Omniscol В разделе **Администрирование** → **Параметры**, секция **Безопасность**, кнопка **Настроить** открывает экран настройки OIDC, где задаётся поставщик: - **Отображаемое имя** — надпись, которая появится на кнопке входа (например, `Продолжить через Google`). - **Тип поставщика** — Google, Microsoft Entra ID (Azure AD), Keycloak или универсальный OIDC. - **Tenant / issuer** — tenant Microsoft для Entra ID или URL issuer для Keycloak и универсальных поставщиков OIDC. Метаданные OIDC приложение затем определяет само. - **Client ID** и **Client secret** — их получают, создав приложение у поставщика (см. документацию поставщика). - **Scopes** — по умолчанию `openid profile email`. При необходимости добавьте scopes, специфичные для поставщика. - **Разрешённые домены** — необязательный список доменов электронной почты, допустимых при входе через SSO; если список пуст, фильтрация по домену не применяется. - **URL перенаправления** — Omniscol показывает точное значение, которое нужно скопировать в настройки у поставщика (а также URL перенаправления после выхода, если поставщик его запрашивает). - Вход только через SSO — после подтверждения SSO этот параметр отклоняет вход по паролю Omniscol, кроме **резервных учётных записей**, описанных ниже. Текущая настройка SSO задаётся на уровне учётной записи школы. #### Резервный доступ (break-glass) В режиме **Вход только через SSO** вход по паролю Omniscol отклоняется: все входят через поставщика удостоверений. Если этот поставщик станет недоступен — из-за сбоя, истёкшего секрета или ошибки настройки, — доступ в Omniscol будет закрыт для всех. **Резервная учётная запись («break-glass»)** защищает от такой блокировки: это учётная запись **администратора**, которой разрешено входить по паролю Omniscol, даже когда включён режим «только SSO». - В карточке учётной записи **администратора**, когда включён параметр **Вход только через SSO**, появляется флажок **Резервный доступ (только SSO)**. Если его установить, этой учётной записи разрешается входить по паролю, когда поставщик удостоверений недоступен. Резервными могут быть только учётные записи администраторов. - Кроме того, служба поддержки Omniscol сохраняет независимый резервный доступ. Назначьте хотя бы одну резервную учётную запись **до** включения режима «только SSO» и храните её пароль в надёжном месте: это ваша страховка на случай, если поставщик удостоверений выйдет из строя. #### Настройка у поставщика (примеры) ##### Google Workspace 1. Google Cloud Console > **APIs & Services > Credentials**. 2. **Создайте идентификатор OAuth 2.0**, тип — **Веб-приложение**. 3. Вставьте URL перенаправления, выданный Omniscol, в поле **Authorized redirect URIs**. 4. Скопируйте **Client ID** и **Client secret**, чтобы вставить их в Omniscol. ##### Microsoft Entra ID 1. Портал Azure > **Entra ID > App registrations**. 2. **New registration**, тип **Web**, URL перенаправления Omniscol. 3. **Certificates & secrets** > создайте client secret. 4. **API permissions** > добавьте `openid`, `profile`, `email`. 5. Скопируйте **Application (client) ID** и секрет. ##### Keycloak 1. Realm > **Clients > Create client**, тип **OpenID Connect**. 2. **Valid redirect URIs**: URL, выданный Omniscol. 3. **Credentials** > скопируйте client secret. #### Сопоставление с учётными записями Omniscol Когда пользователь нажимает кнопку SSO, Omniscol: 1. Перенаправляет его к поставщику, 2. Получает его адрес электронной почты после аутентификации, 3. Ищет учётную запись Omniscol с **тем же адресом электронной почты**. Если учётная запись существует и активна, пользователь входит в систему. В противном случае доступ запрещается. Следствие: чтобы SSO работал, пользователи должны существовать в Omniscol с правильным адресом электронной почты — по умолчанию Omniscol не создаёт их автоматически. #### Автоматическое создание учётных записей Автоматическое создание учётных записей при первом входе через SSO (`just-in-time provisioning`) не является поведением экрана настройки по умолчанию. Если этот режим нужен, его следует согласовать с Omniscol. #### Инструкция — Настройка поставщика OIDC / SSO 1. **OIDC / SSO** позволяет вашим пользователям входить со своей корпоративной учётной записью (Google Workspace, Microsoft Entra ID, Keycloak, Okta…). Часть настройки у поставщика зависит от самого поставщика. 2. **У поставщика** сначала создайте приложение OIDC типа **Веб-приложение**: скопируйте **Client ID** и **Client secret**, а **URL перенаправления**, выданный Omniscol, вставьте в *Authorized redirect URIs* у поставщика. 3. **В Omniscol** откройте параметры, затем настройку OIDC. Укажите **отображаемое имя** (надпись на кнопке входа), тип поставщика, issuer или tenant в зависимости от случая, Client ID, Client secret и **scopes** (по умолчанию: `openid profile email`). 4. **Нажмите Проверить.** Убедитесь, что настройка работает. Omniscol выполняет обмен запросами OIDC; при ошибке discovery, секрета или перенаправления сообщение об ошибке будет понятным. 5. **Сохраните.** Кнопка входа через SSO появится на странице входа, когда настройка активна. 6. **Важно: учётные записи должны существовать** в Omniscol с правильным адресом электронной почты. Вход через SSO сопоставляет учётные записи по адресу электронной почты; автоматического создания учётных записей по умолчанию нет. #### См. также - [Первый вход](#page-getting-started.first-login) - [Пользователи и роли](#page-admin.users-and-roles) - [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server) - [Обзор интеграций](#page-integrations.overview) ### 9.13 Синхронизация с внешними системами (ERP) *Source: `help/ru/integrations/extsync.md` · id: integrations.extsync · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Omniscol взаимодействует с ERP и внешними информационными системами учебных заведений через единый фреймворк **синхронизации**. Omniscol выступает в нём **центральным звеном**: именно он управляет импортом и экспортом, а внешняя система остаётся эталонным источником административных данных. Синхронизация с внешними системами доступна на аккаунтах **Премиум**, когда для аккаунта настроен коннектор. **По проекту** решается другое: добавление новой ERP или новой информационной системы, которая ещё не поддерживается, с согласованием сопоставления и потоков данных. #### Модель потоков Фреймворк работает в двух направлениях: - **Сущности (входящий поток)** — Omniscol может получать из ERP преподавателей, дисциплины, кабинеты, классы, учеников и их внешние идентификаторы, в зависимости от коннектора и настроек. Ссылки ext-id сохраняются в Omniscol для сверки записей. - **Занятия (исходящий поток)** — Omniscol передаёт в ERP занятия, созданные в ходе планирования, с правильными ссылками ext-id. В зависимости от коннектора экспорт можно запускать по требованию, по расписанию или повторно выполнять целиком, чтобы устранить расхождения. Omniscol управляет настроенными импортами и экспортами, хранит внешние идентификаторы, выполняет циклы синхронизации и предоставляет экраны проверки, чтобы сверять данные Omniscol и внешней системы. #### Источник и права на локальное создание Для каждого типа сущностей (преподавателей, дисциплин, кабинетов и т. д.) вы выбираете систему-источник и указываете, остаются ли разрешёнными локальное создание и локальное обновление. На экране есть также кнопка **Связь**: она позволяет сверить локальную сущность Omniscol с сущностью ERP, когда обе уже существуют. #### Сопоставление онтологий У каждой ERP свой словарь (например, «дисциплина» в Omniscol — это **Учебный модуль** в Auriga и **Курс** в Aurion). Фреймворк выполняет **сопоставление**: именно Omniscol связывает понятия одной системы с понятиями другой, и вам не нужно переписывать свою номенклатуру. #### Доступные коннекторы ##### Доступны - **Aurion** — коннектор, доступный в промышленной эксплуатации. ERP, **разработанная компанией Auriga** и особенно распространённая во французском высшем образовании (инженерные и бизнес-школы). См. [integrations.aurion](#page-integrations.aurion). - **Auriga** — коннектор, доступный в промышленной эксплуатации. **Программа Auriga** — полностью веб-ориентированное развитие Aurion от той же компании. См. [integrations.auriga](#page-integrations.auriga). ##### Стандарт каталога - **OneRoster** — вместо коннектора конкретного поставщика Omniscol поддерживает международный стандарт **OneRoster** (1.2 и расширенные группы) для обмена школьным каталогом с совместимой SIS, цифровой образовательной средой или LMS. Импорт каталога OneRoster входит в эту синхронизацию Премиум, а экспорт предоставляется только для чтения и контролируется областями доступа (scopes) OAuth2. См. [OneRoster](#page-integrations.oneroster). ##### По запросу Любая ERP или информационная система, у которой есть **документированный API** для действий импорта и экспорта и рабочая **песочница**, может быть подключена по проекту. Свяжитесь со службой поддержки Omniscol, чтобы согласовать добавление нового коннектора. #### Отличие от систем, которые обращаются к Omniscol Некоторые системы могут также использовать Omniscol через точки доступа **GET** публичного API: в этом случае Omniscol не управляет синхронизацией с ERP, а сторонняя система лишь запрашивает данные, доступные по её токену. Эта модель отличается от синхронизации, которой управляет Omniscol: | Модель | Кто управляет? | Направление | Пример | | --- | --- | --- | --- | | **Синхронизация с внешними системами** | Omniscol | Двустороннее (сущности на вход, занятия на выход) | Auriga, Aurion | | **Partner pull** | Партнёр | Партнёр выполняет GET | Сторонний коннектор через API | Модели partner-pull не нужна настройка синхронизации с внешними системами: достаточно публичного API и токенов аутентификации. См. [API Omniscol](#page-integrations.api-tokens). #### Настройка Настройка синхронизации с внешними системами обычно требует встречи со службой поддержки Omniscol, чтобы: 1. **Составить список объектов для синхронизации** — пользователей, классы, преподавателей, дисциплины, кабинеты и т. д. 2. **Настроить сопоставление онтологий** — какое понятие ERP соответствует какому понятию Omniscol. 3. **Определить исключительность** для каждого типа сущностей. 4. **Задать частоту** циклов (по требованию, ежечасно, ежедневно, а также для устранения расхождений). 5. **Протестировать в песочнице** ERP до ввода в эксплуатацию. #### Проверки и типовые операции - **Проверка** настроенных избранных элементов или наборов данных (datasets), в зависимости от коннектора. - **Ручной запуск** экспорта занятий с экрана администрирования. - **Плановый полный экспорт**, когда этот параметр настроен в блоке экспорта. - **XML Pivot Aurion**, когда используется коннектор Aurion. - **Проверка сверки**: экраны связей показывают сущности, которые нужно связать или исправить. #### Инструкция — Проверить и запустить синхронизацию 1. **Когда синхронизацию настроила** служба поддержки Omniscol, типовые операции выполняются с экрана администрирования: проверка избранных элементов и наборов данных, связывание сущностей, разовый запуск экспорта, скачивание pivot Aurion, если он доступен, или сброс состояния экспорта при переходе. 2. **В настройках системы** используйте кнопки **Проверить** у заполненных избранных элементов или наборов данных. Omniscol получает данные от коннектора и сообщает об ошибках настройки или формата, если коннектор их возвращает. 3. **Чтобы немедленно передать** занятия в ERP, не дожидаясь следующего планового цикла, нажмите **Запустить**. Это удобно после срочного изменения. 4. **При работе с Aurion** кнопка **XML Pivot** скачивает файл, который администратор ERP вручную загружает через консоль ERP, если выбран этот режим. 5. **При крупном переходе** (изменение структуры, конец учебного года) кнопка **Purge Omniscol** удаляет **на стороне ERP** все занятия, которые Omniscol туда экспортировал, чтобы начать с чистого листа. Действие затрагивает выбранный коннектор и **необратимо**: используйте его только после согласования со службой поддержки. #### См. также - [integrations.aurion](#page-integrations.aurion) - [integrations.auriga](#page-integrations.auriga) - [OneRoster](#page-integrations.oneroster) - [API Omniscol](#page-integrations.api-tokens) - [Импорт и экспорт](#page-admin.import-export) - [Обзор интеграций](#page-integrations.overview) ### 9.14 OneRoster (1.2 и расширенные группы) *Source: `help/ru/integrations/oneroster.md` · id: integrations.oneroster · Audience: admin · Plan: standard · Updated: 2026-06-29* OneRoster — международный стандарт обмена справочниками учебных заведений (его издаёт 1EdTech). В общем формате он описывает **учебные заведения**, **учебные годы**, **курсы**, **классы**, **зачисления** и **пользователей** школы. Стандарт нужен, чтобы подключить школьную информационную систему (SIS), школьный портал (ENT) или LMS к другому инструменту без повторного ввода данных и без проприетарных форматов. Страница адресована **службе информационных систем (ИТ-службе)** учебного заведения. Здесь описано, что Omniscol отдаёт и принимает по OneRoster, какая аутентификация требуется и какой охват у обмена в каждом направлении. #### Поддерживаемые версии Omniscol поддерживает **OneRoster 1.2 Rostering** — базовый набор (Org, AcademicSession, Course, Class, Enrollment, User, Demographics) — а также уровень **OR-Groups (Advanced Groups Service)**: дополняющий стандарт групп, который добавляет к версии 1.2 три сущности (Group, GroupMembership, GroupAssociation). Уровень OR-Groups — **стандарт, публикация которого ещё идёт**. Он строго дополняет версию 1.2: Group только **ссылается** на Class / User / Org / AcademicSession из версии 1.2, и только для чтения. Версия 1.3 OneRoster, как заявлено, сделает Class частным случаем Group — реализация Omniscol уже движется в эту сторону. #### Omniscol как источник данных (Omniscol → ENT / LMS) В роли **источника** Omniscol отдаёт справочник учебного заведения **только для чтения** через REST API, совместимый с OneRoster, чтобы ENT или LMS мог его прочитать. - Базовый набор Rostering 1.2 доступен по адресу `/ims/oneroster/rostering/v1p2/…` (например, `/orgs`, `/schools`, `/academicSessions`, `/courses`, `/classes`, `/enrollments`, `/users`, `/teachers`, `/students`, `/demographics`, у каждой точки есть вложенные варианты). - Уровень групп доступен по адресу `/ims/oneroster/groups/v1p0/…` (`/groups`, `/groupMemberships`, `/groupAssociations` и их вложенные варианты). - По умолчанию охватывается **текущий** учебный год; с помощью параметра можно выбрать другой год или включить все годы. Данные отражают консолидированные плановые данные Omniscol (опубликованные расписания). Источник **намеренно работает только на чтение**: запись (PUT / DELETE) не предоставляется — внешняя система не управляет созданием и удалением сущностей в Omniscol. ##### Аутентификация источника Точки доступа источника защищены **OAuth2 с потоком `client_credentials`** (токен «машина — машина», без пользователя), который выдаёт сервер OAuth2 Omniscol. Они **не** ограничены аккаунтами Premium: доступ определяют **области действия (scopes)** OAuth2, а не тариф. Каждая область относится к своему сервису, а доступ к демографическим данным внутри версии 1.2 выделен отдельно: | Точки доступа | Допустимые scopes | | --- | --- | | Rostering 1.2 (без демографии) | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly` | | Rostering 1.2 `/demographics` | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly` | | OR-Groups (все) | `https://purl.imsglobal.org/spec/or-groups/v1p0/scope/roster-group.readonly` | Токен OR-Groups не даёт доступа к базовому набору Rostering, и наоборот. Scopes на запись не объявляются. Привилегированные scopes назначает администрация Omniscol при регистрации клиента OAuth2; клиент не может назначить их себе сам. Управление клиентами OAuth2 и токенами описано на страницах [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server) и [API Omniscol](#page-integrations.api-tokens). ##### За состав учеников отвечает уровень групп Принципиальное решение: список учеников класса или группы отдаётся через **OR-Groups** (GroupMembership), а не одним только базовым набором 1.2. Потребитель, который читает только Rostering 1.2, получает каталог (Courses, Classes), зачисления преподавателей на курсы и справочник пользователей, но **не** получает принадлежность учеников. Чтобы узнать, кто в каком классе или группе, потребителю нужно реализовать уровень OR-Groups. Такое решение отражает французскую модель: ученик зачисляется в **класс** или **группу**, а не по каждой дисциплине отдельно. Источник работает через REST. Формат **CSV-пакета OneRoster** (zip-архив с одним файлом на коллекцию) поддерживается при импорте — для поставщиков, которые передают справочник файлом, а не через API; см. раздел о потребителе ниже. #### Omniscol как потребитель (SIS → Omniscol) > _Premium_ В роли **потребителя** Omniscol импортирует справочник SIS, совместимой с OneRoster, и сверяет его с данными учебного заведения. Эта настройка приёма данных входит в **синхронизацию с внешними системами**: она доступна на аккаунтах **Premium** и согласуется в рамках проекта с командой Omniscol (см. [Синхронизация с внешними системами](#page-integrations.extsync)). - **Транспорт** — либо **REST API** поставщика (задаётся базовый адрес, используется стандартная постраничная выдача OneRoster) с аутентификацией OAuth2 по потоку `client_credentials` на сервере поставщика; либо **CSV-пакет** (zip-архив). - **Профиль** — профиль настройки определяет, что именно читать: только базовый набор 1.2, уровень групп или французское сопоставление для школьного образования. Поставщик, который поддерживает только 1.2 и не имеет сервиса групп, импортируется без проблем. - **Контролируемое применение** — импорт работает по тому же принципу, что и остальные коннекторы: Omniscol получает данные и сверяет их, а **администратор подтверждает** их применение к учебному заведению. Внешняя система никогда не записывает данные в Omniscol напрямую. - **Идемпотентный повторный импорт** — соответствия внешних идентификаторов сохраняются, поэтому повторный импорт не создаёт дублей, даже если поставщик изменил название. #### Французский профиль (школьное образование) **Французский профиль для школьного образования** сопоставляет французские понятия с моделью OneRoster: **division** (класс в фактическом составе) становится Group основного организационного типа; **группа** становится Group типа проведения обучения; **группа групп** — сквозным Group; **разделения** и **совмещения** становятся связями между группами; назначение **преподавателя** на курс становится зачислением преподавателя. Идентификаторы вроде INE (национального номера ученика) или служебного номера преподавателя передаются в `userIds` пользователя. #### Идентификаторы и конфиденциальность Каждая отдаваемая сущность имеет стабильный идентификатор — `sourcedId`. - **Структурные** идентификаторы (учебное заведение, год, курс, класс, группа) стабильны и неизменны от одного экспорта к другому: потребитель может опираться на них, чтобы сопоставлять данные во времени. - Идентификатор **пользователя** **обезличен**: Omniscol никогда не передаёт по сети собственный персональный идентификатор. Передаваемый токен вычисляется односторонней функцией (HMAC), своей для каждого аккаунта; зачисления и членство используют этот же токен и никогда не раскрывают исходный идентификатор. #### Статус - **Источник данных** — доступен и может быть продемонстрирован без внешнего партнёра (экспорт самодостаточен). Rostering 1.2 и уровень OR-Groups отдаются только для чтения, с аутентификацией OAuth2. - **Потребитель** — настройка импорта входит в синхронизацию Premium. Запуск **прямой** синхронизации с SIS зависит от поставщика и, в соответствующих случаях, от министерских календарей: он согласуется **по запросу**, коннектор за коннектором. Это не готовая синхронизация, доступная немедленно. #### См. также - [Синхронизация с внешними системами](#page-integrations.extsync) - [OAuth2 / OIDC (поставщик)](#page-integrations.oauth-server) - [API Omniscol](#page-integrations.api-tokens) - [Полная модель данных](#page-integrations.data-model-full) - [integrations.partners](#page-integrations.partners) ### 9.15 Связанные учётные записи и общие ресурсы *Source: `help/ru/integrations/linked-accounts.md` · id: integrations.linked-accounts · Audience: admin · Updated: 2026-09-23* **Связанные учётные записи** соединяют **несколько отдельных учётных записей Omniscol — то есть несколько учебных заведений**, у которых на практике общие **преподаватели и кабинеты**. Связь делает видимой из одной учётной записи в другой **занятость** этих общих ресурсов: когда вы просматриваете или составляете расписание, Omniscol подтягивает занятия связанных учётных записей, в которых участвует общий преподаватель или кабинет, и помечает этих преподавателей и эти кабинеты как уже занятые. Так вы не назначите дважды одного и того же человека или один и тот же кабинет и вам не придётся звонить в другое учебное заведение. Это опция, которую по запросу включает команда Omniscol. Каждая учётная запись остаётся **полностью независимой**: у неё свои пользователи, свои параметры, свои учебные годы и свой административный периметр. #### Что передаёт связь - **Передаётся**: **занятость** преподавателей и кабинетов, которые есть в обеих учётных записях. Именно она питает представления занятости и обнаружение конфликтов между учётными записями. - **Не передаётся**: пользователи, ученики, классы, параметры и административные данные каждой учётной записи. Видимость занятого времени не открывает доступа к подробностям другой учётной записи. Сопоставление **автоматическое**: Omniscol узнаёт одного и того же преподавателя по имени и фамилии (полных тёзок различает дата рождения), а один и тот же кабинет по названию площадки и кабинета. Чтобы оно работало, эти преподаватели и кабинеты должны называться **одинаково** в каждой учётной записи. Внешние идентификаторы (ERP) в сопоставлении между учётными записями не участвуют. Внутри одной учётной записи они важнее названия: см. [как распознать один и тот же класс в разных расписаниях](#page-timetables.multiple-active-timetables--same-entity). #### Сценарии использования Во всех случаях речь о **нескольких отдельных учебных заведениях**, у каждого из которых своя учётная запись Omniscol: - **Группа школ**, которые совместно используют преподавателей или кабинеты, например сеть учебных заведений одного города. - **Юридически независимые учебные заведения** в одном здании, которые поэтому делят кабинеты. - Кампус, где **несколько организаций** (инженерная школа, школа бизнеса и так далее) с отдельными учётными записями пользуются одними и теми же лекционными залами и одними и теми же преподавателями. #### Активация Связанные учётные записи настраиваются вместе с командой Omniscol, потому что нужно совместно решить: - какие учётные записи связываются; - какие ресурсы — преподаватели, кабинеты — становятся общими; - как привести к единому виду названия общих преподавателей и кабинетов, на которых держится автоматическое сопоставление; - какая учётная запись остаётся ответственной за те или иные данные; - как поступать с конфликтами, обнаруженными между периметрами. Когда опция включена, общая занятость появляется в представлениях занятости и питает обнаружение конфликтов между учётными записями, и никаких дополнительных действий от вас не требуется. #### Включение и отключение синхронизации Когда расписание синхронизировано с другими опубликованными расписаниями (той же учётной записи или связанных учётных записей), появляется кнопка **Синхронизация**. Она доступна в **режиме реорганизации** расписания, а также при **редактировании календарного расписания** на **общих датах**. Кнопка открывает список таких синхронизаций: каждое **другое опубликованное расписание** учётной записи и каждая **связанная учётная запись**, у которой есть общие преподаватели или кабинеты. По умолчанию **включены все**. Снимите отметку с нужной, чтобы **перестать учитывать** занятость этого расписания или этой учётной записи в текущем представлении, и поставьте её снова, чтобы снова её включить. Кнопка появляется, только если есть хотя бы одна синхронизация, которой можно управлять. #### Смежный случай: несколько опубликованных расписаний в одной учётной записи Связанные учётные записи согласуют работу отдельных учебных заведений, но та же потребность возникает и **внутри одной учётной записи**, когда учебное заведение ведёт **несколько опубликованных расписаний параллельно**. Тот же принцип общей занятости не даёт назначить кабинет, преподавателя или **класс** дважды в двух одновременных расписаниях. Типичный пример: **организация с несколькими программами** с разным ритмом, где программа Executive MBA на 18 месяцев, бакалавриат с календарными семестрами и подготовительные курсы с недельным расписанием делят кабинеты и преподавателей. Другой пример: **класс, учащийся по двум календарям**, с повторяющимся расписанием по утрам и разовыми занятиями во второй половине дня. Эта координация изначально входит в тариф **Премиум** и в виде исключения может быть включена в учётной записи с тарифом Standard после согласования с Omniscol. См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). #### См. также - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) - [Синхронизация с внешними системами](#page-integrations.extsync) ### 9.16 Коннектор Edusign *Source: `help/ru/integrations/edusign.md` · id: integrations.edusign · Audience: admin · Plan: premium · Updated: 2026-08-14* > **Premium** > _Premium_ В школе, которая использует **Omniscol** и **Edusign**, у двух инструментов разные роли. **Omniscol** готовит занятия: он управляет расписанием, ограничениями, доступностью, разделениями и общими курсами. **Edusign** подключается, когда занятие уже определено: ему нужно знать, **когда** оно проходит, **кто** его ведёт и **кто** на нём присутствует, чтобы подготовить лист подписей и собрать подписи. Коннектор нужен именно для того, чтобы не вводить данные дважды. Omniscol отправляет в Edusign занятия, которые нужно подписать, потому что именно в Omniscol учебное заведение их готовит и исправляет. Зафиксированное присутствие смотрят в Edusign: именно он его фиксирует, и именно его данные имеют силу. Коннектор Edusign входит во фреймворк [Синхронизация с внешними системами](#page-integrations.extsync); на этой странице описаны его особенности. #### Что отправляется и что не отправляется Сначала коннектор отправляет **занятия**. Каждое из них становится занятием Edusign и несёт идентификатор Omniscol как внешнюю ссылку. Благодаря этому его потом можно найти, обновить или удалить без отдельной таблицы соответствий. **События** календаря могут идти тем же путём: конференция, защита или день адаптации тоже может уйти в Edusign на подпись. Если вы не хотите отправлять всё, можно ограничить экспорт фильтрами — об этом ниже. **Преподавателей** и **группы** тоже можно отправлять, двумя способами: создавать на лету во время экспорта занятий, если вы включите эту опцию, или синхронизировать массово на вкладке «Экспорт сущностей», при этом эталоном остаётся Omniscol. **Ученики** же никогда не отправляются автоматически: их отправка выполняется только вручную, по причинам, объяснённым ниже. Важный момент: **не смешивайте два способа создания листов**. Либо ваши занятия рождаются в Omniscol, а коннектор создаёт их в Edusign: это самый последовательный выбор, если ваше расписание меняется, потому что исправления, отсутствия и замещения будут передаваться. Либо вы создаёте занятия прямо в Edusign. Это возможно, но тогда эти занятия живут вне Omniscol: коннектор их не тронет, и изменения расписания на них не отразятся. Надёжнее всего сразу выбрать, на какой стороне рождаются ваши листы, и держаться этого. Так вы не получите две версии одного занятия. #### Перед первым экспортом Для Edusign занятие без преподавателя непригодно: нужно знать, кто отвечает за лист подписей. Дальнейшие шаги зависят от одного вопроса: есть ли у ваших преподавателей уже учётная запись в Edusign? **Они уже существуют, с одним и тем же адресом электронной почты в обеих системах.** Делать ничего не нужно: соответствие устанавливается автоматически. Это самый частый случай, и поэтому адрес должен быть заполнен и надёжен в Omniscol — он служит идентификатором сопоставления, а также логином для входа в Edusign. Если у двух преподавателей в Omniscol один и тот же адрес, коннектор пытается различить их по именам: в разделе ниже подробно описано, что он делает и что может помешать. **Они уже существуют, но адреса электронной почты не совпадают.** Для этого служит **привязка**: экран привязки показывает ваших преподавателей напротив учётных записей Edusign, и каждая установленная привязка имеет приоритет над любым совпадением адресов. То же средство подходит для неоднозначных случаев, когда общий адрес не удаётся разрешить по именам. **В Edusign их ещё нет.** Два варианта: - **создание на лету** — включите удалённое создание в настройке системы, на вкладке «Настройка систем», и коннектор создаёт каждую учётную запись в тот момент, когда она нужна для занятия; - **синхронизация преподавателей** — отправьте их всех сразу с вкладки «Экспорт сущностей», и учётные записи появятся ещё до первого занятия, при этом эталоном остаётся Omniscol. Как при создании на лету, так и при массовой синхронизации Edusign закрепляет каждый адрес электронной почты за одной учётной записью. Если он уже занят, создание не удаётся, а вместе с ним не уходят и занятия преподавателя; если он общий для двух преподавателей в Omniscol, коннектор не создаёт ни одного — даже первого, который привязал бы адрес к одному из двоих наугад, — и их занятия ждут, пока у каждого не появится свой адрес. Поэтому создание рассчитано на по-настоящему отсутствующие учётные записи — для преподавателя, уже имеющегося в Edusign, оставайтесь на сопоставлении или привязке. Обратите внимание и на следующее, прежде чем запрашивать создание из Omniscol в Edusign: в зависимости от настройки вашей учётной записи Edusign создание пользователя может сразу отправить ему учётные данные по электронной почте. Ваши преподаватели узнали бы о новом инструменте уже при первом экспорте, не будучи к этому подготовленными. Если вы предпочитаете сами объявить об открытии учётных записей, проверьте эту настройку на стороне Edusign, прежде чем запускать экспорт. Если преподаватель не найден, занятие **не отправляется**. Коннектор подсчитывает такие занятия и явно сообщает о них: иначе об отсутствующем листе присутствия всегда узнают не вовремя. #### Сопоставление по адресу электронной почты Для преподавателя без установленной привязки, учётную запись которого не создавал коннектор, сопоставление выполняется по адресу электронной почты, независимо от имён и фамилий с обеих сторон. Поэтому он должен быть точным: неверный адрес блокирует занятие, а два перепутанных адреса поменяли бы местами листы двух преподавателей. Имя и фамилия нужны только для различения дубликата: двух преподавателей, заведённых в Omniscol с одним и тем же адресом электронной почты, — адресом секретариата или общим адресом внешних преподавателей. Тогда коннектор сравнивает имена с именами учётных записей Edusign. Почти всегда этого достаточно: каждый находит свою учётную запись, занятия уходят. Два полных тёзки на одном адресе — по всей вероятности, один человек, внесённый у вас дважды. Лист будет содержать верное имя, верную дисциплину и верный класс, какая бы учётная запись ни была выбрана: занятие уходит, а журнал интеграции сохраняет запись о дубликате, который стоит при случае убрать. Остаётся случай, когда ни одно имя не совпадает. Возможно, у преподавателя вообще нет учётной записи, а отправка наугад заставила бы подписывать присутствие в чужом листе: такие занятия **остаются неотправленными**. Итог экспорта называет имена и адрес, о которых идёт речь, — вплоть до человека, который создаёт дубликат, ничего не преподавая, и которого вы долго не заподозрили бы. Долговременное решение — дать каждому свой собственный адрес электронной почты. Пока же привяжите их вручную: после установки привязки идентификатор имеет приоритет. #### Фильтрация отправки по подразделениям Подразделение — понятие организационное: оно объединяет классы в вашей учётной записи независимо от площадок и кабинетов. Если вы их создали, можно отправлять только занятия некоторых из них. Выбор делается на вкладке «Экспорт сущностей», в разделе занятий. Занятие уходит, как только **хотя бы один** из его классов относится к выбранному подразделению: поэтому занятие, общее для двух подразделений, отправляется один раз. Зато, как только вы фильтруете по некоторым подразделениям, класс без назначенного подразделения в отправку не попадает: поскольку он не принадлежит ни одному из выбранных подразделений, коннектор не может его включить. Если вы позже сузите выбор, занятия, которым в нём больше нет места, удаляются из Edusign — **кроме тех, которые уже состоялись**, подписи по которым собраны. Если ничего не выбрать, отправляется всё. #### Горизонт экспорта Edusign нужен, чтобы собирать подписи на **предстоящих** занятиях. Прошедшее занятие уже не нужно готовить к сбору подписей, и Edusign его блокирует. Горизонт задаётся в настройке системы в виде числа дней назад и вперёд от сегодняшнего дня. На практике достаточно нескольких дней назад: они нужны только для того, чтобы передать исправление, внесённое сразу после занятия. **Занятие, выходящее за горизонт, никогда не удаляется.** Оно состоялось, Edusign хранит его подписи, и их нельзя восстановить. Из Edusign удаляется только занятие, действительно удалённое в Omniscol, — и только если оно ещё не состоялось. #### Реальное время и досинхронизация Два механизма работают вместе, с разными ролями. **Реальное время** отправляет каждое изменение по мере его появления. Это обычный режим: он поддерживает Edusign в актуальном состоянии почти мгновенно. Но его нужно рассматривать как удобный канал, а не как абсолютную гарантию: запрос может завершиться ошибкой, процесс может перезапуститься. **Запланированный полный экспорт** регулярно сверяет обе стороны. Он отправляет весь горизонт, считывает то, что хранит Edusign, затем удаляет занятия, которых у вас больше нет, но которые реальное время пропустило. Это страховочная сетка: без него сбой сети или перезапуск оставили бы незаметное расхождение. #### Ученики Ученики отправляются только **при ручном запуске**, и с особой осторожностью. Edusign умеет сопоставлять ученика только по внешней ссылке, которую мы ему задали, — но не по адресу электронной почты и не по внутреннему идентификатору. Ученик, уже имеющийся в Edusign без этой ссылки, поэтому **недосягаем**: его отправка создала бы вторую запись с тем же адресом. Поэтому коннектор предпочитает воздержаться, а не создать дубликат. Сначала он считывает учеников, уже имеющихся в Edusign, создаёт только тех, кого там действительно нет, а остальных откладывает в сторону. Ученики без адреса электронной почты пропускаются по той же причине: их невозможно сопоставить никаким способом. По окончании запуска итог сообщает, какие именно ученики не были созданы, с их идентификационными данными в обеих системах, чтобы вы могли решить в каждом случае отдельно. Журнал активности хранит запись об этом. На практике ученики необходимы только в том случае, если вам нужны именные листы. Сбор подписей работает и без них, если у занятия есть преподаватель и группа. #### События Конференция, защита, пробный экзамен: то, что вы размещаете в календаре помимо занятий, тоже может уйти в Edusign. У событий есть собственный раздел на вкладке «Экспорт сущностей», сразу под занятиями, со своими фильтрами и своей политикой отправки. Событие несёт ту же информацию, что и занятие: дату, участников, кабинет. Среди приглашённых преподаватели отвечают за лист; классы и группы составляют аудиторию. Отправлять всё не обязательно. Коннектор фильтрует по **меткам**, которые вы ставите на события, — см. [Разовые события](#page-schedules.events): отправлять только те, у которых есть определённая метка, или наоборот, отправлять всё, кроме тех, у которых есть такая метка. **Исключение всегда имеет приоритет**, что позволяет задать самое удобное правило: отправлять всё, кроме того, что вы пометили как *без подписи* (например). #### Когда рядом уже есть ERP Самый простой случай — школа, которая управляет своими занятиями в Omniscol, а затем собирает подписи в Edusign. Это самый прямой сценарий использования коннектора. В учебных заведениях, уже выстроенных вокруг ERP, например [Aurion](#page-integrations.aurion) или [Auriga](#page-integrations.auriga), архитектура, как правило, представляет собой звезду с центром в этой ERP. Она отправляет свои справочники в Omniscol — преподавателей, кабинеты, дисциплины, группы, а то и студентов, — после чего Omniscol возвращает ей составленные им занятия. Дальше Edusign чаще всего подключают к ERP, а не напрямую к Omniscol. В зависимости от выбранной схемы либо ERP пересылает занятия в Edusign, при необходимости через ETL, либо Edusign регулярно считывает их из ERP. В такой топологии внешние ссылки не заменяют друг друга: они накапливаются в зависимости от нужных обменов. Один и тот же преподаватель может нести ссылку ERP в Omniscol и, при необходимости, отдельную ссылку Edusign. На вкладке «Синхронизация сущностей» каждая настроенная система остаётся привязанной отдельно, для тех же сущностей. #### Сброс Кнопка очистки удаляет из Edusign **занятия, пришедшие из Omniscol**, за текущий учебный год. Она не затрагивает ни преподавателей, ни группы, ни занятия, созданные напрямую в Edusign: её цель — очистить то, что отправил коннектор, а не стереть остальное в вашей среде. Edusign сильно ограничивает скорость удаления: за каждый проход удаляется не больше нескольких сотен занятий. Если что-то осталось, запустите очистку снова — журнал активности показывает количество оставшихся занятий после каждого прохода. То, что коннектор создаёт в Edusign, не всегда стирается в строгом смысле: удаление преподавателя там — это архивирование. Поэтому включайте создание осознанно. --- ## 10. Порталы ### 10.1 Портал ученика *Source: `help/ru/portal/student-portal.md` · id: portal.student-portal · Audience: student/admin · Plan: standard · Updated: 2026-06-13* **Портал ученика** — интерфейс, созданный для обучающихся. Он проще и сфокусированнее интерфейса администратора и содержит ровно то, что нужно ученику каждый день: его личное расписание, расписание его класса или классов, его отсутствия и общий доступ к его календарю. #### Личное расписание При открытии ученик видит **своё личное расписание** на текущую неделю: дисциплины, время, кабинеты, преподавателей. Предлагаются три привычных вида: - **Неделя** — стандартная сетка на 5 или 7 дней в зависимости от настроек школы. - **День** — занятия дня в хронологическом порядке, удобно на мобильном устройстве. - **Список** — последовательный вид ближайших занятий, без сетки. Изменения в последний момент (перенос занятия, смена кабинета, отмена) учитываются: при каждом открытии или обновлении вида ученик видит актуальное состояние. #### Просмотр расписания своего класса Помимо личного расписания, ученик может просматривать **расписание своего класса или классов** и расписание **групп** этих классов. Его доступ на этом заканчивается: расписание другого класса, преподавателя или кабинета ему недоступно. Администратор может ограничить **горизонт просмотра** для учеников: параметр задаёт число видимых предстоящих недель или устанавливает значение **Неограниченно**. См. [Ограничения видимости](#page-admin.visibility-restrictions). #### Синхронизация с личным календарём Значок общего доступа Общий доступ в виде расписания открывает окно Общий доступ. Его вкладка **iCal** содержит персональный URL подписки, который нужно вставить в Google Calendar, Apple Calendar или Outlook. URL можно скопировать, скачать в виде файла `.ics` или отсканировать по QR-коду. Подробности см. [iCal — подписка и динамическая ссылка](#page-integrations.ical). Приложение-календарь регулярно обновляет подписку: когда расписание в Omniscol меняется, изменение появляется в календаре ученика. #### Объявить об отсутствии Если учебное заведение это разрешает, ученик может сам объявить о своём отсутствии на портале: указать даты, при необходимости время, причину и комментарий. См. [Объявить об отсутствии](#page-absences.declaring). Запрос появляется в модуле «Управление отсутствиями» со статусом «в ожидании» — до подтверждения администратором. В форме нет возможности приложить подтверждающий документ. #### Язык интерфейса Язык интерфейса соответствует языку браузера пользователя. Ученик может выбрать другой язык в пункте «Язык» меню пользователя; этот выбор сохраняется в его учётной записи и действует при следующих входах. #### См. также - [Портал преподавателя](#page-portal.teacher-portal) - [Гостевой портал (родители, наблюдатели)](#page-portal.guest-portal) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Объявить об отсутствии](#page-absences.declaring) - [Ограничения видимости](#page-admin.visibility-restrictions) ### 10.2 Портал преподавателя *Source: `help/ru/portal/teacher-portal.md` · id: portal.teacher-portal · Audience: teacher/admin · Plan: standard · Updated: 2026-06-26* **Портал преподавателя** — интерфейс, предназначенный для преподавателей. Он охватывает три ежедневные задачи преподавателя: просмотр своего расписания, указание доступности и объявление о своих отсутствиях. По умолчанию он также даёт доступ к расписаниям коллег, классов и кабинетов. #### Расписание преподавателя На текущей неделе преподаватель видит **занятия, которые он ведёт**: дисциплина, класс, группа, кабинет, время. Доступны три вида: - **Неделя** — стандартный вид в виде сетки. - **День** — хронологический вид-ежедневник. - **Список** — хронологическая последовательность без сетки, удобная на мобильном устройстве. Изменения расписания (перенос или отмена занятия, добавление внепланового занятия) учитываются: преподаватель видит актуальное состояние при каждом открытии или обновлении вида. #### Указание доступности Если учебное заведение включило указание доступности, преподаватель открывает свою личную карточку через пункт **Общая информация** меню пользователя; на вкладке **Доступность** находится сетка, где он указывает свои пожелания для следующего формирования расписания: - слоты **Недоступно** — блокирующее ограничение: алгоритм никогда не ставит туда занятие, а при ручном составлении расписания там возник бы конфликт, - слоты **Нежелательно** — алгоритм старается не ставить туда занятие, но это не абсолютный запрет, а при ручном составлении расписания там появится предупреждение, - слоты **Предпочтительно** — алгоритм отдаёт этим слотам предпочтение. Неотмеченные промежутки остаются нейтральными: преподаватель доступен, особых пожеланий нет. См. [Доступность преподавателей](#page-core-concepts.wishes-and-availability), где точно объяснено значение цветов и даны рекомендации по заполнению. Преподаватель также может добавить **комментарии в свободной форме** (`в пятницу занятий нет из-за других профессиональных обязательств`), которые помогают администрации понять контекст. #### Объявление об отсутствии Кнопка **Объявить об отсутствии** позволяет преподавателю сообщить о собственной недоступности: - соответствующие даты; - весь день или конкретные слоты; - причина; - короткий комментарий. Заявка появляется в модуле **Управление отсутствиями** со статусом **в ожидании**, пока администратор её не подтвердит. Замещения затем оформляются в этом же модуле; форма на портале не переносит занятия и не прикладывает подтверждающий документ. См. [Объявить об отсутствии](#page-absences.declaring). #### Просмотр расписаний коллег и классов По умолчанию преподаватель может просматривать расписания других преподавателей (удобно для назначения собраний), классов (чтобы найти свободное время для экскурсии) и кабинетов. Строгая настройка (см. [Ограничения видимости](#page-admin.visibility-restrictions)) скрывает расписания **других преподавателей**; она касается только расписаний коллег между собой, а доступ к расписаниям классов и кабинетов остаётся открытым. #### Синхронизация с личным календарём Как и у ученика, значок общего доступа **Общий доступ** на экране расписания открывает окно **Общий доступ**; на его вкладке **iCal** находится личный URL подписки, который нужно вставить в Google Calendar, Apple Calendar или Outlook. См. [iCal — подписка и динамическая ссылка](#page-integrations.ical). Это удобно преподавателям, которые хотят видеть свои занятия в том же календаре, что и собрания и личные дела. #### См. также - [Портал ученика](#page-portal.student-portal) - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Объявить об отсутствии](#page-absences.declaring) - [Ограничения видимости](#page-admin.visibility-restrictions) ### 10.3 Гостевой портал (публичные ссылки) *Source: `help/ru/portal/guest-portal.md` · id: portal.guest-portal · Plan: standard · Updated: 2026-05-15* Под **гостевым порталом** здесь понимается просмотр расписания человеком, у которого нет учётной записи Omniscol в учебном заведении. Обычный случай — подписанная публичная ссылка: URL, ограниченный чётко заданным объёмом доступа и открывающийся только для чтения. #### Способы доступа В зависимости от задачи выберите один из вариантов: - **Подписанная публичная ссылка** — URL с секретным токеном даёт доступ без аутентификации к конкретному расписанию (ученика, класса, кабинета, преподавателя). Удобно, чтобы поделиться с родителем: одна ссылка, не нужно запоминать пароль. См. [Публичные ссылки общего доступа](#page-portal.share-links). - **Ограниченная учётная запись Omniscol** — если человеку нужен постоянный доступ, с аутентификацией или к нескольким объектам, лучше создайте учётную запись с подходящей ролью и правами. Не выдавайте этот случай за анонимную публичную ссылку. #### Что видит гость Гость видит расписание в режиме **строго только для чтения**: - изменить ничего нельзя, - объявить об отсутствии нельзя, - ввести доступность нельзя, - другие расписания, кроме входящих в объём доступа ссылки, недоступны. Ссылка открывает предусмотренное представление для просмотра, только для чтения. Для **расписания** отображение автоматически упрощается — без верхней полосы и меню приложения, так что страница содержит только календарь. Такое оформление соответствует параметру `raw=true` в URL: он автоматически добавляется к ссылкам на расписания, для остальных экранов необязателен, и опытный пользователь может дописать его вручную. Он не меняет ни аутентификацию, ни объём доступа ссылки. Некоторые ссылки общего доступа предназначены для целевого действия, а не для просмотра: ссылка для ввода доступности преподавателей открывает только предусмотренную форму и действует до даты истечения срока. #### Пример использования: родитель ученика (школа) Типичный сценарий в средней и старшей школе: 1. Администратор (или сам ученик) создаёт ссылку общего доступа на расписание ученика. 2. Ссылка отправляется родителю по электронной почте. 3. Родитель открывает ссылку и видит расписание своего ребёнка. 4. По этой же ссылке он может подписаться по iCal и получать расписание прямо в Google Calendar / Apple Calendar. Не нужно ни создавать учётную запись, ни управлять паролем. #### Пример использования: постоянный наблюдатель Если внешнему методисту нужно следить за программой обучения в течение всего года, по умолчанию не используйте анонимную публичную ссылку. Создайте учётную запись Omniscol, ограниченную необходимым объёмом доступа, или настройте подписанный общий доступ с коротким сроком действия и контролируемым продлением. #### Безопасность - Подписанная публичная ссылка действует до даты истечения срока. Она становится недействительной, если меняется пароль учётной записи, к которой она привязана (или если эта учётная запись отключена); ссылка iCal становится недействительной и при смене ключа доступа учебного заведения. - Ограниченную учётную запись Omniscol можно отключить, как и другие учётные записи пользователей. - Доступ по публичной ссылке нельзя приравнивать к аутентифицированному внутреннему пользователю. #### См. также - [Публичные ссылки общего доступа](#page-portal.share-links) - [Портал ученика](#page-portal.student-portal) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) ### 10.4 Публичные ссылки общего доступа *Source: `help/ru/portal/share-links.md` · id: portal.share-links · Audience: admin · Plan: standard · Updated: 2026-06-13* **Публичная ссылка общего доступа** — это подписанный URL, который открывает экран просмотра, чаще всего расписание, только для чтения и без входа в систему. Это самый простой способ передать календарь тому, у кого нет учётной записи Omniscol и не будет: родителю, внешнему партнёру, административной службе. #### Предлагаемые форматы В зависимости от контекста и прав того, кто делится, Omniscol может сформировать несколько подписанных URL: - **Адаптивная веб-страница** — удобный для навигации просмотр в духе портала с видами «неделя», «день» и «список». Именно это видит человек, открывший ссылку в браузере. - **Поток iCal (`.ics`)** — динамическая подписка для Google Calendar, Apple Calendar, Outlook. См. [iCal — подписка и динамическая ссылка](#page-integrations.ical). - **JSON (API)** — для разработчиков и интеграций между системами, если этот формат разрешён. Эти форматы доступны не всегда: в окне показаны вкладки, которые действительно сформированы для текущего выбора. #### Что можно открыть для общего доступа? Общий доступ не ограничен экраном просмотра расписаний: тот же значок общего доступа **Общий доступ** есть на большинстве экранов Omniscol. **Только для чтения** можно открыть: - **расписание отдельного объекта** — ученика, класса, преподавателя, кабинета или дисциплины: это самый частый случай (родители, коллеги, внешние преподаватели, технические службы); - **полный экран расписания** модуля **Расписание**; - шесть **сводных панелей** (преподаватели, кабинеты, ресурсы, дисциплины, классы, ученики); - экраны **отслеживания отсутствий** (преподаватели, классы, ученики, сотрудники); - **графики дежурств** модуля **Управление персоналом** (сетка, назначения, план, ведомость присутствия); - экраны **просмотра**, **реорганизации** и **оформления** расписания; - экран сведений о человеке (роль «преподаватель» или «сотрудник»). **Для чтения и записи** — это только два случая — можно открыть **ввод доступности** человека с ролью «преподаватель» или «сотрудник». Отдельная ссылка позволяет соответствующему человеку указать и подтвердить свою доступность, а также изменить свой профиль до даты истечения срока, **без учётной записи и пароля** Omniscol. Ссылка привязана к его личности и предлагается только в его собственной карточке. Временные ограничения класса, кабинета, группы или курса остаются внутренними экранами редактирования: их нельзя собирать по ссылке общего доступа. Каждый подписанный URL содержит запрошенный объём доступа и дату истечения срока. #### Создание ссылки общего доступа В модуле **Расписание** выберите расписание, которым нужно поделиться (ученика, класса, кабинета…), и нажмите значок общего доступа **Общий доступ**. В открывшемся окне **Общий доступ** есть: - **Дата истечения срока** — дата, до которой сформированные URL остаются действительными. - **Вкладки Web, iCal и JSON** — отображаются в зависимости от форматов, сформированных для этого доступа. Затем вы копируете нужный URL. Для ссылок, предназначенных для просмотра людьми, в окне может быть показан QR-код. #### Ограничение или аннулирование ссылки Публичный доступ не ведёт реестр выданных ссылок: Omniscol не предоставляет ни сводного списка уже переданных ссылок, ни счётчика обращений, ни отзыва отдельных ссылок. Поэтому аннулирование идёт через учётную запись-владельца (пароль, деактивация) и через дату истечения срока. Чтобы снизить риск: - выбирайте короткий срок действия; - открывайте доступ только в необходимом объёме; - для командного распространения используйте **идентифицируемую служебную учётную запись**, а не личную; - при нежелательном распространении смените или сбросьте пароль учётной записи-владельца либо при необходимости деактивируйте её. Смена пароля аннулирует ссылки этой учётной записи, даже если новый пароль в открытом виде совпадает со старым: сохранённый хеш меняется. Деактивация или удаление учётной записи-владельца также закрывает доступ. #### Безопасность - URL содержит подписанный токен, который трудно угадать. - Ссылка открывает **только экраны, указанные в её токене**, а не остальную часть учётной записи. Для **расписания отдельного объекта** (и для любого потока **iCal**) фильтр жёстко задан в токене: получатель остаётся в рамках этого объекта — родитель со ссылкой на расписание своего ребёнка не сможет открыть расписание другого ученика. Общий доступ к **полному экрану расписания**, напротив, отражает **права учётной записи, которая его создала**: для целевого внешнего распространения делитесь расписанием конкретного объекта, а не всем экраном. - Срок действия ограничен датой истечения. - Срок действия зависит и от учётной записи-владельца: смена пароля, деактивация или удаление аннулируют связанные с ней ссылки. - Любой, у кого есть URL, может просматривать открытый объём доступа до истечения срока или аннулирования. #### Встраивание расписания в страницу (iframe) **Сейчас на стороннем сайте это невозможно.** Чтобы защититься от перехвата клика, Omniscol запрещает отображать себя во фрейме (`iframe`) на домене, отличном от собственного. Если вы попробуете встроить расписание в школьный портал, интранет или публичный сайт, браузер **откажется** показывать фрейм. Эта защита задана самим Omniscol и не меняется из учётной записи учреждения. Единственное исключение, на практике редкое, — страница, размещённая ровно на том же домене, что и ваш экземпляр Omniscol. Чтобы всё же показать расписание на внешнем сайте, есть три простых решения: - **ссылка** на URL общего доступа: читатель откроет расписание в новой вкладке, без встроенного фрейма; - **подписка iCal**, чтобы расписание появилось в календаре человека (Google Календарь, Outlook…) — см. [iCal — подписка и динамическая ссылка](#page-integrations.ical); - **информационная панель** — публичный экран в помещениях учреждения, см. [Информационная панель](#page-panels.lobby-panel). #### Инструкция — Создать ссылку для родителей со сроком действия 1. **Чтобы поделиться расписанием класса с родителями**, не создавая им учётных записей, используйте публичную подписанную ссылку с ограниченным сроком. 2. **Откройте нужное расписание** в модуле **Расписание**: выберите нужный класс. Значок общего доступа **Общий доступ** находится в строке заголовка этого вида. 3. **Окно общего доступа**: задайте поле **дата истечения срока**. Для доступа родителей установите срок не позднее конца соответствующего учебного периода. 4. **Скопируйте нужный формат.** Web — для прямого просмотра, iCal — для подписки в календаре, JSON — только если планируется интеграция по API. Для распространения в печатном виде Omniscol может также показать QR-код. 5. **Передайте ссылку** по предусмотренному каналу: родительское собрание, рассылка, школьный портал, интранет или адресное сообщение. 6. **Если ссылка разошлась за пределы нужного круга**, создайте новую, более ограниченную ссылку, а затем при необходимости аннулируйте ссылки прежней учётной записи: смените пароль, деактивируйте или удалите учётную запись-владельца. #### См. также - [Гостевой портал (родители, наблюдатели)](#page-portal.guest-portal) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) --- ## 11. Информационные панели ### 11.1 Настройка информационной панели для холла или коридора *Source: `help/ru/panels/lobby-panel.md` · id: panels.lobby-panel · Audience: admin · Plan: standard · Updated: 2026-05-12* **Информационная панель** — это веб-страница, которую открывают на весь экран в браузере на телевизоре, мониторе или планшете, чтобы показывать всем, кто находится в учебном заведении, занятия и события дня. Её используют для экрана при входе, в коридоре, у лаборатории или напротив лекционного зала: содержимое зависит только от выбранных фильтров, а не от места, где стоит экран. Вы можете создать сколько угодно панелей, у каждой будут свой фильтр и свой адрес доступа. #### Создать новую информационную панель В модуле **Расписание** кнопка **Информационная панель** открывает экран настройки. В списке слева показаны существующие панели; кнопка **Добавить** (зелёная) создаёт новую пустую панель. Можно также **дублировать** существующую панель кнопкой **Копировать** — это быстрее, если у вас много экранов с общим оформлением. У каждой панели есть **Название**, по которому её находят в списке, и **Заголовок**, который показан вверху публичного экрана. Они могут различаться: `Главный холл — площадка А` для администрации, `Добро пожаловать в школу X — площадка А` на экране. #### Фильтровать показываемые занятия Основной фильтр — свойство **Показать** — определяет, что попадёт на экран. Есть четыре взаимодополняющие оси: - **Уровни** — сразу все классы одного уровня (например, все 6-е классы). - **Классы** — явный выбор одного или нескольких классов. - **Площадки** — все кабинеты площадки (удобно для экрана в холле конкретной площадки). - **Кабинеты** — явный выбор одного или нескольких кабинетов (удобно для панели, охватывающей крыло здания). Пустой фильтр означает все занятия. Это подходит для экрана в центральном холле, который должен показывать происходящее по всей школе. Второй список — **Спрятать** — позволяет убрать из выбранного потока отдельные занятия: - **Дисциплины**, которые нужно скрыть (например, не показывать физкультуру, если она проходит далеко от главного здания); - **Типы занятий**, которые нужно скрыть (например, скрыть экзамены, о которых не нужно сообщать публично). Фильтр и маска применяются вместе: сначала остаётся всё, что подходит под фильтр, затем убирается всё, что подходит под маску. #### Настроить показываемый временной диапазон Свойство **Временной диапазон** определяет, сколько предстоящих занятий показывает панель: - **Конец дня** (по умолчанию) — показывает идущие сейчас и предстоящие сегодня занятия (идущее занятие остаётся на экране до времени своего окончания). Подходит для экрана, который работает весь день. - **скользящее окно** — с шагом 30 минут до **+ 2 ч**, затем с шагом в целый час до **+ 12 ч**. Панель показывает только то, что начинается в выбранном окне, отсчитываемом от текущего времени. Это удобно для очень загруженного экрана в холле, где нужно избежать перегрузки информацией: например, показывать только ближайшие два часа. Обновление происходит автоматически в браузере, без ручной перезагрузки: по мере того как время идёт, прошедшие занятия покидают окно, а следующие в него входят. #### Добавить временные сообщения Раздел **Общая информация** позволяет вывести на панель одно или несколько текстовых сообщений, у каждого из которых свой временной диапазон. Типичные случаи: - сообщить о событии (`Родительское собрание в кабинете B204 в 17\:30`); - предупредить о неудобствах (`Ремонт в южном крыле, проход через задний вход`); - показать приветствие (`Добро пожаловать на день открытых дверей`). У каждого сообщения есть произвольный текст, время начала и время окончания. Вне этого диапазона сообщение исчезает само — убирать его потом не нужно. #### Получить публичный адрес панели После сохранения у каждой панели появляется **уникальный адрес**, который открывают на весь экран на нужном устройстве. В адресе есть секретный хеш, разрешающий доступ без входа в систему — именно поэтому телевизор без авторизации может показывать содержимое. Пока хеш не разглашён публично, панель недоступна. Рекомендуется открывать этот адрес в браузере в **полноэкранном режиме киоска** (Chrome `--kiosk`, Firefox F11), желательно на мини-ПК или на приставке цифровых вывесок, подключённой к экрану. Браузер сам обновляет страницу и прокручивает содержимое. #### Инструкция — Создать информационную панель 1. **Информационная панель — это веб-страница**, которую открывают на весь экран на телевизоре или мониторе, чтобы показывать занятия дня. 2. **Нажмите** **Добавить**, чтобы создать новую пустую панель. Можно также дублировать существующую панель и начать с готовой основы — это экономит время, если у вас много экранов с одинаковым оформлением. 3. **Заполните название** (**Название** — для администрации, чтобы находить панель в списке) и **заголовок** (он показан вверху публичного экрана). Например: `Главный холл — площадка А` для администрации, `Добро пожаловать в школу X` на экране. 4. **Выберите фильтр занятий** в свойстве **Показать**: уровни, классы, площадки или кабинеты. Пустой фильтр означает все занятия. Для панели в центральном холле он обычно пустой. Для экрана перед кабинетом выберите этот кабинет. 5. **При желании добавьте временные сообщения** с их временным диапазоном (собрание, неудобства, приветствие). Вне этого диапазона сообщение само исчезает с экрана. 6. **Сохраните.** Вы получите уникальный адрес панели, который нужно открыть на весь экран на нужном устройстве (Chrome `--kiosk`, Firefox F11). Дальше обновление происходит автоматически. #### См. также - [Информационная панель](#page-glossary.panel) - [Панель у кабинета](#page-panels.room-panel) - [Настройка панелей](#page-panels.customization) ### 11.2 Настройка информационной панели у кабинета *Source: `help/ru/panels/room-panel.md` · id: panels.room-panel · Audience: admin · Plan: standard · Updated: 2026-06-13* **Панель у кабинета** — частный случай информационной панели: настройка та же, что и для панели в холле, но фильтр выбирает **один кабинет**, а не площадку или уровень. Экран рядом с дверью показывает загрузку только этого кабинета и отвечает на вопрос, который задают себе люди в коридоре: *«что происходит в этом кабинете сейчас и что будет дальше?»* Типичные случаи: - дверь лекционного зала, - вход в лабораторию или компьютерный кабинет, - универсальный кабинет, которым пользуются несколько направлений подготовки, - студия или мастерская (музыка, дизайн, видео). #### Настройка В модуле **Расписание** есть та же кнопка **Информационная панель**, что и для панели в холле. Отличие — в фильтре: в разделе **Показать** выберите **Кабинеты** и отметьте единственный нужный кабинет. Остальные параметры такие же, как у панели в холле: - **Название** в администрировании (например, `Дверь B204`) и **заголовок** на экране (например, `Кабинет B204 — Естественные науки`). - **Временной диапазон**: лучше выбрать **+ 2h** или **+ 4h**, а не весь день — у кабинета людям важно прежде всего знать текущее занятие и следующее. - **Размер шрифта**: крупный обычно подходит для экрана, который читают с расстояния 1–2 метра в коридоре; если экран расположен близко, шрифт можно взять меньше. - **Сообщения**: удобны, чтобы объявить о разовом бронировании (`Кабинет занят: педсовет в 14\:00`) или о том, что кабинет недоступен (`Кабинет закрыт на обслуживание до 15\:00`). #### Несколько кабинетов на одном экране Если один экран охватывает несколько соседних кабинетов (крыло здания, кабинеты одной лаборатории), в фильтре можно выбрать несколько кабинетов. Занятия всех выбранных кабинетов тогда **сводятся в один список, упорядоченный по времени**; если он не помещается на экране, панель **разбивает его на страницы** (листает их). Поочерёдно, кабинет за кабинетом, она их не показывает. Чтобы у каждого кабинета действительно было отдельное отображение, создайте по панели на кабинет — у каждой будет собственная ссылка. Один и тот же мини-ПК может показывать несколько панелей, если поочерёдно переключать несколько полноэкранных вкладок через режим киоска браузера или системы (это не настройка Omniscol). #### Ссылка и развёртывание У каждой панели своя уникальная ссылка, не требующая входа в систему; её открывают в полноэкранном режиме киоска на устройстве, установленном рядом с дверью. Обновление выполняется автоматически, путём периодического опроса: отображение заново фильтруется по текущему времени примерно раз в минуту, а данные перезагружаются каждые пять минут — вручную ничего делать не нужно, но обновление происходит не мгновенно. #### Инструкция — Создание панели у кабинета 1. **Панель у кабинета** показывает загрузку этого кабинета на ближайшие часы. Отличие от панели в холле: фильтр по одному кабинету, короткий временной диапазон, размер шрифта, рассчитанный на чтение в коридоре. 2. Нажмите **Добавить** в модуле **Расписание**, чтобы создать новую панель (или скопируйте существующую панель для холла и измените её). 3. **Укажите название и заголовок.** Название — для администрирования (`Дверь B204`), заголовок — для экрана (`Кабинет B204 — Естественные науки`). Заголовок видят люди в коридоре. 4. **Фильтр: раздел Показать → Кабинеты**, выберите **нужный кабинет**. Для экрана, который охватывает крыло (несколько соседних кабинетов), выберите их все — их занятия сводятся в один список, упорядоченный по времени, и при необходимости разбиваются на страницы. 5. **Параметры, специфичные для двери кабинета:** - **Временной диапазон**: лучше `+ 2h` или `+ 4h`, а не весь день — людям важно знать текущее занятие и следующее. - **Размер шрифта**: крупный для экрана, который читают с расстояния 1–2 м. - **Сообщения**: удобны, чтобы объявить о разовом бронировании или о недоступности. 6. **Сохраните.** Получите уникальную ссылку панели, чтобы открыть её в полноэкранном режиме киоска на устройстве рядом с дверью. Обновление автоматическое, путём периодического опроса (повторная фильтрация примерно раз в минуту, перезагрузка данных каждые пять минут). #### См. также - [Информационная панель](#page-glossary.panel) - [Информационная панель](#page-panels.lobby-panel) - [Настройка панелей](#page-panels.customization) ### 11.3 Визуальная настройка информационных панелей *Source: `help/ru/panels/customization.md` · id: panels.customization · Audience: admin · Plan: standard · Updated: 2026-05-12* Информационные панели Omniscol рассчитаны на то, чтобы визуально вписываться в ваш фирменный стиль. Возможны два уровня настройки: (1) параметры **в интерфейсе** (для большинства случаев их достаточно), (2) **полная замена** веб-страницы, которая отображает панель (для внедрений с ярко выраженным фирменным стилем). #### Параметры в интерфейсе В модуле **Расписание** кнопка **Информационная панель** открывает экран настройки панелей. На нём доступны следующие параметры отображения, которые меняются без обращения к коду: - **Размер шрифта** — маленький, средний или большой. Отображение использует единицы, привязанные к размеру окна (`vmin`), поэтому читаемость остаётся одинаковой при любом формате экрана (`16:9`, `4:3`, вертикальный). - **Цвета** — цвет фона, цвет текста, цвета чётных и нечётных строк таблицы занятий. Принимаются любые шестнадцатеричные коды: палитру можно повторить по вашему фирменному стилю. - **Шапка** — упорядоченное сочетание: **заголовок**, **логотип**, **текущая дата**. Вы выбираете, что показывать в шапке и в каком порядке. - **Колонки таблицы** — выбор и порядок из списка: **кабинет**, **классы**, **преподаватели**, **дисциплина**, **время**. Скрыть колонку (например, преподавателей на публичной панели у входа) или поменять порядок колонок можно мгновенно. - **Формат имени преподавателя** — имя и фамилия, фамилия и имя, обращение и фамилия («Г-жа Иванова»), обращение и имя. Обращения «Г-н» и «Г-жа» автоматически следуют языку интерфейса; для каждой панели настраивается именно выбранный **формат**. - **Логотип** — логотип учебного заведения, загруженный в настройки школьного аккаунта, можно показывать в шапке. Эти параметры сохраняются в настройках панели. Обратите внимание: занятия и сообщения обновляются сами, а вот эти **визуальные** параметры (цвета, размер, колонки, шапка, формат имён) встраиваются в страницу в момент её загрузки. После сохранения **перезагрузите вкладки**, уже открытые на экранах (F5 или перезапуск страницы в режиме киоска), чтобы они показали новое оформление. #### Полная замена шаблона (лицензия MIT) Шаблон, по которому строится страница отображения, явно распространяется по **лицензии MIT**: его можно скопировать и изменить, чтобы настроить панель учебного заведения. Это открывает несколько сценариев для учебных заведений, которые хотят выйти за рамки этих параметров: - **Полностью новое оформление** — переписать HTML/CSS шаблона, чтобы он соответствовал ярко выраженному фирменному стилю (фирменный шрифт, особая анимация, нестандартная вёрстка). - **Встраивание в существующую систему цифровых вывесок** — вывести содержимое панели Omniscol на общий экран, где одновременно показываются занятия, погода, новости школы, видео… - **Специализированные прикладные представления** — например, экран для сотрудников (кто что должен делать) или для технической службы (занятость кабинетов с потребностью в оборудовании) и так далее. Для этого есть два взаимодополняющих подхода: 1. **Копия шаблона** — если вы размещаете Omniscol самостоятельно, скопируйте `panel.dot`, измените его и разверните свою версию. Лицензия MIT прямо разрешает изменения, распространение и коммерческое использование. 2. **JSON API панели** — если вы хотите оставить Omniscol источником данных, а отображение строить на стороне стороннего сервиса, URL панели также предоставляет JSON-вариант (`GET /panels/:accesshash/lessons`). Он возвращает список занятий, отфильтрованный согласно настройкам панели, в виде, готовом для стороннего решения по цифровым вывескам (Yodeck, Xibo, ScreenCloud, собственный дашборд). Этот URL открывается с ключом доступа панели, без дополнительного токена. Для более широкой интеграции систем между собой REST API Omniscol описан на странице [API Omniscol](#page-integrations.api-tokens). #### Практические рекомендации Несколько моментов, которые часто всплывают при внедрении: - **Контраст** — тёмный фон и светлый текст меньше утомляют глаза на экране, который работает по 12 часов в сутки, чем белый фон. - **Шрифт «Большой»**, если экран читают с расстояния более 2 м (обычно это холл). «Средний» оставьте для экранов у дверей кабинетов, которые видны вблизи. - **Логотип в шапке** — всегда полезен для быстрого опознавания, когда на большой территории учебного заведения несколько панелей. - **Дата в шапке** — полезна в холле (посетители сверяют дату) и менее полезна перед кабинетом (контекст и так очевиден). - **Скрывайте колонку преподавателей** на публичных панелях, если во внутренних правилах учебного заведения есть ограничения на показ имён. #### Инструкция — Привести панель в соответствие с фирменным стилем школы 1. **Два уровня настройки**: (1) параметры в интерфейсе (в 90 % случаев их достаточно), (2) полная замена шаблона MIT для ярко выраженного фирменного стиля. 2. **Откройте настройки панели** в модуле **Расписание** с помощью кнопки **Информационная панель**. На экране показаны параметры отображения: цвета, размер, шапка, колонки, формат имён. 3. **Подберите цвета по фирменному стилю**: цвет фона, цвет текста, цвета чётных и нечётных строк. Принимаются шестнадцатеричные коды. Для экрана, работающего 12 часов в сутки, лучше выбрать **тёмный фон и светлый текст** (меньше утомляет). 4. **Шапка**: выберите порядок элементов **логотип**, **заголовок**, **дата**. Логотип полезен, как только на территории несколько панелей. Дата полезна в холле, а перед кабинетом без неё можно обойтись. 5. **Колонки таблицы**: выберите и упорядочите их из списка кабинет, классы, преподаватели, дисциплина, время. Для **публичной панели у входа**, если ваши правила запрещают показ имён, скройте колонку **преподаватели**. **Формат имён** (если он оставлен): имя и фамилия, фамилия и имя, обращение и фамилия, обращение и имя. 6. **Размер шрифта**: большой, если читают с расстояния более 2 м (холл), средний для экранов у дверей кабинетов (вид вблизи). Единицы `vmin` — относительные, поэтому читаемость остаётся одинаковой при любом формате экрана. 7. **Сохраните, затем перезагрузите экраны.** Эти визуальные параметры встраиваются в страницу при загрузке: перезагрузите (F5) вкладки, уже открытые на панелях, чтобы они показали новое оформление. **Чтобы пойти дальше** (полное переоформление, интеграция со сторонней системой цифровых вывесок Yodeck/Xibo/ScreenCloud): шаблон `panel.dot` распространяется по **лицензии MIT**, копирование разрешено. JSON-вариант URL панели (`GET /panels/:accesshash/lessons`) отдаёт данные, готовые для внешней системы, с ключом доступа панели. О более широком REST API см. [API Omniscol](#page-integrations.api-tokens). #### См. также - [Информационная панель](#page-panels.lobby-panel) - [Панель у кабинета](#page-panels.room-panel) - [Информационная панель](#page-glossary.panel) - [API Omniscol](#page-integrations.api-tokens) --- ## 12. Миграция с другой программы ### 12.1 Переход с другого программного обеспечения — обзор *Source: `help/ru/migration/overview.md` · id: migration.overview · Audience: admin · Updated: 2026-05-10* Вы переходите на Omniscol с другой программы для составления расписаний? Есть несколько способов, и выбор зависит от исходной программы и от того, насколько полный экспорт она позволяет получить. #### Доступные подходы ##### 1. Импорт в собственном формате программы Для двух программ Omniscol читает их собственный файл экспорта напрямую, без промежуточной таблицы: вы выбираете один или несколько файлов на экране «Импорт/Экспорт» (импорт UnDeuxTEMPS, состоящий из нескольких файлов `.DBF`, находится в разделе французских форматов). | Исходная программа | Формат, читаемый напрямую | Отдельная страница | | --- | --- | --- | | ASC Timetables | XML-файл aSc | [С aSc Timetables](#page-migration.from-asc) | | UnDeuxTEMPS | файлы UDT (`.DBF`) | [migration.from-undeuxtemps](#page-migration.from-undeuxtemps) | Для остальных программ (Hyperplanning, EDT / Pronote, ADE) данные переносятся через **массовый импорт** из таблицы, описанный в пункте 2: вы экспортируете данные из исходной программы, приводите их в нужный вид в таблице и затем импортируете. На каждой из страниц ниже разобраны соответствия и подводные камни, характерные для конкретной программы: - [С Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [С EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [Из ADE / ADE Campus](#page-migration.from-ade) > **Aurion и Auriga** — это **ERP** (административное управление > учебным заведением), а не программы для составления расписаний. > Omniscol взаимодействует с ними, но не заменяет их. О способах > интеграции см. [integrations.aurion](#page-integrations.aurion) и > [integrations.auriga](#page-integrations.auriga). ##### 2. Универсальный импорт из таблицы Если для вашей исходной программы нет импорта в её собственном формате или если вы предпочитаете сами управлять оформлением данных, экспортируйте их в таблицу (Excel, Google Sheets, Numbers, Calc) и воспользуйтесь **массовым импортом** Omniscol. См. [Массовый импорт курсов из таблицы](#page-timetables.mass-import). ##### 3. Прямой доступ через API Для **автоматизированного** переноса (например, если на переходный период между двумя программами нужна синхронизация) можно написать скрипт, который передаёт данные через API Omniscol. См. [API Omniscol](#page-integrations.api-tokens). ##### 4. Ручной перенос Для небольших учебных заведений и частичного переноса можно по-прежнему вводить данные вручную. Рассчитывайте на время от нескольких часов до нескольких дней в зависимости от размера заведения. #### Рекомендуемая стратегия перехода 1. **Составьте карту данных** — прежде всего перечислите всё, что вы хотите перенести: преподавателей, учеников, кабинеты, дисциплины, структуру классов, текущее расписание, доступность, отсутствия. 2. **Определите объём переноса** — обычно переносят не всё. Учеников можно оставить в информационной системе и синхронизировать позже. Расписания прошлых лет можно хранить в архиве отдельно. 3. **Сделайте пробный частичный импорт** — на небольшом наборе данных (один класс, одна когорта), чтобы проверить качество переноса. 4. **Выберите срок** — обычно переходят **к началу следующего учебного года**, а не посреди текущего, чтобы не заботиться о преемственности. 5. **Обучите пользователей** — в Omniscol действуют иные соглашения, чем в конкурирующих программах. Заложите время на обучение, особенно по прикладным понятиям ([Разделение класса](#page-glossary.class-division), [Совмещение групп](#page-glossary.alignment), [Группа групп](#page-glossary.groups-of-groups)). #### Различия в терминологии в зависимости от исходной программы | Термин конкурирующей программы | Эквивалент в Omniscol | | --- | --- | | «ресурс» в значении Hyperplanning (преподаватель, кабинет, класс…) | Несколько сущностей в зависимости от случая | | «cours» в значении EDT / Pronote (размещаемая единица) | [Занятие](#page-glossary.lesson) | | «cours» в педагогическом значении (дисциплина класса) | [Курс](#page-glossary.course) | | «здание» | Тег или здание, заданные для кабинета ([Кабинет](#page-glossary.classroom)) | | «направление подготовки» в высшем образовании | [Класс](#page-glossary.class) или набор классов | | «UE / EC / ECUE» (учебные модули) | [Дисциплина](#page-glossary.subject) с соглашением об именовании | #### См. также - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [API Omniscol](#page-integrations.api-tokens) - [FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) ### 12.2 Переход с Hyperplanning (Index Education) *Source: `help/ru/migration/from-hyperplanning.md` · id: migration.from-hyperplanning · Audience: admin · Updated: 2026-06-30* Hyperplanning (Index Education) — самая распространённая во французском высшем образовании программа для составления расписания. Переход на Omniscol требует перенести ваши данные (пользователей, структуры, действующие расписания) и привести их к понятиям Omniscol. На этой странице собраны соответствия и известные подводные камни. #### Что переносится напрямую | Hyperplanning | Omniscol | | --- | --- | | Promotion (общий поток) | Класс | | Разбиение promotion (partition) | Непересекающиеся группы; **разделение**, если эти группы занимают один и тот же временной слот (одновременные семинары и лабораторные работы) | | Семинарская группа, полученная из разбиения | Группа разделения | | Группа по выбору (option) | Группа | | Сведение (regroupement) | Группа групп (или совмещение между разными классами или promotion) | | Курс | Курс (и его занятия) | | Дисциплина / учебный модуль (UE, EC) | Дисциплина (часто собственная) | | Календарь / периоды | Режим «Календарь» (расписание с датами, Premium); окна дат для включения и исключения периодов | | Кабинет (salle) | Кабинет (специализацию нужно перенести) | | Внешний преподаватель / почасовик | Преподаватель с пометкой «внешний» (опция Premium) | #### На что стоит обратить внимание - **Совмещения**: в Hyperplanning то, что семинарские группы или группы по выбору из нескольких promotion одновременно слушают один курс, делается через **общий курс** (его часто собирают с помощью сведения). Когда такой общий курс требует одного и того же временного слота, кабинета и преподавателя для групп из разных классов, это **совмещение** Omniscol. См. [Совмещение групп](#page-core-concepts.alignments). - **Сведения**: сведение Hyperplanning объединяет несколько групп, чтобы они слушали один и тот же курс; в Omniscol это **группа групп** (доступна во всех тарифах). См. [Группы групп](#page-core-concepts.groups-of-groups). В зависимости от случая сведение между разными классами или promotion может также быть **совмещением** (см. выше). - **Связанные занятия** (чередование половин группы): Omniscol поддерживает их штатно — это **связанные занятия**. См. [Сложные занятия](#page-core-concepts.complex-lessons). - **Преподавательская нагрузка**: педагогическая преемственность (одни и те же ресурсы от занятия к занятию) воспроизводится тем, что на занятиях курса остаются один и тот же преподаватель и один и тот же кабинет; отдельного объекта для этого нет. - **Курсы по календарю**: если вы используете Hyperplanning в режиме календаря для модулей с точными датами, те же задачи в Omniscol решает [режим календаря](#page-timetables.calendar-mode), он входит в тариф Premium. - **Hyperplanning и Aurion**: если ваше учреждение использует Hyperplanning **и** Aurion, миграция касается только расписания; Aurion по-прежнему наполняет административную структуру. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Инструкция 1. **Получите данные** из Hyperplanning в электронную таблицу — списки преподавателей, обучающихся, кабинетов и курсов. В зависимости от версии это делается копированием списка или его экспортом; смотрите документацию Hyperplanning. 2. **Подготовьте файлы Omniscol** в формате импорта: пользователи в CSV, курсы в CSV. См. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data). 3. **Создайте тестовую учётную запись Omniscol («песочницу»)**, чтобы проверить импорт без риска. 4. **Импортируйте в несколько проходов**: - пользователи (преподаватели, обучающиеся), - классы и группы, - дисциплины, - курсы через [массовый импорт из таблицы](#page-timetables.mass-import). 5. **Восстановите сложные занятия** (совмещения, связанные занятия, чередование недель) вручную, если при импорте они были упрощены. 6. **Проверьте диагностику** и исправьте найденные несоответствия. 7. **Запустите пробное формирование расписания**, чтобы убедиться, что оно осуществимо. 8. **Создайте точку резервного копирования** перед переходом на рабочую учётную запись. #### Плавный перенос пользователей Хорошая практика: сначала импортировать пользователей в Omniscol в **неактивном** состоянии. Вы подтверждаете данные, переключаете настройки (SSO, если он используется) и активируете учётные записи за один раз, когда всё готово. Так пользователи не получат приглашение раньше времени. #### Что не переносится - **История Hyperplanning** за пределами действующих расписаний — чтобы сохранить историю, оставьте Hyperplanning в режиме только для чтения как архив, а не переносите всё подряд. - **Визуальные настройки** Hyperplanning — воссоздайте их в Omniscol в соответствии с вашим фирменным стилем. См. [Настройка панелей](#page-panels.customization). #### Инструкция — Миграция Hyperplanning → Omniscol 1. **Переход с Hyperplanning**: последовательность из 8 проходов идёт в порядке экспорт → подготовка → песочница → импорт в несколько проходов → исправление сложных занятий → диагностика → пробное формирование расписания → переключение. 2. **Проход 1 — получение данных из Hyperplanning**: соберите списки (преподаватели, обучающиеся, кабинеты, курсы) в электронную таблицу. В зависимости от версии — копированием списка или его экспортом; см. документацию Hyperplanning. Чем чище исходные данные, тем быстрее пойдёт дальнейшая работа. 3. **Проходы 2–3 — подготовка и песочница**: приведите столбцы к шаблону Omniscol (см. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data)). Создайте **тестовую учётную запись Omniscol («песочницу»)**, чтобы проверить импорт, не рискуя рабочими данными. 4. **Проход 4 — импорт в несколько проходов** в таком порядке: **пользователи** → **классы и группы** → **дисциплины** → **курсы** через [массовый импорт](#page-timetables.mass-import). Порядок важен: курсы ссылаются на классы и преподавателей, которые должны уже существовать. 5. **Проход 5 — сложные занятия**: совмещения (общие курсы для нескольких promotion в Hyperplanning → совмещения Omniscol), связанные занятия (чередование половин группы), чередование недель A/B. При импорте они обычно упрощаются — восстановите их вручную через значки сложных занятий на карточке курса. 6. **Проходы 6–7 — диагностика и пробное формирование расписания**: дайте диагностике отработать и исправьте несоответствия. Запустите **автоматическое формирование расписания**, чтобы проверить его общую осуществимость до переноса в рабочую среду. 7. **Проход 8 — переключение**: создайте **точку резервного копирования** перед переключением. Активируйте учётные записи пользователей (до этого они были импортированы неактивными). Опубликуйте расписание. Оставьте Hyperplanning в режиме только для чтения как архив — миграция не переносит историю за пределами действующих расписаний. Если у вас есть и **Aurion**: миграция касается только расписания, Aurion остаётся административным источником. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### См. также - [Переход с другого программного обеспечения](#page-migration.overview) - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [Синхронизация с внешними системами](#page-integrations.extsync) ### 12.3 Переход с EDT / PRONOTE (Index Education) *Source: `help/ru/migration/from-edt.md` · id: migration.from-edt · Audience: admin · Updated: 2026-06-30* **EDT** и **PRONOTE** (Index Education) — самые распространённые программы в среднем образовании Франции: коллежи и лицеи, как государственные, так и частные. Эта пара охватывает расписание (EDT) и электронный журнал — оценки, табели успеваемости, журнал пройденных тем (PRONOTE). Переход на Omniscol касается прежде всего расписания; для расширенных функций электронного журнала (оценки, табели, общение с родителями) PRONOTE можно оставить параллельно. #### Самый прямой путь: экспорт STSweb EDT строит свои структуры на основе **STSweb**: **учебная нагрузка** (преподаватель ведёт определённый объём часов по дисциплине в классе) берётся из STSweb и возвращается туда в конце подготовки. Для перехода это хорошая новость: **Omniscol напрямую импортирует экспорт STSweb** (файл STS) на экране [Импорт и экспорт](#page-admin.import-export). Такой импорт сразу восстанавливает данные о структуре: учебное заведение (код UAI), учебный год, **дисциплины**, **уровни обучения** (MEF) и их нормативный объём часов по дисциплинам, **классы** (divisions), **группы**, **преподавателей** и **учебную нагрузку**, которая становится **курсами** Omniscol. Подробнее о поддерживаемых французских форматах — на странице [admin.french-formats](#page-admin.french-formats). Таблица остаётся полезной для того, что STSweb не содержит (кабинеты, особые случаи сведения в группы, детальные пожелания): см. массовый импорт ниже. #### Что переносится иначе - **Кабинеты, удалённые площадки**: STSweb подробно не описывает кабинеты. Перенесите их из таблицы или введите заново, затем восстановите площадки. Для набора взаимозаменяемых кабинетов (аналог «группы кабинетов» в EDT) используйте общую **специализацию**, которую учтёт формирование расписания. См. [Специализации кабинетов](#page-core-concepts.classroom-specializations). - **Пожелания и недоступность преподавателей**: детализация отличается от EDT; предусмотрите повторный ввод (разошлите ссылки для ввода до начала учебного года) или приблизительный импорт с последующей правкой. - **Каникулы и школьный календарь**: они задаются в настройках учебного года (шаблон страны или ввод вручную), а не через экспорт. #### Что остаётся в PRONOTE Omniscol не переносит следующее (и вы можете оставить это в PRONOTE): - оценки, контрольные работы, табели, компетенции; - журнал пройденных тем, домашние задания; - электронный журнал в широком смысле (общение с родителями, опросы); - отсутствия можно оставить в PRONOTE или вести в Omniscol, если вы предпочитаете перенести их туда. #### Основные соответствия | EDT / STSweb | Omniscol | | --- | --- | | Класс (division) | Класс | | Часть класса | Группа; **разделение** — для отношения взаимоисключения в одном временном слоте | | Группа (потребности, профильные направления, факультатив, язык) | Группа (внутри класса); совмещение или группа групп, если группа охватывает несколько классов | | Учебная нагрузка (STSweb) | Курс (занятия получаются из него при размещении) | | Дисциплина | Дисциплина | | Кабинет / группа кабинетов | Кабинет; взаимозаменяемый набор = незакреплённый кабинет (автоматическое назначение) или общая специализация | | Удалённая площадка | Площадка (со временем в пути) | | Пожелание / недоступность преподавателя | Доступность (пожелания); уровень «невозможно» (чёрный) для недоступности | | Чередование Q1 / Q2 (двухнедельные циклы) | Чередование недель A / B | | Самоподготовка под надзором / информационно-библиотечный центр (CDI) | Управление персоналом (надзор) + курс «самоподготовка» для группы без занятий | #### Инструкция 1. **Получите экспорт STSweb** (файл STS) учебного заведения — это официальный источник структур и учебной нагрузки. 2. **Импортируйте файл STS** в тестовый аккаунт Omniscol на странице [Импорт и экспорт](#page-admin.import-export). Структура (учебное заведение, год, дисциплины, уровни, классы, группы, преподаватели, учебная нагрузка → курсы) восстанавливается сразу. См. [admin.french-formats](#page-admin.french-formats). 3. **Дополните данные из таблицы** тем, чего нет в STSweb (кабинеты, специализации, особые случаи сведения в группы), через массовый импорт. См. [Массовый импорт курсов из таблицы](#page-timetables.mass-import) и [Подготовка данных к массовому импорту](#page-getting-started.preparing-data). 4. **Проверьте чередование недель**: принятое в EDT обозначение Q1/Q2 должно соответствовать чередованию недель **A/B** в Omniscol. 5. **Перенесите пожелания и недоступность** преподавателей — повторным вводом или приблизительным импортом с последующей правкой. 6. **Запустите диагностику** Omniscol, затем пробное формирование расписания. 7. **Создайте точку резервного копирования** перед переходом на рабочий аккаунт. #### Совместное использование EDT и Omniscol на переходном этапе В переходный период (часто это триместр) обычно оставляют PRONOTE для электронного журнала, а расписание переносят в Omniscol. PRONOTE, как правило, получает расписание из EDT; если вы хотите по-прежнему показывать в нём расписания, которые ведутся в другой системе, уточните у Index Education, что PRONOTE умеет принимать, и не рассчитывайте, что внешний поток будет принят как есть. #### Типичный переход школы Стандартный случай коллежа или лицея, переходящего с EDT на Omniscol: - экспорт STSweb в июне, - импорт и тесты в Omniscol летом, - переход к началу учебного года в сентябре, - PRONOTE сохраняется для электронного журнала, если учебное заведение этого хочет. #### Инструкция — Типичный переход школы с июня по сентябрь 1. **Типичный случай учебного заведения**, которое переходит с EDT/PRONOTE на Omniscol: экспорт в июне, тесты летом, переход к началу учебного года. PRONOTE сохраняется для электронного журнала, если это желательно. 2. **Июнь — экспорт STSweb**: получите файл STS учебного заведения (официальный источник структур и учебной нагрузки). Если его нет, экспортируйте списки из EDT (занятия, учебная нагрузка, классы) в таблицу — в зависимости от версии через экспорт списков или копирование и вставку; см. документацию EDT. 3. **Июль — тестовый аккаунт Omniscol**: импортируйте файл STS на странице [Импорт и экспорт](#page-admin.import-export) (см. [admin.french-formats](#page-admin.french-formats)). Структура восстанавливается сразу. Вы тестируете без спешки: если что-то не подходит, можно спокойно повторять попытки. 4. **Август — дополнение из таблицы** тем, чего нет в STSweb (кабинеты, специализации кабинетов, сведение в группы), через массовый импорт (см. [Массовый импорт курсов из таблицы](#page-timetables.mass-import)). Приведите в соответствие **чередование недель** (Q1/Q2 в EDT → A/B в Omniscol). 5. **Август — пожелания и доступность** преподавателей: детализация отличается. Предусмотрите либо **повторный ввод** (разошлите ссылки для ввода до начала учебного года), либо **приблизительный импорт** с последующей правкой. 6. **Конец августа — диагностика** Omniscol, чтобы найти несоответствия (недостающие дисциплины, конфликты, не перенесённая доступность). Запустите **пробное формирование расписания** на первые недели учебного года, чтобы подтвердить его выполнимость. 7. **Сентябрь — переход**: сначала точка резервного копирования, затем публикация расписаний. **PRONOTE сохраняется** для электронного журнала, если вы этого хотите. #### См. также - [Обзор](#page-migration.overview) - [С Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [admin.french-formats](#page-admin.french-formats) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) ### 12.4 Переход с aSc Timetables *Source: `help/ru/migration/from-asc.md` · id: migration.from-asc · Audience: admin · Updated: 2026-06-30* **aSc Timetables** (Словакия) — давно существующая и очень распространённая программа для формирования расписания, особенно в международных школах и учебных заведениях ряда стран Центральной Европы. Хорошая новость: Omniscol напрямую читает и записывает собственный файл aSc Timetables, без промежуточной таблицы и без ручного сопоставления структур. #### Один файл, в обе стороны aSc Timetables сохраняет расписание в файл **XML** (формат «aSc Timetables 2012»). Omniscol умеет: - **читать** этот файл и восстанавливать по нему полное расписание (классы, группы, преподаватели, дисциплины, кабинеты, курсы); - **записывать** файл того же типа на основе расписания Omniscol, чтобы снова открыть его в aSc или Edupage (школьная информационная система того же разработчика). Всё делается на экране [Импорт и экспорт](#page-admin.import-export), без технических манипуляций: для экспорта служит кнопка Exporter au format aSc (.xml); для импорта достаточно выбрать XML-файл, созданный в aSc. Круговой обмен **обратим**: если экспортировать, а затем импортировать обратно, в Omniscol получится та же структура — с точностью до правил именования. #### Что переносится При чтении файла автоматически переносятся: - **Классы** и их **группы** (включая разделения для практических занятий). - **Дисциплины** с их кодами. - **Кабинеты** с указанием вместимости. - **Преподаватели** (фамилия, имя, контактные данные). - **Курсы** (дисциплина, объём, преподаватель) и расставленные **занятия** (день, временной слот, кабинет). - **Перемены и перерывы** в течение дня. - **Чередование недель** (A/B), если оно настроено в aSc. #### Что стоит просмотреть после импорта - **Сложные ограничения**, свойственные aSc (ограничения последовательности, условный кабинет, очень специфичный запрет на цепочки занятий): Omniscol преобразует их максимально близко, но некоторые правила выражаются иначе, и их стоит перечитать. Условный кабинет скорее выражается через специализации кабинетов (см. [Специализации кабинетов](#page-core-concepts.classroom-specializations)); остальные правила — на страницах [Доступность преподавателей](#page-core-concepts.wishes-and-availability) и [Временные ограничения (общая система)](#page-core-concepts.time-constraints). - **Курсы, общие для нескольких классов** (общая дисциплина у нескольких классов): преобразуются в группы групп (см. [Группы групп](#page-core-concepts.groups-of-groups)). Убедитесь, что результат соответствует вашему замыслу. - **Переименование и круговой обмен**: Omniscol не сохраняет внутренние идентификаторы aSc; при записи файла aSc он восстанавливает соответствия по самим объектам, прежде всего по их **названию**. На практике, если вы собираетесь снова экспортировать в aSc, не переименовывайте за это время классы, преподавателей и дисциплины, иначе соответствия сместятся. #### Инструкция 1. **В aSc** сохраните расписание в формате **XML** (версия 2012 или ближайшая из доступных в вашем aSc). 2. **Создайте тестовый аккаунт Omniscol**, чтобы попробовать без риска. 3. **Импортируйте файл** на экране [Импорт и экспорт](#page-admin.import-export): выберите XML-файл aSc и подтвердите. 4. **Прочитайте диагностику** Omniscol, чтобы найти несоответствия (курсы без кабинета, не перенесённая доступность и т. д.). 5. **Настройте сложные ограничения**, которые не удалось преобразовать автоматически. 6. **Запустите пробное формирование расписания**, чтобы убедиться, что ограничения дают такой же результат, как в aSc. 7. **Создайте точку резервного копирования** перед переходом на рабочий аккаунт. #### Продолжать передавать данные в aSc параллельно Если на время перехода вы продолжаете пользоваться aSc, обратный экспорт позволяет и дальше передавать в него данные из Omniscol — например, когда партнёрские учебные заведения всё ещё пользуются aSc. Полученный файл снова открывается в aSc Desktop (версия 2012 или новее). #### На что обратить внимание - **Символы с диакритическими знаками**: если после кругового обмена часть таких символов отображается неверно, дело в кодировке файла. Экспорт Omniscol по умолчанию использует кодировку, которую ожидает aSc Desktop; просто убедитесь, что название с диакритикой выдерживает путь туда и обратно. - **Разные алгоритмы формирования**: у aSc и Omniscol разный профиль алгоритма формирования. Расписание, которое легко формировалось в aSc, в Omniscol может потребовать небольших корректировок, и наоборот. - **Версии aSc**: чтение рассчитано на формат 2012. Более старые версии могут оказаться несовместимы напрямую — в этом случае сохраните расписание в формате 2012 из aSc Desktop. #### Инструкция — Круговой обмен XML aSc ↔ Omniscol 1. **Omniscol читает и записывает собственный файл aSc Timetables 2012**: прямой обмен в обе стороны, без промежуточной таблицы. 2. **Со стороны aSc**: сохраните расписание в формате **XML 2012** (или в ближайшей к нему версии) и оставьте файл на своём компьютере. 3. **В тестовом аккаунте Omniscol**: откройте экран [Импорт и экспорт](#page-admin.import-export) и выберите XML-файл aSc. При импорте восстанавливаются классы, группы, дисциплины, кабинеты, преподаватели, курсы, чередование недель и перемены. 4. **Проверьте диагностику**: курсы без кабинета, не перенесённая доступность, курсы нескольких классов, преобразованные в группы групп (см. [Группы групп](#page-core-concepts.groups-of-groups)). Напоминание: чтобы круговой обмен прошёл чисто, не переименовывайте классы, преподавателей и дисциплины, если собираетесь снова экспортировать — Omniscol опирается на их названия, восстанавливая соответствия. 5. **Настройте сложные ограничения**, свойственные aSc (последовательности, очень специфичный запрет на цепочки занятий): преобразование выполняется максимально близко, но некоторые правила в Omniscol выражаются иначе. См. [Доступность преподавателей](#page-core-concepts.wishes-and-availability). 6. **Запустите в Omniscol пробное формирование расписания**, чтобы убедиться, что результат соответствует ожиданиям. ⚠ У aSc и Omniscol разный профиль алгоритма формирования; расписание, которое легко получалось в aSc, может потребовать корректировок в Omniscol, и наоборот. 7. **Обратный экспорт** (если вы параллельно продолжаете пользоваться aSc): кнопка Exporter au format aSc (.xml) на экране [Импорт и экспорт](#page-admin.import-export). Файл снова открывается в aSc Desktop 2012+; круговой обмен сохраняет структуру (небольшие потери — только в правилах именования). #### См. также - [Обзор](#page-migration.overview) - [Импорт и экспорт](#page-admin.import-export) - [Доступность преподавателей](#page-core-concepts.wishes-and-availability) - [Группы групп](#page-core-concepts.groups-of-groups) ### 12.5 Миграция из ADE / ADE Campus *Source: `help/ru/migration/from-ade.md` · id: migration.from-ade · Audience: admin · Updated: 2026-06-30* **ADE** (разработчик Adesoft), часто в своей веб-версии **ADE Campus**, распространён в высшем образовании, особенно в университетах и высших школах. ADE **построен вокруг активности** («cours session») и часто синхронизируется с информационной системой учреждения (Apogée, Pegase, Aurion, UNIT4…). Переход на Omniscol касается прежде всего планирования; синхронизацию с вашей информационной системой нужно настроить заново на стороне Omniscol. #### Охват Что переносится: - **программы обучения** (бакалавриат, магистратура, MBA…) и их группы (рабочие группы, половины набора); - **преподаватели** (штатные, нештатные, внешние); - **активности** (cours session) с их типом, продолжительностью и числом повторений; - **кабинеты и оборудование** (по зданиям и этажам, с вместимостью); - **доступность и недоступность** ресурсов. Модели ADE и Omniscol в целом совместимы, но правила именования различаются. Предусмотрите первоначальное сопоставление. #### Соответствия | ADE (ADE Campus) | Omniscol | | --- | --- | | Программа (бакалавриат, магистратура, MBA…) | Несколько классов (один **набор**/год обучения = один класс) | | Рабочая группа / половина набора | Группа; **разделение**, если две половины набора проходят разные занятия в одном и том же временном слоте | | Преподаватель | Преподаватель | | Активность (cours session) | Курс (и его занятия) | | Тип активности (лекция, семинар, практическая работа…) | Тип занятия | | Формат проведения (очно, дистанционно…) | Формат (атрибут Premium) | | Лимит / зачисленные | Расчётная численность — отдельного лимита нет (предел мест задаёт вместимость кабинета) | | Кабинет / оборудование (здание, этаж, вместимость) | Кабинет (площадка, вместимость); ресурсом становится только **переносное** оборудование | | Доступность / недоступность (цветовая шкала) | Доступность (пожелания): 4 уровня — невозможно / нежелательно / предпочтительно / нейтрально | | Связь активностей | В зависимости от связи: совмещение, сдвоенные занятия или связанные занятия | | Код CURSUS / UNIT4 | Внешний идентификатор (след синхронизации с информационной системой) | #### Инструкция 1. **Получите данные** из ADE — программы, преподавателей, кабинеты, активности. ADE показывает данные в **настраиваемых списках** (представления Listing, выбор столбцов), которые можно распечатать или экспортировать в таблицу через меню **Impression**. 2. **Подготовьте файлы Omniscol** на основе этих экспортов (см. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data)). 3. **Импортируйте из таблицы** в тестовое расписание (см. [Массовый импорт курсов из таблицы](#page-timetables.mass-import)). 4. **Восстановите связи**: совмещения (связи активностей в ADE), чередования, разделения для половин набора — в ADE и Omniscol используются не совсем одинаковые механизмы. 5. **Запустите пробное формирование расписания**. #### На что обратить внимание - **ADE планирует на конкретные даты**: представление **Placement** (неделя, день, начало, конец) и панель недель делают ADE инструментом календарного типа. Чтобы получить такое же поведение, используйте календарный режим Omniscol, входящий в тариф Premium (см. [Режим календаря](#page-timetables.calendar-mode)). - **Половины набора и рабочие группы**: программа обучения часто делится на рабочие группы и половины набора. В Omniscol половины набора соответствуют **разделению** класса; продумайте детализацию групп с самого начала. - **Кабинеты заданные и «на выбор»**: в ADE кабинет можно задать для активности или оставить на выбор алгоритма. В Omniscol заданный кабинет алгоритм сохраняет как есть; для кабинета «на выбор» оставьте занятие без конкретного кабинета — алгоритм выберет его на площадке с учётом вместимости и необходимой **специализации**, если она задана (набор взаимозаменяемых кабинетов моделируется общей специализацией). См. [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) и [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment). - **Многоуровневая доступность**: ADE работает с доступностью на нескольких уровнях (от зелёного до красного, плюс динамический слой). В Omniscol используется **доступность (пожелания)** на 4 уровнях (невозможно, нежелательно, предпочтительно, нейтрально) — переносите в первую очередь крайние значения (невозможно и предпочтительно), промежуточные уровни дорабатываются позже. - **Педагогический руководитель**: ADE закрепляет за каждой активностью педагогического руководителя. В Omniscol такой роли на уровне курса нет; сохраните эту информацию через соглашение об именовании или заметку, если она вам нужна. - **Ссылки iCal**: ADE часто публикует расписания через ссылки iCal. Импорт Omniscol не читает iCal; экспорт iCal сначала нужно преобразовать в таблицу. - **Синхронизация с информационной системой**: если ADE был синхронизирован с вашей информационной системой (Apogée, Pegase, Aurion, UNIT4…), эту синхронизацию нужно настроить заново на стороне Omniscol — часто через API или синхронизацию с внешними системами. Поле **Код CURSUS / UNIT4** в ADE служит её следом на стороне источника. См. [Синхронизация с внешними системами](#page-integrations.extsync). #### Инструкция — Миграция ADE → Omniscol (высшее образование) 1. **ADE (Adesoft), часто в версии ADE Campus**, распространён в высшем образовании. Миграция касается прежде всего планирования; синхронизацию с информационной системой (Apogée, Pegase, Aurion, UNIT4) нужно настроить заново на стороне Omniscol. 2. **Получение данных ADE**: программы, преподаватели, кабинеты, активности (с типом, продолжительностью, повторениями, лимитом). ADE показывает эти данные в настраиваемых списках (представления Listing), которые печатают или экспортируют через меню **Impression**. Данные из ссылки iCal сначала нужно преобразовать в таблицу (импорт не читает iCal). Если вы планируете на конкретные даты, сохраните и этот аспект. 3. **Первоначальное сопоставление**: ADE и Omniscol имеют совместимые модели, но разные правила именования. Подготовьте файлы по шаблону Omniscol (см. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data)). С самого начала продумайте детализацию **студенческих групп** (половины набора, рабочие группы) — в высшем образовании это самое тонкое место. 4. **Импорт из таблицы** в тестовое расписание: преподаватели, программы, дисциплины, кабинеты, затем активности (см. [Массовый импорт курсов из таблицы](#page-timetables.mass-import)). В таблице курсов нет столбца внешнего идентификатора; для будущего сопоставления с вашей информационной системой лучше предусмотреть внешнюю синхронизацию (см. [Синхронизация с внешними системами](#page-integrations.extsync)). 5. **Восстановление связей**: совмещения для нескольких программ (в ADE это **связи** активностей), чередования, разделения для половин набора. Кабинеты, оставленные «на выбор», тоже перенесите, предоставив алгоритму назначить их (при необходимости через общую специализацию). В ADE и Omniscol используются не совсем одинаковые механизмы — рассчитывайте на ручной финальный проход. Если ADE планировал на конкретные даты, используйте **календарный режим** Omniscol (входит в Premium), чтобы сохранить это поведение (см. [Режим календаря](#page-timetables.calendar-mode)). 6. **Пробное формирование расписания** в Omniscol, чтобы подтвердить осуществимость. Диагностика, исправления, повторные прогоны. Чем больше вы тестируете до перехода, тем меньше исправляете после. 7. **Перенастройка информационной системы**: если ADE был синхронизирован с Apogée, Pegase, Aurion или UNIT4, эту синхронизацию нужно настроить заново на стороне Omniscol через API (см. [API Omniscol](#page-integrations.api-tokens)) или синхронизацию с внешними системами (см. [Синхронизация с внешними системами](#page-integrations.extsync)). Для Aurion отдельно см. [integrations.aurion](#page-integrations.aurion) — возможны 3 режима. #### См. также - [Обзор](#page-migration.overview) - [API Omniscol](#page-integrations.api-tokens) - [Синхронизация с внешними системами](#page-integrations.extsync) - [Режим календаря](#page-timetables.calendar-mode) ### 12.6 Миграция из самодельной таблицы Excel *Source: `help/ru/migration/from-spreadsheet.md` · id: migration.from-spreadsheet · Audience: admin · Updated: 2026-05-12* Многие учебные заведения — прежде всего небольшие организации, частные школы, организации краткосрочного обучения — до сих пор ведут расписание в самодельной таблице Excel. Перейти на Omniscol в этом случае особенно просто: не нужно разбирать закрытый формат, достаточно немного дисциплины, чтобы упорядочить данные. #### Прежде чем начать: наведите порядок В таблице с расписанием часто собраны несколько «листов» разной природы: список преподавателей, список классов, список дисциплин, таблица расписания, разные заметки. Перед импортом определите: - **список преподавателей** (отдельный лист), - **список учеников** (отдельный лист, если он есть), - **список классов** и их численность, - **список кабинетов**, - **курсы**: для каждой строки — класс, дисциплина, преподаватель, кабинет, день, время, продолжительность. Если в вашей таблице эти сведения не разделены, сделайте это сейчас — для импорта это в любом случае необходимо. #### Ожидаемый формат импорта Импорт выполняется **копированием и вставкой** из вашей таблицы (Excel, Google Sheets, Numbers, Calc…) в документированный шаблон столбцов. Столбцы распознаются по **положению** (вы перестраиваете шаблон так, чтобы он совпал с вашим файлом), а не по названию заголовка. Подробности (порядок столбцов, форматы дат, коды дисциплин и так далее) см. [Подготовка данных к массовому импорту](#page-getting-started.preparing-data). Для курсов предназначен отдельный инструмент: [Массовый импорт курсов из таблицы](#page-timetables.mass-import). Вы **копируете и вставляете** строки из таблицы прямо в редактируемую область; одна строка соответствует одному курсу. #### Инструкция 1. **Очистите** исходную таблицу: удалите ненужные столбцы, приведите названия к единому виду (преподаватель не должен встречаться в трёх разных написаниях). 2. **Подготовьте отдельный лист для каждого типа объектов**: преподаватели, ученики, классы, кабинеты, курсы — каждый лист вы вставите по очереди. 3. **Тестовый аккаунт Omniscol**, чтобы без риска подтвердить корректность импорта. 4. **Последовательный импорт**: сначала справочники (преподаватели, кабинеты, дисциплины), затем курсы, которые на них ссылаются. 5. **Проверьте диагностику** Omniscol, чтобы найти то, что было интерпретировано неверно. 6. **Запустите пробное формирование расписания** (даже если вы сохраняете ручное размещение из вашей таблицы), чтобы подтвердить выполнимость. #### Преимущества миграции - **Один инструмент** объединяет таблицу, PDF-файлы расписаний и обновления, которые рассылались по электронной почте. - **Обновление в реальном времени**: каждый видит актуальную версию сразу после изменения. - **Автоматическое распространение**: iCal, информационные панели, порталы для учеников и преподавателей. - **Диагностика**: Omniscol находит конфликты, которые ваша таблица пропускает. #### Храните таблицу только для чтения в архиве Удалять прежнюю таблицу не нужно. Храните её в архиве только для чтения (например, в общей папке): она пригодится, если понадобится вернуться к старой конфигурации. Тогда Omniscol становится оперативным источником достоверных данных, а таблица остаётся исторической справкой. #### Инструкция — Миграция из самодельной таблицы Excel 1. **Самый простой случай**: расписание ведётся в самодельном Excel. Не нужно разбирать закрытый формат — достаточно дисциплины, чтобы упорядочить данные перед импортом. 2. **Перед импортом наведите порядок** в исходной таблице. Если в вашем файле преподаватели, классы, кабинеты и курсы перемешаны на одном листе, сначала разделите их по тематическим листам: преподаватели, ученики, классы, кабинеты, курсы. 3. **Очистите** каждый лист: никаких ненужных столбцов, **приведите названия к единому виду** (преподаватель не должен встречаться в трёх разных написаниях), уберите объединённые строки. Одна строка — один объект. 4. **Тестовый аккаунт Omniscol**: создайте его, прежде чем трогать рабочий аккаунт. Так вы без риска подтверждаете корректность импорта. 5. **Последовательный импорт** в порядке зависимостей: **сначала справочники** (преподаватели, кабинеты, дисциплины), **затем курсы**, которые на них ссылаются. Для курсов используйте [Массовый импорт курсов из таблицы](#page-timetables.mass-import) — туда вы вставляете строки прямо из таблицы. 6. **Диагностика**: Omniscol находит несоответствия (курсы без кабинета, неизвестные преподаватели, конфликты), которых ваша таблица не видит. Исправьте их до перехода. 7. **Пробное формирование расписания** (необязательно — если вы хотите сохранить ручное размещение), чтобы подтвердить выполнимость. **Переход**: прежний Excel остаётся в архиве только для чтения, а Omniscol становится источником достоверных данных, с автоматическим распространением (iCal, информационные панели, порталы) и обновлением в реальном времени. #### См. также - [Обзор](#page-migration.overview) - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) --- ## 13. Особенности высшего образования ### 13.1 Особенности высшего образования — обзор *Source: `help/ru/higher-ed/overview.md` · id: higher-ed.overview · Updated: 2026-06-13* У высшего образования, дополнительного образования и учебных центров требования совсем другие, чем у начальной и средней школы. В этом разделе собраны страницы об этих особенностях. #### Типичные особенности - **Режим «[Календарь](#page-glossary.calendar-mode)»**, а не недельное расписание — обучение редко повторяется весь год, занятия чаще назначаются на конкретные даты по одному. - **Много внешних преподавателей** — почасовики, приглашённые преподаватели, эксперты. См. [Внешние преподаватели](#page-higher-ed.external-faculty). - **Параллельные потоки**, а не единственный класс — в магистратуре может быть несколько профилей, у которых часть курсов общая, есть общие специализации, но проекты у каждого свои. - Частое **совместное преподавание** (пары преподавателей, двойная экспертиза). - **Экзамены в нескольких кабинетах** (одновременно в двух лекционных залах). См. [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams). - **Ссылки на видеоконференцию для каждого курса** (гибридный формат, частично дистанционное обучение). См. [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links). - Нужно учитывать **учеников, повторяющих год обучения или обучающихся вне основной траектории**. #### Рекомендации по настройке - **Аккаунт [Premium](#page-overview.plans-and-options)** — в него входят режим «Календарь», доступность с привязкой к датам, несколько опубликованных расписаний одновременно и **разовые события** (защиты, заседания комиссий, дни открытых дверей). К нему относится и пометка занятий как дистанционных или гибридных — их **[формат](#page-glossary.lesson-modality)**; сама по себе **ссылка на видеоконференцию** остаётся доступной на всех аккаунтах. - **Режим «Календарь»** для основного расписания (или основных расписаний) — в большинстве случаев в высшем образовании без него не обойтись. - **Несколько опубликованных расписаний одновременно**, если вы сочетаете повторяющиеся курсы и разовые, если ваше учебное заведение объединяет несколько независимых факультетов или если это группа школ. - **Группы групп** для гибкого сведения групп, меняющегося со временем. - **Ввод доступности в режиме «Календарь»** — преподаватели вводят доступность дата за датой, и она сводится в реальном времени. - **API и интеграции** с информационной системой учебного заведения (SIS) или ERP — в бизнес-школах и инженерных школах это часто [синхронизация с внешними системами](#page-integrations.extsync). Она синхронизирует сущности (преподавателей, кабинеты) и каталог учебного предложения, а занятия передаёт как учебные мероприятия в центральную систему — источник достоверных данных учебного заведения. #### Словарь То, что вузы называют **учебным планом**, **буклетом программы**, **программой обучения** или **программой курса**, в Omniscol соответствует **совокупности [курсов](#page-glossary.course)** класса или направления подготовки: каждый курс — это дисциплина с указанным типом, закреплённая за классом, со своим объёмом часов и ограничениями. **[Занятия](#page-glossary.lesson)** курса — его запланированные экземпляры. Остальные термины высшего образования обозначают более общие сущности Omniscol, описанные в глоссарии: **обучающийся** и **участник** соответствуют [ученику](#page-glossary.student); **лектор**, **почасовик**, **штатный преподаватель** и **эксперт** — это [преподаватель](#page-glossary.teacher); **поток**, **набор** и **когорта** — это [класс](#page-glossary.class). #### Сценарии использования в высшем образовании - [FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) #### См. также - [Режим календаря](#page-glossary.calendar-mode) - [Группы групп](#page-core-concepts.groups-of-groups) - [Внешние преподаватели](#page-higher-ed.external-faculty) - [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams) - [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links) ### 13.2 Учебные периоды, когорты, программа обучения, траектории *Source: `help/ru/higher-ed/sessions-and-tracks.md` · id: higher-ed.sessions-and-tracks · Updated: 2026-05-12* В высшем образовании педагогическая структура менее линейна, чем в школе. Ученик входит в **когорту** (учеников одного года поступления), а также в **траектории** или **программы обучения** (свой профиль) и в **группы** семинарских или практических занятий. Иногда он занимается сразу в нескольких когортах (дополнительный профиль, параллельное обучение). На этой странице кратко описано, как Omniscol моделирует такие ситуации. #### Когорта = класс Omniscol **Когорта** (в разговоре — «набор») соответствует классу Omniscol в административном смысле, например *«Бакалавриат 3, Информатика, 2026»* или *«Магистратура 2, Финансы, 2025–2027»*. Это сущность, которая объединяет учеников, поступивших в один и тот же учебный период. Классы называют однозначно, а для крупных направлений подготовки добавляют год поступления: - `Б1 Инж 2026` — бакалавриат, 1-й год обучения, инженерные науки, поступление в 2026 году, - `М1 Маркетинг 2026-2028` — магистратура, 1-й год обучения, два года. #### Траектории и профили **Траектория** — это педагогическая ориентация внутри когорты или сквозная для нескольких: *«профиль Data»*, *«дополнительный профиль Предпринимательство»*, *«двойной диплом XYZ»*. Omniscol моделирует её в зависимости от сложности: - **Простая траектория** внутри когорты — **группа** в составе класса (например, `Б3-Информатика 2026-Траектория Data`). - **Сквозная траектория** для нескольких когорт — **группа групп**, которая объединяет соответствующие группы нескольких классов. См. [Группы групп](#page-core-concepts.groups-of-groups). - **Параллельное обучение** (ученики проходят две полные траектории) — особый случай, когда один и тот же ученик получает **два распределения по классам** в течение года. Это исключение из общего правила, по которому у двух классов нет общих учеников. #### Учебные периоды **Учебный период** — это определённый отрезок обучения: семестр, триместр, интенсивный модуль на 2 недели. Omniscol работает с учебными периодами через: - **периоды публикации** расписаний (одно расписание на учебный период, опубликованное на соответствующих неделях), - **учебные годы** (один учебный год может охватывать несколько учебных периодов). Для коротких или разовых форм обучения (семинары, модули непрерывного образования) выбирайте режим **«Календарь»** (входит в тариф Premium), а не обычную недельную сетку. См. [Режим календаря](#page-higher-ed.calendar-mode). #### Ученики с нетипичной траекторией Частые случаи в высшем образовании: - **Оставленные на повторное обучение**: у них засчитаны одни учебные модули и не засчитаны другие. - **Ученики по академической мобильности** (Erasmus, обмен) — их распределяют в принимающий класс с корректировкой траектории. - **Ученики на дуальном обучении** — чередуют недели в учебном заведении и недели на предприятии; такой ритм моделируется через чередование недель или через отдельное календарное расписание. #### См. также - [Обзор](#page-higher-ed.overview) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Группы групп](#page-core-concepts.groups-of-groups) - [Режим календаря](#page-higher-ed.calendar-mode) ### 13.3 Внешние преподаватели (почасовики, приглашённые лекторы) *Source: `help/ru/higher-ed/external-faculty.md` · id: higher-ed.external-faculty · Audience: admin · Updated: 2026-06-13* В высшем образовании широко привлекают **внешних преподавателей**: почасовиков из отраслей, практиков, которые выступают эпизодически, приглашённых профессоров из других учебных заведений. Работа с ними отличается от работы со штатными преподавателями: мало часов, учебному заведению приходится подстраиваться под их расписание, а не выбирать его, иногда договор заключается на почасовой основе. #### Как отметить преподавателя как внешнего В карточке преподавателя ([Управление преподавателями](#page-admin.teachers)) переключатель **Внешний преподаватель** (доступен в тарифе Premium) позволяет отличить внешних преподавателей от штатных. У отметки два практических следствия: - **значок** [user-tie] перед именем преподавателя в списках и во всплывающих подсказках занятий, - **отдельный столбец** в табличных представлениях и в экспорте в таблицу, чтобы выделить внешних преподавателей (например, чтобы сравнить часы, отработанные штатными и внешними преподавателями). #### Ввод доступности Доступность внешнего преподавателя чаще задаётся **по датам**, а не по дням недели: он готов выступить во вторник, 12 марта, и во вторник, 19 марта, но не каждый вторник. В этом случае естественное решение — ввод [доступности в режиме календаря](#page-timetables.calendar-wishes), входящий в тариф Premium. Без тарифа Premium задайте приблизительную **недельную доступность** (вторник, вторая половина дня), а затем заблокируйте занятия по одному вручную. #### Рабочие часы и договор У внешних преподавателей обычно есть **объём часов**, определённый при найме (`30 часов в год`, `модуль на 15 часов`). Поле **Рабочие часы** в карточке позволяет вести этот объём; диагностика сообщает, если запланированные часы его превышают. При почасовом договоре (оплата за занятие, а не помесячно) экспорт статистики по преподавателям используется для расчёта заработной платы или внешнего выставления счетов. #### Коммуникация Внешние преподаватели заходят в приложение реже, чем штатные. Три варианта: - **Полная учётная запись** — преподаватель получает логин и пароль, просматривает своё расписание, вводит доступность и объявляет об отсутствии на портале преподавателя. - **Только ссылка iCal** — без учётной записи, только ссылка-подписка iCal, чтобы синхронизировать занятия с личным календарём. - **Напоминание по электронной почте (вне приложения)** — администратор предупреждает преподавателя по электронной почте перед его занятиями; преподаватель в приложение не заходит вообще. Напоминание отправляется вручную: Omniscol не рассылает автоматических уведомлений о каждом занятии. Такое напоминание легко реализовать за пределами Omniscol через API получения расписаний, отфильтровав данные по преподавателям. Например, еженедельная задача формирует сводку, подставляет её в собственный шаблон учебного заведения и отправляет через почтовую службу самого заведения. Отправка через эту службу сохраняет репутацию отправителя и снижает число ложных срабатываний антиспама. Выбирайте вариант по профилю преподавателя (старшему консультанту некогда вести ещё одну учётную запись; аспирант, который ведёт несколько часов, освоится с ней легко). #### Инструкция — Подключение внешнего преподавателя 1. **Внешний преподаватель, который ведёт 15 часов в год**: отметка внешнего преподавателя, доступность по датам, объём часов, подходящий способ коммуникации. 2. **Создайте карточку преподавателя** в разделе **Преподаватели**. Укажите имя, фамилию, адрес электронной почты и включите **Внешний преподаватель**. Отметка добавляет значок [user-tie] перед именем и отдельный столбец в табличных представлениях и в экспорте. 3. **Объём часов**: в поле **Рабочие часы** укажите объём по договору (`15`). Диагностика сообщает, если запланированные часы его превышают. Удобно для почасовой оплаты и контроля договора. 4. **Доступность**: в аккаунте Premium преподаватель вводит доступность **по датам** через [доступность в режиме календаря](#page-timetables.calendar-wishes) — это прекрасно подходит, когда учебному заведению приходится подстраиваться под расписание преподавателя. Иначе — **приблизительная недельная доступность** и блокировка занятий по одному вручную. 5. **Способ коммуникации** — выберите по профилю: - **Полная учётная запись** — для аспиранта, который ведёт несколько часов: логин и пароль, портал преподавателя, доступность, отсутствия; - **Только ссылка iCal** — для старшего консультанта, которому некогда заводить ещё одну учётную запись: только подписка на календарь; - **Напоминание по электронной почте (вне приложения)** — администратор предупреждает преподавателя по электронной почте вручную (Omniscol не отправляет автоматических напоминаний о каждом занятии); преподаватель в приложение не заходит вообще. 6. **Экспорт статистики** в конце месяца или семестра для **расчёта заработной платы или внешнего выставления счетов**: часы, отработанные по занятиям, дисциплинам и классам. См. [Печать и общий доступ](#page-schedules.print-and-export). Столбец «Внешний преподаватель» в экспорте позволяет выделить внешних преподавателей. #### См. также - [Управление преподавателями](#page-admin.teachers) - [Доступность в календаре](#page-timetables.calendar-wishes) - [Внешний преподаватель](#page-glossary.external-teacher) - [Обзор](#page-higher-ed.overview) ### 13.4 Дублирующие залы и экзамены в нескольких кабинетах *Source: `help/ru/higher-ed/multi-room-exams.md` · id: higher-ed.multi-room-exams · Audience: admin · Updated: 2026-06-13* В высшем образовании некоторые занятия проходят **сразу в нескольких кабинетах**. На промежуточный экзамен собирается класс из 200 учеников, которых рассаживают по 5 лекционным залам. Лекция, продублированная в двух залах, идёт в них одновременно по видеосвязи. Комиссия работает одновременно в 3 кабинетах. Для таких случаев в Omniscol есть понятие «**несколько кабинетов**». #### Несколько кабинетов: принцип За занятием (или событием) можно закрепить **несколько кабинетов**. Тогда все они заняты в этот временной слот, а все ограничения (вместимость, специализация, доступность) проверяются параллельно. Несколько кабинетов можно указать **во всех режимах расписания** (недельном, цикле, календаре). См. [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources). > _Premium_ Сценарии экзамена и работы комиссии, описанные ниже, опираются на **разовые события** (датированные занятия поверх сетки), которые доступны в аккаунтах «**Премиум**». А вот **несколько кабинетов** у обычного занятия доступны во всех аккаунтах. #### Типичный случай: экзамен в нескольких кабинетах Класс `ИВТ-1 2026` (200 учеников) сдаёт промежуточный экзамен по алгоритмам. В учебном заведении нет зала на 200 мест, поэтому экзамен проходит одновременно в залах: - `Зал А` (80 мест), - `Зал Б` (70 мест), - `Зал В` (50 мест). Как это описывается в Omniscol: - создайте **событие-экзамен** на нужную дату и время (см. [Разовые события](#page-schedules.events)), - участники: класс `ИВТ-1 2026`, - кабинеты: `Зал А`, `Зал Б`, `Зал В` (несколько кабинетов), - надзор: от 1 до 3 сотрудников на кабинет через модуль **Управление персоналом** (см. [Обзор модуля «Управление персоналом»](#page-staffing.overview)). Проверьте, что суммарная вместимость залов (80 + 70 + 50 = 200) покрывает численность учеников. Если экзамен описан как **событие**, Omniscol не считает эту сумму автоматически: диагностика вместимости касается только обычных занятий, размещённых в сетке. #### Лекция в двух залах с видеосвязью Очень востребованную лекцию можно транслировать по видеосвязи из основного зала в дополнительный. Как это описывается: - одно занятие с двумя кабинетами, - преподаватель физически находится в основном зале, - **ссылка на видеоконференцию** у занятия содержит адрес трансляции в дополнительный зал (организацию можно пояснить в заметке). #### Комиссия по защитам Комиссия принимает защиты у 10 аспирантов параллельно в 3 кабинетах (по очереди, по трети): - одно событие на каждое заседание комиссии, - несколько кабинетов для каждого заседания, - **Управление персоналом** для членов комиссии, закреплённых за каждым кабинетом. #### Автоматическая разбивка учеников Omniscol не определяет автоматически, какой ученик в какой зал пойдёт. Это решение остаётся за учебным заведением (по алфавиту, по уровню, по виду испытания, по внутренним правилам). Разбивку делают вручную или через экспорт в электронную таблицу, которую передают сотрудникам, ведущим надзор. #### Инструкция — Запланировать промежуточный экзамен в 3 залах 1. **Типичный случай в высшем образовании**: промежуточный экзамен для 200 учеников в 3 залах одновременно. Для него достаточно нескольких кабинетов, события и модуля **Управление персоналом**. 2. **Создайте событие-экзамен**: в модуле **Расписание** включите фильтр **События** (режим реорганизации) и **протяните мышью** по календарю, чтобы задать датированный временной слот. Заголовок: `Промежуточный экзамен по алгоритмам ИВТ-1`, затем даты и время начала и окончания. См. [Разовые события](#page-schedules.events). 3. **Участники**: добавьте класс `ИВТ-1 2026` (200 учеников). Все соответствующие ученики автоматически попадают в событие, независимо от того, в каком зале они фактически будут сдавать экзамен. 4. **Кабинеты — это и есть несколько кабинетов**: добавьте 3 зала (`Зал А` на 80, `Зал Б` на 70, `Зал В` на 50). Все три зала становятся занятыми одновременно в этот временной слот. Убедитесь сами, что суммарная вместимость (200) покрывает численность (200): для события эта сумма автоматически не диагностируется. 5. **Сотрудники для надзора**: откройте модуль **Управление персоналом** и создайте задачи по надзору для каждого зала (от 1 до 3 сотрудников на кабинет в зависимости от вашей политики). См. [Обзор модуля «Управление персоналом»](#page-staffing.overview). 6. **Разбивка учеников по залам**: Omniscol не делает её автоматически. Этот выбор определяется вашими внутренними правилами (алфавит, уровень, выравнивание численности). Экспортируйте список учеников в электронную таблицу, разбейте его вручную или по вашим правилам, затем передайте сотрудникам для надзора. См. [Печать и общий доступ](#page-schedules.print-and-export). #### См. также - [Несколько кабинетов](#page-glossary.multi-room) - [Формат](#page-glossary.lesson-modality) - [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) - [Обзор модуля «Управление персоналом»](#page-staffing.overview) - [Разовые события](#page-schedules.events) ### 13.5 Совместное преподавание и поочерёдное участие преподавателей *Source: `help/ru/higher-ed/co-teaching.md` · id: higher-ed.co-teaching · Audience: admin · Updated: 2026-06-13* В высшем образовании часто встречаются две ситуации: - **совместное преподавание** — два преподавателя (или больше) ведут одно занятие вместе. Типичный случай: теоретик и практик на курсе по стратегии, штатный преподаватель и внешний преподаватель-эксперт на разборе кейса. - **поочерёдное участие преподавателей** — курс на протяжении периода (модуля, семестра) ведут по очереди несколько преподавателей, сменяя друг друга. Типичный случай: отраслевой модуль, разбитый на тематические занятия, каждое из которых поручено своему эксперту. Оба механизма встроены в Omniscol. #### Совместное преподавание (совместное ведение занятия) За одним занятием можно закрепить **сразу нескольких преподавателей**. В модуле «**Управление расписанием**» в выборе преподавателя **Назначить преподавателей** на одном занятии можно указать несколько человек. В индивидуальных расписаниях этих преподавателей занятие отображается как проводимое совместно. Что из этого следует: - **Доступность** всех преподавателей, ведущих занятие вместе, должна допускать этот временной слот. - Что касается **нагрузки**, занятие учитывается **целиком** в расписании каждого из ведущих. Если ваши правила делят час между ведущими пропорционально, этот расчёт выполняется при экспорте (для расчёта оплаты, выставления счетов). См. [Сложные занятия](#page-core-concepts.complex-lessons) — технические подробности о занятиях, которые ведут несколько преподавателей. #### Поочерёдное участие преподавателей в модуле Случай сложнее: 12 занятий модуля, каждое из которых проводит другой преподаватель. Есть два подхода. ##### Подход A — одна дисциплина, несколько курсов Создайте в модуле **по одному курсу на каждого преподавателя**, каждый со своим преподавателем. Вводить данные придётся долго, зато для преподавателей результат остаётся понятным: каждый видит свои занятия в своём расписании, а модуль выглядит как одна дисциплина с несколькими курсами. ##### Подход B — режим «Календарь» с точными датами Если даты занятий известны точно, выберите режим работы расписания — [режим календаря](#page-timetables.calendar-mode), он входит в тариф Premium: - одна дисциплина `Модуль «Стратегия предприятия»`, - N занятий с датами и одним преподавателем на каждое, - алгоритм учитывает доступность каждого преподавателя. Такой подход компактнее и естественнее для интенсивных модулей. #### Комментарий для описания последовательности На каждом занятии можно добавить **комментарий** Комментарий, объясняющий, какое место занятие занимает в модуле (`Занятие 3 / 12 — Финансовая стратегия`). Комментарий отображается в расписаниях и помогает ученикам ориентироваться. #### Инструкция — Модуль с 12 преподавателями, сменяющими друг друга 1. **Случай отраслевого модуля**: 12 занятий, каждое из которых поручено своему эксперту. Здесь сочетаются два механизма: **подход с календарём** — чтобы датировать занятия, которые сменяют друг друга, и **совместное ведение** — только для занятий, которые ведут два преподавателя. 2. **Для варианта с точными датами**: расписание в **режиме «Календарь»**. Все внешние преподаватели отмечены как **Внешний** в своих карточках преподавателей. См. [Внешние преподаватели](#page-higher-ed.external-faculty). 3. **Создайте единую дисциплину** `Модуль «Стратегия предприятия»`. Это учебная оболочка модуля. **Тип занятия** выбирается по содержанию: чаще всего это сочетание лекций и разбора кейсов. 4. **Введите 12 занятий** с точными датами, каждое со **своим преподавателем**. Название занятия и его тему (`Занятие 3/12 — Финансовая стратегия`) укажите в комментарии, чтобы ученикам было проще ориентироваться в ходе модуля. 5. **Для занятий, которые ведут два преподавателя** (теоретик и практик на одном кейсе), используйте **совместное ведение**: на нужном занятии укажите **нескольких преподавателей** в **Назначить преподавателей**. В индивидуальных расписаниях этих преподавателей занятие отображается как проводимое совместно. 6. **Учебная нагрузка**: занятие учитывается **целиком** в расписании каждого из ведущих. Пропорциональное деление между ведущими выполняется при экспорте (для расчёта оплаты, выставления счетов), а не в Omniscol. 7. **Проверка**: откройте портал учеников и проверьте, как отображается модуль: 12 занятий видны в расписании вместе с их преподавателями. Комментарии о ходе модуля (`Занятие N/12`) показываются при наведении указателя. #### См. также - [Совместное преподавание](#page-glossary.co-teaching) - [Сложные занятия](#page-core-concepts.complex-lessons) - [Внешние преподаватели](#page-higher-ed.external-faculty) - [Режим календаря](#page-timetables.calendar-mode) ### 13.6 Режим календаря для неповторяющихся форм обучения *Source: `help/ru/higher-ed/calendar-mode.md` · id: higher-ed.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ В высшем образовании занятия не всегда повторяются **каждую неделю**: интенсивные модули на 2 недели, трёхдневные семинары, защиты, растянутые на месяц, разовые мастер-классы внешних преподавателей. Для таких случаев **режим календаря** Omniscol подходит лучше, чем недельная сетка с множеством исключений. #### Когда лучше выбрать режим календаря Признаки: - у занятий **точные даты**, а не повторяющийся каждую неделю временной слот, - **преподаватели меняются** от занятия к занятию, - **места проведения меняются** (выезд на объект, посещение предприятия, видеоконференция), - **ритм** не недельный (то 3 занятия за 2 дня, то ничего в течение 3 недель). Если вы описали бы модуль с помощью календаря, а не недельной сетки, режим календаря создан для вас. #### Типичные случаи использования в высшем образовании - **Интенсивные модули** — семинар на 3 полных дня или интенсив на 2 недели. - **Дополнительное образование** — разовые учебные циклы, которые не повторяются в рамках годовой сетки. - **Научные семинары** — разовые занятия с разными гостями каждую неделю. - **Защиты и комиссии** — растянуты на несколько недель, точные даты, точные кабинеты. - **Полевые работы и проекты** — короткие этапы, меняющиеся места проведения. #### Моделирование Вы задаёте **упорядоченный список занятий с датами**, не используя недельную сетку: - точные **дата и время**, - **продолжительность** (произвольная), - **место проведения**, - **преподаватель** (может меняться от занятия к занятию), - **участники**: класс(ы), группа(ы), группы групп. Режим календаря использует ту же структуру классов и групп, что и недельный режим, — вы не теряете ни одного организационного инструмента. Также в режиме календаря работает [автоматическое формирование](#page-timetables.generation): алгоритм размещает занятия в целевом интервале дат и может уплотнить учебные дни в начале или в конце периода. См. [Режим календаря](#page-timetables.calendar-mode). #### Сочетание с недельным расписанием Вы можете вести **недельное расписание** для регулярных общих дисциплин по утрам и **расписание в режиме календаря** для разовых занятий во второй половине дня, опубликовав оба параллельно для одних и тех же классов; либо вести первые курсы по недельному расписанию, а классы специализации на последнем курсе — по календарю (см. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables)). #### Доступность преподавателей в режиме календаря Ввод [доступности в режиме календаря](#page-timetables.calendar-wishes) здесь особенно полезен: внешние преподаватели указывают свою доступность на конкретные даты, а не по недельному ритму. #### См. также - [Режим календаря — обзор продукта](#page-timetables.calendar-mode) - [Выбор типа расписания](#page-overview.timetable-modes) - [Внешние преподаватели](#page-higher-ed.external-faculty) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Доступность в режиме календаря](#page-timetables.calendar-wishes) ### 13.7 Ссылки на видеоконференцию для курсов *Source: `help/ru/higher-ed/videoconference-links.md` · id: higher-ed.videoconference-links · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ В высшем образовании у многих занятий формат — **дистанционный** или **гибридный** (часть учеников присутствует очно, другие подключаются онлайн). У каждого такого занятия есть **ссылка на видеоконференцию** (Zoom, Teams, Google Meet, Jitsi), которая должна отображаться в расписании, чтобы все знали, куда нажимать. #### Как прикрепить ссылку У занятия курса или события поле Ссылка на видеоконференцию принимает URL. Для занятия оно заполняется в окне выбора кабинета. После заполнения расписание показывает ссылку со значком [video]; ссылка открывается в новой вкладке. Ссылка отображается: - в портале учеников и преподавателей, на занятии, - в экспорте iCal, в свойствах конференции или URL, если ссылка указана, - в JSON API. #### Дистанционное или гибридное занятие Поле **[Формат](#page-glossary.lesson-modality)** занятия задаёт его формат: **Очный**, **Дистанционный**, **Гибридный** или **Самостоятельная работа**. Оно заполняется в том же окне, что и кабинет и ссылка на видеоконференцию. Для **полностью дистанционного** занятия выберите формат **Дистанционный**, укажите ссылку на видеоконференцию и не назначайте физический кабинет, если занятию он не нужен. Для **гибридного** занятия (очно и одновременно по видеосвязи) выберите **Гибридный**, оставьте физический кабинет и укажите также ссылку. #### Постоянные ссылки и ссылки для отдельных занятий В зависимости от вашего сервиса видеоконференций: - **Постоянная ссылка** — персональная комната Zoom, повторяющаяся встреча Teams. Одна и та же ссылка служит для всех занятий курса. Укажите её один раз для курса (все его занятия унаследуют её) или прямо для класса, чтобы задать ссылку по умолчанию для всех его занятий. - **Ссылка для отдельного занятия** — у каждого занятия свой URL, который указывается для занятия (в том же окне, что и кабинет). Применяйте этот вариант только для занятий, у которых ссылка каждый раз меняется (например, встреча Zoom, которая каждый раз создаётся заново). #### Безопасность Несколько рекомендаций: - **Никаких публичных ссылок для конфиденциальных занятий** — для закрытого занятия или экзамена под наблюдением настройте комнату видеоконференции с доступом после авторизации (а не по прямой ссылке). - **Ссылка в iCal** — iCal доступен любому, у кого есть ссылка общего доступа. Ссылка на видеоконференцию, указанная для занятия, распространяется через iCal, поэтому убедитесь, что это именно то, что вам нужно. - **Обновление ссылки** — если постоянная ссылка скомпрометирована, замените её в Zoom или Teams и обновите в Omniscol (для курса или класса, а не для каждого занятия). #### См. также - [Формат](#page-glossary.lesson-modality) - [Типы занятий](#page-admin.lesson-types) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) ### 13.8 Несколько площадок в высшем образовании *Source: `help/ru/higher-ed/multi-site.md` · id: higher-ed.multi-site · Audience: admin · Updated: 2026-06-13* Работа с несколькими площадками доступна **начиная с тарифа Standard** (отключена только в Lite); общие принципы описаны на странице [Площадки, кабинеты, ресурсы, несколько кабинетов](#page-core-concepts.sites-rooms-resources). Здесь собраны **особенности, часто встречающиеся в высшем образовании**, где несколько площадок почти норма: инженерные школы с несколькими площадками, бизнес-школы в регионах, университеты с несколькими площадками. Обратите внимание: в Omniscol [подразделение](#page-glossary.campus) — это организационное понятие, отличное от [площадки](#page-glossary.site). Они часто совпадают (одно подразделение на площадку, со своими классами). Когда нужно вести временную сетку, кабинеты или время в пути, описывайте место как площадку. > Эти случаи подходят и для школ, если учебное заведение расположено > в разных местах (например, начальная и старшая школа в разных > зданиях, школа с отдельным корпусом для младших классов). #### Типичный случай: головная площадка и филиалы в регионах Частый случай для инженерных школ и бизнес-школ: - 1 **головная площадка** (как правило, главный офис), - от 1 до N **филиалов в регионах**, где выездные классы проходят часть программы, - **преподаватели**, которые ездят между площадками. Как это моделируется в Omniscol: одна площадка на каждое место, время в пути указывается для каждой пары (поезд, самолёт или поездка на машине между площадками). Точный механизм (жёсткие ограничения с точностью до минуты, обеденный перерыв, сокращённый на время в пути и т. д.) описан на странице [Правила для нескольких площадок](#page-core-concepts.sites-rooms-resources). #### Отдельное расписание для каждой площадки или общее расписание Есть два подхода, в зависимости от внутренней организации: - **Общее сводное расписание** — одно расписание охватывает все площадки. Подходит, когда планированием занимается одна центральная команда, а преподаватели много перемещаются. Диагностика проверяет всё за один проход. - **Отдельное расписание для каждой площадки** — это возможно благодаря функции, описанной на странице [несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables), она входит в тариф Premium. У каждой площадки своя локальная команда и своё опубликованное расписание на те же недели; при просмотре представления объединяются динамически для учеников и преподавателей, занятых на нескольких площадках. #### Виртуальные площадки и дистанционные занятия Особый случай: занятие, **транслируемое по видеосвязи** с головной площадки для класса, который учится полностью дистанционно. Возможная модель: - создать **виртуальную площадку** «Дистанционно» без времени в пути до площадки, с которой идёт трансляция, — это снимает любые ограничения по времени на поездки, - завести на ней кабинет «Видеосвязь» для каждой удалённой когорты, - назначить этот кабинет на занятие вместе с исходным лекционным залом (несколько кабинетов). > Эта модель плохо работает, если у вас **много удалённых когорт**: > множество виртуальных кабинетов «Видеосвязь» трудно поддерживать, а > управление их вместимостью не имеет особого смысла. В таком случае > опишите эту потребность как особую и лучше указывайте ссылку на > видеоконференцию прямо в занятии (или, в Premium, по умолчанию на > уровне класса), не создавая виртуальный кабинет для каждой когорты. О механизме нескольких кабинетов см. [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams), а о связанных ссылках на Zoom / Teams / Meet — [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links). #### Фильтры и статистика по площадкам На экранах Omniscol есть фильтры **по площадке**, чтобы выделить физическое место. Они полезны, чтобы: - показать расписание конкретного места, - отдельно следить за загрузкой кабинетов филиала, - получать статистику по площадке (проведённые учебные часы, коэффициент загрузки). #### Информационные панели по площадкам Можно настроить так, чтобы [информационная панель](#page-panels.lobby-panel) фильтровалась по конкретной площадке; обычно это соответствует панели, установленной **в холле** площадки. См. [Настройка информационной панели для холла или коридора](#page-panels.lobby-panel). #### См. также - [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) - [Площадка](#page-glossary.site) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) - [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams) - [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links) - [Формат](#page-glossary.lesson-modality) - [Настройка информационной панели](#page-panels.lobby-panel) - [Обзор высшего образования](#page-higher-ed.overview) --- ## 14. Особенности начального / среднего образования (школа) ### 14.1 Особенности начальной и средней школы — обзор *Source: `help/ru/k12/overview.md` · id: k12.overview · Updated: 2026-06-13* В этом разделе собраны страницы об особенностях начальной и средней школы (начальные классы, основная и старшая школа). #### Типичные особенности - **[Недельное](#page-glossary.weekly-timetable) расписание** — нормой служит повторяющаяся типовая неделя, с [чередованием недель](#page-glossary.alternate-lessons) (A/B) или без него. - **Кабинеты, закреплённые за классами** — во многих школах у каждого класса есть свой кабинет, а переходят из кабинета в кабинет преподаватели. - **Половины классов и группы по выбору** — настраиваются через [разделения](#page-core-concepts.class-divisions) внутри одного класса. - **Группы по выбору из разных классов (например, второй иностранный язык) и профильные дисциплины в старших классах** — настраиваются через [совмещения](#page-core-concepts.alignments) между классами. - **Автоматическое формирование расписания** — алгоритм работает, и именно в нём главная ценность для школы. - **Окна и самоподготовка** — промежутки времени, когда ученики находятся в школе без назначенного занятия. См. [Самоподготовка](#page-k12.study-halls). - **Разновозрастные классы** — типичны для небольших сельских школ. См. [Разновозрастные классы](#page-k12.multi-grade-classes). #### Рекомендации по настройке - **Стандартного аккаунта** достаточно в большинстве случаев (уровень Premium для обычной школы не нужен). - **Недельный режим** по умолчанию. - **Включите ввод доступности преподавателей** в недельном режиме; вводить её или проверять может администрация. - **Один кабинет на класс**, когда это применимо, — указывается в настройках класса. - **Уделите внимание уровням** в модуле «**Администрирование**» через **Создать** (1-е, 2-е, 3-е, 4-е, …, 5-е, 6-е, …, 9-е, 10-е, 11-е классы и так далее). - **Официальные каникулы страны** — при создании учебного года Omniscol предлагает импортировать общие для страны каникулы. См. [Учебный год и каникулы](#page-admin.school-year). #### Сценарии для школы Исторически Omniscol создавался для средней школы (основной и старшей): многие соглашения по умолчанию пришли оттуда. Пошаговые сценарии для школы собраны в [сценариях использования](#page-use-cases.overview) и в [FAQ по созданию расписаний](#page-faq.timetables). #### См. также - [Что такое Omniscol](#page-overview.what-is-omniscol) - [Выбор типа расписания](#page-overview.timetable-modes) - [Половины класса и дисциплины по выбору с разделением](#page-k12.half-classes-and-options) - [Самоподготовка](#page-k12.study-halls) - [Разновозрастные классы](#page-k12.multi-grade-classes) ### 14.2 Половины класса и дисциплины по выбору с разделением *Source: `help/ru/k12/half-classes-and-options.md` · id: k12.half-classes-and-options · Audience: admin · Updated: 2026-06-13* В школе работа с классом быстро усложняется из-за **половин класса** (практические и лабораторные занятия в уменьшенном составе) и **дисциплин по выбору**, которые делят учеников одного класса на несколько подгрупп, занимающихся одновременно. В Omniscol это описывает **разделение**: подгруппы, у которых занятия должны проходить в одно и то же время, но с разным содержанием. #### Половины класса на практических занятиях Типичный случай в 7–8-х классах: 28 учеников большую часть времени занимаются всем классом, а на практических занятиях по физике делятся на 2 группы по 14 человек. Обе половины должны заниматься одновременно (иначе у класса не получилось бы поставить параллельно другие занятия), каждая со своим преподавателем и в своём кабинете. Как это описать в Omniscol: - создайте две **группы** `8А-Прак1` и `8А-Прак2` в классе `8А`, - объедините их в **разделение**: Omniscol гарантирует, что они заняты одновременно, - создайте **два курса практических занятий по физике**, каждый со своей группой, своим преподавателем и своим кабинетом, в одном и том же еженедельном временном слоте. Алгоритм соблюдает разделение: ситуация, когда у `8А-Прак1` физика, а у `8А-Прак2` в это время русский язык, исключена. #### Дисциплины по выбору с разделением Типичный случай в 8–9-х классах: в одном и том же временном слоте одни ученики изучают немецкий язык, другие — французский, а третьи ничего не выбирают (самоподготовка). Три одновременные группы в одном классе. Как это описать: - группы `8А-Немецкий`, `8А-Французский`, `8А-Самоподготовка` в классе `8А`, - объединённые в **разделение** (все три проходят одновременно), - по одному курсу на группу в одном и том же временном слоте, у каждого свой преподаватель и свой кабинет. #### Ученики, меняющие выбор в течение года Выбор может меняться в течение года (например, ученик отказывается от немецкого и переходит на самоподготовку). Распределение по группам ведётся **по неделям** в карточке ученика: прошедшие недели сохраняют прежнее распределение, а следующие недели получают новое. #### Разделение и совмещение Когда язык изучается **несколькими классами** (например, немецкий, открытый для 8А, 8Б и 8В), сочетайте: - **разделение** в каждом классе (8А-Немецкий / 8А-Другое, 8Б-Немецкий / 8Б-Другое и так далее), - **совмещение** трёх групп немецкого, чтобы у них занятие проходило в одном временном слоте, в одном кабинете и с одним преподавателем. См. [Совмещение групп](#page-core-concepts.alignments). #### Инструкция — Создать временной слот Немецкий/Французский/Самоподготовка для 8-го класса 1. **Типичный случай для 8–9-х классов**: в одном временном слоте одни изучают немецкий, другие французский, третьи ничего не выбирают (самоподготовка). Три одновременные группы. Разделение в Omniscol справляется с этим без затруднений. 2. **Создайте три группы** в классе `8А`: `8А-Немецкий`, `8А-Французский`, `8А-Самоподготовка`. Распределите каждого ученика в группу в соответствии с его выбором. 3. **Создайте разделение** `(8А-Немецкий, 8А-Французский, 8А-Самоподготовка)`: три группы **не пересекаются и проходят одновременно**. Omniscol гарантирует, что они заняты в одном и том же временном слоте. 4. **Создайте три курса** в одном и том же еженедельном временном слоте: - немецкий язык для `8А-Немецкий` с преподавателем немецкого и подходящим кабинетом; - французский язык для `8А-Французский` с преподавателем французского; - самоподготовка для `8А-Самоподготовка` с сотрудником, который присматривает за группой (или без преподавателя, как принято у вас). Алгоритм формирования расписания соблюдает разделение: у всех трёх групп временной слот будет один и тот же. 5. **Для дисциплин по выбору, открытых для нескольких классов** (немецкий в 8А, 8Б и 8В с одним преподавателем и одним кабинетом): сочетайте **разделение по классам** (`8А-Немецкий` не пересекается с другими группами 8А, то же для 8Б и 8В) **и совмещение** трёх групп немецкого. См. [Совмещение групп](#page-core-concepts.alignments). 6. **Изменения в течение года** (ученик отказывается от немецкого и переходит на самоподготовку): измените его принадлежность к группе в его карточке ученика, начиная с недели, когда произошло изменение. Прошедшие недели сохраняют прежнее распределение. #### См. также - [Разделение класса](#page-core-concepts.class-divisions) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Совмещение групп](#page-core-concepts.alignments) - [Разновозрастные классы](#page-k12.multi-grade-classes) ### 14.3 Самоподготовка под присмотром (школа) *Source: `help/ru/k12/study-halls.md` · id: k12.study-halls · Audience: admin/staff · Updated: 2026-06-13* **Самоподготовка** (или **часы самоподготовки**) — это промежутки времени, когда ученики, у которых нет занятий, находятся в учебном кабинете под присмотром. Это типичная практика французских средних школ: сюда приходят ученики, у которых в этот слот нет занятия по выбору, освобождённые от физкультуры и те, чей преподаватель отсутствует. #### Почему не обычный курс? Самоподготовка управляется не совсем так, как курс: - **нет дисциплины** в привычном смысле, - **состав меняется** от слота к слоту (приходят те, у кого нет занятий), - **присмотр, а не преподавание** — ответственный взрослый не преподаёт, а присматривает, - **высокие требования к справедливости**: нагрузку по присмотру нужно распределять между преподавателями (и заместителями по воспитательной работе, дежурными) по правилу справедливого распределения. Поэтому для такого управления в Omniscol предназначен модуль **Управление персоналом**. См. [Обзор модуля «Управление персоналом»](#page-staffing.overview). Этот модуль — **опция** учётной записи: без него моделируйте самоподготовку через **группу самоподготовки** (раздел ниже); сетка присмотра, в свою очередь, относится к модулю. #### Моделирование: модуль **Управление персоналом** Самоподготовка превращается в сетки дежурств: - **недельная сетка** слотов, в которых ученики могут оказаться на самоподготовке, - для каждого слота — один или несколько **постов** присмотра (в зависимости от ожидаемого числа учеников и нужного соотношения дежурных и учеников), - **назначение** дежурных (воспитателей или преподавателей с ролью «Сотрудник») на каждый пост. См. [Построение сетки дежурств](#page-staffing.building-grids) и [Назначение сотрудников](#page-staffing.planner). #### Связь с расписанием учеников Когда у ученика нет занятия в слоте (его класс на занятиях по выбору или половина класса на практической работе), в его индивидуальном расписании просто виден **свободный слот**: Omniscol не показывает там занятие «Самоподготовка» автоматически. Чтобы самоподготовка появилась в расписании соответствующих учеников, создайте **курс самоподготовки** для группы, у которой нет занятия в этом слоте, и укажите учебный кабинет — это схема группы `9А-Самоподготовка`, описанная на странице [Половины класса и дисциплины по выбору с разделением](#page-k12.half-classes-and-options). Обеспечение присмотра, в свою очередь, организуется в модуле **Управление персоналом** — см. [Обзор модуля «Управление персоналом»](#page-staffing.overview). #### Самоподготовка под присмотром и свободная Полезное различие: - **Самоподготовка под присмотром** — присутствует ответственный взрослый, ученики работают в тишине. Классический случай для модуля **Управление персоналом**. - **Свободная самоподготовка** (холл, зона самостоятельной работы) — специально выделенного взрослого нет, это просто место, где ученики могут подождать. Модуль **Управление персоналом** не нужен: моделируйте её как отдельный кабинет; при необходимости **специализация кабинета** может не допускать размещения в нём обычных занятий (при этом кабинет не резервируется под саму самоподготовку, у которой нет дисциплины). См. [Специализации кабинетов](#page-core-concepts.classroom-specializations). #### См. также - [Обзор модуля «Управление персоналом»](#page-staffing.overview) - [Построение сетки дежурств](#page-staffing.building-grids) - [Назначение сотрудников](#page-staffing.planner) - [Половины класса и дисциплины по выбору с разделением](#page-k12.half-classes-and-options) ### 14.4 Разновозрастные классы *Source: `help/ru/k12/multi-grade-classes.md` · id: k12.multi-grade-classes · Audience: admin · Updated: 2026-06-13* **Разновозрастные классы** объединяют учеников нескольких параллелей в одном кабинете под руководством одного преподавателя. Так устроены **небольшие сельские начальные школы**, а иногда и **специализированные школы** или **международные школы** с небольшим числом учеников. #### Почему Omniscol поддерживает такие случаи Модель Omniscol разделяет класс (административная единица) и группы (педагогические подмножества), поэтому разновозрастные классы поддерживаются изначально. Один административный класс `2–3` может включать две группы, `2-е` и `3-е`: иногда с общим курсом, иногда с раздельными курсами по параллелям. #### Моделирование Есть два подхода, в зависимости от характера преподаваемых курсов: ##### Подход A — один административный класс, две педагогические группы - Административный класс: `2–3` (для учёта учеников, списка родителей, кабинета). - Педагогические группы: `2-е` и `3-е`. - **Общие курсы** (музыка, физкультура, классный час) назначаются всему классу `2–3`. - **Раздельные курсы** (чтение и математика на уровне каждой группы) используют группы `2-е` и `3-е`, включённые в **разделение**, чтобы занятия шли одновременно (единственный преподаватель работает с одной группой, пока другая занимается самостоятельно). ##### Подход B — два административных класса, единственный преподаватель - Отдельные административные классы: `2-й` и `3-й`. - Единственный преподаватель назначается на курсы обоих классов. - Поскольку преподаватель не может вести два занятия одновременно, Omniscol сообщает о конфликте, если его занятия во 2-м и в 3-м классах поставлены в один временной слот. Подход B встречается реже: он усложняет административную работу (два отдельных класса для того, что на практике является одной группой учеников), и в нём нет такого прямого механизма, как разделение, для чередования параллелей. #### Три параллели и больше Механизм распространяется на три параллели и более (случай совсем маленьких школ: 1–5-е классы в одном кабинете). Omniscol не накладывает числовых ограничений: сложность связана с педагогической организацией, а не с моделированием. #### Присмотр и самоподготовка Когда единственный преподаватель занят с одной параллелью, другая работает самостоятельно в том же кабинете. Моделировать это как присмотр не нужно: это неотъемлемая часть работы разновозрастного класса, а не отдельная нагрузка по надзору. #### Инструкция — Смоделировать разновозрастный класс 2–3 1. **Типичный случай сельской школы**: класс `2–3` с единственным преподавателем, который работает попеременно с обеими параллелями. Подход A (рекомендуется): один административный класс, две педагогические группы. 2. **Создайте административный класс** `2–3` на экране **Классы**. Именно он хранит список учеников, родителей, кабинет, рассылки. Поле «Уровень»: укажите наиболее характерный уровень или создайте отдельный уровень `Разновозрастные классы начальной школы`. 3. **Создайте две педагогические группы** `2-е` и `3-е` внутри класса. Распределите учеников по соответствующим группам. Обе группы вместе составляют весь класс. 4. **Включите группы в разделение** `(2-е, 3-е)`: разделение **разрешает** их одновременную постановку (оно снимает конфликт, который иначе запретил бы это), а формирование расписания **стремится** ставить занятия групп `2-е` и `3-е` в одни и те же временные слоты. Кабинет и преподаватель по-прежнему назначаются для каждого курса отдельно. См. [Разделение класса](#page-core-concepts.class-divisions). 5. **Общие курсы** (музыка, физкультура, классный час): назначьте их всему классу `2–3`. Все ученики проходят их вместе. 6. **Курсы, раздельные по параллелям** (чтение, математика): создайте по курсу для каждой из групп `2-е` и `3-е` в одном и том же временном слоте (разделение это обеспечивает). Назначьте преподавателя на тот курс, который он ведёт, а другой курс оставьте без преподавателя (самостоятельная работа): один и тот же преподаватель, назначенный на два одновременных занятия, вызвал бы конфликт. Моделировать присмотр не нужно: самостоятельная работа — неотъемлемая часть разновозрастного класса. 7. **Для совсем маленьких школ** (1–5-е классы в одном кабинете) механизм распространяется без ограничений. Вы создаёте столько групп, сколько параллелей, и включаете их в разделение. Сложность связана с педагогической организацией, а не с моделированием в Omniscol. #### См. также - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) - [Разделение класса](#page-core-concepts.class-divisions) - [Половины класса и дисциплины по выбору с разделением](#page-k12.half-classes-and-options) --- ## 15. Примеры сценариев использования ### 15.1 Сценарии использования — обзор *Source: `help/ru/use-cases/overview.md` · id: use-cases.overview · Updated: 2026-10-03* Этот раздел отвечает на частый запрос крупных учебных заведений: получить **перечень рабочих сценариев** в формате *пользовательской истории* с конкретным объяснением того, «как это делается в Omniscol». Каждый доступный сценарий ведёт на справочную страницу или на существующий пошаговый тур; сценарии, которые ещё изучаются, ведутся отдельно и в этот перечень не входят. Сценарии основаны на реальных отзывах клиентов и потенциальных клиентов (бизнес-школы, инженерные школы, университеты, непрерывное образование), обезличены и сформулированы в общем виде. #### Формат Каждый сценарий написан в классическом формате Agile: > **Как** *(роль пользователя)* > **я хочу** *(действие)* > **чтобы** *(прикладная цель)* Далее следует **решение в Omniscol**: короткий текст, ссылка на подробную справочную страницу и интерактивный тур, только если уже есть надёжный пошаговый тур. #### Статусы У каждого сценария есть статус реализации: | Статус | Значение | | --- | --- | | ✓ **Доступно** | Функциональность работает в продуктивной среде, протестирована и подтверждена. | | ◐ **Частично** | Покрытие неполное; есть обходной путь, либо функциональность работает только в некоторых режимах. | | — **Вне рамок** | Обеспечивается другим инструментом экосистемы или выходит за функциональные рамки Omniscol. | #### Тематическое содержание - [Создание и формирование расписания](#page-use-cases.creation-and-generation) - [Размещение и изменение в повседневной работе](#page-use-cases.placement-and-modification) - [Несколько групп, кабинетов, преподавателей](#page-use-cases.multi-entities) - [Массовые операции](#page-use-cases.mass-operations) - [Экзамены и события](#page-use-cases.exams-and-events) - [Отсутствия и замещения (сценарии)](#page-use-cases.absences-and-substitutions) - [Отчётность и статистика](#page-use-cases.reporting-and-stats) - [Распространение и общий доступ](#page-use-cases.diffusion-and-sharing) #### Туры и видео Когда в сценарии есть подтверждённый пошаговый тур, одно и то же содержимое может выводиться в нескольких местах: - **всплывающие подсказки в панели справки** (интерактивный режим, пользователь переходит по шагам щелчком), - **субтитры, встроенные в видео** (пассивный режим, линейное воспроизведение), - связанный **файл WebVTT**, если снято видео. Субтитры синхронизированы с ходом шагов: один источник даёт все три формата. Сценарий без проверенных шагов остаётся обычной справочной страницей, без пошагового тура и без связанного видео. #### Как читать сценарий Типичная страница сценария содержит: ```markdown ## Краткое название сценария > **Как** *<роль>*, **я хочу** *<действие>*, **чтобы** > *<цель>*. **Статус**: ✓ Доступно **Решение в Omniscol.** Пояснение: короткое, практическое. [Ссылка на подробную справочную страницу](id:timetables.publication) `<при наличии — пошаговый тур для интерактивного режима и видео>` ``` Сценарии со статусом ✓ или ◐ **можно использовать уже сегодня**. #### См. также - [FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) - [Особенности высшего образования — обзор](#page-higher-ed.overview) ### 15.2 Сценарии — Создание и формирование расписания *Source: `help/ru/use-cases/creation-and-generation.md` · id: use-cases.creation-and-generation · Updated: 2026-06-13* Первоначальное создание, автоматическое формирование, песочница и дублирование расписания для проверок и сравнений. Формат чтения и легенду статусов см. на странице [Сценарии — обзор](#page-use-cases.overview). #### Запустить автоматическое формирование расписания > **Как** планировщик, **я хочу** запустить автоматическое формирование расписания, **чтобы** быстро получить первую пригодную основу. **Статус**: ✓ Доступно **Решение в Omniscol.** Автоматическое формирование доступно для всех трёх типов расписаний: недельного, циклического и календарного. Алгоритм размещает созданные и неразмещённые занятия и может переставить уже размещённые занятия, если это улучшает результат, за исключением заблокированных занятий. Если полного решения не существует, Omniscol возвращает лучшее из рассчитанных расписаний, а оставшиеся занятия остаются в списке неразмещённых стикеров. [Автоматическое формирование](#page-timetables.generation) #### Повторно запустить формирование после изменения ограничений > **Как** планировщик, **я хочу** повторно запустить формирование после изменения ограничений, **чтобы** проверить разные конфигурации, не начиная с нуля. **Статус**: ✓ Доступно **Решение в Omniscol.** Измените доступность, ограничения или блокировки, затем снова запустите формирование на том же экране. Заблокированные занятия сохраняют своё место; остальные могут быть переставлены, если это улучшает результат. Чтобы сравнить несколько конфигураций, работайте с копиями расписания («Работать с копией расписания (песочница)»). [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) #### Работать с копией расписания (песочница) > **Как** планировщик, **я хочу** работать с копией расписания (песочница), **чтобы** экспериментировать, не затрагивая официальную версию. **Статус**: ✓ Доступно **Решение в Omniscol.** Продублируйте расписание в модуле «**Управление расписанием**» и работайте с копией: пока она не опубликована, официальной остаётся та версия, которую видят пользователи. Опубликуйте копию, когда она будет готова. [Визуализировать, копировать, преобразовать](#page-timetables.visualize-duplicate), [Публикация расписания](#page-timetables.publication) #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Автоматическое формирование](#page-timetables.generation) - [Формирование](#page-glossary.solver) ### 15.3 Сценарии — Размещение и изменение в повседневной работе *Source: `help/ru/use-cases/placement-and-modification.md` · id: use-cases.placement-and-modification · Updated: 2026-06-13* Поиск свободных кабинетов и преподавателей, размещение и изменение занятий, выявление конфликтов и пропусков. О формате изложения и обозначениях статусов см. [Сценарии — обзор](#page-use-cases.overview). #### Найти свободный кабинет, подходящий для курса (вместимость, тип, площадка), и назначить его > **Как** планировщик, **я хочу** найти свободный кабинет, подходящий для курса (вместимость, тип, площадка), и назначить его занятию, **чтобы** быстро разместить занятие без конфликтов. **Статус**: ✓ Доступно **Решение в Omniscol.** Выбор кабинета поддерживает текстовый поиск и фильтры по вместимости (`>20`, `<=50`, `=30`, `20-30`). Несколько критериев, разделённых пробелом, интерпретируются как логическое И; несколько значений, разделённых запятой, как логическое ИЛИ. Тот же поиск принимает «ok» (в противоположность «ko»), чтобы оставить только кабинеты, свободные в этом временном слоте. #### Найти свободного преподавателя, ведущего дисциплину > **Как** планировщик, **я хочу** найти свободного преподавателя, ведущего дисциплину, **чтобы** без труда заменить или дополнить назначение. **Статус**: ✓ Доступно **Решение в Omniscol.** При выборе преподавателя учитываются преподаваемая дисциплина и его доступность. В зависимости от экрана замена преподавателя выполняется прямо из занятия или из списка курсов. #### Определить свободные временные слоты для класса или группы > **Как** планировщик, **я хочу** определить свободные временные слоты для класса или группы, **чтобы** эффективно размещать занятие вручную. **Статус**: ◐ Частично **Решение в Omniscol.** Наложите расписания класса или группы друг на друга в режимах просмотра нескольких сущностей, чтобы найти свободные слоты (см. «Просматривать расписания»). #### Быстро изменить занятие (кабинет, преподаватель, время) > **Как** планировщик, **я хочу** быстро изменить занятие (кабинет, преподаватель, время), **чтобы** корректировать расписание в реальном времени. **Статус**: ✓ Доступно **Решение в Omniscol.** Откройте занятие, чтобы изменить кабинет, преподавателя или время в его окне редактирования, либо перенесите его кнопкой-булавкой [thumbtack] (щелчок по цветному слоту) на экране планирования. **Множественный выбор** (Shift+щелчок по нескольким занятиям) открывает то же окно в групповом режиме: переместить, открепить или удалить все выбранные занятия одной операцией. [Разовые изменения](#page-schedules.ad-hoc-changes) #### Выявить занятия без преподавателя или без кабинета > **Как** планировщик, **я хочу** выявить занятия без преподавателя или без кабинета, **чтобы** сразу исправить критичные пропуски. **Статус**: ✓ Доступно **Решение в Omniscol.** Диагностика расписания явно перечисляет размещённые занятия без кабинета и занятия без преподавателя; экраны планирования также их отмечают. [Конфликты и диагностика](#page-timetables.conflicts) #### Получать предупреждения о несоответствиях (нет кабинета, нет преподавателя, конфликт) > **Как** планировщик, **я хочу** получать предупреждения о несоответствиях (нет кабинета, нет преподавателя, конфликт), **чтобы** обеспечить качество расписания. **Статус**: ◐ Частично **Решение в Omniscol.** Несоответствия отмечаются в диагностике и на экранах планирования: занятие без кабинета, без преподавателя, конфликты кабинета, класса или преподавателя. Панель диагностики **гибко фильтруется** — по степени серьёзности, по типу предупреждения, по сущности (класс, преподаватель, кабинет), по уровню класса, площадке или подразделению, а в режиме календаря ещё и по интервалу дат (функция Premium; см. [Конфликты и диагностика](#page-timetables.conflicts)). **Обходной путь (без Premium).** Воспользуйтесь хронологическим списком предупреждений и доступными фильтрами просмотра, чтобы выделить соответствующие занятия. Устраните блокирующие конфликты до распространения расписания или до обратной передачи данных во внешнюю систему. #### Быстро увидеть оставшиеся конфликты > **Как** планировщик, **я хочу** быстро увидеть оставшиеся конфликты, **чтобы** довести расписание до надёжного состояния перед распространением. **Статус**: ✓ Доступно **Решение в Omniscol.** Диагностика расписания и экраны планирования показывают оставшиеся конфликты. Блокирующие конфликты устраняйте в первую очередь, до публикации. [Конфликты и диагностика](#page-timetables.conflicts) #### Собрать доступность и пожелания преподавателей > **Как** планировщик, **я хочу** собрать доступность и пожелания преподавателей. **Статус**: ✓ Доступно **Решение в Omniscol.** Преподаватели указывают свою доступность и недоступность в своём личном разделе; планировщик может также внести их за преподавателей. Эта доступность видна при размещении вручную и учитывается при автоматическом формировании расписания. [Доступность преподавателей](#page-core-concepts.wishes-and-availability) #### Управлять слотами / временными сетками / занятиями вне сетки > **Как** планировщик, **я хочу** управлять слотами / временными сетками / занятиями вне сетки. **Статус**: ✓ Доступно **Решение в Omniscol.** Временные сетки определяют для каждой площадки слоты, открытые для размещения, включая перерывы. > _Premium_ Занятия, которые не совпадают ни с одним слотом сетки, описаны на странице [занятия вне сетки](#page-timetables.off-grid-lessons). [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) #### Управлять перерывами / занятиями вне сетки > **Как** планировщик, **я хочу** управлять перерывами / занятиями вне сетки. **Статус**: ✓ Доступно **Решение в Omniscol.** См. «Управлять слотами / временными сетками / занятиями вне сетки»: перерывы задаются во временной сетке каждой площадки, а режим вне сетки охватывает занятия вне слотов. #### Просматривать расписания (множественный выбор, настраиваемые представления, наложение) > **Как** планировщик, **я хочу** просматривать расписания (множественный выбор, настраиваемые представления, наложение, видимость, экспорт). **Статус**: ✓ Доступно **Решение в Omniscol.** Режимы просмотра охватывают вид по неделе, дню, месяцу, список, вид «напротив» и несколько режимов сравнения. Просмотр нескольких сущностей позволяет выводить несколько расписаний рядом, по столбцам или в виде сетки, в зависимости от контекста. В текущем интерфейсе недоступны: расширенная всплывающая подсказка с кодом дисциплины, автоматическое скрытие недель без занятий, единое объединённое представление без отличительного столбца. #### Показывать только свободные кабинеты > **Как** планировщик, **я хочу** показывать только свободные кабинеты, **чтобы** экономить время при назначении кабинетов. **Статус**: ✓ Доступно **Решение в Omniscol.** Используйте фильтр доступности в выборе кабинета, чтобы скрыть кабинеты, уже занятые в этом временном слоте (см. также «Найти свободный кабинет, подходящий для курса»). #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Просмотр и фильтры](#page-schedules.consult-and-filter) - [Разовые изменения](#page-schedules.ad-hoc-changes) - [Конфликты и диагностика](#page-timetables.conflicts) ### 15.4 Сценарии — несколько групп, несколько кабинетов, несколько преподавателей *Source: `help/ru/use-cases/multi-entities.md` · id: use-cases.multi-entities · Updated: 2026-06-13* Общие занятия для нескольких групп, нескольких кабинетов, нескольких преподавателей: совместное преподавание, совмещения, группы групп. Формат чтения и легенду статусов см. на странице [Сценарии — обзор](#page-use-cases.overview). #### Проводить общие занятия (одно занятие для 2 групп в одну и ту же дату и время в одном кабинете) > **Как** планировщик, **я хочу** проводить общие занятия (одно занятие для 2 групп в одну и ту же дату и время в одном кабинете). **Статус**: ✓ Доступно **Решение в Omniscol.** Смоделируйте такое занятие с помощью [совмещения](#page-core-concepts.alignments) или [группы групп](#page-core-concepts.groups-of-groups): общее занятие собирает группы в одном временном слоте, в одном кабинете и с одним преподавателем. #### Разместить занятие с несколькими преподавателями (совместное преподавание) > **Как** планировщик, **я хочу** разместить занятие с несколькими преподавателями (совместное преподавание). **Статус**: ✓ Доступно **Решение в Omniscol.** У занятия может быть несколько преподавателей: добавьте других преподавателей в поле выбора преподавателя **Назначить преподавателей** в карточке занятия. [Совместное преподавание](#page-higher-ed.co-teaching) #### Разместить занятие с несколькими кабинетами > **Как** планировщик, **я хочу** разместить занятие с несколькими кабинетами. **Статус**: ✓ Доступно **Решение в Omniscol.** Назначьте на одно занятие несколько кабинетов в поле выбора кабинета **Назначить кабинет**. [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams) #### Разместить занятие с несколькими группами > **Как** планировщик, **я хочу** разместить занятие с несколькими группами. **Статус**: ✓ Доступно **Решение в Omniscol.** Вы можете **напрямую привязать несколько групп** — одного класса или разных классов — к одному занятию. Для долговременного или регулярного сведения групп лучше оформите их как [группу групп](#page-core-concepts.groups-of-groups) или как [совмещение](#page-core-concepts.alignments), в зависимости от ситуации. #### Возможность массово размещать занятия по группам > **Как** планировщик, **я хочу** иметь возможность массово размещать занятия по группам, **чтобы** назначать группы массово, одним щелчком. **Статус**: ✓ Доступно **Решение в Omniscol.** Массовое размещение обеспечивают два инструмента. - **Множественное выделение, затем булавка.** Выделите сразу несколько занятий — с помощью **Shift+щелчка** или меню **Расширить выделение** (по дню, неделе, месяцу, дню недели, дисциплине или разделению групп). Тогда **булавка** покажет временные слоты, подходящие для всего выделения: одним щелчком вы разместите все занятия вместе в одном слоте. - **Автоматическое формирование расписания.** Чтобы разместить сразу все занятия в сетке, поручите их распределение алгоритму с учётом ограничений (см. [Автоматическое формирование](#page-timetables.generation)). Чтобы свести несколько групп на одном занятии, см. раздел «Разместить занятие с несколькими группами» выше; а чтобы следить за объёмами размещённых часов, используйте [распределение часов](#page-timetables.hour-distribution). #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Несколько кабинетов](#page-glossary.multi-room) - [Совместное преподавание](#page-glossary.co-teaching) - [Разделение класса](#page-core-concepts.class-divisions) - [Совмещение групп](#page-core-concepts.alignments) - [Группы групп](#page-core-concepts.groups-of-groups) ### 15.5 Сценарии — Массовые операции *Source: `help/ru/use-cases/mass-operations.md` · id: use-cases.mass-operations · Updated: 2026-06-28* Массовые назначения, расширенные фильтры и автоматизация для быстрой работы с кабинетами, вместимостью и программами обучения. О формате изложения и обозначениях статусов см. [Сценарии — обзор](#page-use-cases.overview). #### Массово назначить только кабинеты, которые ещё не назначены > **Как** планировщик, **я хочу** массово назначить только кабинеты, которые ещё не назначены. **Статус**: ✓ Доступно **Решение в Omniscol.** На экране **Управление расписанием** в режиме **«Вид таблицы»** отсортируйте или отфильтруйте столбцы, чтобы отобрать занятия **в ожидании кабинета**, отметьте их и запустите автоматическое назначение кабинетов для выбранных занятий. Автоматическое формирование расписания также предлагает режим, ограниченный кабинетами: при запуске с параметром «Игнорировать уже назначенные кабинеты» оно дополняет только занятия без кабинета, не пересчитывая размещение. [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) #### Массово назначить для мероприятий все кабинеты вместимостью более 115 мест > **Как** планировщик, **я хочу** массово назначить для мероприятий все кабинеты вместимостью более 115 мест, **чтобы** оптимизировать управление кабинетами. **Статус**: ✓ Доступно **Решение в Omniscol.** Найдите большие кабинеты в статистике кабинетов, где поиск принимает операторы сравнения вместимости (например, `>115`). Затем выберите соответствующие занятия на экране **Управление расписанием** в режиме **«Вид таблицы»** и запустите автоматическое назначение кабинетов: при выборе кабинетов-кандидатов отметьте только нужные — вместимость каждого указана рядом и помогает сделать выбор. #### Ограничить назначение кабинетов зданием или этажом > **Как** планировщик, **я хочу** ограничить массовое назначение кабинетов определённым зданием или этажом, **чтобы** собрать занятия в одном месте и сократить перемещения. **Статус**: ✓ Доступно **Решение в Omniscol.** При автоматическом назначении кабинеты-кандидаты для выбора сгруппированы по **площадкам**, а затем по **зданиям**: отметьте площадку или здание целиком, чтобы разрешить только его кабинеты, и алгоритм выберет кабинет среди них. См. [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment). #### Переназначить кабинеты по фактической численности > **Как** планировщик, **я хочу** массово переназначить кабинеты по фактической численности (элективы, иностранные языки, группы), **чтобы** подобрать размер кабинета под число записавшихся. **Статус**: ✓ Доступно **Решение в Omniscol.** Отберите соответствующие занятия в режиме **«Вид таблицы»** (сортировка и фильтры по столбцам), затем запустите автоматическое назначение: алгоритм сопоставляет **вместимость** каждого кабинета с **численностью** учащихся на занятии и выбирает наименьший подходящий кабинет. См. [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment). #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) - [Статистика кабинетов](#page-dashboard.classrooms) - [Распределить часы и создать занятия](#page-timetables.hour-distribution) - [Разовые изменения](#page-schedules.ad-hoc-changes) ### 15.6 Сценарии — Экзамены и события *Source: `help/ru/use-cases/exams-and-events.md` · id: use-cases.exams-and-events · Updated: 2026-06-13* Создание особых занятий: экзамены (очные или дистанционные, с особыми условиями проведения), конкурсы, техническое обслуживание. О формате изложения и об условных обозначениях статусов см. страницу [Сценарии — обзор](#page-use-cases.overview). #### Создать событие (конкурс) > **Как** планировщик, **я хочу** создать событие (конкурс), **чтобы** зарезервировать кабинеты и получать статистику. **Статус**: ✓ Доступно **Решение в Omniscol.** Создайте [разовое событие](#page-schedules.events) с датой, кабинетами, участниками и ресурсами: одновременная занятость кабинета, класса или преподавателя отображается как конфликт, если событие задействует соответствующих участников. Разовые события доступны в аккаунтах с тарифом «**Премиум**». #### Создать особое занятие для экзамена (рассадка через одно место, учёт дополнительного времени для учеников с ограничениями по здоровью и т. д.) > **Как** планировщик, **я хочу** создать особое занятие для экзамена (рассадка через одно место, учёт дополнительного времени для учеников с ограничениями по здоровью и т. д.), **чтобы** зарезервировать кабинеты и получать статистику. **Статус**: ✓ Доступно **Решение в Omniscol.** Создайте отдельное занятие или событие с кабинетами и продолжительностью, подходящими для условий проведения испытания. [Экзамены в нескольких кабинетах](#page-higher-ed.multi-room-exams) #### Создать событие (техническое обслуживание) > **Как** планировщик, **я хочу** создать событие (техническое обслуживание), **чтобы** зарезервировать кабинеты и получать статистику. **Статус**: ✓ Доступно **Решение в Omniscol.** Создайте [событие](#page-schedules.events) на нужном временном слоте и добавьте к нему кабинет или ресурс, который нужно вывести из использования: на этом слоте он занят и перестаёт быть доступным. #### Создать экзамен (дистанционный или очный, 1 ч 30 мин или 3 ч и другие варианты, по выбору или обязательный курс) > **Как** планировщик, **я хочу** создать экзамен (дистанционный или очный, 1 ч 30 мин или 3 ч и другие варианты, по выбору или обязательный курс), **чтобы** запланировать испытания. **Статус**: ✓ Доступно **Решение в Omniscol.** Экзамен создаётся как занятие типа **экзамен** (см. [Типы занятий](#page-admin.lesson-types)): продолжительность любая (1 ч 30 мин, 3 ч…), очно или дистанционно в зависимости от [формата занятия](#page-glossary.lesson-modality), в одном или в [нескольких кабинетах](#page-glossary.multi-room). Экзамен по выбору задаётся через [группу](#page-glossary.group), а не через весь класс. #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Разовые события](#page-schedules.events) - [Занятия вне сетки](#page-timetables.off-grid-lessons) ### 15.7 Сценарии — отсутствия и замещения *Source: `help/ru/use-cases/absences-and-substitutions.md` · id: use-cases.absences-and-substitutions · Updated: 2026-06-13* Объявление об отсутствиях и управление замещениями преподавателей на короткий или длительный срок. Формат сценариев и обозначения статусов описаны на странице [Сценарии — обзор](#page-use-cases.overview). #### Объявить об отсутствии преподавателя > **Как** учебная часть, **я хочу** объявить об отсутствии преподавателя, **чтобы** отметить затронутые занятия и организовать необходимые замещения. **Статус**: ✓ Доступно **Решение в Omniscol.** Объявите об отсутствии в модуле **Управление отсутствиями** (преподаватель тоже может объявить о нём сам, и тогда отсутствие требует подтверждения). Omniscol определяет затронутые занятия и позволяет организовать замещения. [Объявить об отсутствии](#page-absences.declaring) #### Заменить одного преподавателя другим на заданный период > **Как** учебная часть, **я хочу** заменить одного преподавателя другим на заданный период, **чтобы** учитывать структурные изменения (болезнь, уход с работы…). **Статус**: ✓ Доступно **Решение в Omniscol.** Объявите об отсутствии на несколько дней, указав дату начала и дату окончания: Omniscol рассчитает соответствующие занятия: их можно оставить без замещения, покрыть политикой замещений или скорректировать разовыми замещениями. [Многодневные отсутствия](#page-absences.multi-day), [Политики замещений](#page-absences.substitution-policies) #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Обзор модуля «Управление отсутствиями»](#page-absences.overview) - [Объявить об отсутствии](#page-absences.declaring) - [Политики замещений](#page-absences.substitution-policies) ### 15.8 Сценарии — отчётность и статистика *Source: `help/ru/use-cases/reporting-and-stats.md` · id: use-cases.reporting-and-stats · Updated: 2026-06-13* Статистика загрузки, контроль нагрузки преподавателей, доля дистанционных и очных занятий, объёмы часов по группам и дисциплинам. О формате чтения и легенде статусов см. [Сценарии — обзор](#page-use-cases.overview). #### Увидеть напряжённость загрузки кабинетов > **Как** планировщик, **я хочу** увидеть напряжённость загрузки кабинетов, **чтобы** заранее выявить точки перегрузки. **Статус**: ✓ Доступно **Решение в Omniscol.** **Статистика кабинетов** в модуле **Сводная панель** (см. [Статистика кабинетов](#page-dashboard.classrooms)) показывает коэффициент загрузки каждого кабинета по периодам; модуль **Расписание**, в свою очередь, показывает график занятости каждого кабинета (занятые слоты). #### Проверить число часов, проведённых преподавателем > **Как** ответственный за учебный процесс, **я хочу** проверить число часов, проведённых преподавателем, **чтобы** контролировать нагрузку и соответствие нормам. **Статус**: ◐ Частично **Решение в Omniscol.** При редактировании расписания в модуле **Управление расписанием** сумма часов преподавателя отображается и обновляется в реальном времени; модуль **Сводная панель** показывает общее число часов за период. **Обходной путь.** Чтобы проверить конкретный семестр, выберите соответствующий диапазон дат в модуле **Сводная панель**: общее число часов пересчитывается за выбранный период, без ручного вычитания. #### Получить статистику активности (часы, загрузка, распределение) > **Как** ответственный за качество, **я хочу** получить статистику активности (часы, загрузка, распределение), **чтобы** выполнить требования аудита качества или сертификации. **Статус**: ◐ Частично **Решение в Omniscol.** Экспорт из модуля **Сводная панель** и из представлений планирования даёт имеющиеся объёмы. Сам по себе он не образует полного отчёта для сертификации: прикладная и документальная проработка остаётся за образовательной организацией. > _Country: FR_ Во Франции этот экспорт, в частности, используется для отчётности **Qualiopi**. #### Проанализировать загрузку кабинетов и ресурсов > **Как** руководство, **я хочу** проанализировать загрузку кабинетов и ресурсов, **чтобы** оптимизировать использование инфраструктуры. **Статус**: ✓ Доступно **Решение в Omniscol.** Модуль **Сводная панель** показывает загрузку кабинетов и ресурсов; экспорт содержит эти объёмы. #### Увидеть долю дистанционных и очных занятий по программе обучения или когорте > **Как** планировщик, **я хочу** увидеть долю дистанционных и очных занятий по программе обучения или когорте, **чтобы** соблюдать правила (не более 20 % дистанционных занятий, не менее 20 % нежелательных слотов в субботу). **Статус**: ◐ Частично > _Premium_ **Решение в Omniscol.** Модуль **Сводная панель** показывает распределения по полю **Формат** для классов и дисциплин, если у занятий указан формат (см. [Редактирование занятия](#page-timetables.lesson-edit)): **Очный**, **Дистанционный**, **Гибридный** или **Самостоятельная работа**. Omniscol не выполняет автоматической нормативной проверки пороговых значений (например, «не более 20 % дистанционных занятий»). #### Отслеживать запланированный и оставшийся к планированию объём часов > **Как** ответственный за учебный процесс, **я хочу** отслеживать запланированный объём часов и то, что осталось запланировать, **чтобы** проверять соответствие программе обучения. **Статус**: ✓ Доступно **Решение в Omniscol.** Во время редактирования [распределение часов](#page-timetables.hour-distribution) в реальном времени показывает по каждой дисциплине уже размещённый объём и **время, которое осталось разместить**. Модуль **Сводная панель** позволяет отслеживать его постфактум: по классам, дисциплинам и группам. #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [Сводная панель](#page-glossary.dashboard) - [Обзор модуля «Сводная панель»](#page-dashboard.overview) - [Распределить часы и создать занятия](#page-timetables.hour-distribution) ### 15.9 Сценарии — Распространение и общий доступ *Source: `help/ru/use-cases/diffusion-and-sharing.md` · id: use-cases.diffusion-and-sharing · Updated: 2026-06-13* Экспорт данных, подписка на iCal для преподавателей и обучающихся, публичная ссылка только для чтения, бронирование ресурсов. Формат чтения и легенду статусов см. на странице [Сценарии — обзор](#page-use-cases.overview). #### Экспортировать данные планирования > **Как** учебная часть, **я хочу** экспортировать данные планирования, **чтобы** использовать их в других инструментах (ERP, отчётность…). **Статус**: ✓ Доступно **Решение в Omniscol.** Экспорт предлагают представления планирования и Сводная панель; API Omniscol позволяет автоматизировать получение данных. [Печать и общий доступ](#page-schedules.print-and-export), [API Omniscol](#page-integrations.api-tokens) #### Просматривать своё расписание по защищённой веб-ссылке без аутентификации > **Как** преподаватель, **я хочу** просматривать своё расписание по защищённой веб-ссылке без аутентификации, **чтобы** легко получать доступ к своим занятиям. **Статус**: ✓ Доступно **Решение в Omniscol.** Ссылка общего доступа подписана и даёт доступ только для чтения, без входа в систему; у неё может быть срок действия, и она остаётся привязанной к аккаунту, который её создал (отключение этого аккаунта или смена его пароля делает ссылку недействительной). [Общий доступ к расписанию по публичной ссылке](#page-schedules.share-link) #### Подписаться на своё расписание через поток iCal > **Как** преподаватель или ученик, **я хочу** подписаться на своё расписание через поток iCal, **чтобы** расписание автоматически попадало в мой личный календарь. **Статус**: ✓ Доступно **Решение в Omniscol.** Каждый пользователь может подписаться на своё расписание по динамической ссылке iCal, совместимой с распространёнными календарями (Google Календарь, Outlook, Apple Calendar); календарь обновляется с периодичностью своей собственной синхронизации. [iCal — подписка и динамическая ссылка](#page-integrations.ical) #### Экспортировать расписание преподавателя или группы в формате Excel > **Как** учебная часть, **я хочу** экспортировать расписание преподавателя или группы в формате Excel, **чтобы** делиться данными или повторно их обрабатывать. **Статус**: ✓ Доступно **Решение в Omniscol.** См. [Печать и общий доступ](#page-schedules.print-and-export). #### Распространять расписания по контролируемой публичной ссылке > **Как** учебное заведение, **я хочу** распространять расписания по контролируемой публичной ссылке, **чтобы** просто информировать преподавателей и обучающихся. **Статус**: ✓ Доступно **Решение в Omniscol.** Публичные ссылки общего доступа подписаны, доступны только для чтения и **имеют срок действия** (по умолчанию конец учебного года или +90 дней; срок можно изменить). Для распространения от имени учебного заведения создавайте ссылки от явно обозначенного служебного аккаунта, ответственного за общий доступ, а не от личного аккаунта. [Публичные ссылки общего доступа](#page-portal.share-links) #### Забронировать ресурс (кабинет, преподавателя, занятие или другое) > **Как** пользователь, **я хочу** забронировать ресурс (кабинет, преподавателя, занятие или другое), **чтобы** бронировать кабинеты и получать статистику. **Статус**: ◐ Частично **Решение в Omniscol.** Отдельного модуля бронирования сейчас нет. **Обходной путь (аккаунты Premium).** Чтобы заблокировать ресурс на конкретный временной слот, создайте [разовое событие](#page-schedules.events); чтобы сделать его недоступным на весь **период**, используйте [временное окно](#page-glossary.date-windows). #### См. также - [Сценарии — обзор](#page-use-cases.overview) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) - [Ссылка общего доступа](#page-glossary.share-link) - [Публичные ссылки общего доступа](#page-portal.share-links) - [Печать и общий доступ](#page-schedules.print-and-export) --- ## 16. FAQ — часто задаваемые вопросы ### 16.1 FAQ — общие вопросы *Source: `help/ru/faq/general.md` · id: faq.general · Updated: 2026-09-29* Общие вопросы, которые чаще всего задают потенциальные клиенты и новые пользователи. Более специальные вопросы разобраны в тематических FAQ: [Создание расписаний](#page-faq.timetables), [Импорт данных](#page-faq.data-import), [Поведение алгоритма](#page-faq.solver-behavior), [Отображение и UX](#page-faq.display-and-ux), [Безопасность и хостинг](#page-faq.security-and-hosting), [Тарифы и лицензии](#page-faq.pricing-and-licenses). #### Как получить демонстрацию? Кнопка Запросить демонстрацию в верхней части каждой страницы сайта omniscol.com бронирует 30-минутную видеовстречу с командой Omniscol. Демонстрация строится на ситуациях, близких к вашей: тип учебного заведения, численность учеников, организация преподавания. Вы также можете написать команде через страницу контактов, чтобы подготовиться к встрече или заранее задать вопросы. Затем обычно предлагается пробный период: вы опробуете Omniscol на собственных данных при поддержке команды. См. [Тарифы и лицензии](#page-faq.pricing-and-licenses). #### Ведёт ли Omniscol оценки, дисциплину и общение с семьями? Omniscol сосредоточен на расписании. Оценки и табели, дисциплина, дневник для связи с семьёй и общение с семьями остаются в школьных информационных системах, которым Omniscol передаёт занятия. Так, во Франции École Futée и EdSquare (Educentric), партнёры Omniscol уже несколько лет, автоматически получают запланированные занятия. См. [integrations.partners](#page-integrations.partners). #### Работает ли Omniscol при ограниченном интернет-соединении? Да, если соединения хватает в момент загрузки данных и сохранения. Веб-приложение кэширует в браузере уже просмотренные данные, поэтому просмотр легче переносит короткие обрывы связи. А вот изменения, импорт, экспорт и операции администрирования требуют, чтобы сеть была доступна в момент действия. #### Какие браузеры поддерживаются? Рекомендуется Chrome. Firefox, Safari и Edge тоже работают. Internet Explorer не поддерживается. #### Нужно ли устанавливать клиентскую программу? Нет. Всё работает в браузере. Локальная установка не требуется. #### Создаются ли резервные копии моих данных? Да. Omniscol использует резервное копирование и механизмы избыточности, описанные в договоре и в документах по безопасности вашего аккаунта. См. [Безопасность и хостинг](#page-faq.security-and-hosting). Для ручного резервного копирования доступен **полный экспорт в формате JSON** в разделе Импорт/Экспорт. В случае серьёзного сбоя этот файл можно отправить команде Omniscol для повторной загрузки. #### Можно ли иметь несколько расписаний одновременно? Да. В аккаунте Standard — на непересекающихся диапазонах недель (например, семестр 1 и семестр 2). В аккаунте [Premium](#page-overview.plans-and-options) несколько расписаний можно публиковать **одновременно** на одних и тех же неделях, с динамическим объединением представлений — это входит в базовые возможности. Эту возможность можно также включить по договору на некоторых аккаунтах Standard (исключительный случай, с отдельным согласованием). См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). #### Сколько администраторов могут работать одновременно? Число одновременных сеансов зависит от вашего договора и от того, как вы пользуетесь системой. С опцией совместной работы в реальном времени администраторы видят присутствие других подключённых пользователей (красный кружок сигнализирует о риске одновременного изменения). Рабочие представления не всегда обновляются автоматически после сохранения, сделанного коллегой. См. [Совместная работа администраторов](#page-core-concepts.collaboration). #### Как поделиться расписанием с человеком, у которого нет аккаунта? Кнопка Общий доступ на экране расписания создаёт [ссылку общего доступа](#page-glossary.share-link) только для чтения, с обязательным сроком действия. Для динамической подписки на календарь (автоматическая синхронизация) в окне общего доступа есть вариант iCal. См. [iCal — подписка и динамическая ссылка](#page-integrations.ical). #### Какие языки поддерживаются? На сегодня: французский, английский, немецкий, испанский, итальянский, португальский, нидерландский, польский, русский, китайский (упрощённый), арабский, иврит, казахский, вьетнамский. Для языков с письмом справа налево (арабский, иврит) предусмотрен адаптированный интерфейс (RTL). #### Моя школа находится в стране, которой нет в списке. Могу ли я пользоваться Omniscol? Да. Параметры, заранее заполненные для каждой страны, — это удобство, а не ограничение. В худшем случае вы настраиваете вручную уровни, временную сетку, каникулы и дисциплины. #### Как забрать свои данные, если я перестану пользоваться Omniscol? Полный экспорт JSON в разделе Импорт/Экспорт. Он включает все данные школы в формате, пригодном для повторного использования. Вы остаётесь владельцем своих данных в соответствии с GDPR. #### Чем отличаются модули **Расписание** и **Управление расписанием**? - **Управление расписанием** служит для того, чтобы **создавать, настраивать, формировать и публиковать** расписания. Используется время от времени (подготовка к началу года, структурные изменения). - **Расписание** служит для того, чтобы **просматривать и точечно изменять** опубликованные расписания. Используется ежедневно. См. [Обзор модуля «Управление расписанием»](#page-timetables.overview) и [Просмотр и фильтры](#page-schedules.consult-and-filter). #### См. также - [Создание расписаний](#page-faq.timetables) - [Импорт данных](#page-faq.data-import) - [Поведение алгоритма](#page-faq.solver-behavior) - [Безопасность и хостинг](#page-faq.security-and-hosting) - [FAQ — типовые случаи высшего образования](#page-faq.higher-ed-cases) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) ### 16.2 FAQ — Создание расписаний *Source: `help/ru/faq/timetables.md` · id: faq.timetables · Updated: 2026-07-10* Часто задаваемые вопросы о создании и настройке расписаний. Подробное описание каждого этапа см. на странице [Обзор модуля «Управление расписанием»](#page-timetables.overview). #### Какой тип расписания выбрать: недельное, циклическое или календарь? Выбор зависит от ритма вашего учебного заведения: - **Недельное** — повторяющиеся занятия в рамках типовой недели. Подходит для начальной и средней школы. - **Циклическое** — повторяющиеся занятия в цикле из N дней, не совпадающем с пяти- или семидневной неделей (типично для североамериканских систем). - **Календарь** — занятия, датированные по отдельности, без повторения (типично для высшего образования и непрерывного обучения). Доступно в аккаунтах Premium. Автоматическое формирование расписания работает для всех типов расписаний. См. [Выбор типа расписания](#page-overview.timetable-modes). #### Можно ли создавать несколько расписаний параллельно? Да. В одном аккаунте могут сосуществовать несколько расписаний (черновики, версии, семестры, периоды). В аккаунте Standard публикации должны относиться к непересекающимся диапазонам недель. В аккаунте Premium несколько расписаний можно опубликовать **одновременно** на одних и тех же неделях с динамическим слиянием; равноценная активация по договору остаётся возможной и для некоторых аккаунтов Standard. См. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). #### В каком порядке рекомендуется настраивать расписание? Порядок **этапов**: Общая информация, Площадки, Преподаватели, Классы (с их группами), Совмещение групп, Распределение часов, Формирование, затем Публикация. Первые семь — это вкладки редактора расписания (слева направо); **публикация** выполняется с экрана управления расписанием. Подробное описание каждого этапа приведено в разделе «Составление расписания» оглавления. #### Почему кнопка формирования остаётся неактивной? Потому что диагностика на вкладке проверки сообщает о блокирующем предупреждении (красном). Чаще всего в начале построения причина в том, что **нет ни одного занятия для размещения**. Формирование расставляет уже существующие занятия и не создаёт новых: сначала их нужно создать из объёмов часов на этапе [Распределить часы и создать занятия](#page-timetables.hour-distribution). При обычном блокирующем предупреждении расчёт всё равно можно запустить через меню опций кнопки, на ваш страх и риск. При непреодолимом предупреждении — нет ни одного занятия, нет ни одного пригодного класса, у площадки нет временной сетки — меню тоже отключено. Подробно эти случаи разобраны на странице [Автоматическое формирование](#page-timetables.generation). #### Есть ли у автоматического формирования ограничения? Алгоритм мощный, но строго соблюдает заданные ему ограничения. Если конфигурация принципиально невыполнима (противоречивая доступность, недостаточная вместимость, несогласованные совмещения), Omniscol возвращает лучшее из рассчитанных расписаний, оставляет недостающие занятия в списке неразмещённых стикеров и выдаёт понятную диагностику. См. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Сколько времени занимает формирование? Длительность зависит от размера расписания, количества занятий и ограничений. Каждое формирование запускает отдельную параллельную вычислительную среду; её инициализация часто занимает около десяти секунд до начала самого расчёта. Окно можно закрыть во время расчёта; по завершении появится уведомление. Порядки величин см. на странице [Поведение алгоритма](#page-faq.solver-behavior). #### Публикуется ли сформированное расписание автоматически? Нет. Публикация — отдельный этап, который нужно выполнить явно после проверки. Пока расписание не опубликовано, оно остаётся черновиком, песочницей: его занятия не попадают ни в один другой модуль. См. [Публикация расписания](#page-timetables.publication). #### Можно ли вернуться к прежнему состоянию расписания? Да, двумя способами: - **Дублирование** расписания — каждое структурное изменение можно выполнять на копии, а оригинал оставлять как эталон (доступно на всех тарифах). - **Точки резервного копирования** — сохранённые копии всего аккаунта, из которых его можно восстановить; создаются автоматически или вручную (опция «Точки резервного копирования», в зависимости от договора). См. [Точки резервного копирования](#page-admin.snapshots). #### Как работать с чередованием недель (A/B)? Функция включается на странице [Общие параметры](#page-admin.parameters), в разделе **Чередование недель** (буквы A/B/C или цифры 1/2/3, произвольный порядок чередования на любое нужное число недель). Для курса кнопка Добавить неделю добавляет диапазон для ещё одной чередующейся недели. См. [Чередующиеся занятия](#page-glossary.alternate-lessons). #### Можно ли сдвигать время обеда для разных параллелей (две смены в столовой)? Да, и это правильный способ **распределить нагрузку на столовую**. Задайте широкий общий обеденный перерыв — например, **с 12 до 14 часов** — с сохраняемой продолжительностью обеда в **один час**, а затем **закрепите** смену каждой параллели: отметьте недоступное время (**Недоступно**) на половине перерыва, отведённой под обед, во временных ограничениях класса (Временные ограничения класса). Пример: 5-е, 6-е и 7-е классы недоступны с 12 до 13 часов (первая смена); 8-е и 9-е классы недоступны с 13 до 14 часов (вторая смена). Столовая принимает два раздельных потока. См. [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) и [Временные ограничения (общая система)](#page-core-concepts.time-constraints). #### См. также - [Обзор модуля «Управление расписанием»](#page-timetables.overview) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) - [Выбор типа расписания](#page-overview.timetable-modes) - [Поведение алгоритма](#page-faq.solver-behavior) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) ### 16.3 FAQ — Импорт данных *Source: `help/ru/faq/data-import.md` · id: faq.data-import · Updated: 2026-05-10* #### Какие форматы импорта поддерживаются? CSV и TSV — путём копирования и вставки из Excel, Google Sheets, Numbers или Calc. Полный **экспорт JSON** аккаунта доступен администратору (резервная копия); а вот **повторный импорт** полного аккаунта в формате JSON — это операция восстановления, которую выполняет Omniscol, а не обычное действие на экране администрирования. Для специализированных миграций см. [Обзор](#page-migration.overview). #### Идентификатор создаётся системой? Да. При импорте учеников, преподавателей или классов Omniscol создаёт стабильный внутренний идентификатор: для людей он строится из имени и фамилии, а для группы включает родительский класс (`<класс>:<группа>`). Шаблон **идентификатора для входа** (имя-фамилия, фамилия-имя или идентификационный номер) задаётся на странице [Общие параметры](#page-admin.parameters) в поле **Имя пользователя**. Можно также указать собственный код в поле **внешний идентификатор / учётный номер** — это удобно для сопоставления с вашей школьной информационной системой и для различения однофамильцев. #### Нужно ли всегда указывать класс для групп? Да. Группа — это всегда часть класса. Идентификатор группы включает родительский класс. В файлах импорта курсов столбцы «класс» и «группа» работают вместе. См. [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups). #### Важен ли порядок столбцов в таблице? Экран импорта открывает **макет столбцов**, типизированных по позиции (дисциплина, преподаватель, кабинет и так далее занимают каждый свой столбец). Вы **переставляете столбцы макета** так, чтобы они совпадали с порядком в вашей исходной таблице: вставка из буфера обмена проходит чисто, и переписывать файл не нужно. См. [Массовый импорт курсов из таблицы](#page-timetables.mass-import). #### Какие разделители допускаются в списках (несколько преподавателей, несколько групп и т. д.)? Внутри одного поля распознаются типичные разделители: запятая, точка с запятой, косая черта, вертикальная черта, плюс, амперсанд или перевод строки. Механизм импорта сам определяет, какое соглашение используется в поле. #### Что будет, если в таблице есть неизвестные дисциплины? На шаге 4 импорта Omniscol предлагает **создать неизвестные объекты**. Для собственных дисциплин и некоторых преподавателей можно запросить создание через модуль **Администрирование**, чтобы они стали доступны во всей школе. Названия исправляются на шаге 3, при разрешении неоднозначностей. #### Сложные занятия импортируются правильно? Частично. Механизм импорта хорошо распознаёт: - простые занятия (дисциплина + класс + преподаватель + кабинет + слот), - занятия с простым чередованием (`A/B`), - занятия с несколькими преподавателями (совместное преподавание), - занятия с несколькими кабинетами. Хуже он распознаёт перечисленное ниже, поэтому это нужно дорабатывать вручную: - связанные занятия (чередование половин группы), - сложные сдвоенные занятия, - группы групп, - занятия вне сетки с точным временем. #### Что делать, если импорт не проходит на большом файле? - Проверьте, что в файле нет пустых строк и объединённых ячеек. - Разделите файл на части (по классам, по подразделениям, по семестрам). - Отдавайте предпочтение **полному экспорту** исходного аккаунта: он часто чище, чем частичный экспорт, собранный вручную. #### См. также - [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) - [Массовый импорт курсов из таблицы](#page-timetables.mass-import) - [Обзор](#page-migration.overview) - [Случаи высшего образования](#page-faq.higher-ed-cases) ### 16.4 FAQ — Поведение алгоритма формирования расписания *Source: `help/ru/faq/solver-behavior.md` · id: faq.solver-behavior · Updated: 2026-05-15* Часто задаваемые вопросы о работе механизма автоматического формирования расписания. Описание самого алгоритма см. на странице [Формирование](#page-glossary.solver); подробности работы с ним см. на странице [Автоматическое формирование](#page-timetables.generation). #### С какими типами расписаний работает алгоритм формирования? Для [недельных](#page-glossary.weekly-timetable), [цикличных](#page-glossary.cyclic-timetable) и [календарных](#page-glossary.calendar-mode) расписаний. В календарном режиме занятия размещаются на реальные даты, а в параметры формирования входят границы дат. #### Как работает алгоритм? Omniscol запускает в фоновом режиме процесс решения задачи. Алгоритм оценивает занятия, которые нужно разместить, заданные ограничения и предпочтения формирования. Результат зависит прежде всего от качества данных: объёма часов, преподавателей, кабинетов, групп, доступности, несовместимостей и ограничений между площадками. Для каждого формирования запускается отдельная параллельная среда вычислений. Очередью управлять на стороне школы не нужно; подготовка часто занимает около десяти секунд, и только потом начинается сам расчёт. В модуле **Управление расписанием** кнопка **Сформировать расписание** запускает расчёт, показывает его состояние и позволяет изучить результат. Основа алгоритма — ИИ-оптимизация: **нейросимволическая метаэвристика Монте-Карло**, то есть стохастический поиск, символические ограничения и постепенная оптимизация оценок. Это не гарантия успеха на заведомо невыполнимом наборе ограничений; в таком случае Omniscol возвращает диагностику. #### Сколько времени занимает формирование? Время зависит от размера расписания, числа занятий, числа ограничений и выбранных параметров. Для ориентира: в основной школе примерно на 550 учеников, 45 преподавателей и 16 классов, с широкой доступностью, полное расписание с очень малым числом окон или вовсе без них можно получить меньше чем за минуту, если данные согласованы. Более плотный случай, с множеством ограничений или с затратной оптимизацией, может занять заметно больше времени. #### Соблюдает ли алгоритм все ограничения? **Жёсткие ограничения** соблюдаются строго: - преподаватель находится только в одном месте в каждый момент времени; - у класса нет двойного размещения, кроме групп в разделении; - доступность и слоты, отмеченные как **«Недоступно»**; - обычный кабинет занят только одним занятием одновременно; - большой кабинет используется только в пределах его вместимости и числа классов; - специализированные кабинеты, вместимость, материальные ресурсы и поездки между площадками должны быть совместимы; - закреплённые занятия остаются на своих местах. **Мягкие ограничения** (доступность со статусом «Нежелательно», предпочтения, педагогические весовые коэффициенты, баланс учебных дней, число дней присутствия, окна в расписании) оптимизируются по возможности. Они создают штрафы: алгоритм ищет решение с наименьшей суммой штрафов, но может оставить часть из них, если это лучший компромисс, совместимый с жёсткими ограничениями. #### Что делать, если формирование не удалось? Когда полное решение не найдено, Omniscol возвращает лучшее из рассчитанных расписаний, а неразмещённые занятия оставляет на панели стикеров. Неполное расписание можно просмотреть, чтобы понять, что уже размещено, затем исправить ограничения или вручную переставить некоторые занятия. Самые частые причины описаны на странице [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Можно ли вручную закрепить положение занятия? Да, с помощью **закрепления** занятия после ручного размещения. При новом формировании алгоритм не сдвигает закреплённое занятие, а остальные подстраивает вокруг него. Это удобно для неподвижных занятий (занятия внешних специалистов в фиксированную дату, экзамены с назначенной датой). #### Почему алгоритм не предлагает несколько решений? Алгоритм оптимизирует расписание по заданным ограничениям и предпочтениям и возвращает **лучшее найденное решение**. Чтобы получить несколько решений для сравнения, скопируйте расписание перед каждым формированием и слегка измените ограничения или весовые коэффициенты между проходами. #### Учитывает ли алгоритм объявленные отсутствия? Алгоритм работает со **структурным** расписанием, независимо от отсутствий. Отсутствия обрабатываются **впоследствии** в модуле **Управление отсутствиями** (см. [Обзор модуля «Управление отсутствиями»](#page-absences.overview)): они влияют на отображение опубликованного расписания и на статистику в разделе «[Сводная панель](#page-glossary.dashboard)», но не на лежащую в основе структуру. #### Намеренный конфликт и блокирующий конфликт Не все конфликты равнозначны: - **Неблокирующие конфликты** можно оставить как есть, если это осознанный выбор (например, кабинет, у которого отображаемая численность превышает вместимость, потому что известно, что придут не все записанные). Предупреждение остаётся видимым, но не блокирует. - **Блокирующие конфликты** не дают автоматическому формированию завершиться успешно (нет подходящего кабинета, несогласованное совмещение и т. п.). Пока такие конфликты остаются, кнопка Сформировать расписание неактивна. См. [Конфликт](#page-glossary.conflict). #### См. также - [Формирование](#page-glossary.solver) - [Автоматическое формирование](#page-timetables.generation) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) - [Конфликт](#page-glossary.conflict) - [Диагностика](#page-glossary.diagnostic) ### 16.5 FAQ — Отображение и интерфейс *Source: `help/ru/faq/display-and-ux.md` · id: faq.display-and-ux · Updated: 2026-06-25* Часто задаваемые вопросы об отображении, видах и удобстве работы с интерфейсом Omniscol. #### Какие виды доступны для просмотра расписания? Компонент отображения сочетает: - **режимы отображения**: **сетка** (стандартный календарь), **список**, **таблица** в стиле электронной таблицы; - **варианты просмотра**: **день**, **месяц**, **планирование** (и **планирование по часам**), **визави**. Планирование позволяет свести в одном виде несколько сущностей или несколько дней; планирование по часам делает то же на почасовой шкале. Таблица — это табличное представление текущего вида. См. [Отображение расписаний](#page-schedules.schedule-display) и [Просмотр и фильтры](#page-schedules.consult-and-filter). #### Есть ли вертикальное отображение расписания? В модуле **Расписание** компонент отображения расписаний не предлагает вертикального вида. Аналогичный вертикальный вид есть в модуле **Управление персоналом** (см. [Обзор модуля «Управление персоналом»](#page-staffing.overview)) для близких по смыслу задач (сетки надзора). #### Адаптирован ли интерфейс под мобильные устройства и планшеты? Да, интерфейс подстраивается под экраны любого размера. На смартфоне горизонтальное смахивание прокручивает отображаемый период (по умолчанию неделю, а в виде «День» — день). #### Какие параметры отображения имён доступны? Имена проходят через функцию форматирования, настраиваемую в зависимости от конфигурации школы: - Порядок имени и фамилии (по правилам страны). - Выделение основного имени жирным шрифтом (зависит от страны — учёт *middle name* для американских, вьетнамских и арабских традиций). - Написание заглавными буквами имени, второго имени (если оно используется) и/или фамилии — через параметр отображения имён заглавными буквами. #### Доступен ли интерфейс людям с ограниченными возможностями? Проводится аудит доступности (RGAA, WCAG). Отчёт о соответствии можно предоставить по запросу. Выявленные улучшения вносятся на постоянной основе. По особым потребностям (программа чтения с экрана, повышенная контрастность, навигация с клавиатуры) обратитесь в службу поддержки. #### Поддерживаются ли языки с письмом справа налево? Да. Для арабского языка и иврита предусмотрен адаптированный интерфейс справа налево. Список 14 поддерживаемых языков приведён на странице [Общие вопросы](#page-faq.general). #### Как распечатать расписание? Кнопка **Печать** модуля **Расписание** запускает печать. Вывод оптимизирован под бумагу (без интерактивных элементов, с подходящей вёрсткой). #### Как экспортировать расписание в Excel или во внешний календарь? - Экспорт в Excel / CSV через **Таблица**. - Экспорт / подписка iCal через **Скачать** (см. [iCal — подписка и динамическая ссылка](#page-integrations.ical)). - Публичная ссылка общего доступа только для чтения (см. [Ссылка общего доступа](#page-glossary.share-link)). #### Есть ли тёмный режим? В текущем интерфейсе нет: Omniscol не предлагает тёмную тему и не переключается автоматически вслед за тёмным режимом операционной системы. Зато интерфейс учитывает системные настройки доступности, например повышенную контрастность. #### Можно ли настроить цвета дисциплин? Да. Каждой дисциплине (см. [Дисциплина](#page-glossary.subject)) можно назначить отдельный цвет с помощью **Цвет**. Типы занятий остаются простыми текстовыми названиями, без привязанных цвета или значка. #### См. также - [Просмотр и фильтры](#page-schedules.consult-and-filter) - [FAQ — особые случаи и расширенные настройки](#page-faq.edge-cases) - [Информационная панель](#page-panels.lobby-panel) - [Печать и общий доступ](#page-schedules.print-and-export) ### 16.6 FAQ — типовые случаи высшего образования *Source: `help/ru/faq/higher-ed-cases.md` · id: faq.higher-ed-cases · Updated: 2026-06-13* Часто задаваемые вопросы в учреждениях высшего образования (бизнес-школы, инженерные школы, школы искусств и дизайна, университеты, центры дополнительного образования). Ответы подходят для всех этих типов учреждений; подробности по отрасли см. на странице [Особенности высшего образования](#page-higher-ed.overview). #### Несколько расписаний, каждый пользователь видит только своё **В.** Как вести несколько расписаний параллельно, чтобы каждый пользователь видел в своём календаре только те занятия, которые его касаются? **О.** Работают три механизма: - Со стороны администратора несколько расписаний можно публиковать параллельно на одни и те же недели с динамическим объединением — это по умолчанию входит в Premium-аккаунт (см. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables)). - По умолчанию каждый пользователь видит только касающиеся его занятия: свой класс, свои группы, а преподаватель — свои занятия. Фильтры применяются автоматически при входе в зависимости от роли. - Чтобы посмотреть другие данные (другой класс, другого преподавателя…), пользователь вручную применяет фильтр, если его роль это позволяет. Например, [ограничения видимости](#page-admin.visibility-restrictions) позволяют скрыть от преподавателей расписание их коллег. #### Синхронизация iCal после изменения расписания **В.** Если занятие изменено в Omniscol, поток iCal обновляется автоматически? **О.** Да, при условии что используется **ссылка-подписка iCal**, а не однократное скачивание файла. Ссылка-подписка динамическая: календарное приложение запрашивает поток заново через регулярные промежутки, с задержкой от нескольких минут до нескольких часов в зависимости от приложения и его настроек. Частоту обновления определяет календарное приложение, а не Omniscol. См. [iCal](#page-glossary.ical) и [iCal — подписка и динамическая ссылка](#page-integrations.ical). #### Уведомление при каждом изменении **В.** Можно ли отправлять уведомление при каждом изменении расписания? **О.** Автоматического уведомления при каждом изменении нет: получателям пришлось бы разбирать слишком большой поток. Текущий подход: сообщать об изменениях пакетом — сводным письмом выбранным пользователям, которых они касаются (Отправить письмо). #### Кабинет из определённого типа или категории кабинетов **В.** Как указать, что занятие должно проходить в кабинете из определённого типа — в зависимости от того, нужно ли принудительно назначить конкретный кабинет или позволить системе выбрать его из группы? **О.** С помощью [**специализаций кабинетов**](#page-glossary.classroom-specialization), это произвольные поля: - Создайте специализацию, соответствующую типу (например, «МАСТЕРСКАЯ», «КОМПЬЮТЕРНЫЙ-КЛАСС», «ХИМИЧЕСКАЯ-ЛАБОРАТОРИЯ»). - Назначьте эту специализацию нужным кабинетам. - В курсе укажите требуемую специализацию. Omniscol в первую очередь предлагает специализированные кабинеты, а при формировании расписания выбирается один из свободных. - Чтобы **принудительно назначить конкретный кабинет**, укажите его напрямую (дополнительно к специализации или вместо неё). При формировании расписания принудительное назначение соблюдается. При массовом импорте можно указать только специализацию; окончательное назначение выполняется при формировании расписания. #### Проверка загрузки кабинетов перед формированием расписания **В.** Есть ли отчёт, позволяющий до формирования расписания проверить, укладываются ли часы, назначенные кабинету или типу кабинетов, в общее число доступных часов? **О.** Вкладка Формирование заранее запускает диагностику: проверки вместимости (число занятий, которые нужно разместить, сравнивается с вместимостью сетки) и проверки совместимости специализаций кабинетов. Если нагрузка превышает возможности, выводится предупреждение. [Сводная панель](#page-glossary.dashboard) после публикации показывает фактическую картину (с учётом отсутствий и замещений). #### Продолжительность отдельного курса при импорте **В.** В файле импорта в столбце «продолжительность» стоит общее число часов по виду деятельности, который может объединять несколько курсов. Где указать продолжительность каждого отдельного курса? **О.** **Одна строка импорта соответствует одному курсу.** Указанная продолжительность относится к этому курсу, а не ко всему модулю. Если модуль состоит из нескольких курсов разной продолжительности, нужна отдельная строка импорта для каждого курса. Если источник данных суммирует часы («Алгебра = 30 ч всего»), перед импортом их нужно разбить — или воспользоваться [автоматическим распределением](#page-timetables.hour-distribution), чтобы разделить объём часов на отдельные курсы. #### Занятия только в определённые недели **В.** Как указать, что занятие проходит только в определённые недели учебного года? **О.** Это зависит от режима: - В [недельном режиме](#page-glossary.weekly-timetable) [чередование недель](#page-glossary.alternate-lessons) подходит, когда занятие повторяется раз в N недель. Если занятие приходится лишь на несколько конкретных недель года, лучше подходит календарный режим. - В [календарном режиме](#page-glossary.calendar-mode) каждое занятие размещается отдельно на свою дату — это штатная возможность. - При импорте укажите **дату** каждого занятия в предусмотренном столбце (формат `ГГГГ-ММ-ДД`) или оставьте поле пустым, если занятие нужно потом разместить вручную. #### Курсы для нескольких классов **В.** Как смоделировать занятия, в которых в одном временном слоте и в одном кабинете участвуют несколько групп одного класса или разных классов — иногда по разным дисциплинам, иногда на разных площадках? **О.** В зависимости от случая: - **Несколько групп одного класса в одном временном слоте, одна дисциплина, один преподаватель, один кабинет** — один курс, назначенный общей группе. Фиксированный состав → [разделение](#page-glossary.class-division), если применимо. Меняющийся состав → [группа групп](#page-glossary.groups-of-groups), доступная во всех аккаунтах и для всех типов расписаний. - **Несколько разных классов в одном временном слоте, одна дисциплина, один преподаватель, один кабинет** — [совмещение](#page-glossary.alignment), если состав фиксирован, или [группа групп](#page-glossary.groups-of-groups) (доступна во всех аккаунтах и для всех типов расписаний), если сведение должно оставаться изменяемым. - **Разные дисциплины в одном временном слоте и в одном кабинете** (редкий случай) — нужны два отдельных курса. Каждый студент видит в своём расписании дисциплину своей группы. - **Между двумя площадками** (два класса из разных мест, у которых общий курс) — поддерживается при условии, что общий кабинет или видеоконференция смоделированы правильно (см. [виртуальные площадки](#page-glossary.site)). #### Чередование преподавателей в одном временном слоте **В.** Как указать, что два преподавателя чередуются в одном временном слоте, в один и тот же день недели, с тем же классом, по той же дисциплине и для той же группы — один на одной неделе, другой на следующей? **О.** Это **чередование преподавателей**, а не [совместное преподавание](#page-glossary.co-teaching) в строгом смысле (оно предполагает двух преподавателей одновременно на одном занятии). Есть два способа реализации в зависимости от периодичности: - **Регулярное чередование в недельном режиме** — используйте [чередование недель](#page-glossary.alternate-lessons) с разным преподавателем на каждой неделе. - **Чередование на конкретные даты в календарном режиме** — создайте отдельный курс на каждое занятие с соответствующим преподавателем. Это многословнее, но гибче: каждое занятие можно настроить отдельно. #### Разовое совместное преподавание (приглашённый преподаватель) **В.** Как указать, что на одном или нескольких занятиях курс ведёт совместно с основным преподавателем приглашённый преподаватель (visiting professor)? **О.** В [календарном режиме](#page-glossary.calendar-mode) создайте обычные занятия только с основным преподавателем, а на тех занятиях, где участвует приглашённый преподаватель, добавьте его для [совместного преподавания](#page-glossary.co-teaching) именно на этом занятии. Каждому преподавателю часы засчитываются в его собственной статистике. #### Ссылка на видеоконференцию для курса **В.** Можно ли привязать ссылку на видеоконференцию только к классу целиком или её можно привязать к конкретному курсу или занятию? **О.** Ссылку на видеоконференцию можно задать на трёх уровнях: для **класса** (тогда по умолчанию она действует для всех его занятий), для конкретного **курса** или для **отдельного занятия** в календарном режиме. Это удобно для гибридного формата, когда дистанционно проходят только некоторые курсы. См. [Ссылки на видеоконференцию для курсов](#page-higher-ed.videoconference-links). #### Студенты на повторном обучении и вне учебного плана **В.** Как быть со студентом, которому нужно изучить дисциплину другого года (повторное обучение, выравнивающий курс, академическая задолженность и т. д.)? **О.** Студента можно зачислить сразу в несколько классов и ограничить отдельными группами класса. Четыре типичных случая: 1. **Весь другой класс плюс определённая группа третьего** — зачислить в оба и выбрать группу. 2. **Несколько групп другого класса без всего класса** — зачислить сразу в группы. 3. **Одна дисциплина другого класса через определённую группу** — создать отдельную группу в другом классе и зачислить студента только в неё. 4. **Студент вне учебного плана, повторно изучающий отдельную дисциплину** — та же логика с отдельной группой. #### Идентификатор из информационной системы как уникальный идентификатор **В.** Можно ли использовать идентификатор студента или преподавателя из нашей информационной системы как уникальный идентификатор в Omniscol, чтобы избежать путаницы между однофамильцами? **О.** Да, через поле **Номер / внешний ID** в карточке пользователя — для этого оно и существует. Заполните его при импорте, и Omniscol будет использовать его как ключ идентификации. Особенно удобно для двусторонней синхронизации с вашей информационной системой (см. [синхронизацию с внешними системами](#page-integrations.extsync) для Aurion / Auriga или [API Omniscol](#page-integrations.api-tokens) для индивидуальной интеграции). #### Несколько адресов электронной почты у пользователя **В.** Можно ли импортировать два адреса электронной почты одного преподавателя (служебный и личный)? **О.** В текущем интерфейсе нельзя: у пользователя один основной адрес. Если второй адрес нужно сохранить для справки, укажите его в поле «Комментарий» карточки пользователя. Это поле не используется как адрес для рассылки. #### Обучающиеся, студенты, слушатели — какая сущность? **В.** В нашем справочнике различаются **обучающийся** (общий термин), **студент** (базовое обучение) и **слушатель** (дополнительное образование). Как эти оттенки соотносятся с Omniscol? **О.** Все они сводятся к сущности Omniscol [ученик](#page-glossary.student) (роль `student`). Различие между базовым и дополнительным образованием задаётся необязательным атрибутом в карточке (номер в информационной системе, статус), а не отдельными сущностями. #### Преподаватели: штатные, почасовые, эксперты, приглашённые **В.** В нашем справочнике различаются **штатный преподаватель** (постоянный договор, распределённая нагрузка), **почасовик** (разовый договор), **эксперт** (редкий внешний исполнитель) и **приглашённый преподаватель** (visiting professor, приглашённый университетский преподаватель). Все ли они соответствуют одной сущности Omniscol? **О.** Да, все они сводятся к сущности [преподаватель](#page-glossary.teacher) (роль `teacher`). **Именная метка «внешний / почасовой»**, отличающая их от штатных, — это опция **Premium** (см. [внешний преподаватель](#page-glossary.external-teacher)); без Premium все четыре профиля остаются одной сущностью «преподаватель» без отдельной метки. Роли «ответственный за курс» и «ответственный за программу» — **должностные роли** внутри вашего учреждения. Omniscol не моделирует их как таковые, но их можно представить настраиваемыми ролями (см. [настраиваемые роли](#page-admin.customroles)). #### Программы, направления подготовки, образовательные траектории **В.** Наше обучение выстроено иерархически: **программы** (бакалавриат, магистратура, MBA, аспирантура и т. д.), **курсы по менеджменту** (модуль / раздел / тема), **учебные мероприятия** (занятия). Как это отображается в Omniscol? **О.** Рекомендуемое соответствие: | Понятие в учреждении | Сущность Omniscol | | --- | --- | | **Программа** | [Класс](#page-glossary.class) (или набор классов для параллельных потоков) | | **Курс / модуль / раздел** | [Дисциплина](#page-glossary.subject) (с [типом занятия](#page-glossary.lesson-type) или без) | | **Занятие / учебное мероприятие** | [Занятие](#page-glossary.lesson) — отдельный размещённый экземпляр курса | Для иерархических номенклатур (модуль → раздел → тема) отразить группировку помогает соглашение об именовании дисциплин («М3-Р2-Т1 Линейная алгебра») или использование **групп дисциплин**. #### Мобильность, обмены, двойные дипломы **В.** Как вести входящую и исходящую мобильность (академические обмены, двойные дипломы, *free movers*, *study abroad*)? **О.** С точки зрения расписания эти обучающиеся — **обычные студенты, зачисленные в определённые классы**. Административная часть (соглашения, кредиты, ECTS, статус) относится к информационной системе учреждения; Omniscol сосредоточен на вопросе «кто на каком занятии присутствует, когда и где». #### Рекомендации по настройке для высшего образования Для аккаунта высшего образования рассмотрите следующее: - **Premium-аккаунт**: календарный режим, доступность в календарном режиме и несколько параллельно опубликованных расписаний входят в него по умолчанию, как и MCP (подключение совместимого ИИ-ассистента). По необходимости дополняется договорными опциями: настраиваемые роли, точки резервного копирования, совместная работа в реальном времени. (**Группы групп**, напротив, доступны во всех аккаунтах.) - **Календарный режим** для большинства расписаний (занятия с отдельными датами, преподаватели меняются от занятия к занятию). - **Несколько параллельно опубликованных расписаний** на программу (одно расписание на каждую магистерскую программу; при общих курсах они динамически объединяются). - **Группы групп** для изменяемого сквозного сведения групп (общий блок дисциплин для нескольких траекторий). - **Несколько кабинетов** для экзаменов в нескольких лекционных кабинетах сразу или для лекций, транслируемых в дополнительный кабинет. - **Настраиваемые роли**, чтобы смоделировать ответственных за курс или программу с целевыми правами в их зоне ответственности. - **Интеграция с информационной системой** ([синхронизация с внешними системами](#page-integrations.extsync) для Aurion / Auriga или [API Omniscol](#page-integrations.api-tokens) для индивидуальной интеграции) для синхронизации обучающихся. - **OIDC / SSO** через поставщика удостоверений учреждения (Google Workspace, Microsoft Entra ID, Keycloak и т. д.). #### См. также - [Особенности высшего образования — обзор](#page-higher-ed.overview) - [Несколько кабинетов](#page-glossary.multi-room) - [Формат](#page-glossary.lesson-modality) - [Совместное преподавание](#page-glossary.co-teaching) - [Режим календаря](#page-glossary.calendar-mode) - [Группы групп](#page-core-concepts.groups-of-groups) - [FAQ — Создание расписаний](#page-faq.timetables) - [FAQ — Импорт данных](#page-faq.data-import) ### 16.7 FAQ — особые случаи и расширенные настройки *Source: `help/ru/faq/edge-cases.md` · id: faq.edge-cases · Updated: 2026-09-23* Вопросы о нетипичных конфигурациях и особых случаях: занятия, не укладывающиеся во временную сетку, тонкая настройка кабинетов и их специализаций, неблокирующие конфликты, особые варианты отображения, отслеживание несоответствий. #### Занятия с пользовательским временем **В.** Часть занятий в нашем учебном заведении (около 20 %) не укладывается в стандартную сетку: точная продолжительность экзамена, сдвинутое время у некоторых лабораторных работ. Как поставить занятие, которое должно начаться в 13:10, на сетке с шагом 10 минут и получить корректное время окончания? **О.** Да. Для занятия можно задать собственное время начала и конца, не совпадающее с границами стандартной сетки. В поставленном занятии нажмите кнопку Пользовательское время (Пользовательское время), затем укажите начало и конец. Такое занятие по-прежнему учитывается при поиске конфликтов: преподаватель, кабинет, класс, группа и ресурс считаются занятыми, как только пользовательское время пересекается с временным слотом. При автоматическом формировании расписания эта позиция зафиксирована. Настройка **Вне сетки** у класса — другой случай: она предназначена для классов в календарном режиме, настроенных вне сетки, у которых все занятия должны храниться с точным временем. Подробнее см. [Занятия вне сетки](#page-timetables.off-grid-lessons). #### Создание дисциплин с родительской дисциплиной и существующей группой дисциплин **В.** Можно ли при создании собственной дисциплины выбрать уже созданную **родительскую дисциплину** и существующую **группу дисциплин**, не прибегая к повторной загрузке из внешнего источника? **О.** Да. В окне создания или изменения собственной дисциплины можно сразу выбрать существующую родительскую дисциплину (поле Родительская дисциплина) и существующую группу дисциплин (поле Группа дисциплин) без повторной загрузки из внешнего источника. См. [Управление дисциплинами](#page-admin.subjects). #### Изменение или удаление специализации кабинета **В.** Почему нельзя напрямую изменить или удалить специализацию кабинета (например, чтобы исправить опечатку)? **О.** Список специализаций **динамически** вычисляется по кабинетам. Чтобы специализация исчезла: - Уберите её у всех кабинетов, которые её имеют. При следующем сохранении она автоматически исчезнет из справочника. - Чтобы **переименовать** специализацию, создайте новую с нужным названием и замените ею старую в соответствующих кабинетах; прежняя затем исчезнет сама. Поэтому в интерфейсе нет кнопки прямого изменения или удаления специализации. См. [Специализация кабинета](#page-glossary.classroom-specialization). #### Фильтр расписания по дисциплине: дисциплина без типа и с типом **В.** Когда я фильтрую расписания по дисциплине, некоторые курсы не появляются, хотя при фильтрации по классу они видны. В чём причина? **О.** Пара **(дисциплина, тип занятия)** обрабатывается как запись, независимая от самой дисциплины. Отсюда следует: - «Алгебра» без типа и «Алгебра — семинар» — это **две разные записи** в расписании. - Чтобы отфильтровать обе сразу, не указывайте тип в фильтре. - Если нужно проверить все типы одной дисциплины, воспользуйтесь фильтрами, доступными в представлении, а затем сверьте результаты со списком курсов. #### Отображение фамилии заглавными буквами **В.** Можно ли показывать фамилии заглавными буквами? Это удобно, в частности, когда фамилия совпадает с распространённым именем (например, «Роман Герман» и «Роман ГЕРМАН»). **О.** Да. Параметр отображения имён заглавными буквами настраивается в параметрах школы. Он может применяться к имени, к отчеству (если опция включена) и (или) к фамилии в соответствии с порядком имён, настроенным для учебного заведения. #### Фиксация занятия видна не во всех представлениях **В.** Фиксация позиции занятия отображается не всегда при смене представления (стикеры ↔ список). **О.** Маркер фиксации зависит от представления и от вида занятия. В представлениях распределения часов и в некоторых строках курсов замок показывается значком [lock]. Если представление его не показывает, проверьте сведения о занятии, прежде чем делать вывод, что алгоритм может его изменить. #### Назначение кабинета: избранная площадка и приоритетные специализации **В.** При назначении кабинета первыми появляются кабинеты другой площадки, хотя избранная площадка отмечена. Почему? **О.** По умолчанию сортировка берёт **площадку, к которой прикреплён класс**, а не избранную площадку пользователя. Это намеренное поведение: выбором кабинета управляет класс. Если порядок не такой, как вы ожидали, убедитесь, что класс прикреплён к нужной площадке, в Редактировать. Что касается **специализаций**, проверьте предложенные кабинеты и их предупреждения о совместимости в окне выбора. Не рассчитывайте на приоритетную сортировку по наилучшей совместимости. #### Общая вместимость равна сумме кабинетов (несколько кабинетов) **В.** Когда одному занятию назначено несколько кабинетов, считает ли Omniscol **общую вместимость** как сумму вместимостей отдельных кабинетов и тем самым избегает ли ложных предупреждений о превышении вместимости? **О.** Да. Общая вместимость вычисляется как **сумма** вместимостей назначенных кабинетов. Если группа помещается в эту сумму, предупреждение не выдаётся. Функция доступна **для всех типов расписаний**: недельных, циклических, календарных. Если сумма остаётся меньше размера группы, конфликт отмечается. Администратор может тогда: - добавить ещё один кабинет, - уменьшить группу, - принять конфликт, если он сознательный (типичный случай: известно, что придут не все записанные). См. [Несколько кабинетов](#page-glossary.multi-room). #### Конфликт между двумя классами, у которых нет ничего общего **В.** Два класса с разными названиями, без общих преподавателей и кабинетов, отмечены как конфликтующие. Откуда этот конфликт? **О.** Это указано в сведениях о конфликте. Если за классом второго занятия следует значок [calendar-days] и название расписания, то это занятие относится к другому расписанию, опубликованному на те же даты. Omniscol распознал один и тот же класс в двух расписаниях: раз их названия различаются, значит, у них общий внешний идентификатор (см. [как распознаётся один и тот же класс в разных расписаниях](#page-timetables.multiple-active-timetables--same-entity)). Если это действительно два разных класса, исправьте этот идентификатор в исходной программе. Чтобы больше не учитывать какое-либо расписание, снимите с него отметку в меню Синхронизация. Если этого значка нет, оба занятия относятся к одному расписанию: поищите группу групп, объединяющую группы обоих классов (см. [Группа групп](#page-glossary.groups-of-groups)). #### Выявление несоответствий в группах разделения **В.** Omniscol сообщает о «разном количестве курсов у групп в разделении», не уточняя, по каким дисциплинам есть несоответствия. Как разобраться подробно? **О.** Панель **расширенной статистики** на экране распределения часов позволяет провести подробную проверку, в частности выделив группы, которые пересекаются в соответствующих временных слотах. Для учебных заведений, где дисбалансов много и они намеренные, действует эвристика: выше определённого порога показ предупреждений ограничивается, чтобы не получить необозримый список. Для исчерпывающей диагностики по-прежнему можно экспортировать курсы и отфильтровать их в электронной таблице. #### Несколько комментариев с разными ограничениями **В.** Можно ли добавить к одному курсу два комментария с разными ограничениями публикации (один только для администраторов, другой для преподавателей)? **О.** Да. У каждого комментария своё ограничение публикации: администраторы, преподаватели или все пользователи. Нажмите кнопку Комментарий, чтобы добавить несколько комментариев и задать видимость каждого отдельно. #### Вертикальное отображение расписания (недельная нагрузка) **В.** Чтобы увидеть нагрузку группы или занятость определённого типа кабинетов за целую неделю, при горизонтальном отображении приходится прокручивать экран. Есть ли вертикальное отображение? **О.** В модуле **Расписание** расписания отображаются горизонтально. Аналогичное вертикальное представление есть в модуле **Управление персоналом** для смежных задач (сетки надзора). См. [Обзор модуля «Управление персоналом»](#page-staffing.overview) и [Отображение и UX](#page-faq.display-and-ux). #### Статистика: поставленные занятия и созданные курсы **В.** Счётчик на экране «распределение часов» показывает, сколько курсов создано. Где посмотреть, сколько часов действительно **поставлено** в расписание (в отличие от созданных без позиции)? **О.** Два экрана дают две дополняющие друг друга меры: - **Сводная панель** работает с **действующим расписанием** (фактически поставленные занятия, возможное объединение нескольких опубликованных расписаний, учёт отсутствий). Показанные проценты относительные («93 % часов этого класса»), а не доля поставленных часов. - Экран **распределения часов** измеряет заявленные курсы и созданные объёмы. Если вам нужна доля поставленных часов, проверьте курсы в представлении планирования или экспортируйте список, чтобы отфильтровать занятия без позиции. #### Внештатный или внешний преподаватель в расписании **В.** Появляется ли значок, отличающий внешних преподавателей от штатных, рядом с именем преподавателя в представлениях расписания? **О.** Это зависит от представления: - **Представление в виде сетки** — места мало, и имена там могут быть сокращены или обрезаны до простого текста; значок там появляется не всегда. - **Списки, всплывающие подсказки и окна выбора** — везде, где имя показывается полностью, значок [user-tie] стоит перед именем преподавателей, в карточке которых установлена отметка Внешний преподаватель. Эта отметка «внешний» — опция **Premium**; без неё никакой значок не отличает внештатных преподавателей. См. [Внешний преподаватель](#page-glossary.external-teacher). > _Premium_ #### Разовые события: часто задаваемые уточнения Несколько уточнений об экране событий (см. [Разовые события](#page-schedules.events)): - **Предлагаемое время** — временной диапазон события определяется параметром Часы работы площадки; если он слишком короткий (например, вечернее событие), расширьте это время в карточке площадки. - **Изменение времени на месте** — время события меняется напрямую щелчком по событию. - **Участники** — в списке участников предлагаются классы и группы, а также преподаватели и ученики по отдельности. #### См. также - [Занятия вне сетки](#page-timetables.off-grid-lessons) - [Разовые события](#page-schedules.events) - [Несколько кабинетов](#page-glossary.multi-room) - [Специализация кабинета](#page-glossary.classroom-specialization) - [Отображение и UX](#page-faq.display-and-ux) - [Поведение алгоритма](#page-faq.solver-behavior) ### 16.8 FAQ — Безопасность и хостинг *Source: `help/ru/faq/security-and-hosting.md` · id: faq.security-and-hosting · Updated: 2026-05-10* На этой странице собраны самые частые вопросы о безопасности и хостинге. Для исчерпывающего описания Omniscol по запросу (а в ряде случаев по соглашению о неразглашении) предоставляет официальные документы: - `SECURITY_OVERVIEW.md` — общий публичный обзор, - `SECURITY_ONE_PAGER.md` — краткая сводка для CISO / руководителя по информационной безопасности, - `SECURITY_FULL.md` — полная документация (управление, инфраструктура, меры контроля, соответствие требованиям, реагирование на инциденты), - `ISO27001_MAPPING.md` — сопоставление с мерами контроля ISO 27001, - `SSI_QUESTIONNAIRE_STANDARD.md` — ответы на стандартный опросник по информационной безопасности. По любым вопросам безопасности: **[security@omniscol.com](mailto:security@omniscol.com)**. #### Где размещены мои данные? Согласно юридическим уведомлениям, данные размещаются в Европейском союзе, на AWS Paris и Scaleway. Точные обязательства по резервированию, резервному копированию, срокам хранения и доступности зависят от договорных условий, действующих для вашей учётной записи. #### Соответствует ли Omniscol требованиям GDPR? Omniscol создан для использования в соответствии с GDPR. На практике это означает следующее: - Размещение исключительно в ЕС (Франция). - **Логическая изоляция** по клиентам: перекрёстный доступ между учётными записями невозможен. - Никакого **профилирования**, никакой **перепродажи** данных, никакого **вторичного использования** материалов вашей школы. - **Обратимость**: полный экспорт в JSON с помощью кнопки **Скачать**. - Запросы субъектов данных обрабатываются в соответствии с применимыми договорными и нормативными условиями. #### Сертифицирован ли Omniscol по ISO 27001? На сегодня сертификации нет, но **практики приведены в соответствие** с принципами стандарта и строятся на риск-ориентированном подходе, который постоянно пересматривается. Подробности о мерах контроля могут быть предоставлены в рамках подходящего договорного соглашения или соглашения о безопасности. #### Как защищены пароли? Omniscol защищает пароли следующим образом: - **Предварительное хеширование на стороне клиента** алгоритмом **scrypt** — ваш пароль в открытом виде никогда не попадает на серверы. - На сервере хранится хеш с солью. - Пароль в открытом виде никогда не передаётся и не хранится. - Ни один администратор Omniscol не может прочитать, найти или восстановить пароль пользователя. Если вы подозреваете, что учётная запись скомпрометирована, смена пароля аннулирует производные доступы, зависящие от этого секрета, в частности ссылки общего доступа, привязанные к паролю их создателя. #### Шифруются ли соединения? Публичный доступ к приложению осуществляется по HTTPS. Конфигурация сетевого доступа зависит от выбранного развёртывания, и её следует проверять в рамках соглашения о безопасности или договора для соответствующей учётной записи. #### Как работает аутентификация? Сессии Omniscol используют подписанные токены с ограниченным сроком действия; доступ продлевается, пока пользователь работает в интерфейсе. Ссылки общего доступа и токены API подчиняются отдельным правилам: - у ссылки общего доступа может быть дата окончания срока действия, и она зависит также от учётной записи, которая её создала: смена пароля этой учётной записи или её отключение аннулирует соответствующие доступы; - токен API зависит от ключа, созданного в интерфейсе: удаление этого ключа или истечение срока его действия аннулирует связанные с ним токены. См. также [Ссылка общего доступа](#page-glossary.share-link) и [API Omniscol](#page-integrations.api-tokens). #### API: ключи и токены Доступом к API можно управлять из интерфейса, где есть два вида объектов: 1. **Ключ** — создаётся с названием и, при необходимости, датой окончания срока действия. Этот срок можно изменить позже. 2. **Токен** — генерируется из ключа, с перечнем разрешённых конечных точек API и собственным сроком действия. Этот срок после генерации не изменяется; нужно создать новый токен. Рекомендация: один ключ на одну интеграцию, с понятным названием и сроком действия, соответствующим задаче. Если у вас есть сомнения, удалите ключ и создайте новый. См. [API Omniscol](#page-integrations.api-tokens). #### Могут ли мои пользователи входить через корпоративную учётную запись (SSO)? Да, через [OIDC / SSO](#page-integrations.oauth2), если эта настройка включена для учётной записи. Omniscol поддерживает Google Workspace, Microsoft Entra ID и универсальных провайдеров OIDC. Тогда каждый пользователь входит под своей корпоративной учётной записью и сохраняет права, настроенные в Omniscol. #### Какая защита предусмотрена от неправомерных попыток входа? - Ответы на неудачную аутентификацию намеренно замедляются. - Для экранов администрирования предусмотрена усиленная защита. - Omniscol не сообщает, существует ли такой идентификатор: сообщение остаётся общим. #### Жизненный цикл учётных записей пользователей - **Отключение без удаления** — отключённая учётная запись больше не может входить в систему, но связанные с ней данные сохраняются. - **Обязательная смена при первом входе** — если пароль задан вручную, пользователь должен сменить его при первом входе. - **Сброс** — администратор может запустить сброс, не зная текущего пароля. #### Сетевая безопасность и эксплуатация Документы по безопасности, предоставляемые по запросу, описывают хостинг, сетевое разделение, правила доступа к данным и эксплуатационные процедуры, применимые к соответствующей учётной записи. #### Ведётся ли журнал аудита? Да, если для учётной записи включены опция журналов и соответствующий срок хранения. Видимый охват зависит от записываемых в журнал операций и от глубины, настроенной Omniscol. См. [Журналы активности (логи)](#page-admin.logs). #### OWASP Top 10 Omniscol применяет меры контроля, соответствующие рискам OWASP Top 10: контроль доступа, шифрование, проверка входных данных, безопасная конфигурация, отслеживание зависимостей, защита сессий и ведение журнала. Точный охват может быть детализирован в документах по безопасности, предоставляемых по запросу. #### Автоматизированные тесты безопасности Автоматизированные проверки встроены в процесс разработки и развёртывания Omniscol. Их охват меняется вместе с продуктом; подробные сведения могут быть предоставлены в рамках подходящего соглашения о безопасности. #### Как вручную создать резервную копию? Кнопка **Скачать** скачивает полный экспорт учётной записи в формате JSON. Этот файл нужно хранить с особой тщательностью: в нём содержатся хеши паролей и все персональные данные. В случае серьёзного инцидента этот файл можно отправить команде Omniscol для повторной загрузки. Если для учётной записи включена опция «Точки резервного копирования», вы можете также настроить автоматическое создание восстанавливаемых точек резервного копирования. См. [Точки резервного копирования](#page-admin.snapshots). #### История инцидентов По последним данным (февраль 2026 года): - **0 нарушений безопасности данных клиентов** (за всё время). - **0 инцидентов безопасности** в 2025 году. Эти цифры опубликованы в `SECURITY_ONE_PAGER.md` — документе, который пересматривается ежеквартально. #### См. также - [Архитектура и роли](#page-overview.architecture-and-roles) - [Ссылка общего доступа](#page-glossary.share-link) - [Токен API](#page-glossary.api-token) - [API Omniscol](#page-integrations.api-tokens) - [OIDC / SSO](#page-integrations.oauth2) - [Резервные копии и точки резервного копирования](#page-admin.snapshots) - [Журналы активности (логи)](#page-admin.logs) ### 16.9 FAQ — Тарифы и лицензии *Source: `help/ru/faq/pricing-and-licenses.md` · id: faq.pricing-and-licenses · Updated: 2026-07-24* Частые вопросы о планах подписки, включённых функциях и опциях по выбору, а также о выставлении счетов. Подробное описание функций по планам и опциям см. на странице [Тарифные планы и опции Omniscol](#page-overview.plans-and-options). #### Какие планы подписки существуют? Три основных плана и каталог опций по выбору: | План | Для кого | | --- | --- | | **Lite** | Очень небольшие учебные заведения, независимые специалисты, индивидуальные преподаватели, тестирование — только формирование расписания и печать (без публикации и без управления учениками) | | **Standard** | Обычное учебное заведение (школа, гимназия, лицей), одна команда планирования, недельное расписание | | **Premium** | Высшее образование, непрерывное образование, большие объёмы, сложные конфигурации с несколькими площадками | Дополнительно предлагаются **Standard Plus** (Standard плюс модуль **Управление персоналом**) и отдельное предложение **Управление персоналом** (планирование надзора без остальных возможностей Omniscol). Подробное описание функций см. на странице [Тарифные планы и опции Omniscol](#page-overview.plans-and-options). #### Какие функции включены в Premium? По умолчанию в аккаунте Premium доступны: - режим календаря — расписания с датами, занятие за занятием; - доступность по календарю — доступность, задаваемая по датам; - несколько опубликованных расписаний параллельно — на одни и те же недели, с автоматическим объединением представлений. (**Группы групп** не относятся к функциям Premium: они доступны во всех аккаунтах, независимо от плана.) #### Какие опции можно подключить по выбору? Остальные договорные опции включаются по потребности аккаунта, в дополнение к выбранному плану: - несколько опубликованных расписаний параллельно в аккаунте Standard — исключительный случай договорной активации, с отдельным согласованием и расчётом стоимости (в Premium эта функция включена изначально); - связанные аккаунты — связанные аккаунты и общий доступ к занятости ресурсов, включается Omniscol по запросу; - настраиваемые роли — настраиваемые роли с матрицей прав; - точки резервного копирования — состояния аккаунта, из которых его можно восстановить; - совместная работа — совместное редактирование в реальном времени; - модуль **Управление персоналом** — модуль надзора и сопровождения (также доступен как отдельное предложение без остальных возможностей Omniscol); - синхронизация с внешними системами — синхронизация с внешней ERP или информационной системой (Aurion, Auriga или коннектор, добавленный под проект); - журналы действий — просмотр журналов, когда в аккаунте настроена глубина хранения; - дополнительные модули — дополнительные необязательные модули, в зависимости от модуля и договора. #### Существует ли предложение «только Управление персоналом»? Да. Для учебных заведений, которым нужно только планирование надзора и сопровождения, модуль **Управление персоналом** продаётся и отдельно, без остальных возможностей Omniscol. Тогда аккаунт содержит только модуль **Управление персоналом** и минимальный набор пользовательских экранов. #### Где узнать стоимость? Каждое учебное заведение уникально: стоимость зависит от размера, выбранных функций, срока обязательств и желаемого сопровождения. Вместо публичного прайс-листа команда Omniscol вместе с вами изучает вашу ситуацию и готовит подходящее коммерческое предложение. Напишите на **contact@omniscol.com** или закажите демонстрацию, чтобы обсудить всё лично (см. [Общие вопросы](#page-faq.general)). #### Как узнать план моего аккаунта? Действующий план и подключённые опции не показываются в обычном интерфейсе администрирования (соответствующий раздел меню **Параметры** доступен только Omniscol). Чтобы узнать план аккаунта, свяжитесь с командой Omniscol. #### Можно ли сменить план или добавить опции в течение года? Да. Добавленная опция начинает действовать сразу, без перерыва в работе сервиса. Переход со Standard на Premium происходит по тому же принципу. Отключить опцию можно, только если соответствующие функции больше не используются в аккаунте: например, при отключении связанных аккаунтов между аккаунтами не должно оставаться общих ресурсов, а при отключении функции «несколько опубликованных расписаний параллельно» в соответствующем аккаунте Standard — одновременных публикаций. #### Есть ли пробный период? Да. Для новых аккаунтов обычно предлагается период ознакомления, в течение которого команда Omniscol помогает с начальной настройкой. Условия предоставляются по запросу. #### Как устроено выставление счетов? По умолчанию счета выставляются раз в год, с обязательствами на выбранный срок. Особые условия (периодичность выставления счетов, способы оплаты) определяются в договоре. #### Что происходит по окончании договора? Ваши данные остаются доступными в течение переходного периода, определённого договором; в это время сохраняется возможность полного экспорта в JSON. Возможность забрать данные гарантируется договором (GDPR). #### См. также - [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - [Что такое Omniscol?](#page-overview.what-is-omniscol) - [Безопасность и хостинг](#page-faq.security-and-hosting) --- ## Глоссарий **Глоссарий** — 55 terms - [Большой кабинет (несколько одновременных занятий)](#page-glossary.large-room) - [Вне сетки](#page-glossary.off-grid) - [Внешний преподаватель / приглашённый специалист](#page-glossary.external-teacher) - [Временная сетка](#page-glossary.timetable-grid) - [Временно́е окно](#page-glossary.date-windows) - [Группа](#page-glossary.group) - [Группа групп](#page-glossary.groups-of-groups) - [Диагностика](#page-glossary.diagnostic) - [Дисциплина](#page-glossary.subject) - [Доступность преподавателей (пожелания)](#page-glossary.wishes) - [Замещение / Замена](#page-glossary.substitution) - [Занятие](#page-glossary.lesson) - [Информационная панель](#page-glossary.panel) - [Кабинет](#page-glossary.classroom) - [Каникулы](#page-glossary.holidays) - [Класс](#page-glossary.class) - [Конфликт](#page-glossary.conflict) - [Курс](#page-glossary.course) - [Недельное расписание](#page-glossary.weekly-timetable) - [Несколько кабинетов (одно занятие в нескольких кабинетах)](#page-glossary.multi-room) - [Несовместимость (между дисциплинами)](#page-glossary.incompatibility) - [Область планирования](#page-glossary.planning-domain) - [Общий курс](#page-glossary.transverse-course) - [Отсутствие](#page-glossary.absence) - [Площадка](#page-glossary.site) - [Подразделение](#page-glossary.campus) - [Политика распределения часов](#page-glossary.distribution-policy) - [Преподаватель / Приглашённый специалист](#page-glossary.teacher) - [Публикация расписания](#page-glossary.publication) - [Разделение класса](#page-glossary.class-division) - [Расписание](#page-glossary.timetable) - [Режим визуального отображения расписания](#page-glossary.schedule-view-mode) - [Режим календаря](#page-glossary.calendar-mode) - [Ресурс](#page-glossary.resource) - [Свободная группа](#page-glossary.free-group) - [Сводная панель](#page-glossary.dashboard) - [Связанные занятия (чередование половин класса)](#page-glossary.associated-lessons) - [Сдвоенные занятия](#page-glossary.concatenated-lessons) - [Совместное преподавание](#page-glossary.co-teaching) - [Совмещение групп](#page-glossary.alignment) - [Специализация кабинета](#page-glossary.classroom-specialization) - [Ссылка общего доступа](#page-glossary.share-link) - [Статус занятия](#page-glossary.lesson-status) - [Тип занятия](#page-glossary.lesson-type) - [Токен API](#page-glossary.api-token) - [Управление персоналом](#page-glossary.staffing) - [Уровень](#page-glossary.level) - [Учебный год](#page-glossary.school-year) - [Ученик / Студент / Слушатель](#page-glossary.student) - [Формат занятия](#page-glossary.lesson-modality) - [Формирование расписания / Алгоритм автоматического формирования](#page-glossary.solver) - [Циклическое расписание](#page-glossary.cyclic-timetable) - [Чередующиеся занятия / Недели A-B](#page-glossary.alternate-lessons) - [Шкала времени](#page-glossary.timeline) - [iCal (экспорт в календарь)](#page-glossary.ical) ### Большой кабинет (несколько одновременных занятий) *Source: `help/ru/glossary/large-room.md` · id: glossary.large-room · Updated: 2026-06-25* *Also known as : максимальное количество классов · кабинет для экзаменов · театр · спортивный зал · бассейн · открытое пространство* **Большой кабинет** — это [кабинет](#page-glossary.classroom), где могут проходить **несколько разных занятий одновременно**, с разными преподавателями и не связанными между собой группами. Чтобы сделать кабинет большим, заполните у него поле **Максимальное количество классов**: это число задаёт, сколько отдельных занятий могут идти там параллельно. Типичные примеры: **кабинет для экзаменов**, **холл**, **открытое пространство** (двор, театр, спортивное поле, музей...), **спортивный зал**, **бассейн** — всё это места, где соседствуют несколько независимых видов деятельности. #### Только для специализированных кабинетов Поле Максимальное количество классов появляется только у кабинета, у которого есть **[специализация](#page-glossary.classroom-specialization)**. Поэтому сначала назначьте кабинету специализацию (спорт, экзамен, бассейн, открытое пространство…), а затем укажите максимальное количество одновременных классов. Это логично: общий большой кабинет всегда специализирован под определённый вид деятельности, поэтому специализация служит также для того, чтобы направлять туда нужные дисциплины. #### Как Omniscol это использует В каждом временном слоте [формирование расписания](#page-glossary.solver) и обнаружение конфликтов разрешают разместить в кабинете столько занятий, сколько допускает поле Максимальное количество классов, пока суммарная численность их участников не превышает **[вместимость](#page-glossary.classroom)** кабинета. Если превышен любой из этих пределов — слишком много параллельных занятий или превышена вместимость, — Omniscol сообщает о конфликте. Кабинет, у которого поле Максимальное количество классов не заполнено, ведёт себя как обычный: в нём проходит только одно занятие за раз. #### Большой кабинет или несколько кабинетов? Оба понятия описывают связь «кабинет ↔ занятие», но в противоположных направлениях: - **большой кабинет** объединяет **несколько занятий в одном кабинете**; - занятие в **[нескольких кабинетах](#page-glossary.multi-room)**, напротив, занимает **несколько кабинетов ради одного занятия** (его вместимость тогда равна сумме вместимостей назначенных кабинетов). #### См. также - [Кабинет](#page-glossary.classroom) - [Специализация кабинета](#page-glossary.classroom-specialization) - [Несколько кабинетов](#page-glossary.multi-room) - [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) ### Вне сетки *Source: `help/ru/glossary/off-grid.md` · id: glossary.off-grid · Plan: premium · Updated: 2026-08-24* > **Premium** *Also known as : класс вне сетки · занятие вне сетки · произвольное время занятий* > _Premium_ Когда для класса включён режим **вне сетки**, все его занятия не зависят от сеток площадок: время их начала и окончания выбирается свободно. Omniscol сохраняет только шаг времени (10, 15, 20, 30 или 60 минут), чтобы упростить размещение занятий. Этот режим подходит для программ дополнительного образования и параллельных образовательных траекторий, которые используют одни и те же помещения, не следуя общей сетке. ### Внешний преподаватель / приглашённый специалист *Source: `help/ru/glossary/external-teacher.md` · id: glossary.external-teacher · Updated: 2026-06-13* *Also known as : почасовик · приглашённый профессор · visiting professor* **Внешний преподаватель** (или *приглашённый специалист*, *приглашённый профессор*, *эксперт* — в зависимости от контекста) — это преподаватель, который связан с учебным заведением временным или разовым договором. С точки зрения формирования расписания внешний преподаватель ничем не отличается от любого другого [преподавателя](#page-glossary.teacher): та же доступность, те же назначения. Различие в основном **административное**: - краткосрочный договор (почасовая оплата, оплата за занятие или за конкретное задание); - меньший объём часов, чем у штатных преподавателей; - пользователь часто работает не в тех же системах, что штатные преподаватели (другой адрес электронной почты, нет доступа к тем же внутренним инструментам). > _Premium_ Отдельная отметка «Внешний преподаватель», которая ставится флажком в карточке пользователя, доступна только в аккаунтах Premium. Она позволяет явно выделить внешних преподавателей и используется для особого отображения, описанного ниже. #### Особое отображение Значок [user-tie] отличает внешних преподавателей от штатных на некоторых экранах (в частности, во всплывающей подсказке занятия и в списочном представлении расписаний). В основной сетке по умолчанию различие не показывается из-за нехватки места, но сведения можно увидеть во всплывающей подсказке при наведении курсора. #### Особый случай: приглашённый профессор на несколько занятий Если приглашённый профессор ведёт разовое занятие вместе с основным преподавателем, не чередуясь с ним, см. [совместное преподавание](#page-glossary.co-teaching). Если два преподавателя еженедельно чередуются в одном временном слоте, см. [чередующиеся занятия](#page-glossary.alternate-lessons). #### См. также - [Преподаватель](#page-glossary.teacher) - [Совместное преподавание](#page-glossary.co-teaching) - [Внешние преподаватели в высшем образовании](#page-higher-ed.external-faculty) ### Временная сетка *Source: `help/ru/glossary/timetable-grid.md` · id: glossary.timetable-grid · Plan: standard · Updated: 2026-08-24* *Also known as : сетка часов · временные слоты* **Временная сетка** — это разбивка времени **площадки**: временные слоты, в которые размещаются занятия, со временем начала и окончания, перерывами и закрытыми периодами. У каждой площадки своя сетка, поэтому у двух площадок одного учебного заведения может быть разный распорядок дня. Сетка нужна для отображения расписаний, для проверки доступности и для автоматического формирования расписания. Класс может обойтись без неё: см. **вне сетки**. ### Временно́е окно *Source: `help/ru/glossary/date-windows.md` · id: glossary.date-windows · Plan: premium · Updated: 2026-06-20* > **Premium** *Also known as : временные окна · окно дат · окно включения · окно исключения · слой дат* > _Premium_ **Временно́е окно** — это повторно используемый период **включения** или **исключения** дат, который ограничивает, когда могут планироваться некоторые занятия. Один раз задаётся на экране редактирования расписания в режиме «Календарь» и затем накладывается как **слой** на временные ограничения классов, групп и курсов, а также на доступность кабинетов. Только для **расписаний в режиме «Календарь»**, на аккаунтах с тарифом «**Премиум**». #### Два типа - **Разрешённые занятия** — занятия можно планировать только в эти даты. - **Исключённые занятия** — в эти даты занятия планировать нельзя. Несколько окон складываются; при пересечении исключение имеет приоритет над разрешением. #### См. также - [Временные окна](#page-timetables.date-windows) - [Режим календаря](#page-glossary.calendar-mode) ### Группа *Source: `help/ru/glossary/group.md` · id: glossary.group · Updated: 2026-05-10* *Also known as : подгруппа · половина класса · группа по выбору · группа А · группа Б* В Omniscol **группа** — это **часть класса**. Все ученики группы также являются учениками родительского класса. Группу создают всякий раз, когда часть учеников класса должна посещать курс, отличный от курса остального класса, — пусть даже временно, на одно занятие. Примеры: - половины класса на информатике («Группа А», «Группа Б»), - группы по выбору («Немецкий язык», «Французский язык», «Углублённая биология»), - группы по уровню («Английский углублённый», «Английский базовый»). #### Настоятельная рекомендация: одна группа на курс Даже если изучающие немецкий и изучающие французский в классе на практике одни и те же ученики, **создайте две отдельные группы**. Иначе [совмещения](#page-glossary.alignment) с другими классами становятся неоднозначными, а конфликты трудно диагностировать. И наоборот: группу «Весь класс» создавать не нужно. Когда курс предназначен для всего класса, группу не привязывают, а просто назначают курс классу. #### Расчётная численность Укажите ожидаемое число учеников в группе. Поле необязательное, но рекомендуется: оно используется при [формировании расписания](#page-glossary.solver) для подбора [кабинетов](#page-glossary.classroom) подходящей вместимости. #### Чтобы объединить учеников из нескольких классов Понятие группы ограничено рамками одного класса. Чтобы объединить изучающих немецкий из 8А, 8Б и 8В, которые занимаются вместе: - создайте группу «Немецкий язык» в каждом из трёх классов, - затем создайте [совмещение](#page-glossary.alignment), которое свяжет эти три группы. Можно также использовать [группу групп](#page-glossary.groups-of-groups): её проще редактировать, когда сведение групп должно меняться. #### Свободные группы Для открытого зачисления (вечерние мастерские, факультативы, не привязанные к классу) см. понятие [свободной группы](#page-glossary.free-group): состав заранее не фиксируется, ученики могут присоединяться к ней или покидать её, не создавая конфликтов. Это **исключительный** случай (обособленная полуавтономная подгруппа): чтобы просто **собрать или свести вместе существующие группы** на общем занятии, используйте группу групп, а не свободную группу. #### См. также - [Класс](#page-glossary.class) - [Разделение класса](#page-glossary.class-division) - [Совмещение групп](#page-glossary.alignment) - [Группы групп](#page-glossary.groups-of-groups) - [Свободная группа](#page-glossary.free-group) ### Группа групп *Source: `help/ru/glossary/groups-of-groups.md` · id: glossary.groups-of-groups · Updated: 2026-05-10* *Also known as : супергруппа · объединение групп* **Группа групп** — это сведение нескольких [групп](#page-glossary.group) одного или разных классов, более гибкое, чем [совмещение](#page-glossary.alignment). Доступна в Omniscol как базовый механизм сведения групп. #### Главное отличие от совмещения Совмещение **фиксируется при создании**: список совмещённых групп задан раз и навсегда, и чтобы исключить группу из совмещения, её нужно клонировать. Группу групп, напротив, **можно изменить позже**. Вы можете добавлять группы и убирать их, не создавая структуру заново. Поэтому она особенно ценна в высшем образовании, где состав таких сведений часто меняется в течение года (новое направление подготовки присоединяется к общему курсу, подгруппа отделяется для работы над проектом). #### Когда использовать - Общие курсы для нескольких направлений подготовки (инженерная или бизнес-школа), - Лекции для нескольких классов, общие семинары, - Курсы общего блока в дополнительном профессиональном образовании, - Открытые образовательные мероприятия (экскурсия, выступление приглашённого специалиста). Курс, назначенный группе групп, виден (и доступен для редактирования) из каждого класса, к которому относятся входящие в неё группы. #### Особенность Группа групп особенно полезна, когда состав участников меняется в течение года или когда вы хотите избежать ограничений симметрии, которые накладывает совмещение. #### См. также - [Совмещение групп](#page-glossary.alignment) - [Общий курс](#page-glossary.transverse-course) - [Режим календаря](#page-glossary.calendar-mode) - [Группы групп](#page-core-concepts.groups-of-groups) ### Диагностика *Source: `help/ru/glossary/diagnostic.md` · id: glossary.diagnostic · Updated: 2026-06-26* *Also known as : проверка · контроль · оповещение о настройках · оповещение о согласованности* **Диагностика** в Omniscol — это проверка согласованности, которую система выполняет непрерывно. Она указывает на проблемы в настройке расписания до того, как они приведут к сбою формирования или к неверному результату. #### Уровни серьёзности - **Критический** (красный, блокирующий) — не даёт формированию завершиться успешно: структурно невозможное совмещение, недостаточная общая вместимость, преподаватель без единого свободного слота… - **Предупреждение** (оранжевый) — можно оставить как есть, но оно сообщает о риске или несогласованности, которые нужно подтвердить: расхождение в объёмах совмещённых занятий, кабинет с небольшим недостатком вместимости, очень ограниченная доступность. - **Информация** (синий) — неблокирующая заметка: «некоторые кабинеты никогда не используются», «у преподавателя нагрузка намного ниже, чем у коллег». #### Где смотреть диагностику - В **верхней полосе** на экране распределения часов и при просмотре расписания. - В списках — рядом с **названием класса** или преподавателя, к которым относится диагностика. - Подробно — на вкладке Формирование (или проверка — в зависимости от режима расписания) с контекстным пояснением к каждому сообщению диагностики. #### Частые сообщения диагностики | Диагностика | Типичная причина | Как исправить | | --- | --- | --- | | Нет подходящего кабинета | Требуется специализация, а кабинета с ней нет | Создать кабинет или снять специализацию | | Несогласованный объём часов в совмещении | У одного класса 2 ч, у другого 3 ч в одной совмещённой группе | Привести объёмы к одному значению или отменить совмещение | | Недостаточная вместимость | Численность больше вместимости кабинета | Назначить кабинет побольше или [несколько кабинетов](#page-glossary.multi-room) | | Доступность без возможного слота | Все слоты отмечены для этого преподавателя как невозможные | Смягчить доступность или перераспределить занятия | | Занятие вне периода отсутствия | Занятие поставлено в промежуток, когда преподаватель отсутствует | Перенести занятие или убрать отсутствие | #### См. также - [Конфликт](#page-glossary.conflict) - [Формирование](#page-glossary.solver) - [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) ### Дисциплина *Source: `help/ru/glossary/subject.md` · id: glossary.subject · Updated: 2026-05-10* *Also known as : учебная дисциплина · учебная единица · UE · модуль* **Дисциплина** — это то, что преподают в рамках [курса](#page-glossary.course): математика, физика, английский язык, бухгалтерский учёт, машинное обучение, управление проектами… Дисциплина — это учебная область как таковая; курс — это та же дисциплина применительно к конкретному классу. Для каждой страны Omniscol предлагает **каталог стандартных дисциплин** (от нескольких сотен до нескольких тысяч, в зависимости от официальных перечней), уже загруженный в учётную запись. Если нужной дисциплины нет, создайте **собственную дисциплину** в Создать. #### Терминология в высшем образовании В учебных программах французских высших учебных заведений используются разные уровни укрупнения: - **UE** (учебная единица) — совокупность курсов или модулей, - **EC** (составной элемент) — часть UE, - **ECUE** (составной элемент UE) — ещё более мелкая единица, - **модуль** — общий термин в дополнительном образовании. Все эти уровни соответствуют одной сущности Omniscol — «дисциплине». Если нужно отразить саму учебную иерархию (UE → EC → ECUE), сделайте это с помощью соглашения об именовании (например, добавьте префикс с кодами: `UE3-EC2-ECUE1 Линейная алгебра`) или через [группы дисциплин](#page-admin.subjects). #### Дисциплина, скопированная в расписание Когда вы назначаете дисциплину классу в расписании, Omniscol создаёт **внутреннюю копию** дисциплины в структуре расписания. Так сделано намеренно: если позже вы удалите или переименуете дисциплину на уровне учреждения, уже составленные расписания сохранят её прежнюю версию. Поэтому **проверяйте написание** собственных дисциплин до того, как использовать их в расписаниях: исправление, внесённое позже, не распространяется на уже настроенные расписания. #### Привязанный тип занятия Назначая дисциплину классу, вы можете указать **[тип занятия](#page-glossary.lesson-type)** (лекция, семинар, практическая работа, экзамен…). Пара `(дисциплина, тип)` образует самостоятельный идентификатор: например, «лекция по математике» и «семинар по математике» — это две независимые записи в структуре расписания. #### Требуемая специализация кабинета Дисциплина может **требовать специализации кабинета** (химия — химическая лаборатория, физкультура — спортивный зал). Это ограничение строго соблюдается при формировании расписания. См. [специализация кабинета](#page-glossary.classroom-specialization). #### Учебный вес Для дисциплины в классе можно задать **учебный вес**: тогда при формировании расписания Omniscol будет стремиться равномерно распределить эту дисциплину по дням недели, а не сосредоточивать её целиком в отдельные дни. #### См. также - [Курс](#page-glossary.course) - [Тип занятия](#page-glossary.lesson-type) - [Занятие](#page-glossary.lesson) - [Управление дисциплинами](#page-admin.subjects) - [Специализация кабинета](#page-glossary.classroom-specialization) ### Доступность преподавателей (пожелания) *Source: `help/ru/glossary/wishes.md` · id: glossary.wishes · Updated: 2026-06-21* *Also known as : недоступность · предпочтения · пожелания преподавателей* **Доступность** преподавателя сообщает программе, какие временные слоты **невозможны** (чёрный цвет, жёсткие ограничения), **нежелательны** (красный цвет, мягкие ограничения) или **предпочтительны** (зелёный цвет). В средней школе говорят также о **пожеланиях** — это то же самое понятие: преподаватель указывает свою теоретическую недельную доступность, и учебное заведение использует её при формировании расписания (возможно, предварительно изменив её или задав ей веса). Формирование расписания **строго** соблюдает невозможные слоты и старается по мере возможности соблюдать нежелательные и предпочтительные с учётом остальных ограничений. #### Два режима в зависимости от типа расписания - **Недельное расписание** — доступность вводится на типовую неделю и подтверждается администрацией до формирования расписания. Последующее изменение отмечается, но ни на что не влияет. - **Календарное расписание** (для аккаунтов Premium) — доступность вводится по датам и сводится в режиме реального времени. Конфликты выявляются по мере ввода. #### Ввод самим преподавателем Преподаватели могут вводить свою доступность сами из своего аккаунта ([портал преподавателя](#page-portal.teacher-portal)) — это существенно экономит время администрации. Им также можно отправить **прямую ссылку общего доступа на экран доступности** (без необходимости входить в систему) с датой окончания срока действия; её создают кнопкой Скачать. #### См. также - [Преподаватель](#page-glossary.teacher) - [Формирование](#page-glossary.solver) - [Доступность и временные ограничения преподавателей](#page-core-concepts.wishes-and-availability) - [Доступность в календарном режиме](#page-timetables.calendar-wishes) ### Замещение / Замена *Source: `help/ru/glossary/substitution.md` · id: glossary.substitution · Updated: 2026-05-14* *Also known as : подмена · замещающий* **Замещение** — это назначение другого преподавателя на занятие, которое должен вести [отсутствующий](#page-glossary.absence) преподаватель. #### Разовое замещение Для конкретного занятия администратор открывает управление замещающими для этого отсутствия и использует Назначить замещающего. Такое назначение действует только для выбранного занятия и имеет приоритет над правилами для длительного отсутствия. #### Правило замещения При длительном отсутствии администратор создаёт одно или несколько правил с помощью Назначить замещающего. В правиле можно указать: - замещающего; - даты действия; - временные слоты; - дисциплины; - классы; - комментарий. Правила применяются в том порядке, в каком они показаны. Если ни одно правило не охватывает занятие, на него по-прежнему влияет отсутствие основного преподавателя. #### Отображение замещений В расписании замещаемый преподаватель по-прежнему виден как отсутствующий основной преподаватель, а замещающий указан на занятии. Подробности о причине отсутствия и комментарии к нему видны в зависимости от прав на просмотр. #### См. также - [Отсутствие](#page-glossary.absence) - [Политики замещений](#page-absences.substitution-policies) - [Разовое замещение занятия](#page-absences.single-lesson-replacement) ### Занятие *Source: `help/ru/glossary/lesson.md` · id: glossary.lesson · Updated: 2026-06-13* *Also known as : урок · сессия · слот · почасовое занятие · intervention* **Занятие** (или *учебное занятие*) — это запланированная единица, поставленная в сетку расписания: именно его вы размещаете, переносите, блокируете, изменяете, отменяете или назначаете на него замещение. У занятия есть: - **класс** или [группа](#page-glossary.group) (те, для кого проводится занятие), - **дисциплина** ([subject](#page-glossary.subject)), - один или несколько **преподавателей** ([совместное преподавание](#page-glossary.co-teaching)), - один или несколько **кабинетов** (см. [несколько кабинетов](#page-glossary.multi-room)), - один или несколько **ресурсов** (переносной проектор, набор планшетов…), - **продолжительность** (обычно 1 или 2 слота сетки площадки), - возможно, **тип** (лекция, семинар, лабораторная работа, экзамен и т. д., задаётся в Создать), - возможно, **заметка** (свободный комментарий с ограничением видимости: только администраторы, администраторы и преподаватели или все). #### Занятие или курс? В интерфейсе Omniscol «занятием» называется единица, поставленная в сетку. Слово **[курс](#page-glossary.course)** относится к самому преподаванию — дисциплине, которую ведут у класса, с её объёмом часов и параметрами: говорят о курсе английского, о часах курса, и один курс даёт одно или несколько занятий в расписании. В интерфейсе то же слово «занятие» стоит и в подписи Тип занятия, и в понятии [сложные занятия](#page-core-concepts.complex-lessons). #### Словарь в зависимости от контекста - **Занятие** — термин интерфейса для плановой единицы в учебном заведении любого типа. - **Урок** — распространённый синоним в начальной и средней школе. - **Intervention** — французский термин высшего образования: преподаватель (*intervenant*) проводит *intervention*, то есть занятие (так говорят и коннекторы Auriga и Aurion). - **Слот** — обозначает скорее место во временной сетке, чем занятие, которое его занимает. - **Почасовое занятие** — занятие, которое проводит внешний преподаватель на почасовой оплате (в отличие от штатного); это не особый тип занятия, меняется только преподаватель. #### Простые занятия, сложные занятия Простое занятие — это один класс или одна группа, один преподаватель, один кабинет, один слот. **Сложные занятия** объединяют несколько занятий: - **[Сдвоенные](#page-glossary.concatenated-lessons)** — два занятия подряд (лабораторная работа на 2 часа — это лабораторная работа на 1 час, сдвоенная с другой такой же). - **[Связанные](#page-glossary.associated-lessons)** — чередование групп на двух занятиях подряд (группа A на биологии, затем на физике, группа B на физике, затем на биологии). - **[Чередующиеся](#page-glossary.alternate-lessons)** — занятия, которые повторяются только раз в две недели (неделя A и неделя B), раз в три недели и так далее. Настраивается в Сохранить. #### Занятия и классы вне временной сетки По умолчанию занятия выравниваются по слотам временной сетки площадки. Но Omniscol работает и с занятиями, которые в неё не укладываются (экзамен на 2 часа, начинающийся в 10:20, при сетке с шагом 50 минут). См. [занятия и классы вне временной сетки](#page-timetables.off-grid-lessons). #### См. также - [Курс](#page-glossary.course) - [Тип занятия (лекция, семинар, лабораторная работа…)](#page-glossary.lesson-type) - [Статус занятия](#page-glossary.lesson-status) - [Формат занятия](#page-glossary.lesson-modality) - [Дисциплина](#page-glossary.subject) - [Сложные занятия](#page-core-concepts.complex-lessons) - [Несколько кабинетов](#page-glossary.multi-room) ### Информационная панель *Source: `help/ru/glossary/panel.md` · id: glossary.panel · Updated: 2026-06-13* *Also known as : экран в холле · входной экран · экран у входа* **Информационная панель** в Omniscol — это публичный экран, настроенный на постоянный показ отфильтрованного расписания. Типичные случаи: - **панель в холле** — экран у входа в школу, на котором прокручиваются занятия текущего дня всех классов, - **панель у кабинета** — экран, закреплённый рядом с дверью и показывающий занятость этого кабинета в течение дня, - **панель в лекционном зале или лаборатории** — показ ближайших занятий в специализированном помещении. #### Уникальная ссылка для каждой панели У каждой созданной панели есть **уникальная ссылка**, которую нужно открыть в браузере в полноэкранном режиме. Прокрутка и обновление выполняются автоматически. #### Настройка При создании панели вы настраиваете: - **фильтр отображаемых занятий**: какие параллели, какие классы, какие площадки, какие кабинеты, - отображаемый **временной диапазон**, - **размер шрифта**, - **информационную полосу** (бегущий текст, логотип), - **цвета и тему оформления**. Если требуется выраженный фирменный стиль, веб-страницу, на которой отображается панель, можно также полностью заменить, чтобы встроить её в уже существующую систему динамического отображения информации. См. [Визуальная настройка](#page-panels.customization). #### См. также - [Информационная панель в холле](#page-panels.lobby-panel) - [Панель у кабинета](#page-panels.room-panel) - [Визуальная настройка](#page-panels.customization) ### Кабинет *Source: `help/ru/glossary/classroom.md` · id: glossary.classroom · Updated: 2026-06-13* *Also known as : кабинеты · аудитория · учебное помещение · класс-кабинет · закреплённый кабинет* **Кабинет** в Omniscol — это физическое помещение, в котором может проходить занятие. Каждый кабинет относится к одной [площадке](#page-glossary.site). У кабинета есть: - **название** («101», «Актовый зал», «Лаборатория химии 3»), - **вместимость** (число учеников, которое можно разместить; для формирования расписания это важнейшее поле), - возможно, параметр «Максимальное количество классов», если это **[большой кабинет](#page-glossary.large-room)**, способный принимать несколько занятий одновременно (экзаменационный зал, театр, спортзал, бассейн, открытая площадка), - возможно, **[специализация](#page-glossary.classroom-specialization)** (химия, информатика, спорт, мультимедиа и т. д. — одна метка на кабинет), - возможно, **теги** или произвольные комментарии (флипчарт, стационарный проектор, розетки для учеников и т. д.), - возможно, **здание**, - **часы работы** (полезны для кабинетов, которые делят с другим учебным заведением или которые открыты только в определённые дни). #### Назначение на занятия У занятия может быть один или [несколько кабинетов](#page-glossary.multi-room). Когда вы назначаете кабинет вручную, Omniscol: - **заранее отфильтровывает** неподходящие кабинеты (не та специализация, недостаточная вместимость, недоступность, не та площадка), показывая их полупрозрачными, - **сортирует** подходящие кабинеты по степени соответствия (звёзды: оптимальная заполняемость и т. д.), - позволяет вам принудительно выбрать неподходящий кабинет, но выдаёт предупреждение. #### Вместимость и размер Вместимость — важнейшее поле. Если есть сомнения и вы уверены, что кабинет будет достаточно большим, укажите большое число. Если вы занизите вместимость, при формировании расписания допустимые варианты будут отвергаться или появятся предупреждения. #### Большой кабинет: несколько занятий одновременно Поле **Максимальное количество классов** превращает кабинет в **[большой кабинет](#page-glossary.large-room)**: в нём можно проводить одновременно несколько разных занятий (с разными преподавателями и группами) в пределах этого числа и общей вместимости — как правило, это экзаменационный зал, театр, спортзал, бассейн или открытая площадка. Эта настройка доступна только для кабинета, у которого есть **[специализация](#page-glossary.classroom-specialization)**. Если поле оставить пустым, в кабинете проходит только одно занятие за раз. #### Специализация **Специализация** (химия, информатика, спорт, мультимедиа, кабинет для самоподготовки…) — это произвольная метка, уникальная для каждого кабинета. Затем она используется при назначении дисциплины классу, чтобы указать, что нужен кабинет именно с такой меткой. Алгоритм строго соблюдает это ограничение. #### Кабинет, закреплённый за классом Во многих конфигурациях начальной и средней школы за каждым классом закреплён свой кабинет (занятия проходят в нём по умолчанию, а перемещаются только преподаватели). Это можно настроить на уровне класса (см. [создание класса](#page-timetables.creating-classes)). #### Кабинеты на двух виртуальных площадках Если вы создали две виртуальные [площадки](#page-glossary.site) для одного физического места (например, две школы, которые делят одно здание), кабинет может относиться только к одной из них. Чтобы он был доступен для обеих школ, продублируйте его на обеих площадках и **укажите для него непересекающиеся часы работы**. Omniscol не отличает один и тот же кабинет, общий для двух площадок, от двух одноимённых кабинетов, поэтому автоматически не сопоставляет эти две записи, и избегать двойного бронирования реального помещения нужно вам самим. #### См. также - [Площадка](#page-glossary.site) - [Подразделение](#page-glossary.campus) - [Специализация кабинета](#page-glossary.classroom-specialization) - [Несколько кабинетов](#page-glossary.multi-room) - [Большой кабинет](#page-glossary.large-room) - [Ресурс](#page-glossary.resource) ### Каникулы *Source: `help/ru/glossary/holidays.md` · id: glossary.holidays · Updated: 2026-06-26* *Also known as : выходные · праздничные дни · школьные каникулы* **Каникулы** — это периоды закрытия учебного заведения, привязанные к [учебному году](#page-glossary.school-year): школьные каникулы, дополнительные выходные между праздником и выходными и праздничные дни. У каждого периода есть название, дата начала и дата окончания. При создании учебного года Omniscol может предложить импортировать общие каникулы страны, указанной в настройках, если для выбранного периода есть данные. Затем список можно дополнять и корректировать вручную. #### Влияние на расписание Влияние каникул зависит от типа расписания: - **Повторяющееся расписание (недельное или циклическое)**: при публикации каникулы отменяют занятия затронутых дней — повторяющиеся занятия в эти дни не проходят, и статистика это учитывает. - **Календарное расписание**: занятие можно поставить на день каникул, но это создаёт конфликт; при автоматическом формировании расписания такое занятие может быть перенесено, если оно не заблокировано. Каникулы означают **общее** закрытие учебного заведения. Чтобы исключить период в более узких рамках: - [отсутствие класса](#page-absences.class-and-student-absences) снимает класс с занятий на заданный период; - в календарном расписании [временные окна](#page-glossary.date-windows) ограничивают период проведения конкретного курса. #### Где настраивать Каникулы настраиваются для каждого учебного года, на странице [учебных годов](#page-admin.school-year): по одному периоду или в таблице. #### См. также - [Учебный год](#page-glossary.school-year) - [Временно́е окно](#page-glossary.date-windows) - [Учебные годы](#page-admin.school-year) ### Класс *Source: `help/ru/glossary/class.md` · id: glossary.class · Updated: 2026-07-05* *Also known as : поток · набор · когорта · группа слушателей* В Omniscol **класс** — это основная сущность, объединяющая учеников, которые проходят одну программу обучения в одной школе в течение определённого периода. Курсы назначаются классу: курс адресован классу (целиком или через [группу](#page-glossary.group), которая является его частью), а не наоборот. У класса есть: - **название** (например, «7А», «ИВТ-21», «Магистратура, 1-й год, Маркетинг»), - **уровень** (уровни задаются в Создать — например, 5-е, 6-е, 7-е, 8-е и 9-е классы в основной школе, 1–3-й год бакалавриата), - при необходимости **подразделение** (опция Premium; филиал, факультет, направление или другое организационное объединение), - **площадка** по умолчанию (физическое место и кабинеты, используемые по умолчанию), - при необходимости **закреплённый кабинет**, в котором занятия проходят по умолчанию, - **плановая численность** (ожидаемое число учеников; необязательное поле, но полезное для подбора кабинетов). #### Терминология в разных контекстах Слово «класс» приобретает очень разные оттенки в зависимости от типа учебного заведения. Все они сводятся к одной и той же сущности Omniscol: - **Начальная и средняя школа** — «класс» в обычном школьном смысле (4Б, 7А, 11-й класс физико-математического профиля). - **Высшее образование** — часто «поток», «набор», «когорта», иногда «траектория» или «специализация». Набор из 200 студентов — это класс; подгруппы для семинарских и лабораторных занятий — это [группы](#page-glossary.group), а не классы. - **Непрерывное образование** — «поток», «когорта», «группа слушателей». > _Premium_ В высшем образовании «класс» здесь означает стабильную группу студентов или учеников с общим расписанием или общей траекторией обучения. Часто это когорта, учебная группа или иногда траектория. Не путайте его с блоком дисциплин, модулем или курсом. Когда вы видите в Omniscol слово «класс», читайте его как «когорта, проходящая эту программу в этот период», а не как «физическое помещение» (оно называется [кабинет](#page-glossary.classroom)). #### Различие между классом и группой Классическая ошибка — путать класс и группу. Группы **всегда** являются частями класса. Если нужно собрать вместе учеников из нескольких классов (например, изучающих немецкий язык из 8А, 8Б и 8В, у которых общее занятие), новый класс создавать не нужно: используйте [совмещение групп](#page-glossary.alignment) или [группу групп](#page-glossary.groups-of-groups). #### См. также - [Группа](#page-glossary.group) - [Уровень](#page-glossary.level) - [Разделение класса](#page-glossary.class-division) - [Совмещение групп](#page-glossary.alignment) - [Подразделение](#page-glossary.campus) - [Площадка](#page-glossary.site) - [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) ### Конфликт *Source: `help/ru/glossary/conflict.md` · id: glossary.conflict · Updated: 2026-09-23* *Also known as : предупреждение · обнаруженная несовместимость · пересечение · коллизия* **Конфликт** в Omniscol — это ситуация, когда два ограничения невозможно выполнить одновременно. Примеры: - преподаватель назначен на два занятия в один и тот же временной слот; - кабинет забронирован двумя занятиями на одно и то же время; - класс, преподаватель или кабинет уже заняты в это время занятием из другого опубликованного расписания или из связанного аккаунта; - группа учеников должна одновременно находиться в двух местах; - занятие не соответствует специализации, которая требуется для его дисциплины; - у занятия суммарная вместимость (сумма назначенных кабинетов) меньше численности группы; - совмещение, в котором у совмещённых групп разный объём часов. #### Обнаружение в реальном времени Omniscol обнаруживает конфликты **по ходу ввода**, а не только в момент формирования расписания: - красная полоса в верхней части экрана распределения часов; - значок [triangle-exclamation] на соответствующих занятиях и классах; - список конфликтов с переходом по щелчку («лупа» ведёт к подробностям); - в этих подробностях значок [calendar-days] и название другого расписания указывают на занятие, пришедшее из этого расписания (см. [как узнать один и тот же класс в разных расписаниях](#page-timetables.multiple-active-timetables--same-entity)). #### Намеренные конфликты Не все конфликты нужно устранять. Некоторые из них намеренные: - одна и та же группа на экзамене и в кабинете для учеников с дополнительным временем (одни и те же ученики ожидаются в двух кабинетах в разных условиях); - численность больше вместимости кабинета, когда вы знаете, что придут не все записанные. Вы можете **оставить конфликт**: предупреждение остаётся на экране, но работе не мешает. #### Блокирующие конфликты Некоторые несоответствия не дают **автоматическому формированию расписания** завершиться успешно: - нет кабинета, подходящего для дисциплины с заданным объёмом часов; - доступность преподавателя полностью несовместима с его курсами; - совмещение, которое по своей структуре невозможно. Такие конфликты помечаются как **критические**; пока они есть, кнопка Сформировать расписание недоступна. #### См. также - [Диагностика](#page-glossary.diagnostic) - [Формирование](#page-glossary.solver) - [Обнаружение и устранение конфликтов](#page-timetables.conflicts) ### Курс *Source: `help/ru/glossary/course.md` · id: glossary.course · Updated: 2026-06-26* *Also known as : дисциплина класса · курс класса · строка курса* **Курс** — это преподавание [дисциплины](#page-glossary.subject) [классу](#page-glossary.class) (или одной из его [групп](#page-glossary.group)) в течение определённого периода. Это базовая единица вашей **учебной нагрузки**: что нужно преподавать, кому и в каком объёме — независимо от того, в какой момент это окажется в расписании. У курса есть: - **дисциплина** (то, что преподаётся), - при необходимости **[тип занятия](#page-glossary.lesson-type)** (лекция, семинар, практика, экзамен…) — пара «дисциплина и тип» образует отдельный курс, - плановый **объём часов** (часов в неделю или число занятий), - один или несколько назначенных **преподавателей**, - при необходимости **ограничения**: учебный вес, требуемый специализированный кабинет, несовместимости, пожелания по размещению. #### Курс, дисциплина, занятие: не путайте - [Дисциплина](#page-glossary.subject) — это дисциплина в чистом виде (математика) в каталоге школы. - **Курс** — это дисциплина, *закреплённая за классом*, с объёмом и атрибутами: «математика в 9 «А» классе, 4 часа в неделю, в формате семинара». - [Занятия](#page-glossary.lesson) — это конкретные **экземпляры**, которыми курс реализуется в сетке (четыре еженедельных слота, которые действительно размещены). Таким образом, курсу соответствует одно или несколько занятий; удаление занятия не удаляет курс. #### Неявное понятие в интерфейсе Интерфейс в этом месте не использует слово «курс»: вы создаёте его, **назначая дисциплину классу** (вкладка Курсы класса), а затем указывая объём, тип и преподавателей. Это понятие полезно для рассуждений — особенно в высшем образовании, где курс (определение) чётко отделяют от его занятий (экземпляров). #### Все курсы вместе: программа обучения Все курсы класса или направления подготовки образуют его **программу обучения**. В зависимости от уровня и принятой в учебном заведении терминологии говорят также об **учебном плане**, **описании программы**, **цикле обучения** или **программе курса**. Omniscol не навязывает эту терминологию: он работает с курсами (типизированными дисциплинами класса), а их сумма и *есть* учебный план. #### См. также - [Дисциплина](#page-glossary.subject) - [Занятие](#page-glossary.lesson) - [Тип занятия](#page-glossary.lesson-type) - [Курсы, занятия и типы занятий](#page-core-concepts.lessons-and-types) - [Организация данных: дисциплины, классы, расписания](#page-core-concepts.data-model) - [Настройка дисциплин по классам](#page-timetables.creating-classes) ### Недельное расписание *Source: `help/ru/glossary/weekly-timetable.md` · id: glossary.weekly-timetable · Updated: 2026-05-15* *Also known as : типовая неделя · еженедельное · повторяющееся · расписание на неделю* **Недельное расписание** строится на **типовой неделе**: занятия задаются как повторяющиеся по дням недели. При публикации выбираются **диапазоны недель** учебного года, на которые распространяется типовая неделя. Этот режим используется в: - начальном и среднем образовании (начальная, основная и старшая школа), - бакалавриате на некоторых факультетах университетов, - центрах изучения языков с фиксированным графиком. #### Автоматическое формирование Алгоритм автоматического формирования расписания работает в этом режиме. Он ищет оптимальное размещение занятий в типовой неделе, соблюдая: - доступность преподавателей, - требуемые специализации кабинетов, - разделения, совмещения, несовместимости, - педагогические весовые коэффициенты (балансировка дисциплин по дням). См. [Формирование](#page-glossary.solver). #### Чередование недель С помощью функции [чередования недель](#page-glossary.alternate-lessons) можно сделать так, чтобы занятия проходили только раз в две недели (или раз в три и т. д.) — недели A/B, 1/2 и так далее. Настраивается в Сохранить. #### Каникулы и чередование Каникулы могут нарушить чередование A/B. Если непосредственно перед каникулами была неделя A, а после них нужно продолжить с недели B, можно создать **виртуальный сдвиг** на шкале времени (щелчок по соответствующим неделям). #### Доступность, подтверждённая заранее Доступность преподавателей подтверждается заранее (до формирования расписания). Любое последующее изменение у преподавателя отмечается, но не влияет на уже рассчитанное расписание. В [режиме календаря](#page-glossary.calendar-mode) всё иначе: там доступность консолидируется в реальном времени. #### См. также - [Расписание](#page-glossary.timetable) - [Выбор типа расписания](#page-overview.timetable-modes) - [Автоматическое формирование](#page-glossary.solver) - [Чередующиеся занятия](#page-glossary.alternate-lessons) ### Несколько кабинетов (одно занятие в нескольких кабинетах) *Source: `help/ru/glossary/multi-room.md` · id: glossary.multi-room · Updated: 2026-06-13* *Also known as : много кабинетов · несколько кабинетов на одно занятие · разбивка по кабинетам · разбивка занятия по кабинетам* В Omniscol одному занятию можно назначить **несколько кабинетов**. Эта возможность доступна **для всех типов расписания**: [недельного](#page-glossary.weekly-timetable), [циклического](#page-glossary.cyclic-timetable) и [календарного](#page-glossary.calendar-mode). #### Типичные случаи использования - **Экзамены в нескольких лекционных залах** — экзамен для 200 участников, распределённых по трём лекционным залам (вместимость 70 + 60 + 80), с одним ответственным преподавателем. Вместимость считается как сумма назначенных кабинетов. - **Лекция с трансляцией** — лекция в основном лекционном зале, которая транслируется по видеосвязи в дополнительный кабинет (например, на другой площадке или даже для класса, полностью обучающегося дистанционно). - **Практические занятия в двух кабинетах без деления группы** — когда практическое занятие для 30 учеников не помещается ни в один компьютерный кабинет, но тот же преподаватель может одновременно наблюдать за ним в двух соседних кабинетах (15 + 15). #### Общая вместимость равна сумме кабинетов Когда вы назначаете занятию несколько кабинетов, Omniscol складывает их вместимость, чтобы проверить, помещается ли группа. Ложных предупреждений о превышении вместимости больше нет, если суммы достаточно. > **Совет.** Если после добавления второго кабинета предупреждения о > превышении вместимости исчезли, это в точности ожидаемое поведение: > сумма теперь покрывает численность. #### Ограничение, о котором нужно знать Если сумма вместимости остаётся **меньше** численности группы, Omniscol по-прежнему показывает конфликт — решать, как его устранить, должен администратор (добавить кабинет, уменьшить группу или принять конфликт, если он намеренный, например когда известно, что придут не все зачисленные). #### См. также - [Кабинет](#page-glossary.classroom) - [Экзамены в нескольких кабинетах в высшем образовании](#page-higher-ed.multi-room-exams) - [Площадка](#page-glossary.site) ### Несовместимость (между дисциплинами) *Source: `help/ru/glossary/incompatibility.md` · id: glossary.incompatibility · Updated: 2026-06-13* *Also known as : исключение · запрет цепочки · запрет последовательности* **Несовместимость** — это педагогическое ограничение, которое запрещает одной дисциплине **идти после** другой. Правило **направленное**: вы объявляете, что «за дисциплиной A не должна следовать дисциплина B», и порядок важен: «A, затем B» и «B, затем A» — два разных правила. Типичный случай: «никакой математики сразу после физкультуры». Несовместимости настраиваются на уровне класса, на вкладке «Несовместимость» текущего расписания. #### Пределы действия запрета Окно, в котором действует запрет, вы выбираете при создании правила: - **Подряд** — не в занятии, которое идёт сразу следом, в тот же день. - **Полдня** — не позже в пределах той же половины дня. - **День** — не позже в пределах того же дня. - **Неделя** — не позже в пределах той же недели. - **Всё время** *(расписание «Цикл» или «Календарь»)* — никогда после, за весь период. Это инструмент **последовательности**: закончить один модуль, прежде чем переходить к тому, который от него зависит. Отдельно: параметр **самонесовместимость** дисциплины (общая настройка) не позволяет одной и той же дисциплине повторяться дважды в течение дня у ученика. Часто это проще, чем множество правил для пар дисциплин. #### Отличие от временных ограничений курса Не путайте с **временными ограничениями** курса ([clock]), которые задают **абсолютное** размещение занятий одного курса в сетке. Несовместимость же касается **относительного** порядка двух дисциплин. | Ограничение | Касается | Пример | | --- | --- | --- | | **Несовместимость** | **порядка** двух дисциплин | «никакой математики после физкультуры» | | Временное ограничение курса | абсолютного **размещения** курса | «никакой математики первым занятием» | | Специализация | **кабинета**, нужного дисциплине | «для химии нужна лаборатория» | #### Ограничение для оптимизации, а не блокировка Несовместимость — не блокирующее ограничение: алгоритм формирования расписания рассматривает её как штраф, который стремится устранить, наравне с нежелательной доступностью. Если другие ограничения не оставляют альтернативы, несовместимость может сохраниться в сформированном расписании; тогда [диагностика](#page-glossary.diagnostic) сообщает о ней, чтобы вы могли принять решение. Не создавайте лавину несовместимостей: каждая уменьшает свободу алгоритма и увеличивает время расчёта. Чтобы равномерно распределить дисциплину по неделе, часто эффективнее учебный вес дисциплины. #### См. также - [Дисциплина](#page-glossary.subject) - [Формирование расписания — как оно согласует ограничения](#page-glossary.solver) ### Область планирования *Source: `help/ru/glossary/planning-domain.md` · id: glossary.planning-domain · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Настраиваемые роли** *Also known as : охват планирования* **Область планирования** назначает администратору **охват** — данные, которыми он управляет, — и **права** — действия, которые он может с ними выполнять. Если в аккаунте несколько [подразделений](#page-glossary.campus), направлений подготовки или учебных заведений делят одно [расписание](#page-glossary.timetable), каждый планировщик работает со своей частью. Пока у администратора нет ни одной области, он сохраняет полный доступ к аккаунту. #### Охват Охват описывается по измерениям, от самого широкого к самому узкому: сначала подразделения и [дисциплины](#page-glossary.subject), затем расписание, его [площадки](#page-glossary.site) и их [кабинеты](#page-glossary.classroom), его [классы](#page-glossary.class) и их [группы](#page-glossary.group). Каждое измерение ограничивается критерием — точное значение, префикс, содержащееся значение, числовой порог, — и [занятие](#page-glossary.lesson) попадает в охват, когда удовлетворяет всем ограниченным измерениям. #### Права Права определяют, что планировщик может делать со своим охватом: создавать, изменять или удалять сущности и занятия, а среди детальных прав на изменение — положение на сетке, преподавателя, кабинет, формат, ссылку на видеоконференцию, статус, продолжительность, комментарий и формирование расписания. Принцип здесь вычитающий: разрешено всё, а то, что область запрещает, снимается галочкой. Чтение всегда остаётся открытым: область ограничивает то, что можно изменять, но никогда не то, что можно видеть. #### Область или настраиваемая роль [Настраиваемая роль](#page-admin.customroles) определяет, **какие операции** выполняет администратор: какие модули и в каком режиме — просмотр, изменение или удаление. Область определяет, **с какими данными** он работает. Обе назначаются одному и тому же человеку и дополняют друг друга. #### Несколько областей Администратор может получить несколько областей, каждую со своим охватом и своими правами. Они складываются, не сливаясь воедино: действие разрешено, как только его охватывает хотя бы одна область. #### См. также - [Области](#page-admin.planning-domains) - [Настраиваемые роли](#page-admin.customroles) - [Подразделение](#page-glossary.campus) - [Площадка](#page-glossary.site) ### Общий курс *Source: `help/ru/glossary/transverse-course.md` · id: glossary.transverse-course · Updated: 2026-06-21* *Also known as : общие курсы · совместный курс · сквозной курс · межклассный курс · межпрофильный курс · сведение групп* **Общий курс** объединяет учеников **нескольких классов или траекторий обучения** на одном курсе — общее ядро, дополнительные профили, курсы по выбору, общие для нескольких траекторий обучения, лекции для нескольких классов сразу. В Omniscol его чаще всего моделируют с помощью **[группы групп](#page-glossary.groups-of-groups)** (в других программах это называют «сведением»): вы объединяете соответствующие группы в одну сущность и задаёте курс для неё. Тогда курс появляется во всех классах, к которым относятся эти группы, и его **можно изменить и после создания** — добавить или убрать группу, не затрагивая структуру. Этот вариант предпочтителен, особенно в высшем образовании и в режиме календаря. Для **разового** случая, без создания именованной сущности, можно также **назначить несколько групп прямо на занятие** в его поле выбора группы. Это быстрее, но менее наглядно, и результат труднее использовать повторно. Если классы **параллельные и одинаковые по структуре** (с одинаковым количеством часов), особенно в недельном или циклическом расписании, по-прежнему подходит **[совмещение](#page-glossary.alignment)**: один курс на несколько групп, тот же временной слот, тот же преподаватель, тот же кабинет — ценой жёстко заданного состава. #### См. также - [Группа групп](#page-glossary.groups-of-groups) - [Совмещение групп](#page-glossary.alignment) - [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) - [Группы групп](#page-core-concepts.groups-of-groups) ### Отсутствие *Source: `help/ru/glossary/absence.md` · id: glossary.absence · Updated: 2026-05-14* *Also known as : недоступность · отпуск · больничный · разовое отсутствие* **Отсутствие** в Omniscol — это объявление о том, что сущность не будет присутствовать в течение заданного периода. Отсутствовать могут преподаватели, классы, ученики и, если включён модуль Управление персоналом, сотрудники. Одобренное отсутствие может изменить отображение занятий: - **преподаватель отсутствует, замещения нет**: занятие помечено как затронутое, преподаватель зачёркнут; - **преподаватель отсутствует, есть [замещающий](#page-glossary.substitution)**: замещающий показан рядом с зачёркнутым штатным преподавателем; - **класс отсутствует**: занятия класса скрыты из отображения на этот период; - **ученик отсутствует**: учёт ведётся по ученику, занятия его класса не меняются. #### Статусы отсутствия - **одобренный**: отсутствие подтверждено и учитывается. - **в ожидании**: заявку подал соответствующий пользователь, её должен подтвердить администратор. - **отвергнуто**: заявка отвергнута. - **отменено**: заявка отменена тем, кто её подал. Отображение расписаний меняют только отсутствия со статусом **одобренный**. #### Поля отсутствия - **Сущность**: преподаватель, класс, ученик или сотрудник, если включён модуль Управление персоналом. - **Диапазон дат**: начало и окончание. Отсутствие без определённого конца нужно отслеживать явно; если окончание не указано, технической границей может служить конец учебного года. - **Временной диапазон**: весь день или конкретные временные слоты. - **Фильтры**: классы, дисциплины или назначения, в зависимости от типа сущности. - **Причина**: выбирается из предложенного списка; администратор может ввести собственную причину. - **Комментарий**: короткий произвольный текст. - **Статус**: одобрено, в ожидании, отвергнуто или отменено. #### См. также - [Замещение](#page-glossary.substitution) - [Модуль Управление отсутствиями — обзор](#page-absences.overview) - [Объявить об отсутствии](#page-absences.declaring) ### Площадка *Source: `help/ru/glossary/site.md` · id: glossary.site · Updated: 2026-05-10* *Also known as : место проведения · главное здание · филиал* **Площадка** в Omniscol — это физическое место, где проходят занятия. На площадке находятся [кабинеты](#page-glossary.classroom) и [ресурсы](#page-glossary.resource). Не путайте её с [подразделением](#page-glossary.campus) — это организационное понятие: отделение, факультет, кластер или иная внутренняя группировка. Площадка определяет часы работы, кабинеты и время в пути; подразделение нужно скорее для классификации и фильтрации. В каждом расписании есть хотя бы одна площадка. Если все ваши здания находятся в одном месте, достаточно одной площадки. Если у вашего учебного заведения несколько площадок, а преподаватели или ученики перемещаются между ними, создайте столько площадок, сколько нужно, и **укажите время в пути между ними**: иначе при формировании расписания преподаватели или ученики могут «телепортироваться». #### Временная сетка на уровне площадки У каждой площадки своя **временная сетка**: часы занятий, перерывы, обед, закрытые периоды. Она определяется автоматически по введённым данным, но её следует настроить: добавить перерывы, обеденный перерыв и закрытые периоды (например, среда после обеда или суббота). #### Практический случай: две виртуальные площадки для одного места Иногда (но редко) бывает полезно создать две «виртуальные площадки» для одного физического места, которое делят две структуры (например, основная и старшая школа) с разными временными сетками, но общими преподавателями. Время в пути между двумя виртуальными площадками при этом равно нулю. Не забудьте продублировать общие кабинеты на обеих площадках и задать для них непересекающиеся часы работы (см. [кабинет](#page-glossary.classroom)). #### Когда лучше завести два аккаунта, а не две площадки Если у двух отдельных учебных заведений **нет общих преподавателей** (или немногочисленные общие преподаватели работают сначала на одной площадке, а затем на другой в строго определённые дни), часто проще использовать два отдельных аккаунта Omniscol. Несколько площадок необходимы, когда нужно смоделировать реальные перемещения преподавателей или учеников. Если подключён **Премиум**, есть ещё один вариант: опубликовать на одном аккаунте **два расписания параллельно** (см. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables)), по одному на каждую площадку, вместо того чтобы настраивать две площадки в одном расписании. И при нескольких аккаунтах, и при нескольких параллельных расписаниях можно делиться занятостью преподавателей и кабинетов, при этом выявляются перекрёстные конфликты (планировщик может отключить эту проверку). Если аккаунтов несколько, для настройки связи между ними обратитесь к команде Omniscol. Источником занятости общих сущностей служат только рабочие, опубликованные расписания. #### См. также - [Кабинет](#page-glossary.classroom) - [Ресурс](#page-glossary.resource) - [Подразделение](#page-glossary.campus) - [Несколько площадок в высшем образовании](#page-higher-ed.multi-site) ### Подразделение *Source: `help/ru/glossary/campus.md` · id: glossary.campus · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : филиал · факультет · департамент* > _Premium_ **Подразделение** позволяет различать несколько филиалов, факультетов или департаментов в рамках одного аккаунта Omniscol. Подразделения **доступны только для аккаунтов Premium** и остаются необязательными: создавайте их, только если они действительно помогают отразить вашу организацию. Это понятие **организационное**. Оно не заменяет [площадку](#page-glossary.site), которая описывает скорее географическую или физическую реальность: место, временную сетку, кабинеты, время в пути. Подразделение особенно полезно, когда площадки не совпадают с вашей логической организацией. Примеры: - несколько факультетов используют одни и те же здания; - несколько школ одной группы пересекающимся образом используют несколько площадок; - на одной физической площадке размещаются несколько департаментов или направлений подготовки. Даже когда подразделения и площадки во многом совпадают, это понятие может пригодиться для удобства фильтров и группировок. #### Для чего нужно подразделение Подразделение нужно прежде всего для того, чтобы: - группировать классы по единой организационной структуре; - упрощать некоторые фильтры и группировки, в частности в диагностике конфликтов. Само по себе подразделение не задаёт временную сетку, время в пути или жёсткое ограничение размещения. За это по-прежнему отвечают площадки, кабинеты, ресурсы и ограничения расписания. #### Где настроить Подразделения создаются на странице [общие параметры](#page-admin.parameters), под уровнями классов. После этого каждый класс можно отнести к подразделению, и это наполняет соответствующие фильтры и группировки. #### См. также - [Площадка](#page-glossary.site) - [Кабинет](#page-glossary.classroom) - [Класс](#page-glossary.class) - [Уровень](#page-glossary.level) - [Как обнаружить и устранить конфликты](#page-timetables.conflicts) ### Политика распределения часов *Source: `help/ru/glossary/distribution-policy.md` · id: glossary.distribution-policy · Updated: 2026-09-14* *Also known as : правило распределения · предварительное планирование* Курс за курсом политика распределения часов описывает занятия, которые должно содержать расписание: для какого контингента, с какими преподавателями и в каких кабинетах, в каком количестве и какой продолжительности. Она относится к **предварительному планированию**: решается до того, как появится хоть одно занятие, и нередко не планировщиком — учебный отдел утверждает программу обучения, а планировщик её применяет. Она состоит из **правил**. Правило описывает серию одинаковых занятий: > Группа А · Е. А. Смирнова · 4 занятия по 2 ч Для курса правил столько, сколько нужно: по одному на каждый контингент, продолжительность или преподавателя, которые чем-то отличаются от остальных. Политика **необязательна**. Курс без политики распределяется вручную или автоматическим распределением, как и любой другой. Там, где она есть, она служит дважды: она **создаёт** недостающие занятия в точности так, как описывает их; она **измеряет расхождение** между тем, что она ожидает, и тем, что на самом деле содержит расписание, — постоянно. Она встаёт между двумя вещами, которые связывает: - **курсом** и его объёмом часов, выраженным с точки зрения ученика — 24 ч финансового анализа независимо от того, есть ли у класса [разделения](#page-glossary.class-division); - **занятиями**, фактически построенными на экране распределения часов, где объём, который ученик проходит один раз, может повторяться столько раз, сколько групп нужно обслужить. О том, как её применять, см. [Политика распределения](#page-timetables.distribution-policy). ### Преподаватель / Приглашённый специалист *Source: `help/ru/glossary/teacher.md` · id: glossary.teacher · Updated: 2026-05-10* *Also known as : педагог · лектор · тренер · инструктор* В Omniscol **преподавателем** называется любой человек, который ведёт занятия. К преподавателям относятся: - **штатные преподаватели** (на постоянной ставке, faculty), - **внешние преподаватели** (приглашённые специалисты, привлекаемые эпизодически), - **visiting professors** (приглашённые преподаватели вузов, лекторы), - **тренеры** (непрерывное образование, мастер-классы), - **эксперты** (специалисты, которых привлекают эпизодически ради их экспертизы). В зависимости от традиций вашего учебного заведения вы можете говорить «преподаватель», «педагог», «приглашённый специалист», «тренер» — Omniscol подстраивается под ваш словарь с помощью названий (см. параметры), но внутри все они представлены одной и той же сущностью. #### Создание Преподавателей создают на уровне школы на экране Преподаватели. Вы указываете: - имя, фамилию, логин, пароль, - адрес электронной почты (он нужен для приглашения и для ссылки «Забыли пароль?»), - при необходимости внешний идентификатор (табельный номер, ID в школьной информационной системе), - **преподаваемые дисциплины** (это упростит дальнейшее назначение на курсы), - **рабочие часы** (число запланированных часов в неделю; по умолчанию они переносятся в новые расписания). #### Назначение в расписание После создания на уровне школы преподавателей нужно **назначить в расписание** через Назначить преподавателей. Этот шаг разделяет «доступный персонал» (уровень школы) и «персонал, задействованный в этом расписании» (уровень расписания). #### Доступность Преподаватель может указать свою [доступность](#page-glossary.wishes) (часы, когда занятия невозможны, нежелательны или предпочтительны). Для недельных расписаний её должен подтвердить администратор; для календарных расписаний она сводится воедино в реальном времени. В средней школе говорят также о **пожеланиях**. #### Внешние преподаватели (приглашённые специалисты) О **внешних преподавателях** см. отдельную статью: [Внешний преподаватель / приглашённый специалист](#page-glossary.external-teacher). #### Виртуальный преподаватель Кнопка Виртуальный создаёт *виртуального преподавателя* — временную карточку для вакантной должности; рядом с её именем отображается значок-привидение. Когда реальный человек принят на работу, вы превращаете карточку в настоящего преподавателя с помощью кнопки в её строке. Это удобно, чтобы подготовить начало учебного года, пока не закрыты все вакансии. #### См. также - [Внешний преподаватель (приглашённый специалист)](#page-glossary.external-teacher) - [Доступность](#page-glossary.wishes) - [Управление преподавателями](#page-admin.teachers) - [Назначение преподавателей в расписание](#page-timetables.assigning-teachers) ### Публикация расписания *Source: `help/ru/glossary/publication.md` · id: glossary.publication · Updated: 2026-06-13* **Опубликовать** расписание — значит ввести его в эксплуатацию. На выбранных вами **неделях учебного года** опубликованное расписание передаёт свои **занятия** всем остальным модулям: Главная страница, Расписание, Сводная панель, Управление отсутствиями и даже Администрирование — через расписания преподавателей и распределение учеников. Занятия, у которых статус — Черновик или Отменен, туда не попадают. Сформированное расписание **не публикуется автоматически**. Пока оно не опубликовано, это черновик, песочница: его свободно готовят в модуле «Управление расписанием», ничего не меняя в других местах; видят его только администраторы. #### Как опубликовать На главной странице модуля «Управление расписанием»: 1. Выберите нужный учебный год. 2. Нажмите Публикация расписаний (Публикация расписаний). 3. На появившейся сетке выберите недели для каждого расписания. 4. Сохраните. #### Одна публикация на неделю (стандартный аккаунт) В стандартном аккаунте на одну неделю допускается **только одна публикация**. Если вы хотите опубликовать два разных расписания, они должны относиться к непересекающимся диапазонам недель. #### Одновременные публикации В Premium — а в виде исключения и в аккаунте Standard, если активация оговорена договором, — несколько расписаний можно опубликовать на одни и те же недели: при просмотре они объединяются. Этот случай подробно описан на странице [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) и на полной странице о публикации. #### Расписание в режиме календаря: бинарная публикация Расписание в [режиме календаря](#page-glossary.calendar-mode) не публикуется по диапазонам недель (его занятия уже датированы по отдельности): публикация бинарная — расписание либо опубликовано, либо нет. #### См. также - [Расписание](#page-glossary.timetable) - [Учебный год](#page-glossary.school-year) - [Как опубликовать расписание — полная страница](#page-timetables.publication) - [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables) ### Разделение класса *Source: `help/ru/glossary/class-division.md` · id: glossary.class-division · Updated: 2026-05-10* *Also known as : разделение групп* **Разделение** объединяет несколько [групп](#page-glossary.group) **одного класса**, которые должны **заниматься в одном и том же временном слоте**. На практике это выглядит так: ученика нельзя «раздвоить» (он не может находиться в двух местах одновременно), поэтому если ваши подгруппы лабораторного практикума (подгруппа 1 и подгруппа 2) должны одновременно выполнять разные лабораторные работы, алгоритму формирования расписания нужно знать, что вместе они составляют разделение. Тогда он: - ставит оба занятия в один временной слот, - в разных кабинетах, - с разными преподавателями, - не выдавая предупреждения о конфликте. #### Когда создавать разделение Каждый раз, когда в одном временном слоте должны проходить разные занятия для непересекающихся частей класса: - подгруппы лабораторных работ (подгруппа 1 и подгруппа 2, половина класса на физике и половина на химии и т. д.), - языковые группы (английский и немецкий язык), - взаимоисключающие факультативы (латинский язык и информатика), - подгруппы по информатике (в кабинете информатики всего 15 компьютеров). Критерий применимости: **ни один ученик не должен входить в две группы одного разделения**. Иначе перед вами совмещение, а не разделение (хотя для групп одного класса оно в любом случае невозможно). #### Как создать разделение На странице [групп класса](#page-core-concepts.classes-and-groups) выберите нужные группы и нажмите Добавить разделение. В одном классе могут существовать несколько разделений (одно для лабораторных работ по естественным наукам, одно для языков, одно для факультативов по обществознанию). #### Отличие от совмещения **Разделение** — это группы **одного класса**, которые должны заниматься в одном временном слоте. [**Совмещение**](#page-glossary.alignment) — это группы **разных классов**, которые должны заниматься в одном временном слоте **с одним и тем же преподавателем и в одном кабинете**. #### См. также - [Группа](#page-glossary.group) - [Совмещение групп](#page-glossary.alignment) - [Полная страница о разделениях](#page-core-concepts.class-divisions) ### Расписание *Source: `help/ru/glossary/timetable.md` · id: glossary.timetable · Updated: 2026-06-13* *Also known as : расписание занятий · недельное расписание · график занятий · расписание на неделю* **Расписание** в Omniscol — это полная организация занятий школы на определённый период. Это центральный объект программы. Расписание объединяет: - [классы](#page-glossary.class) с их [группами](#page-glossary.group) и [разделениями](#page-glossary.class-division), - назначенных [преподавателей](#page-glossary.teacher), - [площадки](#page-glossary.site) с их временными сетками, кабинетами и ресурсами, - ограничения (доступность, несовместимости, совмещения), - [занятия](#page-glossary.lesson) (размещённые или нет). #### Три режима расписания При создании расписания вы выбираете его режим: - **[Недельное](#page-glossary.weekly-timetable)** — занятия следуют типовой неделе, которая повторяется. Характерно для начальной и средней школы. - **[Циклическое](#page-glossary.cyclic-timetable)** — занятия повторяются циклом из произвольного числа дней (5, 6, 7… в зависимости от вашего цикла). Характерно для североамериканских систем. - **[Календарь](#page-glossary.calendar-mode)** — занятия датируются по отдельности, как в ежедневнике. Характерно для высшего образования (инженерные вузы, непрерывное обучение). #### Несколько расписаний в одной школе В одном аккаунте можно вести несколько расписаний параллельно: - неопубликованные **черновики**, - расписания на разные **периоды** (1-й или 2-й семестр, подготовка к новому учебному году или текущее расписание), - в Premium (или, в виде исключения, в аккаунте Standard с активацией, оговорённой в договоре) — расписания, **опубликованные параллельно** на одни и те же недели (например, утреннее повторяющееся расписание и послеобеденное расписание в режиме календаря) — см. [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). #### Жизненный цикл расписания ``` Создание → Настройка → (Автоматическое формирование?) → Просмотр → Публикация → Ежедневные изменения ``` - **Создание** — выбор режима, названия, базовых параметров. - **Настройка** — площадки, кабинеты, преподаватели, классы, группы, дисциплины, курсы. - **Формирование** — автоматическое, с помощью алгоритма (доступно во всех трёх режимах: недельном, циклическом, календарном), или ручное размещение. - **Просмотр** — проверка перед публикацией. - **Публикация** — расписание вводится в действие: на выбранных неделях учебного года его занятия попадают во все остальные модули. - **Ежедневные изменения** — в течение года (перенос занятий, смена кабинетов, учёт отсутствий) без возврата к этапу формирования. #### См. также - [Недельное, циклическое и календарное расписание](#page-overview.timetable-modes) - [Создание расписания](#page-timetables.overview) - [Публикация расписания](#page-timetables.publication) ### Режим визуального отображения расписания *Source: `help/ru/glossary/schedule-view-mode.md` · id: glossary.schedule-view-mode · Updated: 2026-06-13* *Also known as : режим отображения · вид сетки · вид списка · вид таблицы · переключить вид* Три взаимозаменяемых представления одних и тех же занятий в одном расписании; их выбирают кнопками в заголовке: - **Сетка** (Вид сетки): классический календарный вид, занятия размещены на сетке «день × время». Режим по умолчанию для быстрого просмотра. - **Список** (Вид списка): занятия в хронологическом порядке, по одному в строке, с указанием дня, времени, продолжительности, класса, группы, дисциплины, преподавателей, площадки и кабинета. Удобно для последовательного просмотра. - **Таблица** (Таблица): представление текущего вида в формате электронной таблицы: дни в столбцах и временные слоты в строках (или наоборот), а при включённом виде списка по одному занятию в строке. Подходит для аудита, копирования в электронную таблицу или экспорта в файл, в зависимости от экрана (PDF, CSV, Excel / XLSX). Этот режим доступен только администраторам и только на компьютере. Все три режима работают с **одним и тем же набором данных**: переключение ничего не изменяет и не фильтрует, меняется только способ показа. Выбор не сохраняется: он действует для текущего отображения. ### Режим календаря *Source: `help/ru/glossary/calendar-mode.md` · id: glossary.calendar-mode · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : режим ежедневника · расписание по датам · календарь · без повторяемости* > _Premium_ Расписание в **режиме календаря** организует занятия **по датам**, без повторяющейся типовой недели. Каждое занятие ставится отдельно на конкретную дату, как в ежедневнике. Этот режим чаще всего выбирают: - **в высшем образовании** (инженерные вузы, бизнес-школы, университеты), - **в дополнительном образовании** (разовые сессии, короткие программы), - **в учебных центрах**, где занятия не повторяются каждую неделю. Режим доступен в аккаунтах на тарифе «Премиум». #### Чем он отличается от недельного режима | Аспект | Недельное | Календарь | | --- | --- | --- | | Повторяемость | Типовая неделя | Дата за датой | | Автоматическое формирование | Да | Да (с периодом дат и уплотнением дней) | | Доступность | Подтверждается заранее | Сводится в реальном времени | | Редактирование занятия | Затрагивает все опубликованные недели | Затрагивает конкретную дату | | Группы групп | Да | Да | | Публикация | На диапазоне недель | Бинарная (опубликовано или нет) | | Вид по умолчанию | Неделя | Неделя или месяц | | Снятие занятий на каникулы | Автоматическое | Нет (занятия уже привязаны к датам) | #### Автоматическое формирование расписания в режиме календаря Формирование работает и в режиме календаря: оно расставляет неразмещённые занятия по доступным датам с теми же ограничениями (преподаватель или класс не могут находиться в двух местах одновременно, кабинеты должны подходить, учитывается блокирующая доступность). Экран формирования показывает и настройки, свойственные календарю: **целевой период дат**, чтобы ограничить расчёт нужным промежутком, и **уплотнение дней** (сгруппировать занятия в начале или в конце периода либо предоставить выбор алгоритму). Помощь при ручном размещении остаётся доступной параллельно: конфликты обнаруживаются в реальном времени, предложения кабинетов отфильтрованы, а доступность учитывается мгновенно. #### Доступность в режиме календаря В календарном расписании доступность внешних преподавателей может меняться со временем. Omniscol сводит её в реальном времени и выдаёт предупреждения о конфликтах по мере изменения доступности. См. [Доступность в режиме календаря](#page-timetables.calendar-wishes). #### Недельный и календарный режимы в одной школе В тарифе Премиум можно **одновременно публиковать** недельное расписание (регулярные утренние занятия подготовительного отделения) и календарное расписание (разовые мастер-классы во второй половине дня) на одни и те же недели. Для этого служит опция [Несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables). Если оба расписания используют общие объекты (преподавателей, кабинеты), Omniscol динамически объединяет представления и находит их перекрёстные конфликты. #### См. также - [Расписание](#page-glossary.timetable) - [Выбор типа расписания](#page-overview.timetable-modes) - [Режим календаря](#page-timetables.calendar-mode) - [Группы групп](#page-glossary.groups-of-groups) ### Ресурс *Source: `help/ru/glossary/resource.md` · id: glossary.resource · Updated: 2026-05-10* *Also known as : мобильное оборудование · проектор · кейс · комплект* **Ресурс** в Omniscol — это **мобильное** оборудование, не закреплённое за определённым кабинетом. У каждого ресурса есть **название** и **доступное количество**. Примеры: три переносных проектора, кейс с 30 планшетами (кейс считается за 1, а не за 30 — вы вводите количество кейсов, а не количество планшетов), комплект микрофонов, набор манекенов для обучения первой помощи. #### Как это используется При настройке курса вы указываете ресурсы, которые для него нужны. Формирование расписания гарантирует, что **одновременные занятия не запрашивают больше ресурсов, чем имеется**: если у вас 3 переносных проектора, не более 3 одновременных занятий смогут запросить по одному. #### Отличие от кабинетов [Кабинет](#page-glossary.classroom) закреплён за [площадкой](#page-glossary.site) и не покидает её. Ресурс не закреплён ни за одним кабинетом (но закреплён за площадкой, поэтому кейс с площадки A нельзя использовать для курса на площадке B). #### Типичные случаи, когда ресурс не используется У многих курсов не задано ни одного ресурса — это вариант по умолчанию. Задавайте ресурс, только если он является **настоящим ограничением**: если у вас 30 переносных проекторов и не более 4 одновременных занятий, моделировать их незачем; если их 3, а запрашивают их несколько занятий, вам нужно, чтобы их распределение между занятиями решало формирование расписания. #### См. также - [Площадка](#page-glossary.site) - [Кабинет](#page-glossary.classroom) ### Свободная группа *Source: `help/ru/glossary/free-group.md` · id: glossary.free-group · Updated: 2026-06-13* *Also known as : группа-спутник · полуавтономная группа · открытая группа · группа с записью* **Свободная группа** — это **полуавтономная рабочая группа**: часть класса работает самостоятельно, как правило **в том же кабинете и с тем же преподавателем**, что и основное занятие, параллельно с ним — своего рода **группа-спутник** занятия. Планировщик хочет **показать её в расписании**, не создавая рядом формальное разделение на группы. Отсюда и слово **свободная**: поскольку эта подгруппа делит кабинет и преподавателя с занятием, из которого она выделена, обычная [группа](#page-glossary.group) (даже в составе разделения) вызвала бы **конфликт по кабинету и по преподавателю**. Свободная группа — это **джокер**, который **отключает все конфликты**: их не возникает ни с остальным классом, ни с преподавателем, ни с кабинетом. Поэтому она сосуществует с исходным занятием. Такая потребность часто возникает в **художественных школах** и в **программах подготовки социальных работников**, где часть времени отводится **самостоятельной работе под наблюдением**: подгруппа работает над своим проектом в углу кабинета, пока остальной класс слушает занятие. В более широком смысле свободная группа описывает любую группу, состав которой **не зафиксирован**, не порождая конфликтов. #### Отличие от обычной группы Обычная группа учитывается при формировании расписания: проверяется, что у её учеников нет двух занятий одновременно и что её **кабинет**, как и её **преподаватель**, свободны. Именно это и мешало бы группе-спутнику: кабинет и преподаватель основного занятия уже заняты. Свободная группа **снимает эти проверки**. Её занятие может делить кабинет и преподавателя с занятием, из которого оно выделено; а ученик может состоять в нескольких пересекающихся свободных группах, и ни одно предупреждение не появится. #### На практике: размещение вручную Автоматическое формирование расписания **поддерживает** свободные группы, но для этого случая его рекомендуется **не использовать**: **разместите и заблокируйте вручную** основное занятие и занятие-спутник в нужном временном слоте. Алгоритм не знает, какое из занятий основное, а какое — спутник: отданные на автоматическое формирование, они могут оказаться где угодно. Поскольку это очень редкий и специфичный случай, свободная группа предполагает **ручное использование**. #### Создание При создании группы отметьте параметр «Свободная группа» в окне Добавить группу. В интерфейсе такие группы выделены особой пометкой, чтобы их не путали с группами с ограничениями. > _Premium_ Свободные группы доступны в аккаунтах Premium. #### См. также - [Группа](#page-glossary.group) - [Свободные группы](#page-core-concepts.free-groups) ### Сводная панель *Source: `help/ru/glossary/dashboard.md` · id: glossary.dashboard · Updated: 2026-05-18* *Also known as : дашборд · статистика · показатели* Модуль **Сводная панель** показывает статистику, рассчитанную по действующему расписанию (с учётом размещённых занятий, отсутствий и выполненных замещений) за выбранный период: неделю, месяц, учебный год или произвольный диапазон дат. #### Доступные показатели Статистика сгруппирована по направлениям анализа: преподаватели, кабинеты, ресурсы, дисциплины, классы и ученики. Полный перечень показателей по каждому направлению приведён на основной странице модуля. #### Сценарии использования - **Кадровая отчётность** — сводка проведённых часов для оплаты труда, аттестации и аккредитации. - **Оптимизация кабинетов** — выявление кабинетов, которые используются слишком мало или перегружены. - **Контроль ресурсов** — проверка того, как фактически используется мобильное оборудование. - **Педагогический аудит** — проверка того, что все запланированные объёмы часов действительно проведены. #### Экспорт Кнопка Печать открывает таблицу, которую можно скопировать, распечатать или экспортировать в CSV для обработки во внешних программах (Excel, Power BI и других). #### Расчёт Важно: модуль Сводная панель работает с **действующим расписанием** (занятия, которые реально размещены и опубликованы; при необходимости несколько действующих расписаний объединяются, см. [несколько расписаний, опубликованных параллельно](#page-timetables.multiple-active-timetables)) и **учитывает одобренные отсутствия и замещения**. Это расчёт по фактическому положению дел, а не по плановым настройкам. #### См. также - [Обзор модуля «Сводная панель»](#page-dashboard.overview) - [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) - [Статистика преподавателей](#page-dashboard.teachers) - [Статистика кабинетов](#page-dashboard.classrooms) - [Статистика по дисциплинам](#page-dashboard.subjects) - [Статистика по классам](#page-dashboard.classes) ### Связанные занятия (чередование половин класса) *Source: `help/ru/glossary/associated-lessons.md` · id: glossary.associated-lessons · Updated: 2026-05-10* *Also known as : чередование группы а/б · обмен группами* **Связанные занятия** — это два одновременных занятия для двух половин класса, которые **чередуются друг за другом**. Типичный случай: ``` Слот 1: группа А на биологии, группа Б на физике Слот 2: группа А на физике, группа Б на биологии ``` Через два слота обе группы прошли обе дисциплины, но в разном порядке. Такая схема широко распространена в естественных науках (лабораторные работы по биологии и по физике с двумя преподавателями-специалистами, которые «меняются» группами), в искусстве (одна половина класса занимается практикой, другая — теорией, затем они меняются) и так далее. #### Создание 1. Сначала создайте два [сдвоенных занятия](#page-glossary.concatenated-lessons) (одно под другим). 2. Наведите курсор на границу между ними: появится кнопка связывания. 3. Нажмите на неё и укажите **две группы**, которые должны чередоваться — в идеале они объявлены как [разделение](#page-glossary.class-division). #### Согласованность с группами Группы, которые используются в связанных занятиях, должны быть объявлены как **разделение** в классе, иначе при формировании расписания появится предупреждение о несогласованности (группа не может находиться в двух местах одновременно). #### См. также - [Сдвоенные занятия](#page-glossary.concatenated-lessons) - [Разделение класса](#page-glossary.class-division) - [Сложные занятия](#page-core-concepts.complex-lessons) ### Сдвоенные занятия *Source: `help/ru/glossary/concatenated-lessons.md` · id: glossary.concatenated-lessons · Updated: 2026-05-10* *Also known as : спаренные занятия · занятия подряд · двойные занятия · двойной урок · пара занятий подряд* **Сдвоенные занятия** — это два занятия, которые должны стоять в течение дня **одно за другим**. Формирование расписания гарантирует, что они идут подряд, без вставок между ними. Типичные случаи: - **лабораторная работа на 2 часа**, собранная из двух блоков по 1 часу; - **лекция и семинар** подряд (вводная лекция, затем семинар для закрепления); - **двухчасовой экзамен**, занимающий два временных слота по 1 часу. #### Создание Перетащите одно занятие под другое в представлении распределения часов. Оба занятия окажутся **вплотную** друг под другом и образуют единый блок. #### Открепление Кнопка «ножницы», которая появляется при наведении между двумя сдвоенными занятиями, позволяет **открепить** их друг от друга. После этого оба занятия снова становятся независимыми. #### Почему не создать одно более длинное занятие? Хороший вопрос. Есть две основные причины сдваивать занятия, а не удлинять одно: 1. У занятий могут быть **разные типы** (лекция, сдвоенная с семинаром), **разные преподаватели** или **разные кабинеты**. 2. Вы хотите, чтобы в статистике считались два отдельных занятия (две записи в журнале), а не одно. Если все атрибуты совпадают, проще удлинить одно занятие. Сдваивание даёт гибкость там, где она нужна. #### См. также - [Связанные занятия](#page-glossary.associated-lessons) - [Сложные занятия](#page-core-concepts.complex-lessons) ### Совместное преподавание *Source: `help/ru/glossary/co-teaching.md` · id: glossary.co-teaching · Updated: 2026-05-10* *Also known as : пара преподавателей · два преподавателя · основной и второй преподаватель* **Совместное преподавание** — это занятие, которое одновременно ведут **два или несколько преподавателей** в одном кабинете, с одними и теми же учениками. В Omniscol этот случай устроен просто: у курса может быть **несколько преподавателей**. Каждому из них занятие засчитывается в статистике и в учебной нагрузке. #### Типичные случаи - **Усиленное сопровождение** — основной преподаватель и сотрудник, два преподавателя при большой численности учеников. - **Разовый приглашённый преподаватель** — курс, у которого занятие в этот день ведёт совместно внешний преподаватель (см. [внешний преподаватель](#page-glossary.external-teacher)). - **Два основных преподавателя** — курс, который ведут вдвоём весь семестр. - **Двойная экспертиза** — междисциплинарный курс (например, «информатика для здравоохранения» с врачом и специалистом по информатике). #### Отличие от чередования Совместное преподавание — это **два преподавателя одновременно на одном занятии**. **Чередование** ([чередующиеся занятия](#page-glossary.alternate-lessons)) — это **два преподавателя в одном и том же слоте, но в разные недели**. Если ваши два преподавателя сменяют друг друга каждую неделю и никогда не бывают вместе, это чередующиеся занятия, а не совместное преподавание. Если один из них участвует лишь в нескольких разовых занятиях, проще всего создать для этих дат отдельный курс с приглашённым преподавателем — помимо основного курса, особенно в режиме [«Календарь»](#page-glossary.calendar-mode). #### См. также - [Занятие](#page-glossary.lesson) - [Внешний преподаватель](#page-glossary.external-teacher) - [Совместное преподавание в высшем образовании](#page-higher-ed.co-teaching) ### Совмещение групп *Source: `help/ru/glossary/alignment.md` · id: glossary.alignment · Updated: 2026-06-26* *Also known as : сквозная группировка* **Совмещение** сводит вместе несколько [групп](#page-glossary.group) из **разных классов**, которые должны проходить занятие в **одном временном слоте, с одним преподавателем и в одном кабинете**. Классический пример: изучающие немецкий язык из 8А, 8Б и 8В занимаются вместе на одном общем занятии. Вместо того чтобы создавать три параллельных курса (они конкурировали бы за преподавателя и кабинет), вы создаёте **группу «Немецкий язык»** в каждом из трёх классов, а затем **совмещаете** их. Тогда формирование расписания ставит одно занятие, связанное сразу с тремя группами. Типичные случаи: - первый и второй иностранный язык для нескольких классов (группы английского языка, собранные из разных классов), - факультативы и курсы по выбору для нескольких классов (латинский язык, информатика, экономика), - профильные группы в 10-м и 11-м классах, куда ученики приходят из разных классов, - общие модули в высшем образовании (один курс общей части для нескольких направлений подготовки). #### Возможности и ограничения Совмещение — чрезвычайно мощный инструмент: оно избавляет от дублирования, гарантирует согласованность изменений (перенесённое занятие переносится везде) и упрощает просмотр. **Но оно же и очень жёсткое**: - После совмещения у группы больше не может быть отдельного занятия в этом временном слоте: если у одного из трёх классов занятие проходит иначе, нужно **продублировать** его группу и убрать копию из совмещения. - У всех совмещённых групп в их классах должны быть точно такой же объём часов и такая же конфигурация. Расхождение вызывает предупреждение о согласованности (вкладка Формирование). - Изменения (добавить занятие, сменить кабинет) нужно вносить один раз, в самом совмещении — Omniscol распространит их. Но правка занятия через один из классов может привести к побочным эффектам. #### Важные различия | Понятие | Охват | Ограничение | | --- | --- | --- | | [Разделение](#page-glossary.class-division) | Группы **одного** класса | Один слот, **разные** преподаватели и кабинеты | | **Совмещение** | Группы **нескольких** классов | Один слот, **один** преподаватель, **один** кабинет | | [Группа групп](#page-glossary.groups-of-groups) | Те же, что при совмещении | Один слот, один преподаватель и один кабинет, **гибкое редактирование после создания** | #### В режиме «Календарь» В расписании в режиме [«Календарь»](#page-glossary.calendar-mode) лучше использовать [группу групп](#page-glossary.groups-of-groups), чем совмещение: её проще редактировать, группы можно добавлять и убирать по ходу дела, не пересоздавая всю структуру. #### См. также - [Группа](#page-glossary.group) - [Разделение](#page-glossary.class-division) - [Группы групп](#page-glossary.groups-of-groups) - [Общий курс](#page-glossary.transverse-course) - [Совмещение групп](#page-core-concepts.alignments) ### Специализация кабинета *Source: `help/ru/glossary/classroom-specialization.md` · id: glossary.classroom-specialization · Updated: 2026-05-10* *Also known as : тип кабинета · специализированный кабинет · кабинет под дисциплину* **Специализация кабинета** показывает, что кабинет предназначен для определённого вида занятий: химическая лаборатория, компьютерный класс, спортзал, мультимедийный кабинет, кабинет для самоподготовки под присмотром, художественная мастерская, музыкальная студия и т. д. Это **свободное** поле: вы создаёте нужные вам специализации и называете их по-своему. Omniscol не навязывает закрытый список. #### Как ведёт себя формирование расписания Когда дисциплине требуется специализация, при формировании расписания занятия размещаются **только** в кабинетах с этой специализацией. Химическая лаборатория никогда не будет занята занятием по литературе, если вы указали «химия» для дисциплины «Практикум по химии». Если вручную назначить неподходящий кабинет (например, дать занятию по химии кабинет без специализации «химия»), это **не блокируется**, но выводится предупреждение. #### Упорядочить или удалить специализацию Специализация существует, пока её имеет хотя бы один кабинет. Чтобы удалить её, уберите её из всех кабинетов, где она указана: при следующем сохранении она исчезнет из справочника. Чтобы **переименовать** специализацию, создайте новую с нужным названием, замените ею старую в кабинетах, и прежняя исчезнет автоматически (при условии, что на неё больше нигде не ссылаются, в том числе в дисциплинах). #### См. также - [Кабинет](#page-glossary.classroom) - [Дисциплина](#page-glossary.subject) - [Специализации кабинетов](#page-core-concepts.classroom-specializations) ### Ссылка общего доступа *Source: `help/ru/glossary/share-link.md` · id: glossary.share-link · Updated: 2026-06-13* *Also known as : общий доступ · расшаренная ссылка · публичная ссылка · доступ по токену* **Ссылка общего доступа** в Omniscol — это подписанный URL, дающий доступ к ресурсу без предварительного входа в систему: - расписание класса или преподавателя, - отдельный экран ввода данных, например доступности, - модуль Управление отсутствиями в режиме просмотра, - отдельное представление для внешней команды (аудит, информирование). Для публичных расписаний доступ только для чтения. Некоторые внутренние ссылки общего доступа могут при этом разрешать ограниченное действие, например заполнение определённой формы. Типичный случай — ссылка для ввода доступности преподавателей: учебное заведение может отправить её преподавателю с крайним сроком, не создавая ему учётную запись в Omniscol. #### Безопасность Каждая ссылка содержит подписанный **JWT**. Для веб-ссылок и ссылок API подпись зависит от учётной записи, создавшей ссылку, и от хеша её пароля. Для ссылок iCal контрольный хеш строится по тому же принципу. Из этого следуют четыре вывода: 1. **Дата окончания срока действия обязательна** — ссылка автоматически перестаёт действовать в выбранную дату. Это важная защита: вечных ссылок не бывает. 2. **Недействительность после смены пароля** — если учётная запись, создавшая ссылку, меняет пароль (или задаёт тот же самый, что меняет случайную соль), все созданные ею ссылки перестают действовать немедленно. 3. **Недействительность из-за учётной записи-владельца** — если эта запись отключена или удалена, ссылки, которые к ней привязаны, перестают работать. 4. **Ограниченная область** — ссылка открывает только предусмотренное представление или действие. Не описывайте её как общий доступ к учётной записи. Для рассылки широкому кругу используйте чётко обозначенную служебную учётную запись, а не личную. Служебная запись становится административным владельцем выданных ссылок и может быть заменена или отключена, если нужно аннулировать все ссылки, выданные в рамках одной рассылки. #### Отличие от токена API | Аспект | Ссылка общего доступа | [Токен API](#page-glossary.api-token) | | --- | --- | --- | | Для кого | Человек в браузере | Стороннее программное обеспечение | | Права | Ограниченная область, часто только чтение | В зависимости от выбранных конечных точек | | Сценарий использования | Разовая рассылка | Программная интеграция | | Аутентификация | JWT в URL | JWT в заголовке `Authorization` | | Необходимый уровень | Роль создателя | Права администратора | #### Создание ссылки Кнопка Общий доступ появляется на экранах, которыми можно поделиться (расписание, доступность, отсутствия). Нажмите её, выберите дату окончания срока действия, затем скопируйте URL нужного формата. #### См. также - [Токен API](#page-glossary.api-token) - [Поделиться расписанием](#page-schedules.share-link) - [Публичные ссылки общего доступа](#page-portal.share-links) ### Статус занятия *Source: `help/ru/glossary/lesson-status.md` · id: glossary.lesson-status · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : запланирован · черновик · отмененное занятие · проведенное занятие · реализован* > _Premium_ В аккаунтах «**Премиум**» **Статус** показывает, на каком этапе планирования находится [занятие](#page-glossary.lesson). Его задают для каждого занятия отдельно — с помощью значка Статус — или **массово** из режима списка. Возможны четыре значения: - **Запланирован** — Стандартный статус запланированных занятий. Это статус обычного занятия, размещённого на сетке. - **Черновик** — занятие в стадии подготовки, которое **игнорируется автоматическим формированием расписания** и **сводной панелью**. Это удобно, чтобы подготовить занятие, ещё не навязывая его ни расписанию, ни [алгоритму формирования](#page-glossary.solver). - **Отменен** — занятие **отображается как отменённое** (сохраняется для истории), но тоже **игнорируется автоматическим формированием расписания** и **сводной панелью**. - **Реализован** — занятие отмечено как **реализованное**, и с этой отметкой оно попадает в **сводную панель** преподавателей — для **выставления счетов**. #### Отображение Когда эти занятия показаны на сетке планирования, их можно узнать по оформлению: - занятие со статусом **Черновик** обведено **оранжевой пунктирной рамкой** и слегка приглушено; - занятие со статусом **Отменен** **зачёркнуто** и сильно приглушено — при наведении курсора оно снова читается, так что его можно сохранить для истории, не загромождая сетку. #### Влияние на формирование расписания [Алгоритм формирования](#page-glossary.solver) не берёт в работу занятия со статусами **Черновик** и **Отменен**: он их не размещает, и они не учитываются в конфликтах (занятость кабинетов, накладки у преподавателей, вместимость). Занятия со статусом **Запланирован** остаются реальными занятиями, которые размещает формирование расписания. #### «Реализован»: только в календарном режиме Статус **Реализован** предлагается только в расписаниях типа **[«Календарь»](#page-glossary.calendar-mode)**: именно там, на занятиях с датами, имеет смысл отмечать, что занятие действительно проведено. Тогда он попадает в **учёт часов, фактически проведённых преподавателями** (сводная панель преподавателей), и в **выставление счетов** за их работу. В недельном или циклическом расписании этот статус не отображается. #### См. также - [Редактирование занятия](#page-timetables.lesson-edit) - [Формат](#page-glossary.lesson-modality) - [Занятие](#page-glossary.lesson) - [Режим календаря](#page-glossary.calendar-mode) ### Тип занятия *Source: `help/ru/glossary/lesson-type.md` · id: glossary.lesson-type · Updated: 2026-05-10* *Also known as : лекция · практическое занятие · лабораторная работа · семинар · контрольная работа* **Тип занятия** определяет педагогическую форму занятия. Основные примеры: - **Лекция**, - **Практическое занятие**, - **Лабораторная работа**, - **Экзамен** — оцениваемое испытание, - **Конференция** — выступление приглашённого извне докладчика, - **Мастерская**, **Семинар**, **Форум**, **Защита**… Типы занятий задаются на уровне учебного заведения в Создать. Вы можете создать столько типов, сколько требует ваша педагогическая номенклатура (в высших учебных заведениях их иногда 25–30). #### Сочетание дисциплины и типа Тип занятия назначается курсу вместе с его [дисциплиной](#page-glossary.subject). Пара «дисциплина и тип» рассматривается как отдельный идентификатор: например, в статистике или фильтрах «математика» и «математика, практическое занятие» отображаются по отдельности. Если нужна выборка сразу по обоим (без различия по типу), используйте открытый фильтр, в котором тип не указан. #### Фильтрация и отображение - **Фильтр** (модуль Расписание) — выбор одного типа, чтобы видеть только лабораторные работы или только лекции. - **Статистика** — подсчёт часов практических занятий, лабораторных работ и лекций по классам или по преподавателям. - **Отображение** — цвет или визуальная метка для каждого типа на сетке, в зависимости от параметров отображения. #### См. также - [Курс](#page-glossary.course) - [Дисциплина](#page-glossary.subject) - [Занятие](#page-glossary.lesson) - [Настройка типов занятий](#page-admin.lesson-types) ### Токен API *Source: `help/ru/glossary/api-token.md` · id: glossary.api-token · Updated: 2026-05-15* *Also known as : api токен · api-ключ · ключ api · токен аутентификации* **Токен API** позволяет стороннему программному обеспечению вызывать конечные точки API Omniscol от имени школы — на чтение и, если выбраны конечные точки API на запись, на запись. Это мощный инструмент, поэтому обращаться с ним нужно осторожно. #### Создание Токен создаётся в Общий доступ (Импорт/Экспорт > Общий доступ). Вы указываете: - ключ (создаётся в Omniscol, с названием и возможным сроком действия; дату окончания срока можно изменить позже), - область: список конечных точек API, которые сможет вызывать этот токен (указывайте только то, что действительно необходимо), - при желании — **срок действия токена**. Эта дата записывается в созданный JWT, и изменить её потом нельзя. Если удалить ключ или если его срок действия истёк, производные токены отзываются немедленно. Чтобы изменить срок действия отдельного токена, создайте новый JWT. #### Использование Токен передаётся в HTTP-заголовке `Authorization: Bearer ` или (для рабочей среды это менее рекомендуется) в URL через `?auth=`. #### Рекомендации - **Один ключ на интеграцию** — так проще отзывать их независимо. - **Минимальный набор прав** — отмечайте только нужные API, а не всё по умолчанию. - **Срок действия на нужном уровне** — срок действия ключа подходит для управления интеграцией в долгосрочной перспективе; срок действия токена — для временного доступа, который нельзя изменить. - **Регулярная ротация** — создавайте ключ заново каждые 6–12 месяцев. - **Не храните в Git** — токен не должен оказаться под версионным контролем в публичном репозитории. Используйте переменные окружения вашего сервера. #### Отличие от OIDC / SSO Чтобы подключать реальных пользователей с их учётной записью учреждения, используйте [OIDC / SSO](#page-integrations.oauth2). Токен API предназначен для технических интеграций между серверами, а не для ежедневного входа пользователей. #### См. также - [Ссылка общего доступа](#page-glossary.share-link) - [API Omniscol](#page-integrations.api-tokens) - [MCP — подключение ИИ-агента](#page-integrations.mcp) ### Управление персоналом *Source: `help/ru/glossary/staffing.md` · id: glossary.staffing · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Управление персоналом** *Also known as : дежурства · график дежурств · сетка дежурств · сетка надзора* Модуль **Управление персоналом** планирует **персонал по задачам**, а не по курсам. Изначально он создавался для воспитательной работы: воспитатели, дежурные по школе и сотрудники с аналогичными функциями, которые в течение дня обеспечивают присмотр во дворе, на входе, в коридорах, в библиотеке, в столовой, на выездных занятиях физкультурой, на самоподготовке и так далее. Модуль также охватывает: - **надзор на экзаменах** (сессии, ЕГЭ и ОГЭ, вступительные испытания), - **разовое сопровождение** (экскурсии, поездки, педагогические советы), - **активные педагогические методики** (Монтессори), где преподаватели планируются по видам деятельности, а не по курсам. #### Модель данных - **Задачи** — потребности, которые нужно обеспечить людьми: каждая задана местом, слотом, числом людей и возможным списком допущенных сотрудников. - **Сетка** — набор задач в диапазоне дат, обычно с шагом в четверть часа. - **Назначение** — ячейке сетки сопоставляется сотрудник. - **График дежурств** — представление задач по каждому человеку. #### Независимость от курсов Модуль Управление персоналом можно использовать: - **в дополнение** к учебным расписаниям (задачи воспитателей добавляются к курсам в том же аккаунте); - как **отдельное решение**, без ведения учебного расписания. #### Роль «Сотрудник» Роль **Сотрудник** рассчитана на команду воспитательной работы (воспитатели, дежурные, вахтёры, лаборанты): доступ к модулю Управление персоналом, к собственным отсутствиям и к личному графику; доступа к общей конфигурации нет. Её можно совмещать с ролью «Преподаватель», когда один и тот же человек преподаёт и при этом планируется в модуле Управление персоналом. См. [Пользователи и роли](#page-admin.users-and-roles). #### См. также - [Обзор модуля «Управление персоналом»](#page-staffing.overview) - [Построение сетки дежурств](#page-staffing.building-grids) - [Определение задач, которые нужно обеспечить](#page-staffing.assignments) - [Назначение сотрудников](#page-staffing.planner) - [Графики дежурств](#page-staffing.roster) ### Уровень *Source: `help/ru/glossary/level.md` · id: glossary.level · Updated: 2026-06-21* *Also known as : уровень класса · ступень · год обучения* **Уровень** распределяет [классы](#page-glossary.class) по **учебной прогрессии**: 5-е, 6-е, 7-е и 8-е классы в основной школе; 1-й, 2-й и 3-й год бакалавриата; бакалавр, магистр, первый год, второй год… в зависимости от учебного заведения. Это **организационная метка**, а не ограничение при размещении: уровень не накладывает никаких условий на формирование расписания. Он нужен, чтобы **сортировать и находить** классы: на экранах классов, в ряде фильтров и в некоторых представлениях диагностики. #### Где настроить Уровни входят в **общие** настройки учётной записи. На странице «[общие параметры](#page-admin.parameters)» в разделе **Уровни** их можно создавать с помощью Создать, удалять и **перетаскивать для изменения порядка**: порядок отражает прогрессию. Затем каждому классу присваивается уровень при его создании (см. [Создание классов](#page-timetables.creating-classes)). #### Уровень, подразделение и площадка Три близких понятия, которые не следует путать: - **уровень** определяет место класса в **прогрессии** (на каком этапе обучения находится класс); - [подразделение](#page-glossary.campus) относит его к **организационной единице** (факультет, отделение, филиал); - [площадка](#page-glossary.site) указывает **физическое место** и кабинеты, которые используются по умолчанию. Как правило, у одного и того же класса есть все три: уровень, иногда также подразделение, и площадка по умолчанию. #### См. также - [Класс](#page-glossary.class) - [Подразделение](#page-glossary.campus) - [Площадка](#page-glossary.site) - [Создание классов и групп](#page-timetables.creating-classes) - [Общие параметры](#page-admin.parameters) ### Учебный год *Source: `help/ru/glossary/school-year.md` · id: glossary.school-year · Updated: 2026-05-10* *Also known as : академический год* **Учебный год** в Omniscol — это базовый период, на который публикуются расписания. Это объект, который создаётся на уровне школы в разделе «Учебный год». #### Почему это обязательно Чтобы опубликовать расписание, нужно создать как минимум **один** учебный год. Учебный год задаёт **шкалу времени**, на которой вы затем публикуете расписания для определённых периодов. #### Правила именования Для аккуратного отображения называйте годы по датам: «2025-2026», а не «Текущий год». Так вы сохраните историю прошлых лет и сможете параллельно готовить следующий. #### Каникулы Каникулы учебного года можно указать так: - **копированием и вставкой** таблицы (из Excel, Numbers и т. д.), - **автоматическим импортом** заранее заполненных дат для вашей страны (предлагается при создании года, если эти даты есть в базе данных), - **вводом периодов вручную**. Каникулы исключаются из шкалы времени: опубликованные расписания на них не действуют. #### Сдвиги чередования Если в вашей школе используется [чередование недель](#page-glossary.alternate-lessons) (A/B), каникулы могут нарушить чередование. Для таких случаев можно создать **виртуальный сдвиг** (щёлкните соответствующие недели на шкале времени). #### Несколько лет параллельно В любой момент у вас может быть задано несколько учебных годов: текущий, прошлый (история) и следующий, который готовится. Кнопка Следующий учебный год (▶︎) на шкале времени переключает годы. **Текущий учебный год** задаётся в параметре «Текущий учебный год». Именно он определяет, что пользователи видят по умолчанию. #### См. также - [Чередующиеся занятия / недели A-B](#page-glossary.alternate-lessons) - [Учебный год и каникулы](#page-admin.school-year) - [Подготовка к следующему учебному году](#page-timetables.next-school-year) ### Ученик / Студент / Слушатель *Source: `help/ru/glossary/student.md` · id: glossary.student · Updated: 2026-05-14* *Also known as : участник · стажёр* **Ученик** в Omniscol — это человек, зачисленный в [класс](#page-glossary.class), посещающий занятия и, возможно, входящий в одну или несколько [групп](#page-glossary.group) этого класса. **Ученик** — основной термин интерфейса; в зависимости от типа учебного заведения привычная лексика меняется: - **Начальная и средняя школа** — «ученик», - **Высшее образование** — «студент», - **Непрерывное образование** — «слушатель», «участник», «стажёр». Все они обозначают одну и ту же сущность Omniscol. #### Ученики **необязательны** Важный момент: Omniscol отлично работает **и без единого введённого ученика**. Расписания, доступность преподавателей, формирование расписания и статистика сводной панели работают на уровне класса, группы и преподавателя. Зачем вводить учеников по отдельности: - **Персональные расписания** — каждый студент после входа видит своё расписание, отфильтрованное по его классу и группам. - **Подробная статистика** — сводная панель по каждому студенту (часы занятий, дни присутствия). - **Отсутствия** — студент может сам объявить о своём отсутствии (с подтверждением администрацией). - **Студенты, повторяющие год, и студенты вне стандартной траектории обучения** — учёт студентов, которым нужно посещать занятия другого класса, а не своего. Если эти возможности вам не нужны, не вводите студентов — ничего существенного вы не потеряете. #### Распределение по классу и группам Студента распределяют по его классу и группам в разделе Ученики после публикации первого расписания учебного года. Можно также распределить студентов массово с помощью операции Назначить в класс, выбрав сразу несколько записей. #### Случаи повторного обучения и обучения вне стандартной траектории Студента можно распределить в несколько классов (например, студента 3-го года обучения, которому нужно пройти ещё и учебный модуль 2-го года) или только в отдельные группы класса (студента с академической задолженностью, которому нужно заново пройти всего одну дисциплину). Такие случаи настраиваются через множественный выбор классов и групп на экране распределения. #### См. также - [Класс](#page-glossary.class) - [Группа](#page-glossary.group) - [Управление учениками](#page-admin.students) ### Формат занятия *Source: `help/ru/glossary/lesson-modality.md` · id: glossary.lesson-modality · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : очный формат · очно · дистанционный формат · дистанционное занятие · гибридный формат · самостоятельная работа* > _Premium_ В аккаунтах «**Премиум**» параметр **Формат** показывает, **как** проходит [занятие](#page-glossary.lesson). Он выбирается в селекторе кабинета Назначить кабинет, рядом с назначением кабинета. Четыре значения, у каждого своя иконка на занятии: - **Очный** — занятие проходит в [кабинете](#page-glossary.classroom) (вариант по умолчанию). - **Дистанционный** — занятие проходит дистанционно (иконка [video]); кабинет не требуется. - **Гибридный** — занятие проходит в кабинете **и** транслируется дистанционно (например, лекция, которую передают по видеоконференции): поэтому оно занимает кабинет и нуждается в ссылке. - **Самостоятельная работа** — работа, выполняемая самостоятельно; кабинет не требуется. Это равносильно блокировке варианта «без кабинета» (она отключает предупреждение о том, что для занятия не назначен кабинет). #### Влияние на кабинет и формирование расписания Формат напрямую влияет на планирование: занятию с форматом «**Дистанционный**» или «**Самостоятельная работа**» **кабинет не нужен**. [Формирование расписания](#page-glossary.solver) не резервирует для такого занятия кабинет, а автоматическое назначение кабинетов его пропускает. Занятиям с форматом «**Очный**» и «**Гибридный**», напротив, кабинет нужен. #### Ссылка на видеоконференцию Для дистанционных и гибридных занятий в том же селекторе кабинета можно указать **ссылку на видеоконференцию**. Ссылку также можно задать по умолчанию для класса, и тогда она применяется к его занятиям. Если ссылки нет, отображается предупреждение. #### Статистика по формату [Диагностика](#page-glossary.diagnostic) предлагает таблицу распределения **по формату**: в ней суммируется учебное время, проведённое очно, дистанционно, в гибридном формате и в виде самостоятельной работы. Это полезно, например, чтобы оценить долю дистанционного формата в обучении. Если формат не указан явно, Omniscol **определяет** его по имеющимся данным: кабинет **и** ссылка на видеоконференцию дают гибридное занятие; один кабинет — очное; одна ссылка на видеоконференцию — дистанционное; занятие, явно заданное без кабинета, — самостоятельную работу. Явный выбор всегда имеет приоритет над таким определением. #### См. также - [Редактирование занятия](#page-timetables.lesson-edit) - [Статус](#page-glossary.lesson-status) - [Занятие](#page-glossary.lesson) - [Кабинет](#page-glossary.classroom) ### Формирование расписания / Алгоритм автоматического формирования *Source: `help/ru/glossary/solver.md` · id: glossary.solver · Updated: 2026-06-13* *Also known as : алгоритм формирования · автоматическое формирование · алгоритм составления расписания* **Формирование расписания** в Omniscol автоматически рассчитывает расстановку занятий в [недельном](#page-glossary.weekly-timetable), [циклическом](#page-glossary.cyclic-timetable) или [календарном](#page-glossary.calendar-mode) расписании. Алгоритм расставляет созданные, но ещё не размещённые занятия, может переносить уже размещённые занятия, если это улучшает расписание, и оставляет заблокированные занятия на своих местах. #### Как это работает Когда вы запускаете формирование, Omniscol запускает отдельную параллельную вычислительную среду. Управлять очередью на стороне учебного заведения не нужно; подготовка часто занимает около десяти секунд, и только потом становятся видны первые вычисления. Итог зависит от качества введённых данных: площадок, кабинетов, преподавателей, групп, объёмов часов, доступности и несовместимостей. Чем больше ограничений или чем больше они противоречат друг другу, тем дольше может идти формирование или тем вероятнее частичный результат. В основе лежит алгоритм оптимизации на основе ИИ — **нейросимволическая метаэвристика Монте-Карло**: она сочетает стохастический поиск, символические правила предметной области и оценку ограничений. Важно практическое следствие: алгоритм рассчитан на задачи с очень большим числом ограничений и сообщает о невыполнимых ситуациях, а не скрывает конфликты. #### Строгие ограничения Алгоритм строго соблюдает ограничения, нарушение которых сделало бы расписание недопустимым: - преподаватель не может находиться в двух местах одновременно; - класс не может посещать два занятия одновременно, кроме случая, когда группы входят в разделение; - доступность и ограничения уровня **недоступно** запрещают размещение; - в обычном кабинете не могут проходить два занятия одновременно; - в большом кабинете могут проходить несколько занятий, но только в пределах заданных вместимости и числа классов; - специализированные кабинеты, вместимость, материальные ресурсы и поездки между площадками должны оставаться совместимыми; - заблокированное занятие сохраняет своё место. #### Ограничения оптимизации Мягкие ограничения служат для оценки и улучшения найденных решений. Они не игнорируются: они становятся штрафами, которые алгоритм стремится уменьшить. Частые примеры: - доступность или ограничения уровня **нежелательно** для преподавателя, кабинета, курса, группы или класса; - педагогические несовместимости между дисциплинами, например не ставить лабораторную работу раньше соответствующей лекции, не ставить физкультуру сразу после очень насыщенного занятия или задать порядок изучения тем; - не ставить классу два занятия по одной и той же дисциплине в один день; - минимум или максимум учебных часов в день или в неделю; - сбалансированность дней; - сокращение «окон» в расписании классов и преподавателей; - число дней присутствия преподавателей, в зависимости от практики учебного заведения или страны. Поиск допустимого решения — первый этап. Оптимизация штрафов затем может стать самой долгой частью расчёта. #### Поддержка режимов - **Недельные расписания** — поддерживается. - **Циклические расписания** — поддерживается. - **Календарные расписания** — поддерживается при наличии занятий с датами и диапазона дат. #### Что делать, если формирование не удалось Если полного решения найти не удалось, Omniscol сохраняет лучшее из рассчитанных расписаний, а занятия, которые не удалось разместить, оставляет в списке неразмещённых стикеров. Тогда вы можете изучить частичное расписание, прочитать диагностику и исправить ограничения. Частые причины: - слишком жёсткая доступность (у преподавателя нет ни одного подходящего свободного слота), - не хватает кабинетов или нет свободного специализированного кабинета, - несогласованное совмещение (разные часовые объёмы у совмещаемых групп), - слишком много несовместимостей или они слишком строгие, - расчётная численность класса превышает вместимость всех подходящих кабинетов. См. [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation). #### Принудительное размещение занятия Вы можете **заблокировать** позицию занятия перед повторным запуском формирования: тогда алгоритм больше не переносит его, а подстраивает остальные занятия вокруг. Это удобно, чтобы привязать к месту «неизменные» занятия (занятия внешних специалистов, время которых определено договором, экзамены с назначенной датой и т. п.). #### См. также - [Недельное расписание](#page-glossary.weekly-timetable) - [Доступность](#page-glossary.wishes) - [Диагностика и конфликты](#page-glossary.conflict) - [Автоматическое формирование](#page-timetables.generation) ### Циклическое расписание *Source: `help/ru/glossary/cyclic-timetable.md` · id: glossary.cyclic-timetable · Updated: 2026-05-10* *Also known as : цикличное расписание · нумерованные дни · расписание по циклу* **Циклическое расписание** задаёт повторяющиеся занятия на произвольное число дней (День 1, День 2, … День 6 и т. д.), которое не обязательно совпадает с 5- или 7-дневной неделей. Обычно его используют в **североамериканских системах** (циклы из 6 или 8 дней), в некоторых международных школах и реже в Европе. #### Отличие от недельного расписания | Аспект | Недельное | Циклическое | | --- | --- | --- | | Единица повторения | Неделя (5-7 дней) | Цикл из N дней | | Нумерация | Понедельник, вторник… | День 1, День 2… | | При публикации | Выбираются недели публикации | Выбираются дни недели, в которые действует цикл | | Автоматическое формирование | Да | Да | #### Когда использовать Если ваше учебное заведение работает по шестидневному циклу (например, День 1 в понедельник, День 2 во вторник, День 3 в среду, День 4 в четверг, День 5 в пятницу, День 6 в следующий понедельник, День 1 в следующий вторник…), недельный режим не подходит: циклический создан именно для такого случая. Если вы находитесь в Европе и ваш цикл из 5 дней строго совпадает с неделей, оставайтесь на недельном расписании: его проще настроить и опубликовать. #### См. также - [Расписание](#page-glossary.timetable) - [Выбор типа расписания](#page-overview.timetable-modes) ### Чередующиеся занятия / Недели A-B *Source: `help/ru/glossary/alternate-lessons.md` · id: glossary.alternate-lessons · Updated: 2026-05-10* *Also known as : чередование недель · недели A/B · чётная и нечётная неделя · еженедельное чередование* **Чередующиеся занятия** повторяются не каждую неделю, а чередуются с другими занятиями в том же слоте. Классический случай: одно занятие в неделю A, другое в неделю B, в тот же день и в то же время. #### Настройка периодичности Чередование настраивается в разделе Сохранить. Доступны три варианта: - **Отключено** — чередования нет. - **Буквы** — неделя A, B (а также C, D… если вы добавите больше). - **Цифры** — неделя 1, 2 (а также 3, 4… если вы расширите цикл). Omniscol не ограничивает цикл двумя неделями: чередовать можно по 3, 4 и более неделям. #### Создание чередующегося занятия При настройке разбивки часов: 1. Наведите указатель мыши на занятие, которое нужно чередовать. В правом верхнем углу появится значок [plus], нажмите на него. 2. Для чередующейся недели добавится новое свободное место. 3. Создайте занятие, соответствующее этому новому месту. 4. Разместите его с помощью кнопки-булавки [thumbtack], затем нажмите нужный временной слот (день и время) среди цветных меток. Это можно повторить, чтобы добавить к тому же занятию другие чередующиеся недели. #### Сочетание с другими сложными вариантами Чередующееся занятие может быть: - **простым** — чистое чередование двух занятий; - **[сдвоенным](#page-glossary.concatenated-lessons)** — занятие, которое чередуется и при этом занимает два слота подряд; - **[связанным](#page-glossary.associated-lessons)** — сочетающимся со связанными занятиями (обмен групп: группа A изучает биологию, затем физику, группа B — физику, затем биологию). Обмен групп — это **отдельный** вариант, не совпадающий с чередованием A/B, но он может с ним сочетаться. #### Сдвиг из-за каникул Если перед каникулами у вас была неделя A, а после них нужно начать с недели B, создайте **виртуальный сдвиг** на шкале времени с неделями учебного года (см. [учебный год](#page-glossary.school-year)). Без сдвига чередование просто продолжается в обычном цикле. #### См. также - [Занятие](#page-glossary.lesson) - [Сложные занятия](#page-core-concepts.complex-lessons) - [Учебный год и каникулы](#page-glossary.school-year) ### Шкала времени *Source: `help/ru/glossary/timeline.md` · id: glossary.timeline · Updated: 2026-06-29* *Also known as : лента недель · временная шкала · лента времени* **Шкала времени** — это горизонтальная полоса в верхней части любого экрана, который показывает расписание или статистику. С её помощью вы **перемещаетесь по времени**: выбираете учебный год, отображаемый период и, в зависимости от экрана, переключаетесь между представлениями «неделя», «месяц» или «год». Её **стрелки влево и вправо** сдвигают отображение на целый учебный год назад или вперёд. Отображаемый год (или период) указан открытым текстом над шкалой времени. [Шкала времени и навигация по периодам](#page-core-concepts.timeline-navigation) ### iCal (экспорт в календарь) *Source: `help/ru/glossary/ical.md` · id: glossary.ical · Updated: 2026-05-15* *Also known as : ics · подписка на календарь · ссылка ical · экспорт ical* **iCal** (расширение `.ics`) — стандартный формат обмена календарями, который читают все популярные приложения-календари: Apple Calendar, Google Calendar, Outlook, Thunderbird, Fastmail и другие. Omniscol предлагает два вида экспорта iCal: #### 1. Статическое скачивание Кнопка Скачать для выбранного расписания. Вы получаете файл `.ics`, который нужно импортировать в свой календарь. Это **копия на момент скачивания**: если расписание потом изменится, файл не обновится. Подходит, чтобы разово отправить расписание по электронной почте. #### 2. Динамическая ссылка-подписка Кнопка Скачать для расписания (или для экрана преподавателя и т. д.) создаёт URL-адрес подписки iCal. Когда вы добавите его в приложение-календарь как **подписку**, календарь будет автоматически обновляться по мере изменения расписания в Omniscol. Именно так каждый преподаватель и каждый ученик синхронизирует своё расписание Omniscol с личным календарём, не скачивая файл заново после каждого изменения. Ссылки iCal в Omniscol подписаны, имеют срок действия и привязаны к аккаунту, который их создал. Срок действия записан в токене URL-адреса; чтобы его изменить, нужно создать новую ссылку. Смена пароля, деактивация или удаление аккаунта-владельца аннулирует связанные с ним ссылки. #### Синхронизация и обновления Подписку iCal **обновляет приложение-календарь**, с частотой, которая зависит от клиента: - Apple Calendar: как правило, 5–15 минут. - Google Calendar: в худшем случае до 24 часов (но часто быстрее). - Outlook: по-разному. Эта задержка свойственна самому протоколу iCal и от Omniscol не зависит: изменение в расписании Omniscol появляется в календаре с подпиской, как только тот повторно запрашивает поток. #### См. также - [Ссылка общего доступа](#page-glossary.share-link) - [iCal — подписка и динамическая ссылка](#page-integrations.ical) --- ## Index ### Б - **Большой кабинет** — [Definition](#page-glossary.large-room) · [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) ### В - **Вне сетки** — [Definition](#page-glossary.off-grid) - **Внешний преподаватель** — [Definition](#page-glossary.external-teacher) · [Назначить преподавателей](#page-timetables.assigning-teachers) · [Обзор](#page-higher-ed.overview) · [Случаи высшего образования](#page-faq.higher-ed-cases) - **Временная сетка** — [Definition](#page-glossary.timetable-grid) - **Временно́е окно** — [Definition](#page-glossary.date-windows) ### Г - **Группа** — [Definition](#page-glossary.group) · [Группы групп](#page-core-concepts.groups-of-groups) · [Занятия вне сетки](#page-timetables.off-grid-lessons) · [Иерархия групп](#page-core-concepts.group-hierarchy) · [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) · [Области](#page-admin.planning-domains) · [Политика распределения](#page-timetables.distribution-policy) · [Полная модель данных](#page-integrations.data-model-full) · [Разделение класса](#page-core-concepts.class-divisions) · [Распределить часы и создать занятия](#page-timetables.hour-distribution) · [Редактирование занятия](#page-timetables.lesson-edit) · [Свободные группы](#page-core-concepts.free-groups) · [Случаи высшего образования](#page-faq.higher-ed-cases) · [Совмещение групп](#page-core-concepts.alignments) · [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) · [Создание классов и групп](#page-timetables.creating-classes) · [Статистика по классам](#page-dashboard.classes) · [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) · [OneRoster](#page-integrations.oneroster) - **Группа групп** — [Definition](#page-glossary.groups-of-groups) · [Группы групп](#page-core-concepts.groups-of-groups) · [Обзор](#page-higher-ed.overview) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Полная модель данных](#page-integrations.data-model-full) · [Случаи высшего образования](#page-faq.higher-ed-cases) · [Совмещение групп](#page-core-concepts.alignments) · [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) · [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) · [OneRoster](#page-integrations.oneroster) ### Д - **Диагностика** — [Definition](#page-glossary.diagnostic) · [Автоматическое формирование](#page-timetables.generation) · [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) · [Конфликты и диагностика](#page-timetables.conflicts) · [Поведение алгоритма](#page-faq.solver-behavior) - **Дисциплина** — [Definition](#page-glossary.subject) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Обзор модуля «Сводная панель»](#page-dashboard.overview) · [Области](#page-admin.planning-domains) · [Организация данных](#page-core-concepts.data-model) · [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) · [Полная модель данных](#page-integrations.data-model-full) · [Предварительные условия](#page-timetables.prerequisites) · [Создание классов и групп](#page-timetables.creating-classes) · [Статистика по дисциплинам](#page-dashboard.subjects) · [Статистика по классам](#page-dashboard.classes) · [OneRoster](#page-integrations.oneroster) - **Доступность преподавателей (пожелания)** — [Definition](#page-glossary.wishes) · [Временные ограничения (общая система)](#page-core-concepts.time-constraints) · [Группы групп](#page-core-concepts.groups-of-groups) · [Доступность преподавателей](#page-core-concepts.wishes-and-availability) · [Назначить преподавателей](#page-timetables.assigning-teachers) · [Полная модель данных](#page-integrations.data-model-full) ### З - **Замещение / Замена** — [Definition](#page-glossary.substitution) · [Обзор модуля «Управление отсутствиями»](#page-absences.overview) · [Политики замещений](#page-absences.substitution-policies) · [Полная модель данных](#page-integrations.data-model-full) · [Статистика преподавателей](#page-dashboard.teachers) - **Занятие** — [Definition](#page-glossary.lesson) · [Блокировка занятия](#page-timetables.lesson-lock) · [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) · [Занятия вне сетки](#page-timetables.off-grid-lessons) · [Массовый импорт курсов из таблицы](#page-timetables.mass-import) · [Обзорный тур за пять минут](#page-overview.quick-tour) · [Области](#page-admin.planning-domains) · [Организация данных](#page-core-concepts.data-model) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) · [Политика распределения](#page-timetables.distribution-policy) · [Полная модель данных](#page-integrations.data-model-full) · [Просмотр и фильтры](#page-schedules.consult-and-filter) · [Разовые изменения](#page-schedules.ad-hoc-changes) · [Распределить часы и создать занятия](#page-timetables.hour-distribution) · [Редактирование занятия](#page-timetables.lesson-edit) · [Ручное размещение](#page-timetables.manual-placement) · [Что такое Omniscol](#page-overview.what-is-omniscol) ### И - **Информационная панель** — [Definition](#page-glossary.panel) · [Отображение и UX](#page-faq.display-and-ux) · [Полная модель данных](#page-integrations.data-model-full) ### К - **Кабинет** — [Definition](#page-glossary.classroom) · [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) · [Занятия вне сетки](#page-timetables.off-grid-lessons) · [Массовый импорт курсов из таблицы](#page-timetables.mass-import) · [Обзор модуля «Сводная панель»](#page-dashboard.overview) · [Области](#page-admin.planning-domains) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) · [Поиск и фильтры](#page-core-concepts.search-and-filter) · [Редактирование занятия](#page-timetables.lesson-edit) · [Статистика кабинетов](#page-dashboard.classrooms) · [Статистика по дисциплинам](#page-dashboard.subjects) - **Каникулы** — [Definition](#page-glossary.holidays) - **Класс** — [Definition](#page-glossary.class) · [Архитектура и роли](#page-overview.architecture-and-roles) · [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) · [Обзорный тур за пять минут](#page-overview.quick-tour) · [Области](#page-admin.planning-domains) · [Организация данных](#page-core-concepts.data-model) · [Полная модель данных](#page-integrations.data-model-full) · [Создание классов и групп](#page-timetables.creating-classes) · [Статистика по классам](#page-dashboard.classes) · [Что такое Omniscol](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) - **Конфликт** — [Definition](#page-glossary.conflict) · [Автоматическое формирование](#page-timetables.generation) · [Блокировка занятия](#page-timetables.lesson-lock) · [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) · [Конфликты и диагностика](#page-timetables.conflicts) · [Общая философия Omniscol](#page-overview.philosophy) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Поведение алгоритма](#page-faq.solver-behavior) · [Разовые изменения](#page-schedules.ad-hoc-changes) · [Что такое Omniscol](#page-overview.what-is-omniscol) - **Курс** — [Definition](#page-glossary.course) · [Политика распределения](#page-timetables.distribution-policy) ### Н - **Недельное расписание** — [Definition](#page-glossary.weekly-timetable) · [Выбор типа расписания](#page-overview.timetable-modes) · [Обзор](#page-k12.overview) · [Обзор модуля](#page-timetables.overview) · [Поведение алгоритма](#page-faq.solver-behavior) · [Создание расписаний](#page-faq.timetables) - **Несколько кабинетов** — [Definition](#page-glossary.multi-room) · [Массовый импорт курсов из таблицы](#page-timetables.mass-import) · [Обзор](#page-higher-ed.overview) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Случаи высшего образования](#page-faq.higher-ed-cases) - **Несовместимость (между дисциплинами)** — [Definition](#page-glossary.incompatibility) · [Временные ограничения (общая система)](#page-core-concepts.time-constraints) ### О - **Область планирования** — [Definition](#page-glossary.planning-domain) · [Настраиваемые роли](#page-admin.customroles) · [Области](#page-admin.planning-domains) - **Общий курс** — [Definition](#page-glossary.transverse-course) - **Отсутствие** — [Definition](#page-glossary.absence) · [Обзор модуля «Управление отсутствиями»](#page-absences.overview) · [Объявить об отсутствии](#page-absences.declaring) · [Политики замещений](#page-absences.substitution-policies) · [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) · [Статистика преподавателей](#page-dashboard.teachers) ### П - **Площадка** — [Definition](#page-glossary.site) · [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) · [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) · [Области](#page-admin.planning-domains) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Полная модель данных](#page-integrations.data-model-full) - **Подразделение** — [Definition](#page-glossary.campus) · [Конфликты и диагностика](#page-timetables.conflicts) · [Области](#page-admin.planning-domains) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Расширенные параметры и персонализация](#page-admin.advanced-parameters) · [Создание классов и групп](#page-timetables.creating-classes) - **Политика распределения часов** — [Definition](#page-glossary.distribution-policy) · [Политика распределения](#page-timetables.distribution-policy) - **Преподаватель** — [Definition](#page-glossary.teacher) · [Архитектура и роли](#page-overview.architecture-and-roles) · [Доступность преподавателей](#page-core-concepts.wishes-and-availability) · [Занятия вне сетки](#page-timetables.off-grid-lessons) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Назначить преподавателей](#page-timetables.assigning-teachers) · [Обзор модуля «Сводная панель»](#page-dashboard.overview) · [Обзорный тур за пять минут](#page-overview.quick-tour) · [Области](#page-admin.planning-domains) · [Организация данных](#page-core-concepts.data-model) · [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) · [Полная модель данных](#page-integrations.data-model-full) · [Пользователи и роли](#page-admin.users-and-roles) · [Предварительные условия](#page-timetables.prerequisites) · [Приглашение и активация пользователей](#page-getting-started.inviting-users) · [Редактирование занятия](#page-timetables.lesson-edit) · [Статистика по дисциплинам](#page-dashboard.subjects) · [Статистика по классам](#page-dashboard.classes) · [Статистика преподавателей](#page-dashboard.teachers) · [Что такое Omniscol](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) - **Публикация расписания** — [Definition](#page-glossary.publication) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Публикация расписания](#page-timetables.publication) · [Создание расписаний](#page-faq.timetables) ### Р - **Разделение класса** — [Definition](#page-glossary.class-division) · [Иерархия групп](#page-core-concepts.group-hierarchy) · [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) · [Обзор](#page-k12.overview) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Политика распределения](#page-timetables.distribution-policy) · [Полная модель данных](#page-integrations.data-model-full) · [Разделение класса](#page-core-concepts.class-divisions) · [Случаи высшего образования](#page-faq.higher-ed-cases) · [Совмещение групп](#page-core-concepts.alignments) · [Создание классов и групп](#page-timetables.creating-classes) · [OneRoster](#page-integrations.oneroster) - **Расписание** — [Definition](#page-glossary.timetable) · [Временная сетка, слоты и длительности](#page-core-concepts.timetable-grid) · [Выбор типа расписания](#page-overview.timetable-modes) · [Занятия вне сетки](#page-timetables.off-grid-lessons) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Обзор модуля](#page-timetables.overview) · [Обзор модуля «Сводная панель»](#page-dashboard.overview) · [Обзорный тур за пять минут](#page-overview.quick-tour) · [Области](#page-admin.planning-domains) · [Общая философия Omniscol](#page-overview.philosophy) · [Общие параметры](#page-timetables.general-settings) · [Отображение и UX](#page-faq.display-and-ux) · [Отображение расписаний](#page-schedules.schedule-display) · [Поиск и фильтры](#page-core-concepts.search-and-filter) · [Просмотр и фильтры](#page-schedules.consult-and-filter) · [Публикация расписания](#page-timetables.publication) · [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) · [Создание расписаний](#page-faq.timetables) · [Статистика кабинетов](#page-dashboard.classrooms) · [Статистика преподавателей](#page-dashboard.teachers) · [Что такое Omniscol](#page-overview.what-is-omniscol) - **Режим визуального отображения расписания** — [Definition](#page-glossary.schedule-view-mode) - **Режим календаря** — [Definition](#page-glossary.calendar-mode) · [Выбор типа расписания](#page-overview.timetable-modes) · [Обзор](#page-higher-ed.overview) · [Обзор модуля](#page-timetables.overview) · [Случаи высшего образования](#page-faq.higher-ed-cases) · [Создание расписаний](#page-faq.timetables) · [Тарифные планы и опции Omniscol](#page-overview.plans-and-options) - **Ресурс** — [Definition](#page-glossary.resource) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Полная модель данных](#page-integrations.data-model-full) · [Редактирование занятия](#page-timetables.lesson-edit) · [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) ### С - **Свободная группа** — [Definition](#page-glossary.free-group) · [Полная модель данных](#page-integrations.data-model-full) · [Свободные группы](#page-core-concepts.free-groups) - **Сводная панель** — [Definition](#page-glossary.dashboard) · [Обзор модуля «Сводная панель»](#page-dashboard.overview) · [Работа с таблицами и графиками](#page-dashboard.tools-and-filters) · [Статистика кабинетов](#page-dashboard.classrooms) · [Статистика по дисциплинам](#page-dashboard.subjects) · [Статистика по классам](#page-dashboard.classes) · [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) · [Статистика преподавателей](#page-dashboard.teachers) - **Связанные занятия** — [Definition](#page-glossary.associated-lessons) · [Распределить часы и создать занятия](#page-timetables.hour-distribution) · [Сложные занятия](#page-core-concepts.complex-lessons) - **Сдвоенные занятия** — [Definition](#page-glossary.concatenated-lessons) · [Распределить часы и создать занятия](#page-timetables.hour-distribution) · [Сложные занятия](#page-core-concepts.complex-lessons) - **Совместное преподавание** — [Definition](#page-glossary.co-teaching) · [Сложные занятия](#page-core-concepts.complex-lessons) · [Случаи высшего образования](#page-faq.higher-ed-cases) - **Совмещение групп** — [Definition](#page-glossary.alignment) · [Группы групп](#page-core-concepts.groups-of-groups) · [Класс, группа, подгруппа](#page-core-concepts.classes-and-groups) · [Обзор](#page-k12.overview) · [Полная модель данных](#page-integrations.data-model-full) · [Случаи высшего образования](#page-faq.higher-ed-cases) · [Совмещение групп](#page-core-concepts.alignments) · [Совмещения и группы групп](#page-timetables.alignments-and-groups-of-groups) - **Специализация кабинета** — [Definition](#page-glossary.classroom-specialization) · [Автоматическое назначение кабинетов](#page-timetables.auto-room-assignment) · [Особые случаи и расширенные настройки](#page-faq.edge-cases) · [Площадки, временные сетки, кабинеты, ресурсы](#page-timetables.sites-rooms) · [Площадки, кабинеты, ресурсы](#page-core-concepts.sites-rooms-resources) · [Полная модель данных](#page-integrations.data-model-full) - **Ссылка общего доступа** — [Definition](#page-glossary.share-link) · [Архитектура и роли](#page-overview.architecture-and-roles) · [Безопасность и хостинг](#page-faq.security-and-hosting) · [Обзор интеграций](#page-integrations.overview) - **Статус** — [Definition](#page-glossary.lesson-status) ### Т - **Тип занятия** — [Definition](#page-glossary.lesson-type) · [Организация данных](#page-core-concepts.data-model) · [Полная модель данных](#page-integrations.data-model-full) - **Токен API** — [Definition](#page-glossary.api-token) · [Архитектура](#page-integrations.architecture) · [Безопасность и хостинг](#page-faq.security-and-hosting) · [Обзор интеграций](#page-integrations.overview) · [Расширенные запросы](#page-integrations.advanced-queries) · [API занятий](#page-integrations.lessons-api) ### У - **Управление персоналом** — [Definition](#page-glossary.staffing) · [Полная модель данных](#page-integrations.data-model-full) - **Уровень** — [Definition](#page-glossary.level) · [Области](#page-admin.planning-domains) - **Учебный год** — [Definition](#page-glossary.school-year) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Настройка аккаунта школы](#page-getting-started.setup-school) · [Общие параметры](#page-admin.parameters) · [Организация данных](#page-core-concepts.data-model) · [Полная модель данных](#page-integrations.data-model-full) · [Предварительные условия](#page-timetables.prerequisites) · [Публикация расписания](#page-timetables.publication) · [OneRoster](#page-integrations.oneroster) - **Ученик / Студент / Слушатель** — [Definition](#page-glossary.student) · [Архитектура и роли](#page-overview.architecture-and-roles) · [Знакомство с системой](#page-getting-started.onboarding-tour) · [Подготовка данных к массовому импорту](#page-getting-started.preparing-data) · [Пользователи и роли](#page-admin.users-and-roles) · [Приглашение и активация пользователей](#page-getting-started.inviting-users) · [Статистика по ученикам и ресурсам](#page-dashboard.students-resources) · [Что такое Omniscol](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) ### Ф - **Формат** — [Definition](#page-glossary.lesson-modality) - **Формирование** — [Definition](#page-glossary.solver) · [Автоматическое формирование](#page-timetables.generation) · [Блокировка занятия](#page-timetables.lesson-lock) · [Временные ограничения (общая система)](#page-core-concepts.time-constraints) · [Диагностика неудачного формирования расписания](#page-timetables.diagnosing-generation) · [Доступность преподавателей](#page-core-concepts.wishes-and-availability) · [Общая философия Omniscol](#page-overview.philosophy) · [Поведение алгоритма](#page-faq.solver-behavior) · [Ручное размещение](#page-timetables.manual-placement) · [Создание расписаний](#page-faq.timetables) · [Что такое Omniscol](#page-overview.what-is-omniscol) ### Ц - **Циклическое расписание** — [Definition](#page-glossary.cyclic-timetable) · [Выбор типа расписания](#page-overview.timetable-modes) · [Создание расписаний](#page-faq.timetables) ### Ч - **Чередующиеся занятия** — [Definition](#page-glossary.alternate-lessons) · [Общие параметры](#page-admin.parameters) · [Распределить часы и создать занятия](#page-timetables.hour-distribution) · [Сложные занятия](#page-core-concepts.complex-lessons) ### Ш - **Шкала времени** — [Definition](#page-glossary.timeline) · [Шкала времени и навигация по периодам](#page-core-concepts.timeline-navigation) ### I - **iCal (экспорт в календарь)** — [Definition](#page-glossary.ical) · [Обзор интеграций](#page-integrations.overview)