Создание задания
Любой авторизованный пользователь ЛК может создать новое задание. Кнопка «Новое задание» расположена в левом меню, в группе Service Desk.
После клика открывается форма ticket_new.html.
Форма нового задания
Форма состоит из следующих полей:
| Поле | Описание | Обязательное |
|---|---|---|
| Тема | Краткая суть задания (одно предложение). | Да |
| Описание | Полное описание задания. Доступен визуальный редактор (TinyMCE) с форматированием, ссылками, списками. | Да (обычно) |
| Проект | Список проектов, в которых пользователь — участник. См. правила видимости проектов. | Зависит от редакции |
| Раздел | Список разделов выбранного проекта в статусе «Новый». Выпадашка автоматически перезаполняется при смене проекта. | Зависит от редакции |
| Прикреплённые файлы | Произвольное количество файлов. Каждый файл — отдельная строка с кнопкой «Обзор». Кнопка «Ещё» добавляет следующий пустой слот. | Нет |
В нижней части формы — кнопки «Создать» и «Назад».
Логика выбора проекта
В выпадашку «Проект» попадают только проекты, в которых пользователь является участником. Учитывается:
- прямое участие (
РегистрСведений.УчастникиПроектов.Участник = пользователь); - участие через группу пользователей (любая группа из
Справочник.ГруппыПользователей, в составе которой есть пользователь); - участие через предопределённую группу «Все пользователи» — она включает всех пользователей системы, поэтому проект, в котором участником назначена эта группа, виден каждому.
Если у пользователя один проект-участник — он автоматически выбран в выпадашке (с атрибутом selected), и сразу подгружаются его разделы. Если несколько — пользователь выбирает нужный вручную. Если ни одного — выпадашка содержит только пункт «Не выб рано».
В редакции конфигурации СТАНДАРТ (без работы с проектами) блок выбора проекта и раздела скрывается, и задание создаётся без привязки к проекту.
Логика выбора раздела
После выбора проекта браузер делает AJAX-запрос на query.html?query=stagelist&project=<UUID>. В ответ возвращается список разделов проекта, отфильтрованный так:
- раздел принадлежит выбранному проекту;
- не помечен на удаление;
- статус раздела — «Новый» (
Перечисление.СтатусыЖизненногоЦиклаЗаданий.Новый).
Разделы со статусом «В работе», «Выполнено», «Возобновлено», «Приостановлено» или «Отменено» в выпадашку не попадают — задание сразу должно создаваться в новом, ещё не запущенном разделе.
Если у пользователя нет доступа к проекту — сервер вернёт ошибку «Нет доступа к проекту», и выпадашка раздела останется пустой.
Прикрепление файлов
Для прикрепления файлов используется стандартный браузерный диалог. Особенности:
- Размер каждого файла ограничен константой «Максимальный размер файла» (настраивается администратором). При попытке выбрать файл больше — браузер выводит предупреждение.
- Количество файлов не ограничено. Кнопка «Ещё» добавляет новый слот для очередного файла.
- На сервере файлы сохраняются в отдельный справочник
Справочник.ЗаданияПрисоединенныеФайлыи привязываются к создаваемому заданию.
Что происходит при отправке формы
Кнопка «Создать» отправляет POST-запрос на ticket_ok.html. Алгоритм обработки:
- Антидубль. Система ищет, не было ли создано таким же автором задание с такой же темой за последние 60 секунд. Если да — повторное создание блокируется (защита от двойного клика по «Создать»).
- Создание задания. Создаётся документ
Документ.Задание, заполняются:- Тема, Текст (HTML из редактора).
- Автор и Инициатор — текущий пользователь.
- Клиент — клиент инициатора (определяется автоматически).
- Способ создания — «Личный кабинет».
- Прикрепление файлов. Каждый прикреплённый файл сохраняется в
ЗаданияПрисоединенныеФайлыи связывается с заданием. - Привязка к проекту и разделу. Если был выбран проект, в
РегистрСведений.СвязьПроектовИЗаданийсоздаётся запись с проектом, заданием и разделом. - Открытие даты. В регистре «Реквизиты заданий по пользователям» фиксируется момент открытия задания текущим пользователем.
После успешного создания пользователь видит сообщение об успехе. При ошибке выводится текст с подробностями.
Важно
Запись задания производится в привилегированном режиме — это значит, что даже если у пользователя нет прав на запись Документ.Задание напрямую, через ЛК создание всё равно сработает. Это сделано специально, чтобы любой клиент мог отправить заявку.
Важно!
Описанный в статье функционал доступен в конфигурации «Управление IT-отделом» редакции 4.0.