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