# Создание задачи с помощью планировщика

С помощью инструмента **"Планировщик задач"** можно создавать задачи, выполняющиеся автоматически, то есть без непосредственного участия пользователей, а также задавать расписание запуска таких задач.

## Создание задачи "Уведомление о просроченных документах"

Для создания задачи необходимо:

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

![Планировщик задач](media/taskManager.png)

Откроется реестр запланированных задач
![Реестр задач](media/registry.png)

Для создания новой задачи в панели управления нажмите соответствующую кнопку.

![Новая задача](media/task.png)

Поле **"Наименование"** - указывается название задачи

Поле **"Включено"** - показывает включена ли задача в данный момент

Поле **"Описание"** - описывается процесс работы задачи

Поле **"Выполняющий пользователь"** - пользователь, от имени которого будет выполняться задача. По умолчанию "default".

Поле **"Действие при успехе"** - указывается действие, которое будет выполнено при успешном окончании задачи.

Поле **"Действие при ошибке"** - указывается действие,  которое будет выполнено при неудачном окончании задачи.

![Заполненная задача](media/completedTask.png)

Нажмите Сохранить и закрыть

Нажмите на вкладку "Шаги" и нажмите "Добавить шаг"

![Выбор шага](media/addStep.png)

Откроется вкладка **"Шаг"**. Заполните поля _Наименование, Действие, Действие при успехе, Действие при ошибке_

Поле **"Наименование"** - указывается название шага

Поле **"Действие"** - какое действие необходимо исполнить в задаче. Подробную информацию о всех функциях, указанных в планировщике задач можно почитать в статье [Функции планировщика задач](../Функции планировщика задач/index.md).

Поле **"Действие при успехе"** - указывается действие, которое необходимо будет произвести при успешном выполнении действия.

Поле **"Действие при ошибке"** - указывается действие, которое необходимо будет произвести при неудачном выполнении действия.

Нажмите Сохранить и закрыть

![Заполнение шагов](media/step.png)
![Пример с одним шагом](media/stepToWrite.png)

Задача может состоять из нескольких шагов.

![Пример с несколькими шагами](media/multiStep.png)

При успешном выполнении действия в первом шаге, задача автоматически перейдет ко второму шагу, и так далее до конца задачи. В случае неудачного выполнения во втором шаге, задача будет завершена без перехода к третьему шагу. Шаг можно отредактировать, дважды кликнув по строке с информацией по нему.

## Создание расписания в формате Crontab

Перейдите во вкладку Расписание, нажмите Добавить расписание.

Поле Crontab заполняется в формате cron. Чтобы правильно настроить расписание в данном формате, перейдите [по ссылке](https://crontab-generator.com/ru). Сервис использует серверное время, где развернут сервис.

![Crontab](media/crontab.png)

В данном примере указано что задача будет запускаться каждый день с понедельника по пятницу в 4 часа 30 минут.

Примеры использования crontab (ввиду технических особенностей отображения в статье спецсимвола *, копировать данные примеры для последующей вставки в расписание нежелательно):

Описание | Вычисление
---------|-----------
каждые 30 минут каждый день | `30 * * * *`|
каждые 60 минут каждый день | `0 * * * * `|
каждый час с 9 до 18 по рабочим дням | 0 9-17 * * 1-5 |
каждые два часа с 9 до 18 по рабочим дням | `0 9-18/2 * * 1-5` |
в 6:00 по рабочим дням | 0 6 * * 1-5 |
в 12:00 в субботу | 0 12 * * 6 |
в 07:05 через каждые полчаса с 7 до 16 каждый день | 5/30 7-15 * * * |

Нажмите Сохранить и закрыть

## Выполнение задачи

Для проверки выполнения задачи необходимо:

- Выбрать задачу и нажать "Запустить задачу"

![Запуск задачи](media/runTask.png)

Появится информационное сообщение что задача запущена:

![Сообщение](media/message.png)

В реестре задач перейдите в Журнал выполнения:

![Журнал выполнения](media/executionLog.png)

Загрузится реестр всех запущенных задач с начала текущих суток:

![Выбор по периоду](media/selectTime.png)

- Успешное исполнение задачи сопровождается сообщением: **"Finish Success without action"**
- Неудачное исполнение задачи сопровождается сообщением содержащим **"Finish Failed"**, например: _"Finish Failed action complete with error data.forEach is not a function"_.

![Неудачное завершение задачи](media/errorForStep.png)

В случае если необходимо отобрать список по определенной задаче, ее необходимо выбрать в поле **"Записи для задачи"** и нажать кнопку **"Загрузить"** (например,
 задача **"Блокировка учетной записи сотрудника при увольнении"**)

![Выбор задачи](media/selectTask.png)

Есть возможность отобрать список по определенному статусу

![Выбор статуса](media/selectStatus.png)

При выборе задачи в списке журнала планировщика задач и двойном нажатии на нее мышью, открывается более подробная информация о выполненной задаче, включая статус, время начала и завершения.

![Описание](media/taskDescription.png)
![Описание](media/taskDescription2.png)

При неудачном исполнении [заданий для планировщика](../Настройка внутрисистемных уведомлений/#настройка_заданий_для_планировщика), в сообщениях отображается ошибка с описанием.

![Ошибка](media/failedTask.png)
![Ошибка2](media/notificationDirectory.png)

## Настройка рассылки уведомления

Далее необходимо настроить рассылку данного уведомления. Для этого перейдите Администрирование - Рассылка электронных писем - Настройка рассылки уведомлений

![Меню рассылки](media/menuPush.png)

В открывшейся вкладке нажмите Создать. Далее необходимо выбрать по каким типам документов будет направляться уведомления о просрочке. Например, выберем Заявление на ежегодный отпуск. Обязательно нужно поставить галочку напротив "Включить оповещения о просрочке". Нажмите Сохранить и закрыть.

![Настройка уведомлений](media/nastroikaUvedomlen.png)

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

Например. Имеется заявление на отпуск, у которого срок исполнения просрочен на три дня.

![Просроченное заявление](media/overdueDocument.png)

На почту приходит уведомление о просроченном документе, сроке и ссылка на данный документ.

![Письмо о просроченном документе](media/delayLetter.png)

Также можно настроить периодичность в днях и часах о напоминании обработки просроченных документов.

В **настройке учетной политики предприятия** необходимо добавить константы **СЭД_Частота_уведомлений_о_просрочке_документов_дни** либо **СЭД_Частота_уведомлений_о_просрочке_документов_часы**. В значениях необходимо указать периодичность напоминания (по умолчанию 2 дня и 2 часа).

![Настройка констант](media/constanty.png)
## Создание задачи о приближении срока обработки документа

Для направления уведомлений пользователю о приближении срока обработки документа, необходимо настроить [задачу](../Функции планировщика задач/index.md) **"Уведомления о приближающейся просрочке документов"**.

![Обработка](media/taskObrabotka.png)

В **настройке учетной политики предприятия** настроить константу **"Предупреждать об окончании норматива согласования за (дней)"** с указанием в значении количества дней.

![Константа](media/constanta.png)

В документе "Настройка рассылки уведомлений" для необходимого типа документа поставить галочку напротив поля **"Включить оповещения о необходимости обработки"**.

![Обработка](media/neobObrabotka.png)

При отработке задачи пользователю на почту придет уведомление о приближении сроков обработки документов:

![Письмо](media/mail.png)