Каталог решений - Вывод всей истории в задаче комплексного процесса

Вывод всей истории в задаче комплексного процесса

Вывод всей истории в задаче комплексного процесса

В наличии

В статье описывается, какие изменения нужно сделать, чтобы в задаче комплексного процесса выводилась вся история (по всем процессам), а не только история текущего процесса.

Категория:

Описание

К примеру, есть комплексный процесс, состоящий из согласования и подписания. После прохождения согласования пользователь получает задачу подписания и хочет тут же видеть, как прошло согласование. Просматривать визы в карточке документа не хочет, слишком много телодвижений.

В качестве решения предлагается выводить всю историю выполнения комплексного процесса.

Для этого нужно внести изменения в модуль менеджера регистра сведений "История выполнения задач".

1. Заменить код функции ИсторияПоБизнесПроцессу:

// Возвращает описание истории переданного бизнес-процесса
Функция ИсторияПоБизнесПроцессу(БизнесПроцесс) Экспорт
	
	//ИсторияВыполнения = "";
	//
	//УстановитьПривилегированныйРежим(Истина);
	//
	//Запрос = Новый Запрос("ВЫБРАТЬ
	//	|	ИсторияВыполненияЗадач.Описание
	//	|ИЗ
	//	|	РегистрСведений.ИсторияВыполненияЗадач КАК ИсторияВыполненияЗадач
	//	|ГДЕ
	//	|	ИсторияВыполненияЗадач.БизнесПроцесс = &БизнесПроцесс");
	//	
	//Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
	//Выборка = Запрос.Выполнить().Выбрать();
	//
	//Если Выборка.Следующий() Тогда
	//	ИсторияВыполнения = Выборка.Описание;
	//КонецЕсли;
	//
	//Возврат ИсторияВыполнения;
	
	//{
	
	ИсторияВыполнения = "";
	
	УстановитьПривилегированныйРежим(Истина);

	Если ЗначениеЗаполнено(БизнесПроцесс.ВедущаяЗадача) Тогда
		
		ИсторияВыполнения = Доработка_ИсторияПоБизнесПроцессу(БизнесПроцесс);
		КомплексныйПроцесс = БизнесПроцесс.ВедущаяЗадача.БизнесПроцесс;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДанныеБизнесПроцессов.БизнесПроцесс КАК БизнесПроцесс
		|ИЗ
		|	РегистрСведений.ДанныеБизнесПроцессов КАК ДанныеБизнесПроцессов
		|ГДЕ
		|	ДанныеБизнесПроцессов.ВедущаяЗадача.БизнесПроцесс = &КомплексныйПроцесс
		|	И ДанныеБизнесПроцессов.БизнесПроцесс <> &БизнесПроцесс
		|
		|УПОРЯДОЧИТЬ ПО
		|	ДанныеБизнесПроцессов.ДатаНачала УБЫВ";
		
		Запрос.УстановитьПараметр("КомплексныйПроцесс", КомплексныйПроцесс);
		Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
		
		Выборка = Запрос.Выполнить().Выбрать();
		Пока Выборка.Следующий() Цикл
			Если ЗначениеЗаполнено(Выборка.БизнесПроцесс) Тогда 				    		
				ИсторияВыполнения = ?(ИсторияВыполнения = "","", ИсторияВыполнения + Символы.ПС + Символы.ПС)
				+ "ПРОЦЕСС " + Строка(Выборка.БизнесПроцесс) + Символы.ПС + Символы.ПС + Доработка_ИсторияПоБизнесПроцессу(Выборка.БизнесПроцесс);
			КонецЕсли;		
		КонецЦикла;
		
		Возврат ИсторияВыполнения;
		
	Иначе
		Возврат Доработка_ИсторияПоБизнесПроцессу(БизнесПроцесс)
	КонецЕсли;
	
	//}

КонецФункции

И добавить функцию:

Функция Доработка_ИсторияПоБизнесПроцессу(БизнесПроцесс) Экспорт
	
	ИсторияВыполнения = "";
	
	УстановитьПривилегированныйРежим(Истина);
	
	Запрос = Новый Запрос("ВЫБРАТЬ
		|	ИсторияВыполненияЗадач.Описание
		|ИЗ
		|	РегистрСведений.ИсторияВыполненияЗадач КАК ИсторияВыполненияЗадач
		|ГДЕ
		|	ИсторияВыполненияЗадач.БизнесПроцесс = &БизнесПроцесс");
		
	Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
	Выборка = Запрос.Выполнить().Выбрать();
	
	Если Выборка.Следующий() Тогда
		ИсторияВыполнения = Выборка.Описание;
	КонецЕсли;
	
	Возврат ИсторияВыполнения;

КонецФункции

Надеюсь, кому-то будет полезен данный прием.

has been added to your cart:
Оформление заказа