1С:Предприятие 8
Система программ

Как программно запустить отчет, передав в него значения отбора?

25.06.2012

Например, есть отчет ЦеныТоваров. Он показывает последние цены, установленные на товары.

Задача в том, чтобы по команде из формы товаров сразу запускать этот отчет с отбором, установленным за месяц и по тому товару, на котором находится курсор в списке.

Выполнить эту задачу помогут два параметра, которые можно передать в форму отчета при ее открытии: Отбор и СформироватьПриОткрытии. Они поставляются расширением отчета.

Параметр Отбор позволяет установить отбор в отчете, задав значения полей или параметров отчета.

А параметр СформироватьПриОткрытии позволяет сразу же выполнить отчет, после того как его форма будет получена на сервере.

Таким образом в форме списка справочника товары достаточно выполнить следующий код:

УсловияОтбора  = Новый Структура("Товар", Элементы.Список.ТекущаяСтрока);
ПараметрыФормы = Новый Структура("Отбор, СформироватьПриОткрытии", УсловияОтбора, Истина);
ОткрытьФорму("Отчет.ЦеныТоваров.ФормаОбъекта", ПараметрыФормы); 

Сначала создаем структуру УсловияОтбора, которая задаст единственное условие отбора – по тому товару, на котором установлен курсор в списке (Элементы.Список.ТекущаяСтрока).

Затем сформируем структуру для параметров формы (ПараметрыФормы), описав в ней значения двух параметров – Отбор и СформироватьПриОткрытии.

И наконец открываем форму отчета, указав имя формы и параметры, предназначенные для открываемой формы.

Более сложный вариант интерактивного выполнения отчета можно посмотреть в статье Как с помощью команды выполнить отчет с некоторыми параметрами.