|
Как по владельцу формы выделить строку в подчиненной форме выбора 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 реквизиту в форме и если я ставил этот отбор во время открытия - мой элемент справочника уже не успевал попадать в этот отбор. Я поставил отбор перед открытием - мой реквизит начал попадать в отбор и стал выделяться в списке.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Если ЗначениеЗаполнено(ЭтаФорма.НачальноеЗначениеВыбора) Тогда Отбор.Владелец.Значение = ЭтаФорма.НачальноеЗначениеВыбора.Владелец; КонецЕсли; КонецПроцедуры |
| Форум | Правила | Описание | Секции | Поиск |