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

Пример 6. Автоматическое формирование отчета

Теперь на основе полученных знаний усовершенствуем отчет ОтчетПоСистемнымБлокам так, чтобы при открытии отчета задавались значения параметров по умолчанию и передавались в отчет. Также было бы удобно, чтобы отчет формировался автоматически, без нажатия кнопки Сформировать.

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

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

&НаСервере

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

 

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

 

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

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

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

Для этого сначала представим последовательность событий, которые возникают в модуле формы отчета и в модуле объекта отчета при формировании отчета при его открытии (рис. 2.79).

Рис. 2.79. Последовательность событий при формировании отчета при открытии

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

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

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

&НаСервере

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

 

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

"Продажа системных блоков");

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

'20111201');

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

'20111231');

 

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

В параметре Настройки в обработчик передаются настройки варианта отчета, имеющие тип НастройкиКомпоновкиДанных. В данном обработчике методом УстановитьЗначениеПараметра() изменен заголовок отчета, а также установлены значения параметров начала и конца отчетного периода. Однако если настройки являются пользовательскими (в нашем случае – это параметры отчетного периода) и пользователь хоть раз задавал их значения в форме отчета, то устанавливать их в этом обработчике бесполезно.

Это происходит потому, что после загрузки настроек варианта отчета восстанавливаются пользовательские настройки, сделанные пользователем при последнем формировании отчета и автоматически сохраненные платформой. Пользовательские настройки накладываются на настройки варианта и загружаются в компоновщик настроек. При этом вызываются события ПередЗагрузкойПользовательскихНастроекНаСервере и ПриЗагрузкеПользовательскихНастроекНаСервере.

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

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

&НаСервере

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

 

Настройки.Элементы[0].Значение = ‘20111201’;

Настройки.Элементы[0].Использование = Истина;

Настройки.Элементы[1].Значение = ‘20111231’;

Настройки.Элементы[1].Использование = Истина;

 

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

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

Дальше платформа автоматически вызывает метод СкомпоноватьРезультат(), и происходит событие отчета ПриКомпоновкеРезультата. Отчет компонуется и выводится пользователю.

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

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

Как мы видим, отчет формируется сразу же при его открытии, и параметрам Начало периода и Конец периода по умолчанию присвоены значения – начало и конец месяца. Дальше пользователь может произвольно их менять и переформировывать отчет, пользуясь кнопкой Сформировать.

Назад: Пример 5. Набор данных – объединение
Дальше: Пример 7