|   |   | 
| 
 | Сформировать отдельные таблицы по группировкам | ☑ | ||
|---|---|---|---|---|
| 0
    
        Cumpuciy 07.08.14✎ 14:16 | 
        Если результат запроса выгрузить в тз:
 Группировка1 ----Группировка2 -------строка1 -------строка2 Группировка1 ----Группировка2 -------строка3 -------строка4 и тд Никак не могу элегантно разбить результат на таблицы виды таблица1 : строка1 строка2 таблица2 строка3 строка4 и тд В какую сторону копать? Спасибо. | |||
| 1
    
        ДенисЧ 07.08.14✎ 14:17 | 
        Выгружай в дерево.
 А потом обходи его и нижние ветки выгружай в таблицы | |||
| 2
    
        Cumpuciy 07.08.14✎ 14:40 | 
        (1) а что делать с колонками?     | |||
| 3
    
        ДенисЧ 07.08.14✎ 14:42 | 
        (2) А что тебе надо с ними сделать?     | |||
| 4
    
        Cumpuciy 07.08.14✎ 14:42 | 
        (3) Если я выгружу результат так     | |||
| 5
    
        Cumpuciy 07.08.14✎ 14:44 | 
        (3) Дерево =  Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
 то я получаю на выходе дерево со строками Группировка1 ----Группировка2 Группировка1 ----Группировка2 без строк. | |||
| 6
    
        ДенисЧ 07.08.14✎ 14:45 | 
        (5) Я не знаю, что ты там и как выгружаешь, но у меня дерево выгружается прекрасно, со всей нужной информацией.     | |||
| 7
    
        NikVars 07.08.14✎ 14:46 | 
        (0) Ты криво объяснил.
 Таблица1 = Группировка1 или Таблица1 = Группировка2? | |||
| 8
    
        Cumpuciy 07.08.14✎ 14:52 | 
        (6) (7)
 текст построителя ВЫБРАТЬ * ИЗ Документ.РеализацияТоваровУслуг.Товары Итоги По Склад, СтавкаНдс в настройках построителя измерения строки - Склад, СтавкаНдс на выходе мне надо разбить результат на таблицы, в каждой таблице данные по группировке Склад, СтавкаНДС. т.е. если в результате 3 склада и 1 ставка, то 3 таблицы, если 3 склада и 2 ставки, то 6 таблиц. | |||
| 9
    
        NikVars 07.08.14✎ 14:58 | 
        (8) Сделай запрос вывода без итоговых группировок.
 Выгружай результат запроса в одну таблицу. Сворачивай там так, как ты хочешь. Далее воюй циклами. | |||
| 10
    
        an-korot 07.08.14✎ 15:05 | 
        я фигею %))) ты сам себе такую задачу придумал?     | |||
| 11
    
        Cumpuciy 07.08.14✎ 15:14 | 
        (9) так уже пытался сделать
 текст запроса построителя и поля группировок каждый раз могут быть разными, колонки тоже. все зависит от выбранного типа документа. с циклами я уже взорвал весь мозг, и подумал что может быть есть более элегантный и быстрый способ. | |||
| 12
    
        Cumpuciy 07.08.14✎ 16:04 | 
        Кажется получилось.
 Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Количество = СписокРазделителей.Количество(); НижнийУровеньГруппировки = СписокРазделителей[Количество-1]; //обойдем дерево ОбойтиУровеньДерева(Дерево.Строки,НижнийУровеньГруппировки); СписокТаблиц.Добавить(УИ); ну и собстна Процедура ОбойтиУровеньДерева(Строки,НижнийУровеньГруппировки) Для каждого Строка из Строки Цикл ОбработкаПрерыванияПользователя(); Если Строка.Родитель = Неопределено тогда Если УИ <> Неопределено тогда СписокТаблиц.Добавить(УИ); КонецЕсли; //тогда верхний уровень, пропускаем ОбойтиУровеньДерева(Строка.Строки,НижнийУровеньГруппировки); ИначеЕсли Строка.Родитель[НижнийУровеньГруппировки.Значение] = null тогда //тогда ешё один уровень, пропускаем //Если это нижний уровень группировки то создаем тз Если Строка[НижнийУровеньГруппировки.Значение] <> null тогда УИ = Новый УникальныйИдентификатор; СоздатьВременнуюТЗ(УИ); КонецЕсли; ОбойтиУровеньДерева(Строка.Строки,НижнийУровеньГруппировки); Иначе ДобавитьВоВременнуюТЗ(УИ,Строка); ОбойтиУровеньДерева(Строка.Строки,НижнийУровеньГруппировки); КонецЕсли; КонецЦикла; КонецПроцедуры | |||
| 13
    
        Cumpuciy 07.08.14✎ 16:05 | 
        (1) спасибо за наводку     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |