|   |   | 
| 
 | Завершение бизнес-процесса | ☑ | ||
|---|---|---|---|---|
| 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) от Вас такого не ожидал...
 правильно будет сначала завершить БП а потом выполнить все открытые задачи, по тому как в противном случае при выполнение задачи будет создаваться новая и возможно зацикливание... | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |