Книга: Разработка сложных отчетов в «1С:Предприятии 8». Система компоновки данных
Назад: Передача параметров в запрос набора данных
Дальше: Пример 8

Программная установка параметров отчета

Теперь разработаем специальную отчетную форму для автоматического запуска отчета и инициализации параметров при открытии формы.

Для реализации этих возможностей создадим основную форму отчета СборкаСистемныхБлоков. Создадим обработчик события формы ПриСозданииНаСервере и заполним его следующим образом (листинг 2.16).

Листинг 2.16. Обработчик события формы «ПриСозданииНаСервере»

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 

Параметры.СформироватьПриОткрытии = Истина;

 

КонецПроцедуры

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

Теперь программно установим значения параметров НачалоПериода и КонецПериода и передадим их в отчет.

Так как в схеме компоновки данных мы указали параметры НачалоПериода и КонецПериода в составе быстрых пользовательских настроек, то нам нужно создать обработчик события формы ПередЗагрузкойПользовательскихНастроекНаСервере, чтобы в нем изменить параметры пользовательских настроек перед их загрузкой в компоновщик (листинг 2.17).

Листинг 2.17. Обработчик события «ПередЗагрузкойПользовательскихНастроекНаСервере»

&НаСервере

Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки)

 

Настройки.Элементы[0].Значение = НачалоМесяца(‘20111210’);

Настройки.Элементы[1].Значение = КонецНедели(‘20120110’);

 

ПорядокНомер = Настройки.Элементы[2].Элементы[1];

ПорядокНомер.Использование = Ложь;

 

Если Настройки.Элементы[2].Элементы.Количество() <= 2 Тогда

ЭлементПорядка = Настройки.Элементы[2].Элементы.

Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));

ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Стоимость");

ЭлементПорядка.Использование = Истина;

КонецЕсли;

 

КонецПроцедуры

В параметре Настройки в обработчик передаются настройки варианта отчета, имеющие тип ПользовательскиеНастройкиКомпоновкиДанных. Сначала мы устанавливаем значения параметров начала и конца отчетного периода (с индексами 0, 1 в коллекции элементов пользовательских настроек), причем можно не задавать для них признак использования, поскольку параметры используются всегда. Затем отключаем использование в сортировке (с индексом 2 в коллекции элементов пользовательских настроек) поля Номер. Его индекс в коллекции настроек сортировки равен 1. После этого добавляем поле Стоимость в коллекцию настроек сортировки.

В случае, если пользовательские настройки отчета еще ни разу не сохранялись, их нужно задавать в обработчике события ПередЗагрузкойВариантаНаСервере (листинг 2.18).

Листинг 2.18. Обработчик события «ПередЗагрузкойВариантаНаСервере»

&НаСервере

Процедура ПередЗагрузкойВариантаНаСервере(Настройки)

 

Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода",

НачалоМесяца('20111210'));

Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода",

КонецНедели('20120110'));

 

КонецПроцедуры

В результате настройки, программно установленные при открытии формы отчета, загружаются в компоновщик настроек, и отчет формируется с заданными параметрами.

Запустим «1С:Предприятие» и откроем наш отчет (рис. 2.93).

Рис. 2.93. Открытие отчетной формы

Он будет сформирован автоматически со значениями настроек, заданными по умолчанию при открытии формы.

Таким образом, на примере этого отчета мы научились:

Назад: Передача параметров в запрос набора данных
Дальше: Пример 8