УведомитьИсполнителейОНовыхЗадачах (БСП)

Автор: 1С
ОбщийМодуль.БизнесПроцессыИЗадачиСервер
БСП

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

// Выполняет рассылку уведомлений исполнителям о новых задачах за период с момента предыдущей рассылки.
// Рассылка выполняется по почте от имени системной учетной записи.
// Также является обработчиком регламентного задания УведомлениеИсполнителейОНовыхЗадачах.
//
Процедура УведомитьИсполнителейОНовыхЗадачах() Экспорт
	
	ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УведомлениеИсполнителейОНовыхЗадачах);
	
	ОписаниеОшибки = "";
	ВидСообщения = НСтр("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
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ГруппыИсполнителейЗадач (БСП)

ПеренаправитьЗадачи (БСП)

ИсполнительСтрокой (БСП)

ГруппаИсполнителейЗадач (БСП)

ПроконтролироватьЗадачи (БСП)

ЭтоЗадачаИсполнителю (БСП)

ВыбратьИсполнителя (БСП)

ПриВыбореИсполнителя (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз