Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Управляемые формы открыть форму выбора

Управляемые формы открыть форму выбора
Я
   Nast
 
13.03.19 - 11:15
Подскажите, как в управляемых формах при нажатии на кнопку открыть форму выбора справочника и получить выбранное значение? ОткрытьФормуМодально нельзя делать.
 
 
   Fragster
 
1 - 13.03.19 - 11:17
ОткрытьФорму, указав в параметрах РежимВыбора и владельцем нужный элмент управления. Тогда выбранное значение (или значение из ОповеститьОВыборе) бдет прилетать в указанный элемент управления.
   Василий Алибабаевич
 
2 - 13.03.19 - 11:18
(0)
1. В ОткрытьФорму указать обработчик закрытия.
2. В открываемой форме в каком-нибудь событии прописать ЭтаФорма.Закрыть(<ЗначениеКотороеНужноВернуть>). Оно упадет в в обработчик закрытия из п 1.
   Nast
 
3 - 13.03.19 - 11:20
у меня есть справочник Партнеры, надо при нажатии на созданную кнопку открывать форму выбора справочника Контрагенты с отбором по текущему Партнеру и потом получать выбранного контрагента. Можно ли сделать не внося изменения в справочник Контрагенты?
   Fragster
 
4 - 13.03.19 - 11:20
(2) это сложно
   Василий Алибабаевич
 
5 - 13.03.19 - 11:20
+ (2) В ОткрытьФорму указать РежимОткрытияОкна Блокировать окно владельца
   Fragster
 
6 - 13.03.19 - 11:20
(3) да, в параметрах еще можно указать отбор. а лучше в свойствах реквизита указать связи параметров выбора. тогда ничего кодом вообще не надо будет делать.
   Nast
 
7 - 13.03.19 - 11:24
В открываемой форме в каком-нибудь событии прописать ЭтаФорма.Закрыть(<ЗначениеКотороеНужноВернуть>). Мне надо без изменения внесения изменений в открываемую форму
   Василий Алибабаевич
 
8 - 13.03.19 - 11:24
(4) Что сложно? Кому сложно?
ИМХО - это проще, чем городить огород с Оповещением о выборе и обработкой выбора. А если выбор нескольких реквизитов - нужно в обработка выбора анализировать что прилетело или от кого. А так - все укладывается в линейную логику ОткрытьМодально. Ну... почти.
   Василий Алибабаевич
 
9 - 13.03.19 - 11:26
(7) ГЫ. тогда см(6).
В случае, если от батареи не отползти - тогда и (1) не поможет. Ибо оповещение никто не кинет.
   Fragster
 
10 - 13.03.19 - 11:32
(8) если ты открываешь форму выбора и указываешь владельцем элемент управления - то ничего дополнительно прописывать не надо, если у тебя элемент управления того же типа, что и выбираемое значение. а вообще автору надо (6)
   Сияющий в темноте
 
11 - 13.03.19 - 12:17
Форму система откроет автоматом и вернет из нее значение,а вот отбор кто то должен поставить,для этого,автомат нужно перевести в ручной режим,то есть открыть форму и установить в ней отбор,а выбор потом прилетит в обработку выбора.

блокировать основную форму не обязательно,но,если не блокировать,то пользователь может потерять форму списка.
   Nast
 
12 - 13.03.19 - 14:35
Почему если делать отбор по владельцу при открытии формы, то этот отбор сохраняется даже если открыть потом другой элемент справочника?


ПараметрыФормы  = Новый Структура; 
    
ПараметрыФормы.Вставить("РежимВыбора", Истина);
ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Истина);
Отбор = Новый Структура;
    Отбор.Вставить("Партнер", Объект.Ссылка);
    
    П = Новый Структура;
    П.Вставить("Параметры", ПараметрыФормы);
    
    П.Вставить("Отбор",Отбор);

    
    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьЭлементСправочника", ЭтаФорма, Новый Структура("Параметр1",1));

    ОткрытьФорму("Справочник.КонтактныеЛицаПартнеров.ФормаВыбора", П, ЭтаФорма, , , , ОбработкаВыбора);
   Nast
 
13 - 13.03.19 - 15:20
_
   Fragster
 
14 - 13.03.19 - 15:28
То, что у тебя запихивается в П.Параметры должно запихиваться напрямую в П. Ну и см. (6)
   Fragster
 
15 - 13.03.19 - 15:28
и зачем у тебя обработка выбора - тоже хз.
   DrWatson
 
16 - 13.03.19 - 15:40
(15) Если Если нет элемента формы и нужно программно поймать выбор, то это правильный способ.
   Nast
 
17 - 13.03.19 - 16:04
(14) а как напрямую?
   Nast
 
18 - 13.03.19 - 16:11
Отбор = Новый Структура;
    Отбор.Вставить("Партнер", Объект.Ссылка);
    П = Новый Структура;
    П.Вставить("РежимВыбора", Истина);
    П.Вставить("ЗакрыватьПриВыборе", Истина);

    П.Вставить("Отбор",Отбор);

    
    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьЭлементСправочника", ЭтаФорма, Новый Структура("Параметр1",1));

    ОткрытьФорму("Справочник.КонтактныеЛицаПартнеров.ФормаВыбора", П, ЭтаФорма, , , , ОбработкаВыбора);

Все равно сохраняется прежний и нет отбора по владельцу. Надо чтобы открывалась форма выбора контактных лиц с отбором по владельцу, т.е. партнеру
   ptiz
 
19 - 13.03.19 - 16:15
Пример отбора по владельцу:

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.