![]() |
![]() |
![]() |
|
v8: Группировки запроса ( Запрос.Выполнить().Выгрузить() ) | ☑ | ||
---|---|---|---|---|
0
nop
10.07.09
✎
13:39
|
в каких случаях результат будет ДеревоЗначений ?
|
|||
1
mikecool
10.07.09
✎
13:40
|
параметр - сиерархией
|
|||
2
and2
10.07.09
✎
13:42
|
РезультатЗапроса (QueryResult)
Выгрузить (Unload) Синтаксис: Выгрузить(<Тип обхода>) Параметры: <Тип обхода> (необязательный) Тип: ОбходРезультатаЗапроса. Задает тип обхода записей в получаемой выборке. Значение по умолчанию: Прямой Возвращаемое значение: Тип: ТаблицаЗначений, ДеревоЗначений. Если тип обхода задан Прямой, результат выгружается в таблицу значений, в противном случае в дерево значений. Описание: Создает таблицу значений (или дерево значений) и копирует в нее все записи набора. Пример: ТаблицаРезультатов = РезультатЗапроса.Выгрузить(); |
|||
3
nop
10.07.09
✎
13:42
|
(1) есть запрос
Выбрать Валюта, Контрагент, Документ ИЗ Регистр.Остатки() Можно получить дерево с узлами Валюта ? |
|||
4
mikecool
10.07.09
✎
13:43
|
(3) итоги надо по валюте
|
|||
5
73
10.07.09
✎
13:44
|
Итоги по Валюта
+ Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам) |
|||
6
nop
10.07.09
✎
13:46
|
итоги это
ИТОГ СУММА(Остаток) ПО Валюта ? |
|||
7
zbv
10.07.09
✎
13:47
|
(6) перекурил чтоли? :)
|
|||
8
73
10.07.09
✎
13:47
|
Что хочешь видеть в других колонках?
Итоги можно и без ничего. |
|||
9
nop
10.07.09
✎
13:50
|
хочу вместо этого
Для каждого стр из РезультатЗапроса Цикл Если предВалюта <> стр.Валюта Тогда //создаем новый документ, заполняем шапку КонецЕсли; // заполняем ТЧ документа КонецЦикла; попробовать с деревом значений |
|||
10
Живой Ископаемый
10.07.09
✎
13:55
|
У тебя должен быть рабочий интсрумент - консоль запросов с возможностью просмотра результата как в ТЗ так и в дереве.. Заимей себе такую консоль и отлаживай в ней запросы...
|
|||
11
73
10.07.09
✎
13:55
|
Судя по (3) просто добавь (5).
|
|||
12
Пеппи
10.07.09
✎
13:57
|
на заметку.
|
|||
13
nop
10.07.09
✎
15:38
|
а можно группировки (итоги) сделать вложенными ?
|
|||
14
nop
10.07.09
✎
15:38
|
Запрос = Новый Запрос;
Запрос.Текст = " |ВЫБРАТЬ | ЗаявкиКОплатеОстатки.Заявка КАК Заявка, | ЗаявкиКОплатеОстатки.Заявка КАК Валюта, | ЗаявкиКОплатеОстатки.Контрагент КАК Контрагент, | ЗаявкиКОплатеОстатки.Договор КАК ПоДоговору, | ЗаявкиКОплатеОстатки.ДокументВзаиморасчетов КАК ПоСчету, | ЗаявкиКОплатеОстатки.ВидУчета КАК ВидУчета, | ЗаявкиКОплатеОстатки.СтатьяБюджета КАК Статья, | ЗаявкиКОплатеОстатки.ОстатокКОплатеОстаток КАК ОстатокКОплате, | ЗаявкаНаОплатуПлатежи.Сумма КАК ЗаявленнаяСумма, | ЗаявкиКОплатеОстатки.Заявка.ВидДенежныхСредств КАК ВидДенежныхСредств |ИЗ | РегистрНакопления.ЗаявкиКОплате.Остатки( | &НаДату, | Организация = &Организация | ) КАК ЗаявкиКОплатеОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаОплату.Платежи КАК ЗаявкаНаОплатуПлатежи | ПО ЗаявкиКОплатеОстатки.Заявка = ЗаявкаНаОплатуПлатежи.Ссылка | И ЗаявкиКОплатеОстатки.Договор = ЗаявкаНаОплатуПлатежи.ПоДоговору | И ЗаявкиКОплатеОстатки.ДокументВзаиморасчетов = ЗаявкаНаОплатуПлатежи.ПоСчету | И ЗаявкиКОплатеОстатки.СтатьяБюджета = ЗаявкаНаОплатуПлатежи.Статья |ИТОГИ ПО ВидДенежныхСредств, Валюта |"; Запрос.УстановитьПараметр("НаДату", Дата); //Дата Запрос.УстановитьПараметр("Организация", Организация); //Организация |
|||
15
nop
10.07.09
✎
15:40
|
и чего то все поля выборки = NULL кроме поля ВидДенежныхСредств :(
|
|||
16
nop
10.07.09
✎
15:43
|
ап
|
|||
17
Defender aka LINN
10.07.09
✎
15:50
|
(15) Дык ты ж сам, лично, итоги написал. Пока на уровень детальных записей не спустишься - будет NULL.
|
|||
18
nop
10.07.09
✎
15:51
|
(17) а как спуститься ?
|
|||
19
Vitello
10.07.09
✎
15:52
|
(18)Из предыдущей выборки, открывай следующую.
В общем как с деревом. |
|||
20
nop
10.07.09
✎
15:54
|
(19) можно пример кода ?
|
|||
21
Vitello
10.07.09
✎
15:55
|
Выборка_Склад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Склад",);
Пока Выборка_Склад.Следующий() Цикл Выборка_Номенклатура = Выборка_Склад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура",); Пока Выборка_Номенклатура.Следующий() Цикл |
|||
22
Defender aka LINN
10.07.09
✎
15:57
|
ВыборкаУровень1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаУровень1.Следующий() Цикл ВыборкаУровень2 = ВыборкаУровень1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаУровень2.Следующий() Цикл ВыборкаДетали = ВыборкаУровень2.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл КонецЦикла; КонецЦикла; КонецЦикла; |
|||
23
nop
10.07.09
✎
16:07
|
спасибо! :)
|
|||
24
BOZKURT
10.07.09
✎
16:07
|
(0)
ТабличноеПоле1 = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); //ТП на форме, тип данных "ДеревоЗначений" |
|||
25
nop
10.07.09
✎
16:09
|
(24) тоже полезно! спасибо
|
|||
26
73
10.07.09
✎
16:16
|
Если хошь деревом:
Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Для Каждого СтрУровень1 Из Дерево.Строки Цикл Для Каждого СтрУровень2 Из СтрУровень1.Строки Цикл Для Каждого СтрДетали Из СтрУровень2.Строки Цикл КонецЦикла; КонецЦикла; КонецЦикла; ЗЫ.Можно еще рекурсию прикрутить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |