ЗУП: «Мои Задачи» +Запланированный отпуск
Конфигурация: ЗУП 2.5
Название: Задача «Запланированный отпуск»
Описание: Уведомление о запланированный отпуске сотрудника через N дней.
Модуль: Общие > Общие модули > Управления задачами
Процедура ДобавитьЗадачиЗапланированныйОтпуск(ВремяФормированияЗадач)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОтпускаРаботники.ДатаНачала КАК ДатаНачала,
| ПланированиеОтпускаРаботники.Сотрудник.Физлицо КАК Физлицо,
| ПланированиеОтпускаРаботники.Сотрудник,
| ПланированиеОтпускаРаботники.Ссылка
|ИЗ
| Документ.ПланированиеОтпуска.Работники КАК ПланированиеОтпускаРаботники
| ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК Задачи
| ПО ПланированиеОтпускаРаботники.Ссылка = Задачи.ОбъектЗадачи
| И (ПланированиеОтпускаРаботники.Сотрудник = Задачи.Сотрудник)
| И (Задачи.ВидЗадачи = ЗНАЧЕНИЕ(Справочник.ВидыЗадачПользователей.ЗапланированныйОтпуск))
|ГДЕ
| Задачи.Ссылка ЕСТЬ NULL ";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ФИОСотрудника = СокрЛП(Выборка.Физлицо);
КолВоДней = 60*60*24*16; //сек*мин*часы*дни
Разница = Выборка.ДатаНачала - ВремяФормированияЗадач;
Если Разница > 0 И Разница <= КолВоДней тогда
ЗадачаЗапОтдых = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
ЗадачаЗапОтдых.Дата = НачалоДня(ВремяФормированияЗадач);
ЗадачаЗапОтдых.ВидЗадачи = Справочники.ВидыЗадачПользователей.ЗапланированныйОтпуск;
ЗадачаЗапОтдых.ОбъектЗадачи = Выборка.Ссылка;
ЗадачаЗапОтдых.Сотрудник = Выборка.Сотрудник;
ЗадачаЗапОтдых.Наименование = "Через 16 дней запланированный отпуск у " + ФИОСотрудника;
ЗаписатьАдресациюЗадачи(ЗадачаЗапОтдых, Справочники.Организации.НайтиПоНаименованию("Ваша_Организация"), Справочники.РолиИсполнителей.Кадровик);
ЗадачаЗапОтдых.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры