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