Имя: Пароль:
1C
 
Условие бизнес-процесса
0 Tateossian
 
07.12.15
15:40
Все привет!
Не выполняется точка условия маршрута бизнес-процесса. Что не так? Процедура проверки определена:

Процедура СогласованоПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
    
    Результат = Согласование = Перечисления.СтатусыСогласованияЗаявкиНаОплату.НаСогласовании;
    
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("СогласованоПроверкаУсловия");
    
КонецПроцедуры

Схемка БП:

ЯД https://yadi.sk/i/WdRRXEY4m3oo3
Ргхост http://rghost.ru/87MywWBPb/image.png
1 Tateossian
 
07.12.15
15:41
Точка "Согласовано?"
2 Tateossian
 
07.12.15
15:45
Адресация полностью программная, это может быть как-то связано?
3 GROOVY
 
07.12.15
15:49
Не выполняется - это как. результат всегда Ложь, или после предыдущий точки действия, точка условия не выполняет обработчик?
4 Tateossian
 
07.12.15
15:56
(3)
Я в отладчике ставил точку на строке
"Результат = Согласование = Перечисления.СтатусыСогласованияЗаявкиНаОплату.НаСогласовании;"
В процедурину вообще не заходит.
5 butterbean
 
07.12.15
15:58
(4) ты на сервере тестируешь? или файловая у тебя?
6 Tateossian
 
07.12.15
15:58
(3) Где-то вычитал, что должна быть явно определена процедура обработки события "ОбработкаПроверкиВыполнения" в задаче. Там вот так:
Процедура ОбработкаПроверкиВыполнения(Результат)
    Результат = Истина;
КонецПроцедуры

Здесь тоже не входит в процедуру. Видимо, до проверки не доходит. Почему так может быть?
7 Tateossian
 
07.12.15
15:59
(5) #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
8 Tateossian
 
07.12.15
15:59
На сервере, отладка включена
9 ejikbeznojek
 
07.12.15
15:59
А почему в строке
Результат = Согласование = Перечисления.СтатусыСогласованияЗаявкиНаОплату.НаСогласовании;
Два равно?
10 Tateossian
 
07.12.15
16:01
(9) А в чем проблема?
11 butterbean
 
07.12.15
16:01
а у тебя б.процесс вообще стартует? движется? задачи создаваемые смотрел?
12 Tateossian
 
07.12.15
16:02
(11) БП стартует, первая задача создается. Тут все ок. А вот после первой задачи дальнейшие действия не происходят.
13 GROOVY
 
07.12.15
16:03
Событие с обработчиком связано?

Как выполняются задачи по точкам действия, надеюсь не "Выполнена = Истина"?
14 butterbean
 
07.12.15
16:03
(12) задача выполняется? а что после этого, БП завершен или что?
15 GROOVY
 
07.12.15
16:03
(12)  Тогда точно Выполнена = Истина. Есть метод ВыполнитьЗадачу(), используй его.
16 Tateossian
 
07.12.15
16:04
(13) Какой кусок кода привести? Таких мест точно нет "Выполнена = Истина"?
17 GROOVY
 
07.12.15
16:04
Как задачи создаются? Как они выполняются (ну судя по всему речь только о первой).
18 Tateossian
 
07.12.15
16:05
(15) У меня есть обработчики ПриВыполнении, которые выполняются.

ВыполнитьЗадачу() - это же их явный вызов.
19 butterbean
 
07.12.15
16:06
(16) выполни задачу "руками", прям в форме задачи нажми "Выполнена" и в отладчик смотри
20 Tateossian
 
07.12.15
16:06
(19) Я так и делаю, но в точку условия не попадаю.
21 Tateossian
 
07.12.15
16:07
(17) Процедура СогласоватьПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТекущаяРоль = ЕстьЭтап(ТочкаМаршрутаБизнесПроцесса);
    
    Если Не ТекущаяРоль = Неопределено Тогда    
        Задача = СоздатьЗадачу(ТочкаМаршрутаБизнесПроцесса, ТекущаяРоль);
        ФормируемыеЗадачи.Добавить(Задача);
    Иначе
        Согласование = Перечисления.АА_СтатусыСогласованияЗаявкиНаОплату.Согласована;
    КонецЕсли;

КонецПроцедуры
22 GROOVY
 
07.12.15
16:07
А как задачи создаются?
23 Tateossian
 
07.12.15
16:08
(22) Это как создаются. В обработчике ПередСозданием задач
24 cw014
 
07.12.15
16:11
(0) Результат = Согласование = Перечисления.СтатусыСогласованияЗаявкиНаОплату.НаСогласовании;

(21) Согласование = Перечисления.АА_СтатусыСогласованияЗаявкиНаОплату.Согласована;


Найди 100500 отличий
25 butterbean
 
07.12.15
16:11
(23) они похоже как-то криво присоединяются к точке маршрута. Карту маршрута смотрел, там задача отмечается как выполненная?
26 Tateossian
 
07.12.15
16:12
У меня есть обработчки ПриВыполнении, но нет явной установки в Выполнена = Истина (сейчас обратил на это внимание).

А на форме списка задач после выполнения стоит "Выполнена". Это стандартная обработка отрабатывает, но в каком событии?
27 Tateossian
 
07.12.15
16:13
(24) Я убрал префикс АА в первый раз, когда постил, а во второй - забыл. Так что - все норм, спасибо за наблюдательность.
28 vde69
 
07.12.15
16:13
ты не тот обработчик выбрал, смотри как надо:

Процедура ВыборИсполнителяПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)

    ФормируемыеЗадачи.Очистить();

    ТекущаяРоль = ЕстьЭтап(ТочкаМаршрутаБизнесПроцесса);
    
    Если Не ТекущаяРоль = Неопределено Тогда    
        Задача = СоздатьЗадачу(ТочкаМаршрутаБизнесПроцесса, ТекущаяРоль);
        ФормируемыеЗадачи.Добавить(Задача);
    Иначе
        Согласование = Перечисления.АА_СтатусыСогласованияЗаявкиНаОплату.Согласована;
    КонецЕсли;

КонецПроцедуры
29 Tateossian
 
07.12.15
16:15
(28) Сейчас проверю, спасибо.
30 Tateossian
 
07.12.15
16:16
(28) Две задачи сформирвоалось - пустая и правильная.
31 vde69
 
07.12.15
16:17
и добавь

    Иначе
        Согласование = Перечисления.АА_СтатусыСогласованияЗаявкиНаОплату.Согласована;
    Записать();
   КонецЕсли;
32 vde69
 
07.12.15
16:18
(30) ты не очистил список задач :)
33 vhl
 
07.12.15
16:18
(28) Накой фиг создавать задачи при создании задачи?
34 Tateossian
 
07.12.15
16:21
(33) Мнения разделились. Хотя, вопрос правильный.

Но меня волнует другое - почему после выполнения первой задачи не попадаю в точку проверки условия.
35 butterbean
 
07.12.15
16:22
(34) есть мнение, что ты криво создаешь задачи. Попробуй их не создавать, а просто устанавливать реквизиты задачи в ПриСозданииЗадач()
36 Tateossian
 
07.12.15
16:25
(35) АААА Спасибо мил человек!!!
Задача.ТочкаМаршрута    = ТочкаМаршрутаБизнесПроцесса;

Конечно, я забыл ее установить!
37 User_Agronom
 
07.12.15
16:26
Схема странная.
На завершение идёт если не согласовано и нет других этапов.

Т.е. на последнем этапе юзер должен сказать "Не согласен!"
38 Tateossian
 
07.12.15
16:28
(37) Обычная линейная схема, переделанная на цикл.
На завершение идет либо если нет этапов, либо если на текущем этапе статус "Отклонена".
39 vhl
 
07.12.15
16:28
(34) Задача сама создастся при старте БП. Не нужно ей помогать и что-то прописывать.