Отчет по клиентам детализацией курсов
Создадим еще один отчет, в котором будет отражено, кем, сколько и за какие учебные курсы внесено денежных средств. Для этого необходимо создать новый макет – МакетСДетализацией (Рис.14).
Рис. 14. Макет отчета ОтчетСДетализацией
Текст процедуры формирования отчета приведен в листинге 3.
Листинг 3. Процедура формирования отчета по оплатам клиентов с детализацией по курсам
&НаСервере
Процедура СформироватьНаСервере(ТабДок)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ВнесениеОплатыЗаКурсы.Ссылка.Клиент КАК Клиент,
|ВнесениеОплатыЗаКурсы.Курс КАК Курс,
|СУММА(ВнесениеОплатыЗаКурсы.ВнесеннаяСумма)
|КАК ОплаченнаяСумма
|ИЗ
|Документ.ВнесениеОплаты.ОплатаКурсов
|КАК ВнесениеОплатыЗаКурсы
|СГРУППИРОВАТЬ ПО
|ВнесениеОплатыЗаКурсы.Ссылка.Клиент,
|ВнесениеОплатыЗаКурсы.Курс";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДанные = РезультатЗапроса.Выбрать();
Макет = Отчеты.ОтчетПоКлиентамСДетализациейКурсов.ПолучитьМакет("Макет");
// Заголовок
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
// Шапка
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
// Выполнить запрос
Пока ВыборкаДанные.Следующий() Цикл
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока.Параметры.Клиент = ВыборкаДанные.Клиент;
ОбластьСтрока.Параметры.Курс = ВыборкаДанные.Курс;
ОбластьСтрока.Параметры.ОплаченнаяСумма = ВыборкаДанные.ОплаченнаяСумма;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
ТабДок = Новый ТабличныйДокумент;
СформироватьНаСервере(ТабДок);
ТабДок.Показать();
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
КонецПроцедуры
После формирования отчета, получим результат оплаты с группировкой по клиентам и курсам (Рис.15).
Рис. 15. Отчет по оплатам с детализацией учебных курсов
Задание для самостоятельного выполнения
Создайте отчет ОтчетСДетализацией с тремя секциями:
Заголовок – текст «Отчет по оплатам клиентов»;
Шапка – с тремя ячейками с текстом «Клиент», «Курс» и «Оплаченная сумма»;
Строка – с тремя параметрами «Клиент», «Курс» и «ОплаченнаяСумма».
Напишите процедуру обслуживающую кнопку Сформировать, воспользовавшись примером, приведенным выше.
Просмотрите полученный отчет в режиме 1С: Предприятие.