В режиме "Конфигуратор"
страницаВ режиме «Конфигуратор»
Сначала создадим параметризованную команду объекта конфигурации Отчет Материалы.
Для этого откроем окно редактирования этого объекта. На закладке Команды нажмем кнопку Добавить и создадим команду ОстаткиПоСкладу.
В открывшейся палитре свойств зададим Тип параметра команды — СправочникСсылка.Склады. В свойстве Группа укажем Командная панель формы.Важное (рис. 27.37).

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

Рис. 27.38. Помещение параметризованной команды в форму
Заметьте, что мы не создавали форму отчета и не добавляли в настройки отчета отбор по параметру формы Склад. Система сделает это сама при выполнении обработчика команды ОстаткиПоСкладу.