Имя: Пароль:
1C
1C 7.7
v7: Передать параметр из одной формы в другую
,
0 MobilSoyuz
 
08.12.11
11:08
Вопрос стар как мир, но что-то туплю...
Есть модально Открытая форма из нее открывается новая форма, в новой формируется ТаблицаЗначений со списком клиентов. Необходимо при закрытии новой передать текущийЭлемент() ТаблицыЗначений в первую открытую форму.
Порылся тут, нашел:
Книга знаний: Параметр и контекст формы
но тут идет речь о передаче параметра из открытой формы в новую при открытии новой и при изменении параметра в первой форме изменяется параметр во второй.
Мне же необходимо обратное действие...
Подскажите где я заразился ошибкой ДНК....
Заранее благодарен!!!
1 GLazNik
 
08.12.11
11:10
Форма открывает модально или нет?
2 MobilSoyuz
 
08.12.11
11:10
(2) Да
3 Rie
 
08.12.11
11:10
(0) Присвой перед закрытием формы
Форма.Параметр = НужноеТебеЗначение;
в вызвавшей форме прочитай переменную, которую передавал вторым параметром ОткрытьФорму - и возрадуйся.
4 MobilSoyuz
 
08.12.11
11:17
(3)Первая форма открыта модально и вторая открыта модально
что-то не получается...
5 Rie
 
08.12.11
11:17
(4) Код покажи.
6 MobilSoyuz
 
08.12.11
11:21
в первой форме
Процедура СписокКлиентов()
   
   
   ОткрытьФормуМодально("Обработка.ВсеКлиенты",глВзятьКонтекст(Контекст));
   
   КонтекстФормы = глВзятьКонтекст(Контекст);
   
   Сообщить(КонтекстФормы);
   

КонецПроцедуры

во второй форме
Перем Элемент;

Процедура ПриОткрытии()
   
   ВсеКлиенты.НоваяКолонка("ШтрихКод", "Строка",40, 0, "Штрих Код", 20);
   ВсеКлиенты.НоваяКолонка("Фамилия", "Строка", 20, 0, "Фамилия", 20);
   ВсеКлиенты.НоваяКолонка("Имя", "Строка", 20, 0, "Имя", 20);
   ВсеКлиенты.НоваяКолонка("Отчество", "Строка", 20, 0, "Отчество", 20);
   
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса = "
   |Обрабатывать НеПомеченныеНаУдаление;
   |Клиент = Справочник.Клиенты.ТекущийЭлемент;
   |Группировка Клиент упорядочить по Клиент.Фамилия;
   |";
   
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       СтатусВозврата(0);
       Сообщить("Ошибка запроса по справочнику Клиенты","!!");
   КонецЕсли;
   n = 1;
   Пока Запрос.Группировка("Клиент") = 1 Цикл
       ВсеКлиенты.НоваяСтрока();
       ВсеКлиенты.УстановитьЗначение(n,1,Запрос.Клиент.Наименование) ;
       ВсеКлиенты.УстановитьЗначение(n,2,Запрос.Клиент.Фамилия) ;
       ВсеКлиенты.УстановитьЗначение(n,3,Запрос.Клиент.Имя) ;
       ВсеКлиенты.УстановитьЗначение(n,4,Запрос.Клиент.Отчество) ;
       n=n+1;
   КонецЦикла;
   
КонецПроцедуры

Процедура ПриЗакрытии()
 
   Форма.Параметр = Элемент;
   
КонецПроцедуры
7 dk
 
08.12.11
11:23
КонтекстФормы = глВзятьКонтекст(Контекст);
лишняя - убери
8 Rie
 
08.12.11
11:23
(6) В (3) совсем не зря упомянуто, что вторым параметром в ОткрытьФорму надо передать _переменную_.
9 Rie
 
08.12.11
11:25
+(8)
Вызывающая форма:

ЧегоТо = 0;
ОткрытьФормуМодально("Обработка.ВызываемаяФорма",ЧегоТо);
Сообщить(ЧегоТо);

Вызываемая форма:

Процедура ПриЗакрытии()
   Форма.Параметр = 12345;
КонецПроцедуры
10 MobilSoyuz
 
08.12.11
11:35
(9) Ок!