В начало

Программное добавление группировок в отчет

 

Есть справочник «Сотрудники», по которому создается простейший отчет «Сотрудники». Необходимо программно создать группировки в этом отчете, например, «Должность» и «Детальные записи».

Далее показан справочник «Сотрудники». Справочник имеет три реквизита: «Пол», «Дата рождения» и «Должность».

Рис. Справочник Сотрудники

 

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

Запускаем конструктор запросов, в котором выбираем справочник «Сотрудники» и нужные поля.

Рис. Конструктор запросов, закладка «Таблицы и поля»

 

            Возвращаемся в схему компоновки данных, все заполняем до закладки «Настройки».

Рис. Система компоновки данных, вкладка «Настройки»

 

            На вкладке «Настройки» системы компоновки данных добавляем поля, а вот группировки НЕ добавляем.

            Закрываем СКД, возвращаемся в отчет «Сотрудники», создаем форму отчета, в которой заполняем процедуру «ПриОткрытии», добавляем в нее код для программного создания группировок. Одна группировка будет «Должности», а вторая – «Детальные записи». Листинг содержимого процедуры «ПриОткрытии» приведен ниже.

 

Листинг. Процедуры в модуле формы отчета «Сотрудники»

Процедура ПриОткрытии() 

            Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

           

            //Группировка "Должность"

            Группировка1 = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

            Группировка1.Использование = Истина;

            ПолеДолжности = Группировка1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));

            ПолеДолжности.Использование = Истина;

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

            ВыбранныеПоляДляГруппировки1 = Группировка1.Выбор.Элементы.Добавить(Тип("АвтовыбранноеПолеКомпоновкиДанных"));

            ВыбранныеПоляДляГруппировки1.Использование = Истина;

           

            //Группировка <Детальные записи> 

            ДетальныеЗаписи = Группировка1.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

            ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));

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

 

            Обновляем конфигурацию, запускаем режим отладки, открываем отчет «Сотрудники», смотрим его настройки, нажав на кнопку «Настройки».

Рис. Настройки отчета «Сотрудники»

 

            Видим, что группировки «Должность» и «Детальные записи» создались. Формируем отчет, нажав на кнопку «Сформировать».

Рис. Отчет «Сотрудники»

 

            Таким образом, были программно сформированы две группировки в настройках отчета.