ОткрытьФорму подчиненного справочника

Дайнеко

Well-Known Member
19.11.2009
951
0
#1
Вот измаялся в экспериментах:
На списке справочника-владельца сделал кнопку открытия подчиненного спр-ка. Хочу поведение сделать в точности как у стандартной "Перейти". А именно: устанавливать владельца по текущей строке, при повторном открытии открывать в том же окне. Проблема в том, что открываемая форма не получает владельца.

В подчиненной:
Код:
Процедура ПриОткрытии()
Если ЗначениеПустое(ПараметрОтборПоВладельцу) Тогда
Возврат;
КонецЕсли;
Заголовок = ПараметрОтборПоВладельцу.Наименование;
КонецПроцедуры
В отладчике вижу "ПараметрОтборПоВладельцу" и "СправочникСписок.Отбор.Владелец.Значение" не определены


В головной перепробовал все:
Код:
ОткрытьФорму("Справочник.Улицы.ФормаСписка",, ЭлементыФормы.СправочникСписок.ТекущаяСтрока,,);
ПолучитьФорму("Справочник.Улицы.ФормаСписка",, 	ЭлементыФормы.СправочникСписок.ТекущаяСтрока,,).Открыть();
Справочники.Улицы.ПолучитьФормуСписка(, ЭлементыФормы.СправочникСписок.ТекущаяСтрока).Открыть();
Справочники.Улицы.ПолучитьФормуСписка(, ЭтаФорма).Открыть();
Только не пишите: "А чем кнопка Перейти плоха?"
 

unknown181538

НеГуру
28.12.2008
1 417
0
#2
Код:
	Форма = Справочники.ЕдиницыИзмерения.ПолучитьФорму("ФормаСписка",);
Форма.СправочникСписок.Отбор.Владелец.Установить(ЭлементыФОрмы.Список.ТекущиеДанные.Ссылка);
Форма.Открыть();
 

Дайнеко

Well-Known Member
19.11.2009
951
0
#3
Спасибо. Значит надо устанавливать Владельца. А чего я решил, что "сама сделает"? А! в семерке так.

Ну, а если не лень, подскажите еще из семерочного опыта. Там было так:
Если на экране список Владельца и Подчиненного, то когда я курсором перемещаюсь на другую строку Владельца, Подчиненный меняет содержимое, подсвечивает строки нового Владельца.

Как в 8-ке это красиво сделать. Я объясню трудность. Понимаю, что при изменении Владельца просто повторно открываю Подчиненного, только надо позаботится, что бы не открывалась в новом окне.

А как понять, что пользователь форму Подчиненного не открывал и ее нет на экране? Следовательно ничего делать не надо.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
Спасибо. Значит надо устанавливать Владельца. А чего я решил, что "сама сделает"? А! в семерке так.
Там вроде ИспользоватьВладельца надо было.
Если на экране список Владельца и Подчиненного, то когда я курсором перемещаюсь на другую строку Владельца, Подчиненный меняет содержимое, подсвечивает строки нового Владельца.

Как в 8-ке это красиво сделать. Я объясню трудность. Понимаю, что при изменении Владельца просто повторно открываю Подчиненного, только надо позаботится, что бы не открывалась в новом окне.

А как понять, что пользователь форму Подчиненного не открывал и ее нет на экране? Следовательно ничего делать не надо.
Например...
Найти событие, отвечающее, за смену текущей строки, и в нем прописать установку отбора.
Переменную форма сделать глобальной, если она определена, то форма открыта... Точнее, при закрытии она не очистится... использовать метод Открыта()
 

Дайнеко

Well-Known Member
19.11.2009
951
0
#5
Спасибо, завтра проверю. А сейчас - пора баиньки.

Проверил первый вопрос. Да, работает (только надо включать "Использование" = Истина).
Но смута в голове бродит:
* Зачем в параметрах методов вроде ОткрытьФорму есть Владелец, но он не работает ?
* Подчиненна форма работает по-разному:
- при открытии кнопкой Перейти в подчиненной форме "ПараметрОтборПоВладельцу" = Владельцу
- при открытии программно этот параметр пустой. Ну это и понятно, мы ж только отбор ей навязали.

Результата добился, но не совсем правильно....
 

unknown181538

НеГуру
28.12.2008
1 417
0
#6
* Зачем в параметрах методов вроде ОткрытьФорму есть Владелец, но он не работает ?
Это владелец формы, а не элементов спр-ка. То есть это тоже форма. Например, если мы закроем справочник "Контрагенты", "Договоры" сами собой закроются... или что-то вроде того.

Вот за оптимальность своего решения не отвечаю.