Не работает пользовательский фильтр

Доброе время суток участникам форума!

Есть такой вопрос. почему-то не работает пользовательский фильтр. Возможно, я не так что-то указываю -- но все вроде верно.

Логика такая:
- создан новый справочник "отрасли КВЭД" (стандартный справочник "Отрасли" решила не "ломать")
- реестр переделан на древовидный (добавлено поле парентдИД и т.п.)
- создано доп.поле "полный путь", в котором генерируется названия предыдущих "уровней" (без текущего уровня -- на скриншоте есть пример). поле табличное, то есть информация хранится в бд.
- в запросе контрагентов создан пользовательский подзапрос для этого поля

Задача -- создать динамические группы по отраслям.
Проблема в том, что по некоторым контрагентам может быть заполнена отрасль значением 1го уровня (либо 2, либо 3), пока не уточнится 4й уровень (всего максимум 4 уровня). Поэтому, если указана группа, допустим, 2го уровня -- то в нее должны входить и те контрагенты, где отрасль либо она, либо "ниже по иерархии".

Но -- при нажатии на кнопку "применить" -- оно не фильтрует! отображает все записи. хотя должно отображать только 2, так как в одном контрагенте отрасль вообще не выбрана, а в другом -- другой "верхний" уровень. Даже не так, судя по моей логике отображать должно, наверное, только одну запись (тест 1).

Играться с условиями типа "чтобы было не пустым", "путь содержит или сама отрасль равна" я буду потом. Мне бы сейчас разобраться, почему не работает именно этот фильтр.

Еще -- можно, конечно, сделать фильтр типа "отрасль КВЭД равна"+выбрать все возможные значения соответствующих уровней. но это не выход, так как отрасль может добавится, удалиться и т.п. Разве что как временное решение.

п.с. бинарные файлы -- 3.3.2.179, Террасофт СРМ, скул 2008р2. кеш чистился.

Заранее спасибо за помощь.

Нравится

4 комментария

Ольга, для диагностики необходим полный текст запроса, который идет в базу данных. Рекомендую попробовать посмотреть профайлером и прикинуть примерный запрос на выборку в Management Studio. так будет проще понять, что именно реализовать в конструкторе запросов.

Здравствуйте, Анна!
профайлер показал, что в бд никаких запросов не шло. но я нашла ошибку -- оказывается, пользовательский фильтр нужно предварительно "завернуть" в exists-фильтр. переделала -- все теперь нормально фильтрует.
вопрос решен. спасибо за помощь!

Сомнительно, чтобы не шло никаких запросов в БД: либо у Вас настроены фильтры в профайлере, либо у данного пользователя нет разрешения на профайлинг на уровне БД.

Однако я рада, что вопрос решен. Приятной работы!

"Alimova Anna" написал:Сомнительно, чтобы не шло никаких запросов в БД: либо у Вас настроены фильтры в профайлере, либо у данного пользователя нет разрешения на профайлинг на уровне БД.

Вы меня немного не так поняли. Я имела ввиду, что не накладывалось никаких фильтров, а шел "обычный" запрос, который выбирал все данные для реестра.

Показать все комментарии