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