Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Условие бизнес процесса

Условие бизнес процесса
Я
   bamond
 
13.06.13 - 11:48
Всем привет. Подскажите по поводу прохождения условия в бизнес процессе , уже голову сломал в поисках косяка....

условие :

Процедура Условие1ПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
       
   Если ЭтотОбъект.ОтправитьНаДоработку = Истина тогда
   Результат = Ложь;
   иначе
   Результат = Истина;
   КонецЕсли;
           
       
КонецПроцедуры

кнопка НЕ СОГЛАСОВАНО:

&НаКлиенте
Процедура НеСогласовано(Команда)
   ЭтаФорма.Реквизит1.ОтправитьНаДоработку=Истина;
   Доработка();
   Реквизит1.ОтправитьНаДоработку=Истина;    
   ПараметрыЗаписи = Новый Структура;
   ПараметрыЗаписи.Вставить("ВыполнитьЗадачу", Истина);
       
   Если Не Записать(ПараметрыЗаписи) Тогда
       Возврат;
   КонецЕсли;
   
       ПоказатьОповещениеПользователя(
       НСтр("ru = 'Выполнение:'"),
       ПолучитьНавигационнуюСсылку(Объект.Ссылка),
       Строка(Объект.Ссылка),
       БиблиотекаКартинок.Информация32);
       
   Оповестить("ЗадачаВыполнена", Объект.Ссылка);    
   Записать();
   Закрыть();
   

КонецПроцедуры

&НаКлиенте
Процедура Доработка()
   Реквизит1.ОтправитьНаДоработку=Истина;
   Записать();    
   КонецПроцедуры

___________________________________________

P.S. много раз и разными способами указывал ИСТИНУ что бы наверняка)))

Так вот.. Смотря точками остановы в коде кнопки всё проставляется как надо... галочка истина проставляется... а когда дело доходит до проверки условия , то там опять стоит Ложь.... что тут не так подскажите пожалуйста =(((

Задача в том что на форме есть кнопка типо булево ( скрытая ) и при нажатии на кнопку на форме НЕ СОГЛАСОВАНО , булево проставлялось в ИСТИНА и в условие по фактору ИСТИНА маршрут шел по пути НЕТ
 
 
   Михаил Козлов
 
1 - 13.06.13 - 11:55
Элемент записывали?
   Лефмихалыч
 
2 - 13.06.13 - 12:01
(0) Признак "Отправить на доработку" нужно хранить в отдельном регистре, который свяжет предмет согласования и бизнес процесс. Кнопка "Не согласовано" в задаче должна записывать запись в этот регистр, а проверка условия должна получать запись из этого регистра по своему бизнес процессу и его предмету.

В форме задачи совать что-то в реквизиты бизнес процесса - глупая затея. Особенно, если есть групповые задачи, а реквизит один (хотя в этом случае надо будет и регистр переделать, но это проще, чем БП ломать).
Записывать признак в саму задачу тоже идиотизм, т.к. при проверке условия нужно будет нужную задачу искать (а она уже выполнена).
   Лефмихалыч
 
3 - 13.06.13 - 12:02
в самом предмете признак хранить тем более глупо, поскольку теоретически можно несколько БП запустить на соновани одного предмета. Да и опять же - групповые задачи бывают
   bamond
 
4 - 13.06.13 - 13:00
(1) (2) Не очень понимаю о чем речь идет =((( Можно где то посмотреть пример кода на эту тему?

А задача у меня не групповая, а обычная последовательная где на каждом этапе согласующий может "не согласовать" и процесс уведомит инициатора и завершится

конфигурация Документооборот

Я сейчас окончательно запутался)))

P.S. курю мануал "руководство разработчика" официальный... там вообще ничего об этом нет... 3 строчки только на тему как сделать условие где результат ложь или истина... а как правильно написать ЕСЛИ ..... ТОГДА... такого нет =(
   bamond
 
5 - 13.06.13 - 17:04
Подскажите пожалуйста поподробнее .. ((
   Лефмихалыч
 
6 - 14.06.13 - 10:39
Посмтори в типовых. В УТ 10.3, например, есть БП "Согласование заказа". В Документообороте есть отельный процесс "согласование" чего угодно. Посмотри, как там сделано
   bamond
 
7 - 14.06.13 - 11:02
Там вообще всё запутано... у них сделано через перечисления... я сделал так же впринципе через их же перечисления... всеравно не работает , такое ощущение что не записывает результат выбора ( или не выбирает его при условии )

&НаКлиенте
Процедура НеСогласовано(Команда)
    
    
    ПараметрыЗаписи = Новый Структура;
    ПараметрыЗаписи.Вставить("ВыполнитьЗадачу", Истина);
    ПараметрыЗаписи.Вставить("РезультатСогласования", РезультатыСогласованияНеСогласовано);
    
    
    Если Не Записать(ПараметрыЗаписи) Тогда 
        Возврат;
    КонецЕсли;    
    
    
    Закрыть();
    
    
КонецПроцедуры



Процедура Условие1ПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)

    Если РезультатСогласования = Перечисления.РезультатыСогласования.НеСогласовано тогда
    Результат = Истина;
    иначе
    Результат = Ложь;
    КонецЕсли;

    
    
КонецПроцедуры

Даже если руками выбираешь РезультатСогласования... всеравно никак =((

P.S. вариант согласования реквизит БП

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.