ПриЗаполненииСпискаТекущихДел (БСП)

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

При заполнении списка текущих дел. См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.

// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
	
	МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер");
	Если Не ПравоДоступа("Редактирование", Метаданные.Задачи.ЗадачаИсполнителя)
		Или МодульТекущиеДелаСервер.ДелоОтключено("ЗадачиИсполнителя") Тогда
		Возврат;
	КонецЕсли;
	
	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьБизнесПроцессыИЗадачи") Тогда
		Возврат;
	КонецЕсли;
	
	КоличествоЗадачИсполнителя = КоличествоЗадачИсполнителя();
	
	// Процедура вызывается только при наличии подсистемы "Текущие дела", поэтому здесь
	// не делается проверка существования подсистемы.
	Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта(Метаданные.Задачи.ЗадачаИсполнителя.ПолноеИмя());
	
	Если Пользователи.ЭтоСеансВнешнегоПользователя()
		И Разделы.Количество() = 0 Тогда
		Разделы.Добавить(Метаданные.Задачи.ЗадачаИсполнителя);
	КонецЕсли;
	
	Для Каждого Раздел Из Разделы Цикл
		
		ИдентификаторМоихЗадач = "ЗадачиИсполнителя" + СтрЗаменить(Раздел.ПолноеИмя(), ".", "");
		Дело = ТекущиеДела.Добавить();
		Дело.Идентификатор  = ИдентификаторМоихЗадач;
		Дело.ЕстьДела       = КоличествоЗадачИсполнителя.Всего > 0;
		Дело.Представление  = НСтр("ru = 'Мои задачи'");
		Дело.Количество     = КоличествоЗадачИсполнителя.Всего;
		Дело.Форма          = "Задача.ЗадачаИсполнителя.Форма.МоиЗадачи";
		ЗначениеОтбора		= Новый Структура("Выполнена", Ложь);
		Дело.ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
		Дело.Владелец       = Раздел;
		
		Дело = ТекущиеДела.Добавить();
		Дело.Идентификатор  = "ЗадачиИсполнителяПросроченные";
		Дело.ЕстьДела       = КоличествоЗадачИсполнителя.Просроченные > 0;
		Дело.Представление  = НСтр("ru = 'просроченные'");
		Дело.Количество     = КоличествоЗадачИсполнителя.Просроченные;
		Дело.Важное         = Истина;
		Дело.Владелец       = ИдентификаторМоихЗадач; 
		
		Дело = ТекущиеДела.Добавить();
		Дело.Идентификатор  = "ЗадачиИсполнителяНаСегодня";
		Дело.ЕстьДела       = КоличествоЗадачИсполнителя.НаСегодня > 0;
		Дело.Представление  = НСтр("ru = 'сегодня'");
		Дело.Количество     = КоличествоЗадачИсполнителя.НаСегодня;
		Дело.Владелец       = ИдентификаторМоихЗадач; 

		Дело = ТекущиеДела.Добавить();
		Дело.Идентификатор  = "ЗадачиИсполнителяНаНеделю";
		Дело.ЕстьДела       = КоличествоЗадачИсполнителя.НаНеделю > 0;
		Дело.Представление  = НСтр("ru = 'на этой неделе'");
		Дело.Количество     = КоличествоЗадачИсполнителя.НаНеделю;
		Дело.Владелец       = ИдентификаторМоихЗадач; 

		Дело = ТекущиеДела.Добавить();
		Дело.Идентификатор  = "ЗадачиИсполнителяНаСледующуюНеделю";
		Дело.ЕстьДела       = КоличествоЗадачИсполнителя.НаСледующуюНеделю > 0;
		Дело.Представление  = НСтр("ru = 'на следующей неделе'");
		Дело.Количество     = КоличествоЗадачИсполнителя.НаСледующуюНеделю > 0;
		Дело.Владелец       = ИдентификаторМоихЗадач; 
	КонецЦикла;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

ПриЗаполненииСпискаТекущихДел (БСП)

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