Раздел 'Выбор дисциплин' - интерфейс студента
Техническое задание: Раздел "Выбор дисциплин"
Интерфейс студента
1. Назначение
Раздел "Выбор дисциплин" предназначен для предоставления студентам возможности просмотра доступных дисциплин по выбору из учебного плана и формирования индивидуального выбора дисциплин через веб-интерфейс ЛК с записью выбранных значений в учетную систему.
2. Область применения
- Веб-интерфейс личного кабинета студента
- Взаимодействие с бэкендом 1С:Университет ПРОФ через API
- Формирование индивидуальной траектории обучения
- Закрепление дисциплин по выбору за обучающимся
3. Функциональные возможности
3.1. Просмотр перечня дисциплин по выбору
- Вывод списка групп дисциплин по выбору, сгруппированных по типу записи учебного плана
- Отображение доступных дисциплин для выбора в рамках каждой группы
- Отображение уже выбранных дисциплин с визуальным выделением
- Фильтрация вывода по зачетной книге
3.2. Детальный выбор дисциплин
- Открытие модального окна для выбора дисциплины из группы
- Возможность выбора одной дисциплины из группы альтернативных
- Возможность изменения ранее выбранной дисциплины
- Визуальная индикация выбранных/невыбранных дисциплин
3.3. Визуальное оформление
- Цветовая индикация строк с выбранными дисциплинами (зеленый цвет)
- Отображение периода контроля (семестра) для групп дисциплин
- Настройка информационных блоков перед/после таблиц через HTML-шаблоны
4. Функциональные требования
4.1. Перечень дисциплин по выбору
4.1.1. Отображение списка групп дисциплин
Описание: Студент должен иметь возможность просматривать доступные группы дисциплин по выбору с указанием периода контроля и возможности выбора.
API-метод: iStud_choiceDisciplines
Входные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| user_id | Число | Идентификатор пользователя (опционально) |
| ФизическоеЛицо | Ссылка | Ссылка на физическое лицо (опционально) |
| НомерСтраницы | Число | Номер страницы пагинации |
| rootModel.recordBookList | Ссылка | Фильтр по зачетной книге (опционально) |
Бизнес-логика:
- Определение физического лица по user_id или явному параметру
- Получение актуальной зачетной книги и учебного плана студента
- Фильтрация по зачетной книге при указании в rootModel
- Выборка дисциплин по выбору из регистра ЗакреплениеДисциплинЗаОбучающимся
- Группировка по ТипЗаписиУчебногоПлана
- Определение актуального периода контроля для отображения кнопки выбора
- Пагинация (60 записей на странице)
Структура ответа:
| Поле | Тип | Описание |
|---|---|---|
| ТипЗаписиУчебногоПлана | Строка | Код типа записи (группировка) |
| ДисциплиныДляВыбора | Строка | Перечень дисциплин через "/" |
| ПериодКонтроля | Ссылка | Период контроля (семестр) |
| Выбрана | Булево | Признак наличия выбора в группе |
| ВыбраннаяДисциплина | Строка | Наименование выбранной дисциплины |
| data.СтилиСтроки | Строка | CSS-стиль для раскраски строки |
| data.command | Массив | Массив команд (кнопка выбора) |
Цветовая индикация:
- Выбрана = Истина:
background-color: MediumSpringGreen;
Кнопки действий:
- Кнопка "Выбрать" (зеленая) - если период контроля будущий и дисциплина еще не выбрана
- Кнопка "Изменить" (желтая) - если период контроля будущий и дисциплина уже выбрана
- Отсутствие кнопки - если период контроля не актуален (прошедший)
4.2. Детальный выбор дисциплины
4.2.1. Получение списка дисциплин для выбора
Описание: При нажатии кнопки "Выбрать"/"Изменить" открывается модальное окно со списком дисциплин для выбора в рамках данной группы.
API-метод: getData_DetailChoiseDisciplines
Входные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Регистратор | ДокументСсылка | Документ-регистратор закрепления |
| ТипЗаписиУчебногоПлана | Ссылка | Тип записи учебного плана |
| НомерСтраницы | Число | Номер страницы пагинации |
Бизнес-логика:
- Выборка дисциплин из регистра ЗакреплениеДисциплинЗаОбучающимся по регистратору и типу записи
- Отображение признака "Выбрана" для каждой дисциплины
- Формирование структуры для интерактивного выбора (чекбокс/радио)
- Пагинация (60 записей на странице)
Структура ответа:
| Поле | Тип | Описание |
|---|---|---|
| ТипЗаписиУчебногоПлана | Строка | Код типа записи |
| Дисциплина | Строка | Наименование дисциплины |
| Выбрана | Булево | Признак выбора |
| data.Пометка | Булево | Текущее состояние выбора |
| data.Группировка | Ссылка | Тип записи для группировки |
| data.Регистратор | ДокументСсылка | Документ-регистратор |
| data.Дисциплина | Ссылка | Ссылка на дисциплину |
4.2.2. Сохранение выбора дисциплины
Описание: Сохранение выбранной дисциплины с записью в документ-регистратор.
API-метод: post_ChoiseDiscipline
Входные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| ТаблицаДанных | Массив | Массив структур с данными выбора |
Структура элемента ТаблицаДанных:
| Поле | Тип | Описание |
|---|---|---|
| Пометка | Булево | Признак выбора |
| Группировка | Ссылка | Тип записи учебного плана |
| Регистратор | ДокументСсылка | Документ-регистратор |
| Дисциплина | Ссылка | Ссылка на дисциплину |
| ТипЗаписиУчебногоПлана | Ссылка | Тип записи учебного плана |
Бизнес-логика:
- Получение объекта документа-регистратора по ссылке
- Поиск строк в табличной части "ВыбранныеДисциплины" по дисциплине и типу записи
- Установка признака "Выбрана" в соответствии с Пометкой
- Запись документа с проведением
- Возврат действий: "ОбновитьУниверсальныйБлок", "ЗакрытьМодальноеОкно"
5. Ограничения и условия
5.1. Доступность выбора дисциплины
| Условие | Доступность |
|---|---|
| Период контроля будущий | Доступен выбор/изменение |
| Период контроля текущий/прошедший | Выбор недоступен |
| Дисциплина уже выбрана | Доступно изменение |
5.2. Логика выбора
- В рамках одного ТипЗаписиУчебногоПлана может быть выбрана только одна дисциплина
- При выборе новой дисциплины в группе предыдущий выбор сбрасывается
- Выбор сохраняется сразу при нажатии кнопки подтверждения
6. Структура данных 1С
6.1. Регистр сведений "ЗакреплениеДисциплинЗаОбучающимся"
Измерения:
| Измерение | Тип | Описание |
|---|---|---|
| ФизическоеЛицо | СправочникСсылка.ФизическиеЛица | Физическое лицо |
| ЗачетнаяКнига | СправочникСсылка.ЗачетныеКниги | Зачетная книга |
| Дисциплина | СправочникСсылка.Дисциплины | Дисциплина |
| ТипЗаписиУчебногоПлана | СправочникСсылка | Тип записи учебного плана |
Ресурсы:
| Ресурс | Тип | Описание |
|---|---|---|
| Выбрана | Булево | Признак выбора дисциплины |
| ДисциплинаПоВыбору | Булево | Признак дисциплины по выбору |
| УчебныйПлан | ДокументСсылка.УчебныйПлан | Учебный план |
Атрибуты:
| Атрибут | Тип | Описание |
|---|---|---|
| Регистратор | ДокументСсылка | Документ-регистратор |
6.2. Документ-регистратор (Закрепление дисциплин)
Табличная часть "ВыбранныеДисциплины":
| Реквизит | Тип | Описание |
|---|---|---|
| Дисциплина | СправочникСсылка.Дисциплины | Дисциплина |
| ТипЗаписиУчебногоПлана | СправочникСсылка | Тип записи учебного плана |
| ДисциплинаПоВыбору | Булево | Признак дисциплины по выбору |
| Выбрана | Булево | Признак выбора |
6.3. Документ "УчебныйПлан"
Табличная часть "ЗаписиУчебногоПлана":
| Реквизит | Тип | Описание |
|---|---|---|
| Дисциплина | СправочникСсылка.Дисциплины | Дисциплина |
| ПериодКонтроля | СправочникСсылка.ПериодыКонтроля | Период контроля (семестр) |
| ТипЗаписи | СправочникСсылка | Тип записи учебного плана |
7. Запросы данных
7.1. Запрос "СписокДисциплинДляВыбора"
Назначение: Получение списка дисциплин по выбору для физического лица и зачетной книги.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| ФизическоеЛицо | Ссылка | Физическое лицо студента |
| ЗачетнаяКнига | Ссылка | Зачетная книга студента |
Логика:
- Выборка из регистра ЗакреплениеДисциплинЗаОбучающимся.СрезПоследних
- Фильтрация по ФизЛицу, ЗачетнойКниге, ДисциплинаПоВыбору = ИСТИНА
- Соединение с УчебныйПлан.ЗаписиУчебногоПлана для получения ПериодаКонтроля
- Группировка по ТипЗаписиУчебногоПлана с итогами
7.2. Запрос "СписокДисциплинДляВыбораПоТипуЗаписи"
Назначение: Получение детального списка дисциплин для конкретного типа записи учебного плана.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Регистратор | ДокументСсылка | Документ-регистратор |
| ТипЗаписиУчебногоПлана | Ссылка | Тип записи учебного плана |
Логика:
- Выборка из регистра ЗакреплениеДисциплинЗаОбучающимся.СрезПоследних
- Фильтрация по Регистратору, ТипЗаписиУчебногоПлана, ДисциплинаПоВыбору = ИСТИНА
8. API-методы (справочник "ОбработчикЛичныхКабинетов")
| ИмяHTTP | Метод | Описание |
|---|---|---|
| iStud_choiceDisciplines | GET | Вывод строк дисциплин по выбору |
| getData_DetailChoiseDisciplines | GET | Получить список дисциплин по выбору по коду |
| post_ChoiseDiscipline | POST | Изменить закрепление дисциплин |
8.1. Обработчик "Вывод строк дисциплин по выбору"
Имя HTTP: iStud_choiceDisciplines
Родитель: Выбор дисциплин / !БИЗНЕС ЛОГИКА ЛК / ЛК студента
Параметры обработчика:
| Параметр | Источник | Описание |
|---|---|---|
| Запрос | СписокДисциплинДляВыбора | Запрос данных |
| ТекстПередТаблицей | ВыборДисциплинТекстПередТаблицей | HTML-шаблон перед таблицей |
| ТекстПослеТаблицы | ВыборДисциплинТекстПослеТаблицы | HTML-шаблон после таблицы |
8.2. Обработчик "Получить список дисциплин по выбору по коду"
Имя HTTP: getData_DetailChoiseDisciplines
Родитель: Выбор дисциплин / !БИЗНЕС ЛОГИКА ЛК / ЛК студента
Параметры обработчика:
| Параметр | Источник | Описание |
|---|---|---|
| Запрос | СписокДисциплинДляВыбораПоТипуЗаписи | Запрос данных |
| ТекстПередТаблицей | ВыборДисциплинДеталиТекстПередТаблицей | HTML-шаблон перед таблицей |
| ТекстПослеТаблицы | ВыборДисциплинДеталиТекстПослеТаблицы | HTML-шаблон после таблицы |
8.3. Обработчик "Изменить закрепление дисциплин"
Имя HTTP: post_ChoiseDiscipline
Родитель: Выбор дисциплин / !БИЗНЕС ЛОГИКА ЛК / ЛК студента
Возвращаемые действия:
| Действие | Описание |
|---|---|
| ОбновитьУниверсальныйБлок | Обновление данных в родительском блоке |
| ЗакрытьМодальноеОкно | Закрытие модального окна после сохранения |
9. HTML-шаблоны областей
9.1. Шаблоны перечня выбора дисциплин
| Код | Наименование | Описание |
|---|---|---|
| 000000041 | ВыборДисциплинТекстПередТаблицей | Шаблон перед таблицей перечня выбора дисциплин |
| 000000042 | ВыборДисциплинТекстПослеТаблицы | Шаблон после таблицы перечня выбора дисциплин |
9.2. Шаблоны детального выбора дисциплин
| Код | Наименование | Описание |
|---|---|---|
| 000000043 | ВыборДисциплинДеталиТекстПередТаблицей | Шаблон перед таблицей детального выбора |
| 000000044 | ВыборДисциплинДеталиТекстПослеТаблицы | Шаблон после таблицы детального выбора |
10. Требования к интерфейсу
10.1. Список групп дисциплин по выбору
- Табличное представление с колонками:
- Код (ТипЗаписиУчебногоПлана)
- Дисциплины для выбора
- Период контроля
- Есть выбор
- Выбранная дисциплина
- Пагинация внизу таблицы
- Цветовая индикация строк с выбранными дисциплинами (зеленый фон)
- Кнопка действия в зависимости от статуса:
- "Выбрать" (зеленая) - для будущего периода, дисциплина не выбрана
- "Изменить" (желтая) - для будущего периода, дисциплина выбрана
- Без кнопки - для прошедшего периода
10.2. Форма фильтров
Настройка формы: Справочник "Конструктор форм ЛК"
Имя формы: iStud_choiceDisciplinesForm
Доступный фильтр:
| Параметр | Описание |
|---|---|
| Зачетная книга | Фильтрация по зачетной книге студента |
10.3. Модальное окно детального выбора
- Заголовок с наименованием группы дисциплин
- Таблица дисциплин с колонками:
- Код (ТипЗаписиУчебногоПлана)
- Дисциплина
- Выбрана (чекбокс/радио)
- Информационные блоки перед/после таблицы
- Кнопка "Сохранить" / "Отмена"
- Закрытие с обновлением родительского блока
11. Безопасность
- Проверка прав пользователя на доступ к разделу
- Аутентификация по user_id или ссылке на ФизическоеЛицо
- Фильтрация данных только по физическому лицу текущего пользователя
- Запись изменений только в документы, доступные пользователю
12. Интеграция
12.1. Взаимодействие с сайтом
- Все данные передаются в формате JSON
- Использование модальных окон для детального выбора
- Обновление родительского блока после сохранения выбора
12.2. Справочники конфигурации
Для работы раздела используются следующие объекты конфигурации 1С:Университет ПРОФ:
Справочники:
- ЗачетныеКниги - зачетные книги студентов
- Дисциплины - дисциплины учебного плана
- ПериодыКонтроля - периоды контроля (семестры)
- ЛКHTMLШаблоныОбластей - HTML-шаблоны областей
Документы:
- УчебныйПлан - учебные планы
- Документ-регистратор закрепления дисциплин
Регистры сведений:
- ЗакреплениеДисциплинЗаОбучающимся - закрепление дисциплин за обучающимся
Служебные модули:
- ЛичныеКабинетыСлужебныеФункцииСервер - служебные функции ЛК
- КабинетСтудентаБизнесЛогика - бизнес-логика кабинета студента
13. Расширение логики
- Возможность настройки дополнительных фильтров через конструктор форм
- Возможность кастомизации HTML-шаблонов информационных блоков
- Возможность расширения набора команд для строки таблицы
- Поддержка произвольных стилей для шапки и столбцов таблицы