Отчет в СКД: Вычисление ресурсов при отборе по группировкам? #779886


#0 by BigTaur
Добрый день, что-то совсем запутался. В СКД простейший запрос. ВЫБРАТЬ     0,     45, Результат: Поле1    Поле2    Поле3    Поле4 Поле5             Поле6             ИВАНОВ    225    70    Да БС1    225    25    Да Док1    225    25    Да БС2        45    Нет Док2        45    Нет Итого    225        Да Ставлю отбор на группировку  Поле5 Поле4 = ИСТИНА Результат: Поле1    Поле2    Поле3    Поле4 Поле5             Поле6             ИВАНОВ    225    70    Да Отбор: Поле4 Равно "Да"             БС1    225    25    Да Док1    225    25    Да Итого    225        Да Почему он все равно в группировке по Поле1 все равно суммирует все строки - 70? Хотя по идее должно быть 25? И как этого добиться. Пробовал ресурс считать с условием ВЫБОР КОГДА Поле4 = ИСТИНА ТОГДА СУММА(Поле3) ИНАЧЕ 0 КОНЕЦ Поле1    Поле2    Поле3    Поле4 Поле5             Поле6             ИВАНОВ    225    70    Да БС1    225    25    Да Док1    225    25    Да БС2            Нет Док2            Нет Итого    225        Да Все равно суммирует все и получается 70. Чувствую что решение на поверхности, а найти не могу, не по моей логике. А нужно, через отбор сделать, т.к. пользователь должен иметь возможность вкл./выкл.
#1 by vicof
"Хотя по идее должно быть 25" По чьей идее?
#2 by Jokero
Ставлю отбор на группировку  Поле5 Так ставь отбор на весь отчет, раз хочешь видеть результат группировки во всем отчете, а не в отдельной группировке.
#3 by BigTaur
По моей идее конечно, которая не всегда совпадает с идеями 1С
#4 by BigTaur
Не подходит на весь отчет, пример не до конца раскрывал суть задачи, попробую объяснить подробней, усложнил запрос:     0,     45,     "ИВАНОВ",     0,     45,     15,     0,     0,     65,     "ИВАНОВ",     0,     33, Вот его результат: Поле1    Поле2    Поле3    Поле4 Поле5             Поле6             ИВАНОВ    240    213    Да БС1    225    25    Да Док1    225    25    Да БС2    15    90    Да Док2        45    Нет Док3        45    Нет Док4    15        Да БС3        98    Нет Док1        65    Нет Док2        33    Нет Итого    240    213    Да Наложения отбора на весь отчет уберет все строчки с Нет, т.е. строки БС2-ДоК2, БС2-Док4 посчитаны не будут. А мне нужно, чтобы отсекались только группировки где нет, т.е. БС 3 быть не должно, а БС1 и БС2 должны остаться. Но чтобы для Иванова посчиталась сумма Поля3 только по БС1 и БС2 (90+25), а не по всему отчету.
#5 by aleks_default
Отбор все равно работает для исходной таблицы, до того как СКД навешивает на нее структуру группировок. Поэтому тебе нужно максимум вычислять в запросе
#6 by BigTaur
Не понятно, причем тут максимум? Нужно чтобы Поле 4 по строкам Док не "смотрело". А считало по группировкам БС с учетом отбора, если у БС поле4=да, то прибавляем если нет то не учитываем.
#7 by BigTaur
Подскажите если кто знает, что отбор по группировке применяется после того как уже ресурсы посчитаны что-ли? Почему ресурсы рассчитываются не смотря на этот отбор? Пробовал через ВЫЧИСЛИТЬВЫРАЖЕНИЕ (EVALEXPRESSION) Описание ИТС: Функция предназначена для вычисления выражения в контексте некоторой группировки... Функция учитывает отбор группировок, но не учитывает иерархические отборы... А фиг там,есть отбор нет отбора, как считало нижний уровень, так и считает... Может я, что не так делаю???
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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