|
Как по владельцу формы выделить строку в подчиненной форме выбора 8.3 |
☑ |
0
breezee
13.01.16
✎
08:01
|
Процедура ПриОткрытии()
Если ЗначениеЗаполнено(ВладелецФормы.ВыделенныйТекст) Тогда
Отбор.Владелец.Значение = ВернутьВладельцаПоНаименованию(ВладелецФормы.ВыделенныйТекст);
КонецЕсли;
КонецПроцедуры
Функция ВернутьВладельцаПоНаименованию(Наименование)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МойСправочник.Владелец
|ИЗ
| Справочник.МойСправочник КАК МойСправочник
|ГДЕ
| МойСправочник.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", Наименование);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Владелец;
Иначе Возврат Справочники.СправочникВладельцев.ПустаяСсылка();
КонецЕсли;
КонецФункции
Функция выше выбирает владельца формы и передает его в отбор открытой формы, не как обратиться к конкретному элементу, из которого была открыта форма и выделить этот элемент форме справочника я не понимаю. Подскажите, пожалуйста.
|
|
1
breezee
13.01.16
✎
08:02
|
элемент форме СПИСКА справочника я не понимаю. *
|
|
2
LordCMEPTb
13.01.16
✎
08:05
|
Для начала, неплохо бы узнать, управляемые или обычные формы, и есть ли возможность менять код используемых форм?
|
|
3
breezee
13.01.16
✎
08:06
|
(2) Обычные формы. Есть возможность менять код форм.
|
|
4
LordCMEPTb
13.01.16
✎
08:15
|
Если обычные, тогда поиск открытых окон не подойдет, нужно в текущей форме делать либо "Оповестить()" (но это сообщение для всех окон), либо "ОповеститьОВыборе()" (только для владельца), а в форме-владельце делать обработчик события "ОбработкаОповещения" или "ОбработкаВыбора" соответственно.
З.Ы. Чтобы текущая форма не закрывалась после выбора, надо убрать значение из реквизита "ЗакрыватьПриВыборе".
|
|
5
breezee
13.01.16
✎
14:01
|
Может кому пригодится. У меня был отбор по 1 реквизиту в форме и если я ставил этот отбор во время открытия - мой элемент справочника уже не успевал попадать в этот отбор. Я поставил отбор перед открытием - мой реквизит начал попадать в отбор и стал выделяться в списке.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(ЭтаФорма.НачальноеЗначениеВыбора) Тогда
Отбор.Владелец.Значение = ЭтаФорма.НачальноеЗначениеВыбора.Владелец;
КонецЕсли;
КонецПроцедуры
|
|