Имя: Пароль:
1C
1С v8
УФ:передача данных между формами
0 Kurbash
 
24.01.14
16:58
СОбственно говоря сабж-есть форма1, на которой кнопка, при нажатии на которую вызывается форма2. Проблема в том, что на форме два есть процедура, для которой нужны данные формы1(значения нескольких реквизитов). Никто не подскажет как можно сделать?
1 Широкий
 
24.01.14
17:01
Оповестить?
2 Kurbash
 
24.01.14
17:01
оповестить форму? есть пример? а то ни разу не работал с ним
3 Ksandr
 
24.01.14
17:02
Передать параметром
4 Kurbash
 
24.01.14
17:05
(3)как? в процедуре же использутся параметры с текущей формы, а текущая форма будет форма2
5 Kurbash
 
24.01.14
17:09
нужен какой то буфер своеобразный, чтобы туда выгрузить знаечния а в форме 2 загрузить из него
6 Жан Пердежон
 
24.01.14
17:10
параметры формы используй
7 Широкий
 
24.01.14
17:10
Оповестить в другойй форме "ОбработкаОповещения"
8 fisher
 
24.01.14
17:14
(4) В какой еще процедуре? Это не те параметры, которые "реквизиты". Это те параметры, которые "параметры". Они придуманы как раз для принятия и обработки извне дополнительных данных при открытии управляемой формы.
9 Kurbash
 
24.01.14
17:15
(8)-можно подробнее?
10 fisher
 
24.01.14
17:15
(9) Передаются они прямо из ОткрытьФорму(). Подробнее - РТФМ.
11 zippygrill
 
24.01.14
17:24
глянь как в типовых сделано. К примеру заполнение ТЧ РТУ из внешнего источника. По моему в УТ11
12 YaroslavStr
 
24.01.14
17:31
У меня так. Открываем форму №2

Форма = Обработки.ВыборСпецификации.Создать();
    Форма.СсылкаНаСпецификацию = Приемник.Ссылка;
    Форма.ПолучитьФорму("ФормаВыбораСпецификации",ЭтаФорма).ОткрытьМодально();


Далее выбором во второй форме оповещаем первую форму процедурой:

Процедура ТЗВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)    
    ИмяСобытия = "Выбор источника";
    ПараметрВызова = ЭлементыФормы.ТЗ.ТекущаяСтрока.ДокРаскрой.Ссылка;    
    ФормаИсточник = "ФормаВыбораСпецификации";
        Оповестить(ИмяСобытия,ПараметрВызова,ФормаИсточник);    
    ЭтаФорма.Закрыть();
КонецПроцедуры

В первой форме:

Процедура ОбработкаОповещения(ИмяСобытия, ПараметрВызова, ИсточникДанных)
    Если ИмяСобытия = "Выбор источника" Тогда
        Источник = ПараметрВызова;
    КонецЕсли;
КонецПроцедуры
13 YaroslavStr
 
24.01.14
17:32
Можно через структуру наверное замутить для более чем один параметр.
14 YaroslavStr
 
24.01.14
17:33
В третей процедуре "Источник" - это реквизит формы, который надо заполнить данными из второй формы.
15 fisher
 
24.01.14
17:36
ТС не нужна обратная связь. Ему надо тупо передать данные в открываемую форму. Никакие оповещения ему не нужны.
16 Kurbash
 
24.01.14
18:23
это все в УФ делается?
17 GROOVY
 
24.01.14
18:45
парам = Новый Структура();
Парам.Вставить("ИмяПараметра", Ревизит);

ОткрытьФорму("Документ.Имя.Формы.Форма1", парам);



В открываемой форме
Процедура ПриСозданииНаСервере()
А = Параметры.ИмяПараметра;
КонецПроцедуры
18 Kurbash
 
24.01.14
18:49
хоть один нормальный пример. спасибо, а если параметров несколько?
19 Kurbash
 
24.01.14
18:50
а, все, туплю, спасибо
Закон Брукера: Даже маленькая практика стоит большой теории.