Рассмотрим, как в СКД вывести ресурс только по нужным уровням иерархии.
Имеем отчет с вот такой структурой:
У нас есть ресурс «Количество», который вычисляется для всей иерархии:
Задача: необходимо выводить «Количество» только в верхнем уровне иерархии. Сейчас получаемый отчет выглядит так (красным выделены поля, которые должны быть пустыми):
Что нужно сделать?
Все очень просто, хоть и не совсем очевидно.
Заходим в условное оформление нужной нам группировки и добавляем новое условие:
В поле Оформление ставим флажок напротив «текст» и НИЧЕГО не пишем в текст. Таким образом мы говорим СКД, что надо выводить пустое поле. Выглядеть настройка будет вот так:
В условии используем системное поле «УровеньВГруппировке» и ставим «Не равно» «1». Таким образом мы говорим СКД, что наше оформление распространяется на все уровни группировки, кроме первого (соответственно, если вам надо выводить итоги только для первого и второго уровня, то вид сравнения ставите «Не в списке»,а в значение: «1,2»)
В оформляемых полях выбираем наш ресурс:
Все, больше ничего делать не нужно. Сохраняем наш отчет и проверяем результат:
Готово! Теперь вы знаете, как в СКД вывести ресурс только по нужным уровням иерархии
Костыль
Добрый день, Артем!
А как бы вы это реализовали?
как реализовать не знаю, наткнулся на Вашу статью в поисках ответа. Решение рабочее. Объективно это же «костыль», функция условного оформления используется не по назначению.
С одно стороны вы правы — эти данные лучше не выводить и не вычислять.
С другой стороны — если решение не влияет на производительность и дает нужный результат, то почему бы его не использовать?
Не так давно в 1С нельзя было вывести элементы в группе так, чтобы они «прижимались» вправо, и приходилось добавлять пустую декорацию на форму, чтобы занять место слева. Тоже ведь костыль, но это был единственный рабочий способ.
М.б. однажды разработчики СКД прочитают эту статью и дадут в ресурсах выбирать нужные уровни иерархии. До тех пор этот костыль можно считать архитектурно правильным решением 🙂
это решение годится для пользовательского интерфейса. в режиме разработчика у вас на 2 картинке правильный ответ есть.
убираете у этого ресурса «рассчитывать по» лишние уровни группировок и добавляете его еще раз для детальной группировки, выражение = 0
А если для разных вариантов отчета нужно по-разному? Выражение в ресурсах будет работать для всех вариантов отчета, а структура в них может отличаться
Более того, в примере у нас выводится иерархия номенклатуры и там может быть неограниченное число уровней. Если делать по рецепту Сержа, то нужно усложнять структуру отчета (делать уровень «Верхняя папки иерархии» и под ним уже остальную иерархию выводить).
Тем не менее, Серж описал важную возможность СКД, когда для разных группировок используются разные формулы. Многие не знают об этом функционале и хорошо, что эта информация тут тоже теперь есть 🙂
Хорошая идея, но у меня не получилось никакими настройками «рассчитывать по» убрать ресурс из детальных записей. Выражение работает только для группировок.
Но мне удалось убрать ресурс из детальных записей другим способом — я убрал автополе и заполнил уровень детальных записей сам — все, кроме искомого ресурса, и у меня получилось — ресурс только в группировках, а в деталях пусто.
Лучше делать это через выражения для ресурса
Статья супер. очень помогла.