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