|
Передача данных между двумя управляемыми формами в одной обработке | ☑ | ||
---|---|---|---|---|
0
svchernova
23.12.11
✎
14:47
|
Люди, кто подскажет
У меня две уф. Из формы1 вызывается форма2. В форме2 заплняются реквизиты, и я хочу получить их значения в форме1. Кроме этого, хочу в форму2 передать некоторые реквизиты формы1. Для этого на событие ПриОткрытии формы2 пишу следующее: |
|||
1
svchernova
23.12.11
✎
14:50
|
(0) продолжение
&НаКлиенте Процедура ПриОткрытии(Отказ) НазначитьВладельца(); КонецПроцедуры &НаСервере Процедура НазначитьВладельца() ЭтаФорма.ВладелецФормы = Обработки.МобильныйАгент.ПолучитьФорму("ФормаУпр"); КонецПроцедуры; Ругается "Интерактивные операции недоступны". Вопросы возникли следующие: 1. как назначить владельца для формы2 2. как передать реквизиты из формы1 в форму2 (там таблицы значений) 3. Как в ОбработкеОповещения формы1 увидеть реквизиты Формы2 УЖС. |
|||
2
Amra
23.12.11
✎
14:52
|
Создать не просто реквизиты форм, а реквизиты привязанные к реквизитам обработки?
|
|||
3
svchernova
23.12.11
✎
14:55
|
(2) Там нужно назначить владельца, и потом использовать событие ОповеститьОВыборе.. как-то так..
|
|||
4
vmv
23.12.11
✎
15:01
|
(0) я испольюзую в таких случаях трех китов
1. обмен между формами с иденфикацией их по гуидам 2. сами гуиды и данные форм сохраняю во временные хранилища, чтобы было меньше проблем с передачей управления клиент-сервер 3. иногда копирую данные форм в коллекции (структуры, соответсвия и т.д., т.е. в те объекты, которые свободно мигрируют между клиентом и сервером) пока все, открывать другую форму при открытии первой - от лукавого, не богоугодное дело! |
|||
5
vmv
23.12.11
✎
15:04
|
(1) что-то мне подсказывает, что этот код должен быть в ПриСозданииНаСервере() если он вообще имеет смысл)
|
|||
6
svchernova
23.12.11
✎
15:04
|
(4) я открываю форму2 при добавлении новой записи в табличную часть формы1
Твои три кита правильные вполне, я читала про такой алгоритм. Я синтаксиса не знаю, не знаю, как это реализовать. |
|||
7
svchernova
23.12.11
✎
15:06
|
(5) эта процедура ПриОткрытии формы2, то есть вызываемой формы.
|
|||
8
Mort
23.12.11
✎
15:07
|
Если форма служит для ввода строки ТЧ табличной части, то следует открывать её модально. Вот и пусть свои значения возвращает владельцу при закрытии.
|
|||
9
svchernova
23.12.11
✎
15:09
|
(8) я открыла модально пи добавлении новой записи
Вот код: ФормаКлиента = ПолучитьФорму("Обработка.МобильныйАгент.Форма.ФормаНовогоКлиента"); ФормаКлиента.ОткрытьМодально(); |
|||
10
Mort
23.12.11
✎
15:14
|
(9) Пример:
Процедура ТЧПриДобавлении() СтандартнаяОбработка = ЛОжь; ПараметрыФормы = Новый Структура("ПередаваемыеПараметры", чтоНужноПередать); РезультатВыбора = ОткрытьФормуМодально("Обработка.МобильныйАгент.Форма.ФормаНовогоКлиента", ПараметрыФормы); //В при создании на сервере формы 2 палишь переданные параметры // по кнопке ОК делаешь структуру выбранных значений и пишешь Закрыть(ЭтаСтруктура); Если РезультатВыбора <> Неопределено Тогда //Вообще безопаснее проверять тип, тут как хошь Стр = Тч.Добавить(); ... и т.д. |
|||
11
hhhh
23.12.11
✎
15:14
|
(9) а чего же владельца не указала?
|
|||
12
svchernova
23.12.11
✎
15:16
|
(10) спасибо, я поковыряюсь в этом направлении
|
|||
13
Mort
23.12.11
✎
15:16
|
(11) Да не нужен он в модальном режиме.
|
|||
14
svchernova
23.12.11
✎
15:18
|
(11) в посте (9) код в вызывающей форме, которая и является владельцем
|
|||
15
vmv
23.12.11
✎
15:24
|
на УФ лазейка модальности при работе с двумя формами вроде не пашет, как это было в 8.1, пилите дальше и тоньше)
|
|||
16
Mort
23.12.11
✎
15:26
|
(15) О_о
|
|||
17
svchernova
23.12.11
✎
15:45
|
(10) Морт, ясейчас пытаюсь твою подсказочку реализовать.. пожалуйста, поглядывай мою ветку, не исчезай, если сможешь
|
|||
18
Mort
23.12.11
✎
15:47
|
(17) Тока порезче давай, я скоро напьюсь.
|
|||
19
svchernova
23.12.11
✎
15:49
|
(18) ну вот, я сделала, как ты сказал
Теперь как увидеть в форме2 переданный параметр? |
|||
20
svchernova
23.12.11
✎
15:49
|
(18)вот это: //В при создании на сервере формы 2 палишь переданные параметры
|
|||
21
Mort
23.12.11
✎
15:51
|
(20)
Процедура ПриСозданииНаСервере() Вариант 1. Легкомысленный ПереданныеПараметры = Параметры.ПередаваемыеПараметры; |
|||
22
hhhh
23.12.11
✎
15:51
|
(18) мастерство, его не пропьешь.
|
|||
23
Mort
23.12.11
✎
15:51
|
+(21) *//Вариант 1. Легкомысленный (это комментарий был)
|
|||
24
svchernova
23.12.11
✎
15:52
|
(18) мой твой код:
СтандартнаяОбработка = Ложь; ПараметрыФормы = Новый Структура("СправочникВозрастСтажВождения", СправочникВозрастСтажВождения); РезультатВыбора = ОткрытьФормуМодально("Обработка.МобильныйАгент.Форма.ФормаНовогоКлиента", ПараметрыФормы); Здесь СправочникВозрастСтажВождения - это реквизит формы1 с типом таблицазначений |
|||
25
svchernova
23.12.11
✎
15:53
|
щас.. погодь
|
|||
26
Mort
23.12.11
✎
15:54
|
(24)
Процедура ПриСозданииНаСервере() //Вариант 2. Получше Если Параметры.Свойство("СправочникВозрастСтажВождения") Тогда ВозрастСтажВождения= Параметры.СправочникВозрастСтажВождения; Иначе ВызватьИсключение "Форму низя открывать без параметра СправочникВозрастСтажВождения !!!!!!1111Одын"; конецЕсли; |
|||
27
svchernova
23.12.11
✎
15:55
|
(18) получилось, спасибо:) а почему Лекгомысленный? :)
|
|||
28
svchernova
23.12.11
✎
15:57
|
(26) понятно :)))))))))) Сейчас попытаюсь в форму1 передать структуру с значениями, введенными в форме2
|
|||
29
svchernova
23.12.11
✎
16:00
|
Эту структуру в ОбработкеОповещения формы1 увидеть можно?
|
|||
30
KulakoffAlex
23.12.11
✎
16:03
|
Это структура с параметрами будет видна только в процедуре ПриСозданииНаСервере()
|
|||
31
svchernova
23.12.11
✎
16:05
|
(30) я, наверное, неточно выражаюсь.
Мне в вызывающей форме нужно будет увидеть структуру значений, введенных в вызываемой форме. |
|||
32
Mort
23.12.11
✎
16:05
|
(30) Да.
(29) Не нужна тебе никакая обработка оповещений. Формы работают не паралельно, а последовательно. Передали в модальную, получили из модальной. |
|||
33
Mort
23.12.11
✎
16:06
|
+(32) Пока работает форма2, первая недоступна.
P/s "Почти недоступна", но это уже не про нашу задачу. |
|||
34
svchernova
23.12.11
✎
16:09
|
(32) Да, форма1 недоступна, я понимаю. Я не поняла, как из модальной формы2 передать значения назад, в форму1. В форме2 у меня пля ввода обычные, как реквизиты.
|
|||
35
Mort
23.12.11
✎
16:11
|
(34) Закрыть(ВозвращаемоеЗначение);
Возвращаемое значение будет результатом функции ОткрытьМодально.. СП открой чоли. |
|||
36
ILIAS
23.12.11
✎
16:12
|
(18) И исполнишь "Гимн офисного работника" Слепакова Семена.
Видео с Гимном http://www.youtube.com/watch?v=UpZcQe_A4Gg :)) |
|||
37
KulakoffAlex
23.12.11
✎
16:13
|
Или при закрытии формы2 сделай Оповестить(), а в форме1 используй ОбработкуОповещения().
|
|||
38
svchernova
23.12.11
✎
16:13
|
щас.. мин..пробую
|
|||
39
svchernova
23.12.11
✎
16:14
|
(37) это же будет работать только для владельца вроде.. а я владельца формы2 н указывала
|
|||
40
Mort
23.12.11
✎
16:17
|
(39) Да забудь ты про оповестить. Тебе что форму открытую нужно будет оставить?
|
|||
41
svchernova
23.12.11
✎
16:20
|
(40) Забыла :))) Нет, форму2 мне закрыть нужно, я её закрываю
|
|||
42
svchernova
23.12.11
✎
16:26
|
(40) Морт, всё получилось!!!!!!!!!!! Ты меня по всем этим этапам провёл, спасибо тебе большое!
|
|||
43
svchernova
23.12.11
✎
16:27
|
И удачи в Новом Году - всем. :) Морт солнышко, я тебе благодарна очень :))
|
|||
44
svchernova
23.12.11
✎
16:29
|
Гимн офисного работника повеселил :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |