![]() |
|
Как получить значения группировки по столбцам | ☑ | ||
---|---|---|---|---|
0
xenos
21.08.12
✎
05:29
|
Допустим надо сделать такой отчет обычными запросом не СКД
http://s2.ipicture.ru/uploads/20120821/Rp8fT641.jpg Если бы была группировка только по контрагентам тогда все просто. А вот как сделать такое, сначала получить группировку контрагенты и данные по периодам. А затем данные по договорам и опять перебор по периодам. |
|||
1
rphosts
21.08.12
✎
05:36
|
и итоги по контрагентам и периодам. и запрос обходить по группировкам сначало по контрагентам а потом по периодам и наконец по договорам.
|
|||
2
xenos
21.08.12
✎
05:46
|
Вот простой пример по строкам
Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Контрагенты КАК Контрагенты, | ВложенныйЗапрос.Договор КАК Договор, | ВложенныйЗапрос.Месяц КАК Месяц, | ВложенныйЗапрос.СуммаОборот КАК СуммаОборот |ИЗ | (ВЫБРАТЬ | ХозрасчетныйОбороты.Субконто1 КАК Контрагенты, | ХозрасчетныйОбороты.Субконто2 КАК Договор, | ХозрасчетныйОбороты.Период КАК Месяц, | СУММА(ХозрасчетныйОбороты.СуммаОборот) КАК СуммаОборот | ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПер, &КонПер, Месяц, Счет В ИЕРАРХИИ (&счет60), , , , ) КАК ХозрасчетныйОбороты | | СГРУППИРОВАТЬ ПО | ХозрасчетныйОбороты.Субконто1, | ХозрасчетныйОбороты.Субконто2, | ХозрасчетныйОбороты.Период) КАК ВложенныйЗапрос |ИТОГИ | СУММА(СуммаОборот) |ПО | Контрагенты, | Договор, | Месяц"; Запрос.УстановитьПараметр("КонПер", КонПер); Запрос.УстановитьПараметр("НачПер", НачПер); Запрос.УстановитьПараметр("счет60", счет60); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьКонтрагенты = Макет.ПолучитьОбласть("Контрагенты"); ОбластьДоговор = Макет.ПолучитьОбласть("Договор"); ОбластьМесяц = Макет.ПолучитьОбласть("Месяц"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаКонтрагенты = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаКонтрагенты.Следующий() Цикл ОбластьКонтрагенты.Параметры.Заполнить(ВыборкаКонтрагенты); ТабДок.Вывести(ОбластьКонтрагенты, ВыборкаКонтрагенты.Уровень()); ВыборкаДоговор = ВыборкаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДоговор.Следующий() Цикл ОбластьДоговор.Параметры.Заполнить(ВыборкаДоговор); ТабДок.Вывести(ОбластьДоговор, ВыборкаДоговор.Уровень()); ВыборкаМесяц = ВыборкаДоговор.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаМесяц.Следующий() Цикл ОбластьМесяц.Параметры.Заполнить(ВыборкаМесяц); ТабДок.Вывести(ОбластьМесяц, ВыборкаМесяц.Уровень()); КонецЦикла; КонецЦикла; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); Цикла самого нижнего уровня легко вывести в столбцы. А как получить значения по периодам на группировке контрагент до вывода договоров? |
|||
3
xenos
21.08.12
✎
05:47
|
з.ы. Это просто пример в реальности группировок несколько больше.
|
|||
4
xenos
21.08.12
✎
08:16
|
апапап
|
|||
5
hhhh
21.08.12
✎
08:27
|
(4) ВыборкаКонтрагенты = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,ммм,ммм);
использовать второй и третий параметр |
|||
6
xenos
21.08.12
✎
08:31
|
Т.е. из выборки контрагентов выбирать периоды? а они туду не с договорами будут попадать?
|
|||
7
xenos
21.08.12
✎
08:31
|
(5) А примера подобного нет?
|
|||
8
xenos
21.08.12
✎
08:41
|
апапапап
|
|||
9
butterbean
21.08.12
✎
08:53
|
делаешь выборку по контрагентам, внутри нее
ВыборкаПериоды = ВыборкаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Месяц"); перебираешь ее, заполняешь столбцы потом внутри договоров ВыборкаПериоды = ВыборкаДоговор.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Месяц"); и т.д. |
|||
10
xenos
21.08.12
✎
09:13
|
(9) Ясно спасибо попробую.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |