Уведомить исполнителей новых задачах. Выполняет рассылку уведомлений исполнителям о новых задачах за период с момента предыдущей рассылки.
// Выполняет рассылку уведомлений исполнителям о новых задачах за период с момента предыдущей рассылки.
// Рассылка выполняется по почте от имени системной учетной записи.
// Также является обработчиком регламентного задания УведомлениеИсполнителейОНовыхЗадачах.
//
Процедура УведомитьИсполнителейОНовыхЗадачах() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УведомлениеИсполнителейОНовыхЗадачах);
ОписаниеОшибки = "";
ВидСообщения = НСтр("ru = 'Бизнес-процессы и задачи.Уведомление о новых задачах'", ОбщегоНазначения.КодОсновногоЯзыка());
Если НЕ СистемнаяУчетнаяЗаписьНастроена(ОписаниеОшибки) Тогда
ЗаписьЖурналаРегистрации(ВидСообщения, УровеньЖурналаРегистрации.Ошибка,
Метаданные.РегламентныеЗадания.УведомлениеИсполнителейОНовыхЗадачах,, ОписаниеОшибки);
Возврат;
КонецЕсли;
ДатаУведомления = ТекущаяДатаСеанса();
ДатаПоследнегоУведомления = Константы.ДатаУведомленияОНовыхЗадачах.Получить();
// Если оповещение ранее не производилось, или последнее оповещение происходило
// ранее, чем за сутки, то отбираем новые задачи за последние сутки.
Если (ДатаПоследнегоУведомления = '00010101000000')
Или (ДатаУведомления - ДатаПоследнегоУведомления > 24*60*60) Тогда
ДатаПоследнегоУведомления = ДатаУведомления - 24*60*60;
КонецЕсли;
ЗаписьЖурналаРегистрации(ВидСообщения, УровеньЖурналаРегистрации.Информация,,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Начато регламентное уведомление о новых задачах за период %1 - %2'"),
ДатаПоследнегоУведомления, ДатаУведомления));
ЗадачиПоИсполнителям = ВыбратьНовыеЗадачиПоИсполнителям(ДатаПоследнегоУведомления, ДатаУведомления);
Для Каждого СтрокаИсполнителя Из ЗадачиПоИсполнителям.Строки Цикл
ОтправитьУведомлениеОНовыхЗадачах(СтрокаИсполнителя.Исполнитель, СтрокаИсполнителя);
КонецЦикла;
УстановитьПривилегированныйРежим(Истина);
Константы.ДатаУведомленияОНовыхЗадачах.Установить(ДатаУведомления);
УстановитьПривилегированныйРежим(Ложь);
ЗаписьЖурналаРегистрации(ВидСообщения, УровеньЖурналаРегистрации.Информация,,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Завершено регламентное уведомление о новых задачах (уведомлено исполнителей: %1)'"),
ЗадачиПоИсполнителям.Строки.Количество()));
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////