СКД: ресурсы и отбор #531921


#0 by detec
Приветствую! Кто-то практикует в отчётах на СКД добавление в поля отбора полей-ресурсов (к примеру, сумма продаж за период) и фильтрацию по ним? К примеру, есть отчёт о продажах на СКД, и мы хотим получить список контрагентов в этом отчёте, у которых сумма продаж за период, больше, скажем 10 000 руб. Казалось бы, достаточно простое действие и очевидное действие, но если активно использовать виртуальные таблицы регистров накопления, и в отчёте несколько таких таблиц связаны между собой, то при фильтрации по ресурсу видно, что выводимый результат неверный. На вкладке связей наборов данных последние между собой связаны левым соединением (флажок "обязательная связь" везде отсутствует). Фильтрация производится по вспомогательному набору. Кто-то сталкивался с подобным в аналогичных условиях?
#1 by detec
Помучавшись, пришёл к выводу, что отбирать можно только по полям основного набора, который не участвует в ресурсах. Очень жаль ((.
#2 by izekia
условие на СУММА(<ресурс>) не работает?
#3 by PVV65
По моему это не так. Надо смотреть конкретный отчет. Если поля находятся среди доступных полей отбора - значит по ним можно отбирать. Если нет - ошибка в наборах данных.
#4 by detec
Рассчитать его-то можно, на вкладке фильтрации. Но вот задать как условие - нет. Я даже сделал так. В основной набор добавил фейковое поле со значение "ИСТИНА". В ресурсах рассчитал всё, как требуется. Вывести-то я могу, а фильтрация происходит по значению фейкового поля, а не по формуле ((.
#5 by detec
на вкладке фильтрации => на вкладке "Ресурсы".
#6 by izekia
можешь сделать упрощенный пример? у меня все работает
#7 by detec
Попробовал в более простом отчёте. Отгрузки + возвраты - всё это сведено в набор-объединение, с вычисляемым полем ЧистаяОтгрузка, Отгрузка - Возврат. Выставляю фильтр Отгрузка, Чистая Отгрузка > 10 000. Выдаёт 29 строк. На первый взгляд - всё работает. Отключаем отбор по суммам, выставляем сортировку отчёта по возрастанию этих же показателей. Выводит всего 164 строки, с 58-й начинают идти суммы > 10 000. Но 164 - 57 = 107, никак не 29. Т.е. движлк СКД тупо не вывел значительное кол-во полей, причём данный момент никак нельзя перехватить программными средствами, кроме как тупо перепроверять всё глазами. Возможно, простейшие отчёты типа выборки из виртуальной таблицы оборотов 1-го регистра накопления работают, как положено. Но пользователям такие простейшие, академические отчёты в 95 % случаев не нужны. Такие можно точно так же элементарно сделать конструктором отчёта, без СКД.
#8 by detec
З.Ы. Конфигурация самописная, отчётами занимаюсь много, так что проблема не в кривых руках.
#9 by PVV65
Если не трудно, выложи описанный отчет или сбрось на мой ящик.
#10 by izekia
через временную таблицу попробуй сделать, где фильтр будет работать на результирующей таблице я просто не смог смоделировать примера, где бы у меня фильтр не работал
#11 by Vetal_978
Кстати, подскажите кто сталкивался с такой проблемой (а может и не проблемой): В СКД запрос к виртуальной таблице остатков, у таблицы два ресурса. Так вот иногда хочу чтобы не попадали те записи, один из ресурсов которых равен нулю, т.е. в запросе добавляю условие ГДЕ На значение параметра &РазрешитьВыводВсехОстатков СКД не обращает внимания. Почему?
#12 by izekia
а не обращает внимания каким образом?
#14 by detec
Может быть, что в макете компоновки условие вырезается. Нужно выполнить отладку через Универсальную консоль отчётов и посмотреть на текст запроса. Через временную таблицу, вероятно, можно сделать. Но я хочу по максимуму использовать механизм СКД, а не ваять тяжеленные запросы там, где, по идее, должно корреткно работать соединение наборов.
#15 by PVV65
Такой отчет можно разбирать только на реальной базе. Извини.
#16 by detec
В я предупредил, что конфа самописная. Однако, учитывая отсутствие кода в отчёте, думаю, не составит труда найти в типовой конфе под 8.2 похожий по структуре отчёт и затестить аналог .
#17 by Vetal_978
не обращает внимания как если б условие было таким: условие целиком не вырезается, МойРегистрНакопления.СуммаОстаток > 0 - срабатывает
#18 by Vetal_978
а вот сейчас уже работает... видимо это я где-то накосячил...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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