Имя: Пароль:
1C
1С v8
БСП.Бизнес-Процессы.ПереопределениеФорм.
0 salih020292
 
15.09.13
23:35
Стоит задача переопределить открытие форм. Читал книгу решение спец.прикл.задач. Кодил как в книге, что-то не получается. Конфигурация БСПшная. В документации БСП разбираюсь пока тяжело. там есть раздел "Разработка прикладных форм выполнения задач" примеры обработчиков  похожи. Нужна использовать БСПшный обработчик Модуля Менеджера Задачи чтоб переопределить форму? если да, хотелось бы поподробнее узнать.
1 salih020292
 
15.09.13
23:44
утро вечера мудрнее . завтра отпишусь.
2 salih020292
 
16.09.13
20:26
Какой обработчик использовать нужно?

//Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация,СтандартнаяОбработка)
//    
//    Если ВидФормы = "ФормаОбъекта" Тогда
//        ЗадачаСсылка = Параметры.Ключ;
//        ЗадачаОбъект = ЗадачаСсылка.Получитьобъект();
//        Если ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.ОбращениеЗаПомощью.ТочкиМаршрута.Выполнить Тогда
//            ВыбраннаяФорма = "Документ.Счет.ФормаОбъекта";
//            Параметры.Ключ = ЗадачаОбъект.БизнесПроцесс.Счет;
//            СтандартнаяОбработка = Ложь;
//        КонецЕсли;
//        КонецЕсли;
//    КонецПроцедуры

Этот в модуле менеджера задачи?

или в модуле менеджера задачи?

Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаСсылка) Экспорт
   Результат = Новый Структура;
   Если ТочкаМаршрутаСсылка = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить Тогда
     Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
     Результат.Вставить("ИмяФормы", "БизнесПроцесс.Поручение.Форма.Выполнить");
   КонецЕсли;
   Возврат Результат;
КонецФункции
3 salih020292
 
16.09.13
20:27
первый в модуле задачи., либо второй в модуле бизнес-процесса?
4 salih020292
 
16.09.13
20:28
никак не получается сделать, второй скопировал с документации бсп. и так и так пробовал. ошибок в коде не было нитам нитам. а открывается все также стандартная форма открытия задачи. то есть переопределение форм не получается.
5 Bolik1979
 
16.09.13
20:31
(4) Вариант 2. Из формы списка задач должен вызываться этот обработчик
6 salih020292
 
16.09.13
21:04
(5) хочу открыть форму документа. Документ Счет. Форма Объекта. Бизнес-процесс. ОбращениеЗаПомощью, Точка маршрута Выполнить.
Обработчик в форме списка задач такой:
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаСсылка) Экспорт
   Результат = Новый Структура;
   Если ТочкаМаршрутаСсылка = БизнесПроцессы.ОбращениеЗаПомощью.ТочкиМаршрута.Выполнить Тогда
     Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
     Результат.Вставить("ИмяФормы", "Документ.Счет.ФормаОбъекта");
   КонецЕсли;
   Возврат Результат;
КонецФункции
7 salih020292
 
16.09.13
21:08
пока не выходит. синтаксис правильный?
8 salih020292
 
16.09.13
21:16
в документации написанно вот так, если это я по верному пути  иду  "Для подключения прикладных форм выполнения задач в модуле менеджера бизнес-процесса необходимо определить экспортную функцию-обработчик ФормаВыполненияЗадачи. Функция ФормаВыполненияЗадачи вызывается каждый раз перед открытием формы задачи. Возвращаемое значение функции – структура с ключами ИмяФормы и ПараметрыФормы, значения которых используются для открытия формы с помощью метода контекста ОткрытьФорму.

Пример реализации функции ФормаВыполненияЗадачи:

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


Может ещё метод глобальный открытьформу нужно использовать и если да , то где.
9 salih020292
 
16.09.13
21:18
как бы не кодил, открывается стандартная форма выполнения задачи. мне нужно просто чтоб открывалась форма документа вместе/или без открытия стандартной. Механизм обратной связи пока не рассматривается.
10 Bolik1979
 
16.09.13
21:24
В форме списка задач определен обработчик на "Выбор" из списка?
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
БизнесПроцессыИЗадачиКлиент.СписокЗадачВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
11 salih020292
 
16.09.13
21:38
(10) да, определен.
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    БизнесПроцессыИЗадачиКлиент.СписокЗадачВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
12 Bolik1979
 
16.09.13
21:40
(11) Ну тогда отладчик в руки и выяснять, где проблема
13 salih020292
 
16.09.13
21:49
(12) Большое Спасибо за ответы. буду искать) дальше.
14 Ksandr
 
16.09.13
21:59
Модуль менеджера, ПриПолученииФормы вроде событие называется
15 salih020292
 
16.09.13
22:17
(14) Модуль Менеджера Задачи ?
16 salih020292
 
16.09.13
22:18
(14) в модуле менеджера бп ПриПолучении формы обработчика с таким названием нет.
17 salih020292
 
16.09.13
22:19
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
         ЗадачаВнешняя = Ложь;
    БизнесПроцессыИЗадачиСервер.ПриОпределенииВнешнейЗадачи(ЗадачаСсылка, ЗадачаВнешняя);
    Если Не ЗадачаВнешняя Тогда
        ИмяФормы = "БизнесПроцесс.ОбращениеЗаПомощью.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Имя;
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
    Результат.Вставить("ИмяФормы", ИмяФормы);
    Возврат Результат;
    
КонецФункции
18 salih020292
 
16.09.13
22:19
Зато есть вот такой вот обработчик в модуле менеджера Бизнес-процесса.
19 salih020292
 
16.09.13
22:19
ну эт не то как я понимаю.
20 salih020292
 
16.09.13
22:21
Думал задача мне под силу окажется., в книге по Решение Спец Прикл Задач понятно все. а в БСП не совсем))
21 salih020292
 
16.09.13
22:32
Для подключения прикладных форм выполнения задач в модуле менеджера бизнес-процесса необходимо определить экспортную функцию-обработчик ФормаВыполненияЗадачи. Функция ФормаВыполненияЗадачи вызывается каждый раз перед открытием формы задачи. Возвращаемое значение функции – структура с ключами ИмяФормы и ПараметрыФормы, значения которых используются для открытия формы с помощью метода контекста ОткрытьФорму.

Пример реализации функции ФормаВыполненияЗадачи:

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

вот такой вот обработчик есть в модуле менеджера БП. Почему не здесь кроется решение? вроде в документации так написанно.
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
         ЗадачаВнешняя = Ложь;
    БизнесПроцессыИЗадачиСервер.ПриОпределенииВнешнейЗадачи(ЗадачаСсылка, ЗадачаВнешняя);
    Если Не ЗадачаВнешняя Тогда
        ИмяФормы = "БизнесПроцесс.ОбращениеЗаПомощью.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Имя;
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
    Результат.Вставить("ИмяФормы", ИмяФормы);
    Возврат Результат;
    
КонецФункции (12)
22 salih020292
 
16.09.13
22:35
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
         ЗадачаВнешняя = Ложь;
    БизнесПроцессыИЗадачиСервер.ПриОпределенииВнешнейЗадачи(ЗадачаСсылка, ЗадачаВнешняя);
    Если Не ЗадачаВнешняя Тогда
        ИмяФормы = "БизнесПроцесс.ОбращениеЗаПомощью.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Выполнить;
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
    Результат.Вставить("ИмяФормы", Документы.Счет.Форма.ФормаОбъекта);
    Возврат Результат;
    
КонецФункции


сделал вот так.


ошибка такая :
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
         ЗадачаВнешняя = Ложь;
    БизнесПроцессыИЗадачиСервер.ПриОпределенииВнешнейЗадачи(ЗадачаСсылка, ЗадачаВнешняя);
    Если Не ЗадачаВнешняя Тогда
        ИмяФормы = "БизнесПроцесс.ОбращениеЗаПомощью.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Выполнить;
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
    Результат.Вставить("ИмяФормы", Документы.Счет.Форма.ФормаОбъекта);
    Возврат Результат;
    
КонецФункции
23 salih020292
 
16.09.13
22:36
ошибка такая : {БизнесПроцесс.ОбращениеЗаПомощью.МодульМенеджера(29)}: Поле объекта не обнаружено (Выполнить)
        ИмяФормы = "БизнесПроцесс.ОбращениеЗаПомощью.Форма.Действие" + ТочкаМаршрутаБизнесПроцесса.Выполнить;
24 Поросенок Петр
 
16.09.13
23:33
Каждый разработчик нетленки на БСП периодически задумывается следующими вопросами:
- а стоят ли те ништяки, которые принесла БСП таких головняков?
- а не получилось ли так, что ради экономии дня на обновление БСПшной библиотеки мне приходится терять несколько на копание во всей это куче вложенных модулей.
- а ведь рано или поздно текущая концепция состарится без возможности обновления и будет тянуть всё решение в пещеру унылости. А тем временем на фоне выйдет свежая БСП х.0
- а может ну его нахер эту БСП?

Щас набигут адепты БСП и закидают кирпичами собственного изготовления. Впрочем уже поздно шоб набижали.

(23) Отладчик уже советовали, так что не буду повторяться.
25 Ksandr
 
16.09.13
23:55
ТочкаМаршрутаБизнесПроцесса.Выполнить
Выполнить - это реквизит такой?
26 salih020292
 
17.09.13
00:04
(24) я не решаю эти вопросы))
27 salih020292
 
17.09.13
00:05
Выполнить это название точки маршрута бП (25)
28 salih020292
 
17.09.13
00:06
там я тупанул в последний момент(25) Ксандр. вот мне непонятно. эту задачу решать в модуле менеджера БП или в форме списке задач?
29 salih020292
 
17.09.13
00:06
(24) отладчиком пока не особо могу. отладчиком это например что? ставить точки останова?
30 salih020292
 
17.09.13
00:12
(24) мне как начинающему интереснее было бы все подсистемы с гемороем/(может многое и без гемороя получилось бы) самому делать. а так время покажет. думаю, и здесь работает золотая середина, минусы плюсы и там и там есть. если голова есть минусы можно нивелировать. но есть ли голова:))
31 lapinio
 
17.09.13
01:14
Я не использовал модуль менеджера. Для перехвата открытия формы, создал общий модуль. В списке задач при событии обработка выбора или изменение отправлял параметры в общий модуль и там опр. нужная форма.
32 salih020292
 
17.09.13
09:38
отпишусь попозже (31)
33 salih020292
 
18.09.13
14:05
пока разместили на фриланс
34 salih020292
 
18.09.13
14:06
кто хочет-заинтересован, называйте цену, задача ещё в себя вмещает часы.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший