Данная статья описывает, как штатными средствами передать в качестве параметра значение при открытии управляемой формы 8.2 в сравнении с тем, как аналогичную операцию получалось реализовать в обычных формах.
Как передаются параметры в обычных формах
В обычных формах для передачи параметра было 2 возможности:
1) менее распространенный способ: в форме объекта на вкладке «Реквизиты» добавлялся реквизит, при необходимости определялся доступ визуальными средствами
2) более распространенный способ: в модуле формы объявлялась экспортная переменная и в обработчике «ПередОткрытием» значение обрабатывалось
в обоих случаях вызов формы выглядел примерно так:
Форма = Объект.ПолучитьФорму("ФормаВыбора",ВладелецФормы, КлючУникальности);
Форма.Параметр = ЗначениеПараметра;
Форма.Открыть();
Параметры = Новый Структура("ТекущееЗначение",ПоследнийЭлемент);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);
НайденыйЭлемент = ФормаВыбора.ОткрытьМодально();
ПриСозданииНаСервере
, что логично т.к. параметры требуются только при создании формы, но если данный параметр определяет уникальность формы (установлен флаг «ключевой параметр» в свойствах параметра) он будет доступен и в других обработчиках.ПриСозданииНаСервере
определить обработку данного параметра (обращение к переданным параметрам через свойство «Параметры», имеющее тип ДанныеФормыСтруктура)ПолучитьФорму
.Параметры = Новый Структура("НовыйПараметр",ПоследнийЭлемент);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("НовыйПараметр") Тогда
// здесь код обработки параметра
КонецЕсли;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua