Имя: Пароль:
1C
1С v8
морока с группировками, 8.2
0 Aerosol
 
18.07.14
12:42
8.2, УПП, обычные формы.

Короче, пишу отчет, что-то типа прайс листа. Отчет написан. Вот какая проблема:

есть запрос на 50 экранов, который собирает все данные. Далее, делается выборка(обход по группировкам) и в цикле по выборке выводится прайс по иерархии, выводятся сначала иерархичные уровни, а дальше, если уровень нижний, пошли позиции. основан прайс на номенклатуре, соответственно.

проблема такая: если пустая группировка(либо пустая группа номенклатуры либо по отборам позиции из этой группы не попадают, короче, она пустая), то она все равно выводится в отчет. а надо, чтобы не выводилась.

ломаю голову :(

запрос в тз не выгрузить, без группировок не вариант, а если по обходу выгружать - получается дерево значений(думал выгрузить в тз, искать группировку в ней и смотреть следующую позицию - не вышло).

подскажите ?
надеюсь, корректно выложил мысль. могу код покидать кусками ..
1 Aerosol
 
18.07.14
12:50
сформилирую проще: как при выводе в макет результата обхода запроса с типом обхода ПоГруппировкам не выводить пустые уровни группировки? или же как их пресечь на корню ?
2 Рэйв
 
18.07.14
12:54
исключи условием на уровне запроса. Иначе никак.
Если попало в результат запроса, то придется с ней жить.
3 ChiginAV
 
18.07.14
12:56
(0) Чем дерево не устраивает?
4 Aerosol
 
18.07.14
12:57
(2) честно - плохо представляю, каким условием можно это отсечь. подскажи ?
5 Aerosol
 
18.07.14
12:58
(3) чем ? м. честно ? не умею работать с деревом значений. не нашел ни в синтаксис-поиощнике ничего, ни живых примеров. как разобрать дерево, как получить строку, как посмотреть следующую строку в дереве итд.
6 Михаил Козлов
 
18.07.14
12:58
2+ Можно получить текст запроса из построителя (перед формированием табличного документа) и в консоли с ним поиграться.
7 Рэйв
 
18.07.14
12:59
(4)Я ж твои 50 экранов не видел:-)
Ну там сумма<>0 или еще чего
8 Aerosol
 
18.07.14
13:01
(7) :) лол. Не, сюда заливать не буду.
пустая группировка = группа в номенклатуре. она просто выводится без позиций, которые в ней могут быть по другим условиям отчета.
9 ChiginAV
 
18.07.14
13:01
(5)Дерево = Запрос.Выполнить.Выгрузить(ОбходРЗПоГруппировкамСИерархией);

Для Каждого СтрокаУр1 из Дерево Цикл
СтрокиУр2 = СтрокаУр1.Строки;
Если СтрокиУр2.Количество() = 0 тогда
  Продолжить;
КонецЕсли
Для Каждого СтрокаУр2 из СтрокиУр2 Цикл
  //
КонецЦикла;
КонецЦикла;
10 Aerosol
 
18.07.14
13:03
(9) Огонь ! То, что надо !
Спасибо большое ! Это должно спасти !!!
11 Aerosol
 
18.07.14
13:37
(9) Однако, не сработало :( С Итератором начальным беда. Ругается на СТрокаУр1 .. Странно..
12 Aerosol
 
18.07.14
13:39
(9) "{ВнешняяОбработка.ПечатьПрайсЛиста.МодульОбъекта(1062)}: Итератор для значения не определен
        Для Каждого СтрокаУр1 из ТЗ Цикл"
13 Aerosol
 
18.07.14
13:41
Тьфу. Для каждого Строка из ТЗ.Строки.

Так надо. Всё.