Перейти к основному содержимому

Создание задания

Любой авторизованный пользователь ЛК может создать новое задание. Кнопка «Новое задание» расположена в левом меню, в группе Service Desk.

После клика открывается форма ticket_new.html.

Форма нового задания

Форма состоит из следующих полей:

ПолеОписаниеОбязательное
ТемаКраткая суть задания (одно предложение).Да
ОписаниеПолное описание задания. Доступен визуальный редактор (TinyMCE) с форматированием, ссылками, списками.Да (обычно)
ПроектСписок проектов, в которых пользователь — участник. См. правила видимости проектов.Зависит от редакции
РазделСписок разделов выбранного проекта в статусе «Новый». Выпадашка автоматически перезаполняется при смене проекта.Зависит от редакции
Прикреплённые файлыПроизвольное количество файлов. Каждый файл — отдельная строка с кнопкой «Обзор». Кнопка «Ещё» добавляет следующий пустой слот.Нет

В нижней части формы — кнопки «Создать» и «Назад».

Логика выбора проекта

В выпадашку «Проект» попадают только проекты, в которых пользователь является участником. Учитывается:

  • прямое участие (РегистрСведений.УчастникиПроектов.Участник = пользователь);
  • участие через группу пользователей (любая группа из Справочник.ГруппыПользователей, в составе которой есть пользователь);
  • участие через предопределённую группу «Все пользователи» — она включает всех пользователей системы, поэтому проект, в котором участником назначена эта группа, виден каждому.

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

В редакции конфигурации СТАНДАРТ (без работы с проектами) блок выбора проекта и раздела скрывается, и задание создаётся без привязки к проекту.

Логика выбора раздела

После выбора проекта браузер делает AJAX-запрос на query.html?query=stagelist&project=<UUID>. В ответ возвращается список разделов проекта, отфильтрованный так:

  • раздел принадлежит выбранному проекту;
  • не помечен на удаление;
  • статус раздела — «Новый» (Перечисление.СтатусыЖизненногоЦиклаЗаданий.Новый).

Разделы со статусом «В работе», «Выполнено», «Возобновлено», «Приостановлено» или «Отменено» в выпадашку не попадают — задание сразу должно создаваться в новом, ещё не запущенном разделе.

Если у пользователя нет доступа к проекту — сервер вернёт ошибку «Нет доступа к проекту», и выпадашка раздела останется пустой.

Прикрепление файлов

Для прикрепления файлов используется стандартный браузерный диалог. Особенности:

  • Размер каждого файла ограничен константой «Максимальный размер файла» (настраивается администратором). При попытке выбрать файл больше — браузер выводит предупреждение.
  • Количество файлов не ограничено. Кнопка «Ещё» добавляет новый слот для очередного файла.
  • На сервере файлы сохраняются в отдельный справочник Справочник.ЗаданияПрисоединенныеФайлы и привязываются к создаваемому заданию.

Что происходит при отправке формы

Кнопка «Создать» отправляет POST-запрос на ticket_ok.html. Алгоритм обработки:

  1. Антидубль. Система ищет, не было ли создано таким же автором задание с такой же темой за последние 60 секунд. Если да — повторное создание блокируется (защита от двойного клика по «Создать»).
  2. Создание задания. Создаётся документ Документ.Задание, заполняются:
    • Тема, Текст (HTML из редактора).
    • Автор и Инициатор — текущий пользователь.
    • Клиент — клиент инициатора (определяется автоматически).
    • Способ создания — «Личный кабинет».
  3. Прикрепление файлов. Каждый прикреплённый файл сохраняется в ЗаданияПрисоединенныеФайлы и связывается с заданием.
  4. Привязка к проекту и разделу. Если был выбран проект, в РегистрСведений.СвязьПроектовИЗаданий создаётся запись с проектом, заданием и разделом.
  5. Открытие даты. В регистре «Реквизиты заданий по пользователям» фиксируется момент открытия задания текущим пользователем.

После успешного создания пользователь видит сообщение об успехе. При ошибке выводится текст с подробностями.

Важно

Запись задания производится в привилегированном режиме — это значит, что даже если у пользователя нет прав на запись Документ.Задание напрямую, через ЛК создание всё равно сработает. Это сделано специально, чтобы любой клиент мог отправить заявку.

Важно!

Описанный в статье функционал доступен в конфигурации «Управление IT-отделом» редакции 4.0.