|
При выполнении задачи создается новый бизнес процесс | ☑ | ||
---|---|---|---|---|
0
Cancell
16.07.15
✎
16:45
|
Всем доброго дня, такая проблемка:
На основе БСП делаю свой бизнес процесс, задачу использую как в БСП. Есть в схеме БП моего действие, где я подставляю свою форму, и оттуда выполняю задачу через Задача.выполнитьЗадачу(); Задача выполняется, по маршруту в БП двигается дальше, но вот параллельно создается новый БП не стартованный и явно создается при записи текущего БП... |
|||
1
Cancell
16.07.15
✎
16:52
|
Текущий БП записывается т.к. в форме задачи подставляется реквизит БП...
|
|||
2
Лефмихалыч
16.07.15
✎
16:55
|
(0) ну, смотри, где у тебя в коде СоздатьБизнесПроцесс() и потом его Записать()
|
|||
3
Cancell
16.07.15
✎
16:58
|
(2) я его создаю только в одном месте, из документа по кнопке. Тут выявил еще одну закономерность - на каждом действие я заполняю определенный реквизит основного БП, и все те которые наплодились их количество равно действиям и в каждом из них все поля пустые кроме тех которых заполнялись на каждом действие... т.е. у первого пустого стоит реквизит из первого действия, у второго пустого из второго действия и т.п.....
|
|||
4
Cancell
16.07.15
✎
16:59
|
как будто в момент записи он теряет основной БП и создает новый...
|
|||
5
Cancell
16.07.15
✎
17:00
|
Фому подставляю через -
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт Результат = Новый Структура; Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка)); Если ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.СогласованиеКПП.ТочкиМаршрута.ПроверкаИУтверждениеКПП Тогда Результат.Вставить("ИмяФормы", "БизнесПроцесс.СогласованиеКПП.Форма.СогласованиеСП"); ... |
|||
6
Drac0
16.07.15
✎
17:09
|
(0) Возьми отладчик, поставь точку в модуле БП в ПередЗаписью и смотри стек.
|
|||
7
Cancell
16.07.15
✎
17:13
|
(6) уже делал, в передзаписью попадает когда я в форме после выполнения задачи делаю записать и закрыть, тогда почему-то записывается новый БП... форма по идее принадлежит БП, но как-то отвязывается от основного БП. При чем когда я открываю задачу каждый раз оказывается что ЭтоНовый()=Истина.... где-то у меня отцепилась форма от основого БП и создается новый. Вот не пойму где.
|
|||
8
Cancell
16.07.15
✎
17:17
|
Проблема в том еще что основная форма задачи управляемая, а подставляемая мною обычная, из-за этого может быть такое?
Функция ОткрытьФормуВыполненияЗадачи(Знач ЗадачаСсылка) Экспорт ПараметрыФормы = БизнесПроцессыИЗадачиВызовСервера.ПолучитьФормуВыполненияЗадачи(ЗадачаСсылка); ИмяФормыВыполненияЗадачи = ""; Результат = ПараметрыФормы.Свойство("ИмяФормы", ИмяФормыВыполненияЗадачи); Если Результат Тогда // параметры удалось только так передать в обычную форму, там у нее есть реквизит параметрыформы Если Найти(ИмяФормыВыполненияЗадачи,"СогласованиеКПП")<>0 ТОгда Форма = ПолучитьФорму(ИмяФормыВыполненияЗадачи,ПараметрыФормы.ПараметрыФормы); Форма.ПараметрыФормы = ПараметрыФормы.ПараметрыФормы; Форма.Открыть(); Иначе ОткрытьФорму(ИмяФормыВыполненияЗадачи, ПараметрыФормы.ПараметрыФормы); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции |
|||
9
almar
16.07.15
✎
17:22
|
(0) Наверное где-то СтандартнаяОбработка=Ложь забыл
|
|||
10
Drac0
16.07.15
✎
17:28
|
(7) Может у тебя в Прааметрах нет поля Ключ? 0_о
|
|||
11
Cancell
16.07.15
✎
17:45
|
(9) а зачем там это, там вроде все стандартно идет
|
|||
12
Cancell
16.07.15
✎
17:46
|
(10) в ключе передается задача -
Процедура ОсновныеДействияФормыВыполнено(Кнопка) Если ЗначениеЗаполнено(Предмет) Тогда Задача = ПараметрыФормы.Ключ.ПолучитьОбъект(); Задача.ДатаИсполнения = ТекущаяДата(); Задача.выполнитьЗадачу(); Задача.Записать(); Оповестить("Запись_ЗадачаИсполнителя"); ЭтотОбъект.Записать(); Закрыть(); Иначе Сообщить("Выберите созданный КПП"); КонецЕсли; КонецПроцедуры |
|||
13
Cancell
16.07.15
✎
17:47
|
это в форме БП которую я подставляю вместо формы задачи
|
|||
14
Cancell
16.07.15
✎
17:53
|
(10) да и как я понимаю это не работает если я из упр в обычную форму параметры перегоняю... по крайней мере стандартно не получилось, не смог я найти параметрыформы в заменяемой форме. Пришлось в ней создавать реквизит и так туда загонять данные (иначе до задачи не достучаться):
Если Найти(ИмяФормыВыполненияЗадачи,"СогласованиеКПП")<>0 ТОгда Форма = ПолучитьФорму(ИмяФормыВыполненияЗадачи,ПараметрыФормы.ПараметрыФормы); Форма.ПараметрыФормы = ПараметрыФормы.ПараметрыФормы; Форма.Открыть(); Иначе |
|||
15
Cancell
16.07.15
✎
17:54
|
Сейчас в отладке увидел что когда я из списка задач, открываю свою, там происходит подмена формы и когда открывается моя форма БП для задачи, то БП уже новый...
|
|||
16
Drac0
16.07.15
✎
18:57
|
(13) В ключе должна передаваться ссылка на объект, чью форму ты открываешь. А у тебя хрень передается и он создает новую форму. Да и постановка странна: зачем открывать форму бп при выполнении задачи? Обычно открывают или саму форму или документ, обработка которого выполнит задачу. Фигня у тебя, в общем.
|
|||
17
Cancell
16.07.15
✎
18:58
|
В итоге переделал все формы на управляемые, и заработало как надо, всем спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |