|
Завершение бизнес-процесса | ☑ | ||
---|---|---|---|---|
0
KODin1C
16.06.16
✎
11:21
|
Надо сделать обработку по завершению бизнес процесса.
Но чтобы при этом завершались связаныне с ним задачи. Вроде как в задачах прописан бизнес-процесс, отобрать их не проблема, указать дату завршения и галочку завершения - не проблема. Однако в Б-П не разбираюсь, есть ведь еще точки, вложенные б-п. Кто чего может по этому подсказать? |
|||
1
Лефмихалыч
16.06.16
✎
11:25
|
Надо выполнить все задачи и процесс выполнится сам.
|
|||
2
GROOVY
16.06.16
✎
11:25
|
Рекурсивно обходишь все активные точки (задачи) и завершаешь их.
|
|||
3
lxs
16.06.16
✎
11:25
|
Там всё очень просто. На схеме БП есть точка завершения этого БП, у этой точки есть обработчик.
В нем пиши, всё, что хочешь. Ищи задачи по ссылке на этот БП и т.п. |
|||
4
Лефмихалыч
16.06.16
✎
11:26
|
В типовом ДО есть механизм прерывания процесса - просто реквизит Состояние у бизнес процесса устанавливаешь в Прерван и все остальное подписки сами сделают.
|
|||
5
lxs
16.06.16
✎
11:27
|
(4) как это (0) поможет, если у него не ДО
|
|||
6
Лефмихалыч
16.06.16
✎
11:30
|
(3) пока есть не выполненные задачи, до точки завершения ни чего не дойдет
(5) из чего ты сделал вывод, что у него не ДО? |
|||
7
lxs
16.06.16
✎
11:31
|
(6) а с чего ты сделал вывод об обратном?
|
|||
8
KODin1C
16.06.16
✎
11:31
|
(6) У меня УПП объединенная с CRM.
|
|||
9
Лефмихалыч
16.06.16
✎
11:32
|
(7) да ни из чего. Я это написал к тому, что там можно посмотреть, как это надо делать.
|
|||
10
lxs
16.06.16
✎
11:33
|
(6) Вчитайся в (0) там нет ни слова про нормальное завершение БП по задачам. У человека есть задача завершить досрочно БП. А не ждать последовательное выполнение всех задач пользователями. По крайней мере я так услышал автора.
|
|||
11
lxs
16.06.16
✎
11:34
|
(9) Как правило в типовых такая каша из "правильных" алгоритмов, что проще самому написать..
|
|||
12
KODin1C
16.06.16
✎
11:42
|
Вот накидал код
БПОбъект = БП.ПолучитьОбъект(); БПОбъект.Завершен = Истина; БПОбъект.ЗавершенДосрочно = Истина; БПОбъект.ВариантЗавершения = Перечисления.CRM_ВариантыЗавершения.Успешно; БПОбъект.Записать(); Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | CRM_Задача.Ссылка КАК Задача |ИЗ | Задача.CRM_Задача КАК CRM_Задача |ГДЕ | НЕ CRM_Задача.ПометкаУдаления | И CRM_Задача.БизнесПроцесс = &БизнесПроцесс | |УПОРЯДОЧИТЬ ПО | Задача"; Запрос.УстановитьПараметр("БизнесПроцесс", БП); тзЗадачи = Запрос.Выполнить().Выгрузить(); Для Каждого стрЗадач ИЗ тзЗадачи Цикл объЗадача = стрЗадач.Ссылка.ПолучитьОбъект(); объЗадача.ДатаФактическогоВыполнения = РабочаяДата; ОбъектЗадача.Выполнена = Истина; ОбъектЗадача.БизнесПроцессЗавершенДосрочноНаТекущемЭтапе = Истина; объЗадача.Записать(); КонецЦикла; |
|||
13
KODin1C
16.06.16
✎
11:43
|
Поправил немного
Процедура КнопкаВыполнитьНажатие(Кнопка) БПОбъект = БП.ПолучитьОбъект(); БПОбъект.Завершен = Истина; БПОбъект.ЗавершенДосрочно = Истина; БПОбъект.ВариантЗавершения = Перечисления.CRM_ВариантыЗавершения.Успешно; БПОбъект.Записать(); Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | CRM_Задача.Ссылка КАК Задача |ИЗ | Задача.CRM_Задача КАК CRM_Задача |ГДЕ | НЕ CRM_Задача.ПометкаУдаления | И CRM_Задача.БизнесПроцесс = &БизнесПроцесс | |УПОРЯДОЧИТЬ ПО | Задача"; Запрос.УстановитьПараметр("БизнесПроцесс", БП); тзЗадачи = Запрос.Выполнить().Выгрузить(); Для Каждого стрЗадач ИЗ тзЗадачи Цикл Если не объЗадача.Выполнена Тогда объЗадача = стрЗадач.Ссылка.ПолучитьОбъект(); объЗадача.ДатаФактическогоВыполнения = РабочаяДата; объЗадача.Выполнена = Истина; объЗадача.БизнесПроцессЗавершенДосрочноНаТекущемЭтапе = Истина; объЗадача.Записать(); КонецЕСли; КонецЦикла; КонецПроцедуры |
|||
14
lxs
16.06.16
✎
11:46
|
(13) тебе не надо выполнять связанные с задачами алгоритмы (если таковые имеются)? То есть, например, при выполнении какой-то задачи у тебя должна была выполняться отправка уведомления..
|
|||
15
KODin1C
16.06.16
✎
11:48
|
(14) Хз.
|
|||
16
vde69
16.06.16
✎
11:51
|
(1) (2) от Вас такого не ожидал...
правильно будет сначала завершить БП а потом выполнить все открытые задачи, по тому как в противном случае при выполнение задачи будет создаваться новая и возможно зацикливание... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |