Программная установка параметров отчета
Теперь разработаем специальную отчетную форму для автоматического запуска отчета и инициализации параметров при открытии формы.
Для реализации этих возможностей создадим основную форму отчета СборкаСистемныхБлоков. Создадим обработчик события формы ПриСозданииНаСервере и заполним его следующим образом (листинг 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С:Предприятии 8». Система компоновки данных, 4-е стереотипное переиздание
·
Е.Ю. Хрусталева