Программно создать задачу исполнителю

1. hoyo 24.04.18 11:19 Сейчас в теме
Доброго всем дня.
Необходимо программно создать задачу пользователю. Я пытаюсь сделать процесс Исполнение и привязать к нему задачу:

НовоеПоручение = БизнесПроцессы.Исполнение.СоздатьБизнесПроцесс();
	НовоеПоручение.Дата = ТекущаяДата();
	НовоеПоручение.Автор = Автор;
	НовоеПоручение.Наименование = Сообщение.Тема;
	НовоеПоручение.Записать();
	
	НоваяЗадача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
	НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.Исполнение.ТочкиМаршрута.Исполнить;
	НоваяЗадача.БизнесПроцесс = НовоеПоручение;
	НоваяЗадача.Автор = Автор;
	НоваяЗадача.Дата = ТекущаяДата();
	НоваяЗадача.Исполнитель = Исполнитель;
	НоваяЗадача.Наименование = Сообщение.Тема;
	НоваяЗадача.Описание = Сообщение.Текст;
	НоваяЗадача.Записать();
Показать


Но выходит ошибка: "{ОбщийМодуль.ОбщегоНазначения.Модуль(86)}: Значение не является значением объектного типа (Метаданные)
Запрос.Текст ="

Что это такое вообще? Кто сталкивался, как правильно создавать программно задачу?
По теме из базы знаний
Найденные решения
4. vnagapov 24.04.18 11:41 Сейчас в теме
Здесь налицо обычная ошибка
НоваяЗадача.БизнесПроцесс = НовоеПоручение;

Передается объект, а надо ссылку.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EVKash 14 24.04.18 11:38 Сейчас в теме
Задачи формируются при старте бизнес-процесса.

У меня в УТиВСК 2 код такой
			БизнесПроцессОбъект = БизнесПроцессы.CRM_БизнесПроцесс.СоздатьБизнесПроцесс();
			БизнесПроцессОбъект.Автор = ПараметрыСеанса.ТекущийПользователь;
			БизнесПроцессОбъект.ДатаСтарта = ТекущаяДата();
			БизнесПроцессОбъект.Дата = ТекущаяДата();
			БизнесПроцессОбъект.КартаМаршрута = Справочники.CRM_КартыМаршрутов.Поручение;
			БизнесПроцессОбъект.Наименование = "Наименование";
			БизнесПроцессОбъект.НомерВерсииКартыМаршрута = 1;
			БизнесПроцессОбъект.Описание = "Описание";
			БизнесПроцессОбъект.Организация = Справочники.Организации.УправленческаяОрганизация;
			БизнесПроцессОбъект.Предмет = СсылкаНаПредмет;
			Запрос = Новый Запрос();
			Запрос.Текст = "ВЫБРАТЬ
							|	CRM_ТочкиМаршрутов.Ссылка
							|ИЗ
							|	Справочник.CRM_ТочкиМаршрутов КАК CRM_ТочкиМаршрутов
							|ГДЕ
							|	CRM_ТочкиМаршрутов.Вид = ЗНАЧЕНИЕ(Перечисление.CRM_ВидыТочекМаршрута.Старт)
							|	И CRM_ТочкиМаршрутов.Владелец = &Владелец";
			Запрос.Параметры.Вставить("Владелец", Справочники.CRM_КартыМаршрутов.Поручение);
			РезультатЗапроса = Запрос.Выполнить().Выбрать();
			РезультатЗапроса.Следующий();
			БизнесПроцессОбъект.ТочкаСтарта = РезультатЗапроса.Ссылка;
			БизнесПроцессОбъект.Ответственный = ПараметрыСеанса.ТекущийПользователь;
			БизнесПроцессОбъект.Стартован = Ложь;
			БизнесПроцессОбъект.Завершен = Ложь;
			БизнесПроцессОбъект.Состояние = Перечисления.СостоянияБизнесПроцессов.Активен;
			БизнесПроцессОбъект.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
			БизнесПроцессОбъект.Записать();
			
			НаборЭтапов = РегистрыСведений.CRM_НастройкиЭтаповБизнесПроцессов.СоздатьНаборЗаписей();
			НаборЭтапов.Отбор.Объект.Установить(БизнесПроцессОбъект.Ссылка);
			НаборЭтапов.Прочитать();
		
			//исполнители бизнес-процесса
			НаборИсполнителей = РегистрыСведений.CRM_ИсполнителиЭтаповБизнесПроцессов.СоздатьНаборЗаписей();
			НаборИсполнителей.Отбор.Объект.Установить(БизнесПроцессОбъект.Ссылка);
			НаборИсполнителей.Прочитать();	
			
			Для Каждого СтрокаНабора ИЗ НаборИсполнителей Цикл
				Если СтрокаНабора.ТочкаМаршрута = НаборЭтапов[0].ТочкаМаршрута Тогда		// точка действия "Выполнить"
					СтрокаНабора.Исполнитель = СсылкаНаПользователяИсполнителя;
					НаборЭтапов[0].ДатаВыполнения = ТекущаяДата() + 172800;
					НаборЭтапов[0].ВариантВыполнения = 1;
					НаборЭтапов[0].ВариантВыполненияСтрокой = CRM_БизнесПроцессыСервер.ПолучитьПредставлениеВариантаУсловия(НаборЭтапов[0].ТочкаМаршрута, НаборЭтапов[0].ВариантВыполнения, БизнесПроцессОбъект.НомерВерсииКартыМаршрута);
				ИначеЕсли СтрокаНабора.ТочкаМаршрута = НаборЭтапов[1].ТочкаМаршрута Тогда	// точка действия "Проверить"
					НаборЭтапов[1].ДатаВыполнения = ТекущаяДата() + 259200;
					НаборЭтапов[1].Используется	= 0; // БезПроверки;
					СтрокаНабора.Исполнитель = ПараметрыСеанса.ТекущийПользователь;
				КонецЕсли;
			КонецЦикла;
		
			НаборЭтапов.Записать();
			НаборИсполнителей.Записать();
	
			БизнесПроцессОбъект.Старт();
Показать

Может быть поможет
3. Skromnyi 12 24.04.18 11:40 Сейчас в теме
А в контексте чего Вы создаете новый бизнес-процесс: в дополнительном обработчике бизнес-событий или нет?
4. vnagapov 24.04.18 11:41 Сейчас в теме
Здесь налицо обычная ошибка
НоваяЗадача.БизнесПроцесс = НовоеПоручение;

Передается объект, а надо ссылку.
Оставьте свое сообщение

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