Как на точке маршрута создать несколько задач?

1. arsen_botashev 18.02.19 13:01 Сейчас в теме
здравствуйте, проблема в следующем:
Есть бизнес процесс, и на нем ТЧ, В ТЧ есть несколько записей в следующих реквизитах:
Мероприятие Отвественный
1 1
2 2
3 3
4 4

Так же есть точка БП "Выполнение мероприятий"

Как при достижении этой точки в бп, создать задачи и отправить всем этим ответственным?


Я так понимаю В событие "При создании задач" Надо что то типа
Для каждого Строка из ТЧ Цикл
СоздатьЗадачу, и исполнителем этой задачи назначить ответсвенного в этой строке?
Но как это сделать? у меня написано ТЧ[0].Отвественный, тогда я обращаюсь к 1 строке тч и беру ответсвенного оттуда, но тут может быть много строк. ТЧ[0].Ответственный Не прокатит. Как перебрать все эти ТЧ[0], ТЧ[1], ТЧ[2], и так далее?

В общем надо перебрать все строки тч и создать по ним задачи
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. killitch 30 18.02.19 13:17 Сейчас в теме
Если точка достигается выполнением других задач, то надо смотреть в сторону обработчика "ОбработкаПроверкиВыполнения". Если же достижением считается создание, то да, "ПриСоздании".
3. arsen_botashev 18.02.19 13:34 Сейчас в теме
(2)ну это да, меня интересует вопрос касательно того, что в ТЧ есть несколько строк, для каждой этой строки необходимо создать задачу?
Как это сделать?
В каждой строке есть Ответсвенный, надо для каждой строки создать задачу и исполнителем задачи назначить Отвественного из этой строки?
4. killitch 30 18.02.19 13:35 Сейчас в теме
(3)Выходит что так. Каждому ответственному свою задачу.
5. arsen_botashev 18.02.19 14:04 Сейчас в теме
(4)
 
Для каждого строка Из Тч цикл
НоваяЗадача = Задачи.УниверсальнаяЗадача.СОздатьЗадачу();
НоваяЗадача.Исполнитель = Причины.Ответственный;

Я в правильном направлении иду?
6. killitch 30 18.02.19 15:14 Сейчас в теме
(5)
Для каждого строка Из Тч цикл
НоваяЗадача = Задачи.УниверсальнаяЗадача.СОздатьЗадачу();
НоваяЗадача.Исполнитель = строка .Ответственный;

Так надежней будет.
7. arsen_botashev 18.02.19 16:14 Сейчас в теме
(6)Да, я так и сделал. Но у меня проблема, если в тч 3 строки то создается 3 задачи, и еще создается 4 задача, лишняя, не знаю откуда она берется, скорее всего она создается автоматически. Как это убрать? Чтоб на определенной точке маршрута автоматическое создание задач выключилось?
Событие ПриСозданииЗадач, прикреплена ко всем точкам маршрута.
Вот весь код
Процедура ПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
	
	ФормируемаяЗадача = ФормируемыеЗадачи[0];
	Если 1=0 Тогда 
		ФормируемаяЗадача = Задачи.УниверсальнаяЗадача.НайтиПоНаименованию(); 
	КонецЕсли;

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот