Подмена Итогов в СКД #583613


#0 by емое
Есть отчет с группировкой по справочнику элементов отчета с иерархией. В отчете есть 2 показателя: сумма и сумма нарастающим итогом. Сейчас отчет выглядит так: Группировка         Сумма         Сумма нарастающий итог гр1. ур. 1          1000          1000 гр11. ур. 2        1000  эл111. ур. 3      -500 гр2. ур. 1           70           1070 Нужно сделать в отчете одну колонку, где в зависимости от реквизита группы первого уровня будет выводить значение либо первой либо второй колонки. Сложность в том, что сумма должна измениться только по группе, по которой установлен соответствующий флаг, вся дочерняя структура не меняется, т.е. получается если для группы "гр3. ур. 1" установлен флаг вывода нарст. итога сумма должна быть 1060, и она не равна сумме дочерних элементов -10. Получится должно так: Что нужно ковырять? Макет? Настройки схемы? Или где то в коде вывода можно подменить сумму итога?
#1 by Buster007
можно попробовать в ресурсах поставить то, что тебе надо. Для ресурса "сумма" задать для групп верхнего уровня твою сумму с нарастающим итогом, а для прочих элементов задать обычную сумму )
#2 by емое
Добавил ресурс с выражением "Сумма(Выбор Когда Статья.ВыводитьНИ Тогда СуммаНИ Иначе Сумма Конец)" не срабатывает, проблема в том, что эти все выражения рассчитываются на уровне элементов, а потом суммированием собираются в иерархию и получаются суммы по группам. Вот как заменить сумму по группе не меняя сумму вложенных элементов, вот в чем вопрос.
#3 by Amiralnar
Классика. "Рассчитывать итоги по:"
#4 by емое
Можно в двух словах, как использовать  "Рассчитывать итоги по:"?
#5 by Amiralnar
Вкладка "Ресурсы"
#6 by емое
Насчет двух слов зачет, можно развернуть ответ по поводу "Рассчитывать итоги по:"?
#7 by Amiralnar
В конструкторе СКД есть вкладка, на которой определяются ресурсы. Там  есть колонка, в которой можно сказать, по каким группировкам рассчитывать данный ресурс.
#8 by емое
И как это поможет в моей ситуации?
#9 by PVV65
Может поможет "пользовательское поле - выражение" из настроек. Там как раз можно создать новую колонку с произвольным расчетом значения как для группировок так и для детальных записей.
#10 by емое
не помогло. Написал для детальных записей "Сумма", для итоговых: Для всех строк где на головном элементе  Статья.ВыводитьНИ = Истина вывелась СуммаНИ.
#11 by емое
все что удалось добиться при помощи "Рассчитывать итоги по:" создал два итога - просто сумма для детальных записей и сумма нарастающим итогом для иерархии. Но это не решение, потому что 1. Это две колонки, а мне нужна одна, как их собрать в одну не понятно 2. В моем примере для гр31. ур. 2 должно быть -10, т.е. просто сумма а не нарастающим итогом.
#12 by Amiralnar
Теперь обрабатывай вывод отчета и компонуй  данные колонок в одну.
#13 by емое
Курил хрусталеву и другие источники... везде пишут "Обратим внимание, что после определения границ области для макета система автоматически заполняет параметры макета и соответствующие выражения". У меня так не происходит. Задаю имена группировкам, добавляю макет группировки (или ресурса не важно) указываю нужную группировку (или пересечение для ресурсов) выделяю область, и ... ничего не происходит. Если в поле текст написать что либо и вывести отчет, область в отчет попадает, только не понятно как туда вписать выражение?
#14 by PVV65
Что то у тебя не так. У меня все получается. Выбор    Когда Статья.ВыводитьНИ И Уровень = 1 Конец
#15 by PVV65
Сильно усложняешь. Твоя задача проще. Решается настройками.
#16 by PVV65
Только что нарисовал пример - все работает.
#17 by емое
сделал вычисляемое поле с выражением: Выбор    Когда Статья.ВыводитьНИ И Статья.Уровень = 1 Конец Кстати, может надо было использовать выражение представления? Ругается: {ВнешнийОтчет.УправленческаяОтчетность.МодульОбъекта}: Ошибка при вызове метода контекста (Вывести)    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); по причине: Ошибка вывода результата по причине: Ошибка при выводе результата по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка "Статья.Уровень"
#18 by PVV65
"Уровень" - это системное поле СКД, а не метод справочника.
#19 by PVV65
+ В конфигураторе надо писать "СистемныеПоля.Уровень".
#20 by емое
не пойму как использовать СистемныеПоля.Уровень в кейсе: Выбор    Когда Статья.ВыводитьНИ И Статья.Уровень = 1 Конец
#21 by PVV65
Выбор    Когда Статья.ВыводитьНИ И СистемныеПоля.Уровень = 1 Конец
#22 by емое
так пробовал, пишет Поле не найдено СистемныеПоля.Уровень я этот кейс пытаюсь вставить как выражение вычисляемого поля, может не туда надо?
#23 by PVV65
В настройка - Пользовательские поля.
#24 by PVV65
+ еще в написал.
#25 by емое
О! Вот оно чо! Спасибо большое, на уровне пользовательских полей в настройках работает. Алилуя.
#26 by емое
Сработало как оказалось не совсем как хотелось :-) В процессах экспериментов я установил флаг ВыводитьНИ для элемента нижнего уровня, и таким образом сработала эта галка а не та что стоит на группе первого уровня. Чтобы это обнаружить ушел последний час... Т.е. получается как ни крути СКД все выражения вычисляет для элементов, а затем уже скручиваются в иерархию?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С