Использование параметризуемых команд в формах объектов позволяет при выполнении команды передать в обработчик команды какой-либо параметр, например значение ссылочного реквизита формы. И затем использовать его, например, открыть с этим параметром форму отчета.
В следующем примере, при помощи параметризируемой команды ОстаткиПоТовару выводится отчет, показывающий остатки товара, указанного в текущей строке списка товаров.
Для этого у отчета ОстаткиТоваровНаСкладах создана команда ОстаткиПоТовару со свойствами:
Тип параметра команды – СправочникСсылка.Товары
Группа - Командная панель формы.Важное.
2222222222222.jpg ( 30,25 килобайт )
Кол-во скачиваний: 115 Тип параметра команды определяет, что во всех формах, имеющих реквизит типа СправочникСсылка.Товары эта команда автоматически будет добавлена в список параметризуемых команд доступных в форме. В форме списка и в форме элемента справочника Товары эта команда будет автоматически видима.
Обработчик команды содержит код:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура("Отбор,КлючНазначенияИспользования,СформироватьПриОткрытии",
Новый Структура("Товар", ПараметрКоманды),
"ОстаткиПоТовару",
Истина);
ОткрытьФорму("Отчет.ОстаткиТоваровНаСкладах.Форма",
ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры
В этот обработчик передается ПараметрКоманды, содержащий значение типа СправочникСсылка.Товар.
Затем создается структура параметров формы (ПараметрыФормы): Отбор, КлючНазначенияИспользования, СформироватьПриОткрытии.
В параметр Отбор добавляется структура, содержащая элемент Товар со значением, содержащимся в параметре команды (ПараметрКоманды).
Параметр КлючНазначенияИспользования – «ОстаткиПоТовару» определяет назначение использования формы.
А параметру СформироватьПриОткрытии присваивается значение Истина, чтобы отчет формировался сразу после открытия.
Затем структура параметров формы передается в метод глобального контекста ОткрытьФорму(), и форма, указанная в первом параметре метода, открывается с отбором по значению, переданному в ПараметрКоманды.
Таким образом, при нажатии кнопки Остатки товара в обработчик команды передается ссылка на текущий элемент номенклатуры, и по этому элементу в отчете устанавливается дополнительный отбор с видом сравнения Равно.
2222222222222.jpg ( 46,31 килобайт )
Кол-во скачиваний: 63А как вывести отчет сразу по нескольким товарам?
Для этого можно установить свойство команды Режим использования параметра в значение Множественный.
2222222222222.jpg ( 27,93 килобайт )
Кол-во скачиваний: 44В этом случае в обработчик команды в качестве параметра будет всегда передаваться массив значений (даже если выбрано одно значение). Первым элементом массива будет выступать текущая строка таблицы списка в режиме множественного выделения.
Таким образом, при выделении в списке нескольких элементов номенклатуры и нажатии кнопки Остатки товара в обработчик команды передается массив выделенных элементов таблицы, содержащих ссылки на номенклатуру, и по этим элементам в отчете устанавливается дополнительный отбор с видом сравнения В списке.
2222222222222.jpg ( 56,48 килобайт )
Кол-во скачиваний: 34Если нужен отчет по группе справочника, можно выделить все элементы группы или в обработчике команды программно сформировать список товаров, для которых нужно получить остатки.
Подробнее о свойстве РежимИспользованияПараметраКоманды можно прочитать в синтакс-помощнике: Системные перечисления - Интерфейсные.