Рассмотрим, как в СКД вывести ресурс только по нужным уровням иерархии.
Имеем отчет с вот такой структурой:
![Структура СКД](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_1.jpg)
У нас есть ресурс «Количество», который вычисляется для всей иерархии:
![Ресурс СКД](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_2.jpg)
Задача: необходимо выводить «Количество» только в верхнем уровне иерархии. Сейчас получаемый отчет выглядит так (красным выделены поля, которые должны быть пустыми):
![Как в СКД вывести ресурс только по нужным уровням иерархии](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_3-1.jpg)
Что нужно сделать?
Все очень просто, хоть и не совсем очевидно.
Заходим в условное оформление нужной нам группировки и добавляем новое условие:
![Новое условное оформление](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_4-1.jpg)
В поле Оформление ставим флажок напротив «текст» и НИЧЕГО не пишем в текст. Таким образом мы говорим СКД, что надо выводить пустое поле. Выглядеть настройка будет вот так:
![Пустой текст в оформлении](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_5-1.jpg)
В условии используем системное поле «УровеньВГруппировке» и ставим «Не равно» «1». Таким образом мы говорим СКД, что наше оформление распространяется на все уровни группировки, кроме первого (соответственно, если вам надо выводить итоги только для первого и второго уровня, то вид сравнения ставите «Не в списке»,а в значение: «1,2»)
![Условие СКД](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_6-1.jpg)
В оформляемых полях выбираем наш ресурс:
![Оформляемые поля СКД](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_7-1.jpg)
Все, больше ничего делать не нужно. Сохраняем наш отчет и проверяем результат:
![Результат СКД](http://1cgreen.ru/wp-content/uploads/2018/09/Screenshot_8.jpg)
Готово! Теперь вы знаете, как в СКД вывести ресурс только по нужным уровням иерархии
Костыль
Добрый день, Артем!
А как бы вы это реализовали?
как реализовать не знаю, наткнулся на Вашу статью в поисках ответа. Решение рабочее. Объективно это же «костыль», функция условного оформления используется не по назначению.
С одно стороны вы правы — эти данные лучше не выводить и не вычислять.
С другой стороны — если решение не влияет на производительность и дает нужный результат, то почему бы его не использовать?
Не так давно в 1С нельзя было вывести элементы в группе так, чтобы они «прижимались» вправо, и приходилось добавлять пустую декорацию на форму, чтобы занять место слева. Тоже ведь костыль, но это был единственный рабочий способ.
М.б. однажды разработчики СКД прочитают эту статью и дадут в ресурсах выбирать нужные уровни иерархии. До тех пор этот костыль можно считать архитектурно правильным решением 🙂
это решение годится для пользовательского интерфейса. в режиме разработчика у вас на 2 картинке правильный ответ есть.
убираете у этого ресурса «рассчитывать по» лишние уровни группировок и добавляете его еще раз для детальной группировки, выражение = 0
А если для разных вариантов отчета нужно по-разному? Выражение в ресурсах будет работать для всех вариантов отчета, а структура в них может отличаться
Более того, в примере у нас выводится иерархия номенклатуры и там может быть неограниченное число уровней. Если делать по рецепту Сержа, то нужно усложнять структуру отчета (делать уровень «Верхняя папки иерархии» и под ним уже остальную иерархию выводить).
Тем не менее, Серж описал важную возможность СКД, когда для разных группировок используются разные формулы. Многие не знают об этом функционале и хорошо, что эта информация тут тоже теперь есть 🙂
Хорошая идея, но у меня не получилось никакими настройками «рассчитывать по» убрать ресурс из детальных записей. Выражение работает только для группировок.
Но мне удалось убрать ресурс из детальных записей другим способом — я убрал автополе и заполнил уровень детальных записей сам — все, кроме искомого ресурса, и у меня получилось — ресурс только в группировках, а в деталях пусто.
Лучше делать это через выражения для ресурса
Статья супер. очень помогла.