Имя: Пароль:
1C
1С v8
Свободная маршрутизация в бизнес-процессе ☑
0 111222333444
 
08.11.13
✎
10:33
Всем трям.
В "Профессиональная разработка в системе 1С Предприятие 8" есть такая фраза про маршрутизацию в бизнес-процессе:

Свободная – адресаты точки карты маршрута бизнес-процесса не уста-
новлены и определяются программно или интерактивно в течение
жизненного цикла бизнес-процесса;

Вопрос: кто-то реализовывал подобное? Если да, можете поделиться примерами? или хотя бы ссылкой, где можно подробней почитать. В вышеозначенной книжке про свободную маршрутизацию только эта фраза.
1 111222333444
 
08.11.13
✎
11:44
hgh
2 111222333444
 
08.11.13
✎
14:50
апну еще разок. а вдруг
3 111222333444
 
08.11.13
✎
17:26
Сам разобрался. Всё оказалось довольно просто. При выполнении очередной задачи нужно просто создавать программно новую с заданной точкой бизнес-процесса. Например, так:

ЗадачаОбъект = ЗадачаСсылка.ПолучитьОбъект();
ЗадачаОбъект.Выполнена = Истина;
ЗадачаОбъект.Записать();
БизнесПроцесс = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
Отказ = Ложь;
Выполнить("БизнесПроцесс." + ЗадачаОбъект.ТочкаМаршрута.Имя + "ПриВыполнении(ЗадачаОбъект.ТочкаМаршрута, ЗадачаСсылка, Отказ)");

Соответственно на событие ПриВыполнении точек маршрута вешаем что-то типа (если точка не последняя в цепочке):

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

если последняя:

ЭтотОбъект.Завершен = Истина;
ЭтотОбъект.Записать();

чтобы завершить бизнес-процесс. Как-то так
4 Волшебник
 
модератор
08.11.13
✎
21:01
Молодец, что сам разобрался и здесь отписался!
Закон Брукера: Даже маленькая практика стоит большой теории.