Зачастую, когда сотрудник в отпуске, на больничном, в командировке или отсутствует по каким-либо другим причинам, его временно заменяет другой сотрудник.
Необходимо, чтобы информация о замещении появилась в системе и была видна другим пользователям, а задачи отсутствующего сотрудника приходили на замещающего.
О том, как работают замещения и как создать замещение вручную, можно узнать в статье
«Замещение пользователей» справки по системе.
В этой статье мы расскажем, как создать замещение автоматически с помощью скрипта.
Рассмотрим кейс с замещением сотрудника, отправляющегося в командировку.
Замещение будет создаваться в бизнес-процессе,
который запускается при сохранении элемента приложения Командировка.
При создании нового замещения необходимо обязательно указать сотрудника, который отправляется в командировку, и сотрудника, который его замещает, а также даты командировки.
При сохранении карточки командировки запускается бизнес-процесс, в котором находится скрипт, добавляющий новое замещение.
В бизнес-процесс обработки командировки необходимо добавить блок Скрипт и написать код, представленный ниже.
В скрипте важно заполнить все атрибуты замещения: Тип, Отсутствующий, Замещающий, Дата начала и Дата окончания.
После заполнения атрибутов необходимо обязательно сохранить новое замещение.
asyncfunctioncreateReplacement(): Promise<void> {
/* Получим элемент приложения Командировка,
данные из которого будут использоваться при создании замещения. */const trip = await Context.data.trip.fetch();
// Создаем элемент замещенияconst newReplacement = System.replacements.create();
/* Указываем тип замещения: Информирование (`information`),
Переназначение задач (`reassign`) или Полная передача прав (`full`) */
newReplacement.data.type = newReplacement.fields.type.variants.information;
// Указываем отсутствующего — в нашем случае это пользователь, который отправляется в командировку
newReplacement.data.absent = trip.data.traveller;
// Указываем замещающего
newReplacement.data.replacement = trip.data.replacer;
// Указываем дату начала и окончания из контекста — даты командировки
newReplacement.data.begin = trip.data.trip_start_date;
newReplacement.data.end = trip.data.trip_end_date;
// Сохраняем элемент замещенияawait newReplacement.save()
}
Как создать замещение пользователя
Зачастую, когда сотрудник в отпуске, на больничном, в командировке или отсутствует по каким-либо другим причинам, его временно заменяет другой сотрудник.
Необходимо, чтобы информация о замещении появилась в системе и была видна другим пользователям, а задачи отсутствующего сотрудника приходили на замещающего.
О том, как работают замещения и как создать замещение вручную, можно узнать в статье «Замещение пользователей» справки по системе.
В этой статье мы расскажем, как создать замещение автоматически с помощью скрипта.
Рассмотрим кейс с замещением сотрудника, отправляющегося в командировку. Замещение будет создаваться в бизнес-процессе, который запускается при сохранении элемента приложения Командировка.
При создании нового замещения необходимо обязательно указать сотрудника, который отправляется в командировку, и сотрудника, который его замещает, а также даты командировки.
При сохранении карточки командировки запускается бизнес-процесс, в котором находится скрипт, добавляющий новое замещение.
Скрипт
В бизнес-процесс обработки командировки необходимо добавить блок Скрипт и написать код, представленный ниже.
В скрипте важно заполнить все атрибуты замещения: Тип, Отсутствующий, Замещающий, Дата начала и Дата окончания.
После заполнения атрибутов необходимо обязательно сохранить новое замещение.
async function createReplacement(): Promise<void> { /* Получим элемент приложения Командировка, данные из которого будут использоваться при создании замещения. */ const trip = await Context.data.trip.fetch(); // Создаем элемент замещения const newReplacement = System.replacements.create(); /* Указываем тип замещения: Информирование (`information`), Переназначение задач (`reassign`) или Полная передача прав (`full`) */ newReplacement.data.type = newReplacement.fields.type.variants.information; // Указываем отсутствующего — в нашем случае это пользователь, который отправляется в командировку newReplacement.data.absent = trip.data.traveller; // Указываем замещающего newReplacement.data.replacement = trip.data.replacer; // Указываем дату начала и окончания из контекста — даты командировки newReplacement.data.begin = trip.data.trip_start_date; newReplacement.data.end = trip.data.trip_end_date; // Сохраняем элемент замещения await newReplacement.save() }
Результат
Когда в процессе выполнится указанный выше скрипт, в системе появится новое замещение.