![]() |
|
v8 СКД как не выводить элементы ниже определенного уровня | ☑ | ||
---|---|---|---|---|
0
__Amator__
30.12.13
✎
17:58
|
вопрос подымался много раз, но ответа не нашел
надо иерархически выводить справочник до второго уровня (выводить и иерархию и элементы) вложенные уровни надо тоже в расчетах учитывать копался в ПриКомпоновкеРезультата ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); Для каждого текПарам Из ЭлементРезультата.ЗначенияПараметров Цикл // тут //Если СокрЛП(текПарам.Имя) = "П2" И СокрЛП(текПарам.Значение) = "977" Тогда // Сообщить(текПарам.Имя + " знач.: " + текПарам.Значение); //КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); но пока безуспешно... в условном оформлении можно установить Максимальная высота = 1 Текст = "" тогда с расчетами гуд, но это не то... хочется правильно сделать документ результат можно править после вывода, не это тоже не совсем правильно возможно можно как-то посмотреть расшифровку при выводе отчета? помогите разобраться |
|||
1
fisher
30.12.13
✎
19:34
|
Чтобы считало, но не выводило - знаю только один способ.
Фильтры по группировке. Попробуй поиграться фильтрами в группировках на системные поля "Уровень" и "УровеньВГруппировке" |
|||
2
__Amator__
30.12.13
✎
19:37
|
неа... так нельзя... пробовал
|
|||
3
__Amator__
30.12.13
✎
19:54
|
если добавить условный фильтр то получим
"Ошибка при вызове метода контекста (Вывести)" "Выражение не может быть вычислено "LevelInGroup"" |
|||
4
__Amator__
31.12.13
✎
11:41
|
сделал не совсем "красиво" но мне нужна универсальность...
в условном оформлении выставляю фиксированною высоту строки (можно и другой флаг использовать, например: цвет), при окончании вывода в табличный документ удаляю эти области УдалитьВысотаСтроки = 3; СворачиватьУровень = Настройки.ПараметрыДанных.Элементы.Найти("Уровень").Значение; Если ДокументРезультат.КоличествоУровнейГруппировокСтрок() > СворачиватьУровень Тогда счСтрок = 1; Для счСтрок = 1 По ДокументРезультат.ВысотаСтраницы Цикл ОбластьТабл = ДокументРезультат.Область("R"+счСтрок); Если ОбластьТабл.ВысотаСтроки = УдалитьВысотаСтроки Тогда ДокументРезультат.УдалитьОбласть(ОбластьТабл, ТипСмещенияТабличногоДокумента.ПоВертикали); счСтрок = счСтрок - 1; КонецЕсли; КонецЦикла; КонецЕсли; мож кому поможет... или предложите другой вариант, например, при выводе в табл.документ |
|||
5
fisher
03.01.14
✎
11:13
|
(3) Ну, тогда в запросе определять уровень. Сабжевый случай простой. Принадлежность первым двум уровням иерархии легко определить в запросе условием на пустого родителя и на пустого родителя родителя. И потом фильтр в группировке.
|
|||
6
__Amator__
29.01.14
✎
11:54
|
+ можно создать собственную иерархию, с помощью соединения таблиц в СКД
так будет самое то... надо сразу читать литературу... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |