1. Vitaly1C8 12.12.16 12:18 Сейчас в теме

Стартовать бизнес процесс программно

Добрый день ! Будьте добры, покажите простой пример - как стартовать Бизнес процесс (самый простой "Исполнение") программно !
Искал в инете, простого и понятного примера так и не нашел. Показывают как это делать из интерфейса, либо рассуждают о точках маршрута ... вода в общем.
Заранее благодарен !
Ответы
Избранное Подписка Сортировка: Древо
2. fromtomike 30 12.12.16 12:51 Сейчас в теме
Есть же в СП:

БизнесПроцессОбъект.<Имя бизнес-процесса> (BusinessProcessObject.<Имя бизнес-процесса>)
Старт (Start)
Синтаксис:

Старт(<ТочкаМаршрутаБизнес-процесса>)
Параметры:

<ТочкаМаршрутаБизнес-процесса> (необязательный)

Тип: ТочкаМаршрутаБизнесПроцессаСсылка.
Точка маршрута бизнес-процесса, на которой выполняется старт бизнес-процесса. У карты маршрута бизнес-процесса может быть несколько точек старта. В этом случае указание параметра обязательно.
Описание:

Выполняет старт бизнес-процесса с указанной точки. Если точка не указана и точек старта несколько, то старт бизнес-процесса невозможен и будет выдано сообщение об ошибке. Выполнение метода Старт приводит к тому, что бизнес-процесс начинает движение по карте маршрута до тех пор, пока не перейдет на точку действия или точку вложенного бизнес-процесса. После чего бизнес-процесс формирует задачи и вложенные бизнес-процессы, и выполнение метода Старт завершается. Если на карте маршрута бизнес-процесса не предусмотрено ни одной точки действия или точки вложенного бизнес-процесса, то такой бизнес-процесс называется автоматическим. В этой случае при вызове метода Старт бизнес-процесс пройдет все точки маршрута автоматически и будет сразу помечен завершенным.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если у бизнес-процесса всего одна точка старта, то указывать ее не обязательно.
Пример:

БизнесПроцесс = БизнесПроцессы.РегистрацияКорреспонденции;
// Бизнес-процесс имеет только одну точку старта, поэтому не указываем ее

БизнесПроцесс.Старт();

...
3. Vitaly1C8 12.12.16 14:20 Сейчас в теме
Нужен пример. Как создаются задачи исполнителей и т.д.
4. le0nid 12.12.16 14:45 Сейчас в теме
Если в Документообороте, то стоит копать в сторону готовых функций - ЗаполнитьПоШаблону/ЗаполнитьПоШаблонуИПредмету/ЗаполнитьПоРа­ссмотрению и.т.д., которые в модуле объекта (бизнес-процесса).

Например:

Бп = бизнеспроцессы.КомплексныйПроцесс.СоздатьБизнесПроцесс();
Бп.ЗаполнитьПоШаблонуИПредмету(справочники.ШаблоныКомплексныхБизнесПроцессов.НайтиПоКоду("000000068"),          ПредметСсылка,Справочники.Пользователи.НайтиПоНаименованию("Пользователь"));
Бп.Наименование ="Судебное дело " + Предметссылка.заголовок;
Бп.Дата=датаСтарта;	
Бп.Записать();
Бп.Старт();
soldatof; user1192788; NRG; Vitaly1C8; +4 Ответить
7. Katty_K 11.06.19 09:42 Сейчас в теме
(4) Добрый день!
Извините за некропостинг, но есть ли возможность в уже запущенном БП (комплексном) программно создать вложенный БП?
Как указать при создании, что он должен быть вложенным?
8. le0nid 14.06.19 15:02 Сейчас в теме
(7) Точно есть, но тонкости расписать не готов.
У подчиненного процесса должна быть Главная задача - запущенный БП.
Подчиненный процесс надо прописать в ТЧ Этапы, ТЧ ПредшественникиЭтапов запущенного БП. Нюансы можно выловить отладкой.
9. Katty_K 14.06.19 18:02 Сейчас в теме
(8) Вроде бы реквизит ВедущаяЗадача в создаваемом вложенном процессе должен заполняться, из основного комплексного процесса вылавливаю единственную задачу запросом и прописываю в создаваемом процессе, при остановке/прерывании основного процесса создаваемые тоже останавливаются/прерываются, но в дереве процессов отображаются все равно параллельно основному, видимо, из-за того, что отсутствуют соответствующие записи в Этапах и ПредшественникахЭтапов. Буду копать дальше. Спасибо
5. ImHunter 165 12.12.16 14:48 Сейчас в теме
Если говорить про штатный механизм платформы, то задачи сами создаются при приходе БП в точку действия.
То бишь, после старта, чего-то делать с БП более не нужно. Он сам и должен задачи создавать и двигаться выполнением задач к финишу.
Vitaly1C8; +1 Ответить
6. Vitaly1C8 12.12.16 17:34 Сейчас в теме
Спасибо за советы ! Получился такой код:
Бп = БизнесПроцессы.Исполнение.СоздатьБизнесПроцесс();
	Бп.Дата = ТекущаяДатаСеанса();
	Бп.Важность = Перечисления.ВариантыВажностиЗадачи.Обычная;
	Бп.НомерИтерации = 0;
	Бп.Проверяющий = ПользователиКлиентСервер.ТекущийПользователь();
	Бп.ВариантИсполнения = Перечисления.ВариантыМаршрутизацииЗадач.Параллельно;		
	
	Бп.Автор = ПользователиКлиентСервер.ТекущийПользователь();	
	Бп.Проект = РаботаСПроектами.ПолучитьПроектПоУмолчанию();
	
	Мультипредметность.ПередатьПредметыПроцессу(Бп, Объект.Предмет, Ложь, Истина);
	
	// Для Каждого Исполнитель ИЗ ДанныеЗаполнения.Исполнители Цикл
		Строка = Бп.Исполнители.Добавить();
		Строка.Исполнитель = ПользователиКлиентСервер.ТекущийПользователь();
	// КонецЦикла;		
	
	МультипредметностьКлиентСервер.ЗаполнитьНаименованиеПроцесса(Бп, НСтр("ru = 'Исполнить'"));
	Бп.Записать();
	Бп.Старт();
Показать
DimaP; babys; alex_ram87; damnation1981; +4 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Консультант по 1С:Документооборот
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день