|
Передать и вернуть структуру параметров из формы в форму | ☑ | ||
---|---|---|---|---|
0
1C2SS
09.11.12
✎
17:41
|
Необходимо передать из одной формы в другую структуру параметров. Потом при закрытии новой формы передать другую структуру обратно.
Как передать туда я нашел: ДокументКредит = Документы.Кредит.СоздатьДокумент(); ДокументКредит.Дата = ТекущаяДата(); ФормаДокументКредит = Документы.Кредит.ПолучитьФормуНовогоДокумента(); Параметры = Новый Структура; Параметры.Вставить("Контрагент",Контрагент); Параметры.Вставить("Дата",Дата); ОткрытьФормуМодально(ФормаДокументКредит,Параметры,ЭтаФорма); А вот как из открытой формы вернуть в исходную форму другую структуру не нашел. I need help. |
|||
1
hhhh
09.11.12
✎
17:42
|
ДругаяСтруктура = ОткрытьФормуМодально(ФормаДокументКредит,Параметры,ЭтаФорма);
|
|||
2
mikecool
09.11.12
✎
17:43
|
ВернулиСтруктуру = ОткрытьФормуМодально...
в ФормаДокументКредит Закрыть(СтруктураВозврата) |
|||
3
Steel_Wheel
09.11.12
✎
17:45
|
В ДокументеКрелит, будет доступно свойство формы "документВладелец" -- объект, который вызвал текущий документ. Можешь ПриЗакрытии() Документа кредита писать прямо туда
Еще, ОткрытьФормуМодально() -- это обертка над серией вызовов. НовФорма = Документы.Крелит.ПолучитьФорму(); Результ = НовФорма.ОткрытьМодально(); тут Результ -- это то, что возвращает метод Закрыть() вызываемой формы. Можешь таким образом, написать часть в документе кредита, а часть дописать в вызывающем документе |
|||
4
1C2SS
09.11.12
✎
18:43
|
А как внутри вызванной формы обрабатывать полученные параметры?
|
|||
5
Steel_Wheel
09.11.12
✎
18:48
|
документВладелец или ФормаВладелец -- если это объект, можешь, прямо его править. если ссылка -- найди по ней объект
|
|||
6
1C2SS
09.11.12
✎
19:02
|
Меня интересует формавладелец, но я не пойму как к ней доступ получить.
|
|||
7
Steel_Wheel
09.11.12
✎
19:05
|
Форма.ФормаВладелец
из области видимости формы. Если ты указал параметры при открытии правильно и все, то параметр будет определен |
|||
8
Steel_Wheel
09.11.12
✎
19:05
|
Ты копируй хоть код, который пишешь. Чтобы можно было тебе подсказать, телепаты в отпуске )
|
|||
9
takefive
09.11.12
✎
19:06
|
ВладелецФормы
|
|||
10
1C2SS
09.11.12
✎
19:07
|
ВладелецФормы не определен
Его приходится перед вызовом формы явно прописывать. А если приходится его явно прописывать то тогда какой смысл передавать исходную форму в качестве параметра ... да и сами параметры тоже будут все доступны через владельца. Процедура ОперацияНажатие(Элемент) ДокументОперКред = Документы.ОперацияПоКредиту.СоздатьДокумент(); ДокументОперКред.Дата = ТекущаяДата(); ФормаДокументОперКред = Документы.ОперацияПоКредиту.ПолучитьФормуНовогоДокумента(); ФормаДокументОперКред.ВладелецФормы = ЭтаФорма; ИсходПараметры = новый структура; ИсходПараметры.Вставить("Контрагент",Контрагент); ВходПараметры = новый структура; ВходПараметры=ОткрытьФормуМодально(ФормаДокументОперКред,ИсходПараметры,ЭтаФорма); КонецПроцедуры |
|||
11
1C2SS
09.11.12
✎
19:09
|
ОткрытьФормуМодально(ФормаДокументОперКред,ИсходПараметры,ЭтаФорма)
Вот здесь есть ИсходПараметры и ЭтаФорма. Почему они ни где не видны в открытой форме? |
|||
12
Steel_Wheel
09.11.12
✎
19:10
|
Напиши тело функции ОткрытьФормуМодально()
P.S. это 77 или 80? |
|||
13
1C2SS
09.11.12
✎
19:11
|
это 8.2
|
|||
14
Steel_Wheel
09.11.12
✎
19:14
|
попробуй глянуть что внутри ОткрытьФормуМодально() происходит
|
|||
15
takefive
09.11.12
✎
19:17
|
ДокументОперКред.ПолучитьФорму("ФормаДокумента",ЭтаФорма).ОткрытьМодально();
|
|||
16
1C2SS
09.11.12
✎
19:22
|
(15) если так то формавладелец видна.
Теперь я понял в чем прикол. Спасибо. |
|||
17
takefive
09.11.12
✎
19:27
|
Вот пример использует события формы... для расширения кругозора
//Главная форма Процедура КнопкаВыполнитьНажатие(Кнопка) ФормаВыбора = ПолучитьФорму("Форма",ЭтаФорма); ФормаВыбора.Открыть(); //Посылает оповещение всем созданным формам Оповестить(,Структура); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) //Возникает при выборе объекта в одной из подчиненных форм //или при вызове в одной из подчиненных форм метода ОповеститьОВыборе. ПараметрПриемник = Структура; КонецПроцедуры //ФормаВыбора Процедура КнопкаВыполнитьНажатие(Кнопка) //Посылает оповещение владельцу формы //о выполнении выбора или подбора, //передает ему выбранное значение ОповеститьОВыборе(Структура); КонецПроцедуры Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) //Возникает при оповещении всех созданных //форм методом глобального контекста Оповестить ПараметрПриемник = Параметр; ФормаИсточник = ВладелецФормы; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |