Имя: Пароль:
1C
1С v8
Откат задачи в бизнес процессе
0 Cezar
 
11.10.11
15:09
Здравствуйте, прошу помощи по такому вот вопросу.

Есть некий бизнес-процесс (1С Документооборот 8), карта маршрута к нему и задачи. Цель состоит в том чтобы дать пользователю возможность вернуть бизнес-процесс к любой уже прошедшей точке маршрута по его выбору. Т.е. фактически сделать аналог возврата по условию например назад.

Как вариант думал удалить все задачи после целевой точки маршрута до текущей (вместе с текущей). Никак. В тоге БП все равно стоит на текущей точке маршрута, а все точки от целевой до текущей становятся обведены в красный квадрат (как будто они в данный момент выполняются).

Или же использовать параметр "ВедушаяЗадача" у БП, присваивая ей целевую. Тоже ничего.

Вариант непосредственно процедуры:

-------------------------

Процедура ПерейтиНаЗадачуБП(БизнесПроцесс, ЦелеваяЗадача) Экспорт
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗадачаИсполнителя.Ссылка
                  |ИЗ
                  |    Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
                  |ГДЕ
                  |    ЗадачаИсполнителя.БизнесПроцесс = &БизнесПроцесс
                  |    И ЗадачаИсполнителя.Дата > &ДатаЦелевойЗадачи
                  |    И ЗадачаИсполнителя.Выполнена = ИСТИНА
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ЗадачаИсполнителя.Дата";
   Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
   Запрос.УстановитьПараметр("ДатаЦелевойЗадачи", ЦелеваяЗадача.Дата);
   
   ТЗ = Новый ТаблицаЗначений;
   ТЗ = Запрос.Выполнить().Выгрузить();
   
   Для Каждого Задача Из ТЗ Цикл
       ОбъектЗадача = Задача.Ссылка.ПолучитьОбъект();
       ОбъектЗадача.Выполнена = Ложь;
       ОбъектЗадача.Записать();
   КонецЦикла;
   
   //ОбъектБизнесПроцесс = БизнесПроцесс.ПолучитьОбъект();
   //ОбъектБизнесПроцесс.ВедущаяЗадача = ЦелеваяЗадача.Ссылка;
   //ОбъектБизнесПроцесс.Записать();
   
КонецПроцедуры
1 Cezar
 
11.10.11
15:28
Допустим вот пример выбора пользователем целевой точки 2.6 из точки 2.9. Создает 2.10, и всех их делает красными :(

[img]http://s017.radikal.ru/i409/1110/6a/5ce2f917b7c8.jpg[/img]
2 Cezar
 
11.10.11
15:28
3 IOL
 
19.10.11
16:31
Ау народ, встретился с той же проблемой :(. Как корректно откатить задачу?
4 Джинн
 
19.10.11
16:35
Задачу нельзя откатить. Она уже выполнена. Либо создать новую задачу нужно, либо перенаправить задачу другому пользователю.
5 ssh2006
 
19.10.11
16:43
Ближе к делу - "Откат в бизнес процессе "
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший