Решение третьего задания




Формируем новый отчет с макетом:

Источником данных для запроса возьмем виртуальную таблицу «ДвиженияССубконто», но в запросе свернем таблицу по поставщику.

Для свертки данных исходной таблицы используем при расчете числовых полей функцию «СУММА» и команду «Сгруппировать», которые обеспечат получение свернутых по группировкам числовых значений.

роме того, в запросе обеспечим хранение в одной строке (по поставщику) суммового оборота по счетам 10, 01,51.

Получим запрос:

счет10=ПланыСчетов.Хозрасчетный.Материалы;

счет01=ПланыСчетов.Хозрасчетный.ОсновныеСредства;

счет51=ПланыСчетов.Хозрасчетный.РасчетныйСчет;

 

Макет = ОтчетОбъект.ПолучитьМакет("ЗапросКРегиструБухгалтерии");

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

|ЖурналОперацийДвиженияССубконто.СубконтоКт1 КАК Контрагент,

| Сумма (выбор Когда ЖурналОперацийДвиженияССубконто.СчетДт=&Счет10 | Тогда ЖурналОперацийДвиженияССубконто.Сумма Иначе 0 Конец) КАК |Сумма10,

| Сумма(выбор Когда ЖурналОперацийДвиженияССубконто.СчетДт=&Счет01 Тогда ЖурналОперацийДвиженияССубконто.Сумма Иначе 0 Конец) КАК Сумма01,

| Сумма(выбор Когда ЖурналОперацийДвиженияССубконто.СчетДт=&Счет51 Тогда ЖурналОперацийДвиженияССубконто.Сумма Иначе 0 Конец) КАК Сумма51

|ИЗ

| РегистрБухгалтерии.ЖурналОпераций.ДвиженияССубконто(&Нач,&Кон) КАК ЖурналОперацийДвиженияССубконто

| Сгруппировать по ЖурналОперацийДвиженияССубконто.СубконтоКт1

|ИТОГИ ПО ОБЩИЕ";

 

Запрос.УстановитьПараметр("Нач", НачалоДня(НачПериода));

Запрос.УстановитьПараметр("Кон", КонецДня(КонПериода));

Запрос.УстановитьПараметр("счет10", счет10);

Запрос.УстановитьПараметр("счет01", счет01);

Запрос.УстановитьПараметр("счет51", счет51);

Результат = Запрос.Выполнить();

ТабличноеПоле1=Результат.Выгрузить();

ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

//Возврат;

Результат запроса в ТабличномПоле:

 

 

В запросе есть обороты по поставщикам, а также Общий итог

Продолжаем модуль расчета:

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

 

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

 

//Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Выборка = Результат.Выбрать();

 

Пока Выборка.Следующий() Цикл

Если Выборка.ТипЗаписи()=ТипЗаписиЗапроса.ОбщийИтог Тогда

Продолжить;

КонецЕсли;

ОбластьДетальныхЗаписей.Параметры.Заполнить(Выборка);

ОбластьДетальныхЗаписей.Параметры.Итого=ОбластьДетальныхЗаписей.Параметры.Сумма01+ОбластьДетальныхЗаписей.Параметры.Сумма10+ОбластьДетальныхЗаписей.Параметры.Сумма51;

ТабДок.Вывести(ОбластьДетальныхЗаписей);

КонецЦикла;

Выборка = Результат.Выбрать();

Если Выборка.Следующий() Тогда

ОбластьПодвал.Параметры.Заполнить(Выборка);

ОбластьПодвал.Параметры.Итого=ОбластьПодвал.Параметры.Сумма01+ОбластьПодвал.Параметры.Сумма10+ОбластьПодвал.Параметры.Сумма51;

ТабДок.Вывести(ОбластьПодвал);

КонецЕСли;

 

Окончательный отчет:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: