Имя: Пароль:
1C
 
Открыть форму модально и вызвать процедуру
0 Dirk Diggler
 
22.12.09
07:55
Как можно сперва открыть форму модально, а потом вызвать некоторую процедуру этой формы?
Навеяно вот этим:

           Форма=Справочники.ХарактеристикиНоменклатуры.ПолучитьФорму("ФормаВыбораСРасширеннымОтбором");
Форма.ПараметрВыборПоВладельцу=СтрокаСпецификации.Номенклатура;
Форма.РежимВыбора=Истина;
Форма.Открыть();
Форма.ОбработкаОбъектЗначенияСвойств.ПрочитатьЗаполнитьСвойстваИЗначения(Рез);

Форму хотелось бы открыть модально, или как-то иначе ограничить действия юзера до закрытия формы. Как?
1 Zixxx
 
22.12.09
07:58
>> Форму хотелось бы открыть модально, или как-то иначе ограничить действия юзера до закрытия формы. Как?

Форма.ОткрытьМодально();
2 Dirk Diggler
 
22.12.09
07:59
вызов процедуры видим?

Форма.ОбработкаОбъектЗначенияСвойств.ПрочитатьЗаполнитьСвойстваИЗначения(Рез);
3 Zixxx
 
22.12.09
08:01
(2) Ага, вопросы задавай правильно, что мещает передать параметр и при открытии формы его посмотреть его и запустить нужную процедуру?
4 Рэйв
 
22.12.09
08:01
(0)Если откроешь модально, то никакого "потом" в контексте вызывающего модуля не будет пока не закроешь.
5 Dirk Diggler
 
22.12.09
08:02
(4) я в курсе. такое поведение от формы и ожидается. Если его можно добиться искусственно после вызова Открыть(), то буду благодарен за подсказку.
6 Zixxx
 
22.12.09
08:04
(5) После закрытия формы вызвать процедуру этой формы?
7 Рэйв
 
22.12.09
08:05
(5)Передавай какойнибудь параметр при открытии, указывающий, что ты хочешь выполнить определенную процедуру и в открываемой форме в  ПриОткрытии() проверяй и выполняй нужное
8 MoneG
 
22.12.09
08:09
(0)
Форма.ОбработкаОбъектЗначенияСвойств.ПрочитатьЗаполнитьСвойстваИЗначения(Рез);

Это не процедура формы, а процедура модуля обработки, которая является реквизитом формы. Не путайте себя и остальных.
9 Dirk Diggler
 
22.12.09
08:10
(8) это не принципиально. там можно что угодно поставить. вопрос в том, чтобы выполнить процедуру после открытия формы.
10 Zixxx
 
22.12.09
08:14
(9) Создай у формы реквизит СтрокаДляВыполнения (Тип Строка), перед открытием пощешай в него имя процедуры, а при открытии сделай Выполнить(СтрокаДляВыполнения);
Весь параметр запуска нужных процедур сможешь писать из того места откуда открываешь форму
11 Dirk Diggler
 
22.12.09
08:15
(7) методы параметров не принимают. как передать-то?
12 Dirk Diggler
 
22.12.09
08:16
(10) форма типовой конфы. менять крайне не хочется
13 MoneG
 
22.12.09
08:43
Процедура ПриОткрытии()
   // 1.
   Если Вопрос("Ты юзер?", РежимДиалогаВопрос.ДаНет)
       = КодВозвратаДиалога.Да  Тогда
   //2.
   //Если СуперПараметрФормы = Истина Тогда
   //3. ....
   //----------------------------------------
       ПродолжитьРаботуСОграничениями();
   Иначе
       ЗавершитьРаботуСистемы();
   КонецЕсли;
   
КонецПроцедуры
14 Dirk Diggler
 
22.12.09
08:49
Хм. Не то. Уточним задачу. При открытии формы из моей обработки кроме того, что форму надо открыть, юзеру разрешить работать только в ней, пока не закроет, а кроме того - надо либо передать параметр(таблицу значений), либо после открытия формы заполнить табличное поле по этому параметру
15 MoneG
 
22.12.09
08:53
(14) "уточню" тоже по поводу (13): ПриОткрытии() "срабатывает" как при НеМодальном, так и при Модальном открытии;
в ветке "Тогда" как раз и можно (нужно) выполнить "заполнить табличное поле по этому параметру".
16 Dirk Diggler
 
22.12.09
08:56
(15) как параметр-то снаружи передать? метод ПриОткрытии() не принимает параметров
17 Zixxx
 
22.12.09
08:58
(16) Реквизит только добавить на вкладку реквизиты или что-нибудь вроде констант
18 MoneG
 
22.12.09
09:05
(17) > или что-нибудь вроде констант
Экспортная переменная модуля объекта, которому принадлежит форма. Константы для другого предназначены.
19 Zixxx
 
22.12.09
09:08
(18) Ему не желательно вообще формы менять, а так все предложения выше
20 Dirk Diggler
 
22.12.09
09:09
все равно без изменения объекта типовой не обойтись. добавил в реквизиты формы. работает.
21 MoneG
 
22.12.09
09:13
(19) > не желательно вообще формы менять
ага, зато константу в конфу забубенить - куда лучше! ))
22 Zixxx
 
22.12.09
09:16
(21) Что касается именно того случая то да, но это естественно не оптимальный вариант
23 hhhh
 
22.12.09
09:56
(21) с добавленной константой обновление конфы идет без проблем, а если реквизит формы добавить, то вручную придется ковыряться.