Имя: Пароль:
1C
1С v8
Управляемые формы: как вернуть параметры из дочерней формы в основную.
0 Dmitry_333
 
26.03.19
11:18
Доброго всем дня.

Передать из основной в открываемую форму достаточно просто, но вот как вернуть в основную форму, толком не могу разобраться.
Например, из формы подбора в форму документа.

Направьте пожалуйста-)
1 sqr4
 
26.03.19
11:28
Оповестить?
2 Жан Пердежон
 
26.03.19
11:32
ОткрытьФорму() - там куча полезных параметров есть
3 Dmitry_333
 
26.03.19
11:39
(2) Действительно, там есть параметр ОписаниеОповещенияОЗакрытии, но как его пользовать? Не могу вменяемую инфу найти.
4 polosov
 
26.03.19
11:40
(3) Посмотри как возвращает данные подбор в типовых.
5 Ошибка1С
 
26.03.19
11:46
в дочерней форме можно в метод Закрыть() передать нужный параметр и потом его прочитать в обработке выбора
6 Cyberhawk
 
26.03.19
11:47
Смотря когда
7 Garykom
 
гуру
26.03.19
11:48
Нескоко разных способов есть
8 Dmitry_333
 
26.03.19
12:08
(5) (7) Можно чуть более подробнее?-)
9 sqr4
 
26.03.19
12:11
10 Ошибка1С
 
26.03.19
12:12
(8) Закрыть(ТвойПараметр) в дочерней
ОбработкаВыбора(ВыбранноеЗначение) в основной
11 Ошибка1С
 
26.03.19
12:12
(9) офф документация только за бабки?
12 sqr4
 
26.03.19
12:20
(11) Понятия не имею, у нас есть подписка
13 Dmitry_333
 
26.03.19
12:24
(9) (10) Благодарю!
14 polosov
 
26.03.19
12:26
(11) Это не документация. Это книга по разработке интерфейсов, выложенная онлайн.
15 Garykom
 
гуру
26.03.19
12:57
(13) А еще можно передать в подчиненную форму параметром текущую форму (Владелец или новый) и оттуда вызвать экспортные процедуры или еще как.
Ну и учитываем что параметры передаются без "Знач" и их можно с любого конца менять.

Короче способов несколько
16 Dmitry_333
 
26.03.19
13:02
(15) Спасибо
17 Dmitry_333
 
27.03.19
10:04
Действительно, все не так сложно оказалось.

Для тех, кого поисковик закинет сюда с аналогичным вопросом, выкладываю простейший пример, как из дочки передать значение в основную.

В модуле основной формы:


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


Процедура ОбработкаКомандыЗавершения(Результат, ДополнительныеПараметры) Экспорт
    
             Объект.Данная = Результат;
    
КонецПроцедуры


В модуле дочерней формы:


&НаКлиенте
Процедура ПеренестиВОсновнуюФорму(Команда)
    
    Закрыть(Объект.ДанныеНаДочФорме);
    
КонецПроцедуры


Таким образом, значения из поля реквизита ДанныеНаДочФорме перенесутся в поле реквизита Данные основной формы.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.