У полей динамического списка нет события Выбор, что иногда очень неудобно.
Данное событие есть у строки, а также имеются соответствующие реквизиты ТекущиеДанные, единственный момент - как получить значение именно выбранного поля? На входе события есть параметр "Поле" содержащий склеенное имя (если в авто режиме создавались элементы формы), поэтому расклеиваем и получаем значение вот так:
Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")]
Ну и открываем. Этот вариант не требует знания типа ссылки, но пытается открыть в модальном режиме
&НаКлиенте
Процедура КомплектующиеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")])
КонецПроцедуры;
Поэтому такой вариант лучше. ФормаОбъекта - стандартная форма, даже если ее нету
&НаКлиенте
Процедура КомплектующиеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СсылкаДляОткрытия=Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя,Элемент.имя,"")];
ПараметрыФормы = Новый Структура("Ключ", СсылкаДляОткрытия);
Если ТипЗнч(СсылкаДляОткрытия)=тип("СправочникСсылка.Спр1") Тогда
ИмяФормыСправочника="Справочник.Спр1.ФормаОбъекта";
ИначеЕсли ТипЗнч(СсылкаДляОткрытия)=тип("СправочникСсылка.Спр2") Тогда
ИмяФормыСправочника="Справочник.Спр2.ФормаОбъекта";
Иначе
Возврат;
КонецЕсли;
ОткрытьФорму(ИмяФормыСправочника, ПараметрыФормы);
КонецПроцедуры;
Комментариев нет:
Отправить комментарий