Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Помогите пожалуйста с фильтром

00 голосов
2
Код фильтра довольно простой
Код
$arrFilter = array("!PROPERTY" => array("is_main" => array("VALUE" => "111")), "!PROPERTY" => array("is_private" => array("VALUE_XML_ID" => "private")));


У инфоблока есть два свойства, пользовательских: is_main и is_private. is_main может быть равен только 111 или пуст, is_private — список, у которого может быть только одного значение — private.

По идее, если оба условия не совпадают, ничего не должно выводиться. Но в таком случае выводиться один из элементов, все равно, видимо по принципу сортировки. Правда если добавить один элемент который не будет удовлетворять услолвиям (как и должно быть по фильтру) то будет выводиться он. Вобщем задача получается чтобы ничего не выводилось :) Погодите пожалуйста :)
спросил 25 Окт, 13 от UpueH (120 баллов)

2 Ответы

00 голосов
Начнем с того, что в php ключи массива с одинаковыми значениями "перетираются" по принципу - кто последний тот и папа.
Во-вторых списочные свойства нельзя фильтровать по XML_ID.
В-третьих http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php
ответил 23 Ноя, 13 от Miso (740 баллов)
00 голосов
Спасибо за наводку. Оказалось так:
Нужно было хранить свойства в отдельных тарблицах (настраивается в инфоблоке), иначе выборки PROPERTY_<PROPERTY_CODE>_VALUE и PROPERTY_<PROPERTY_CODE> не будут работать. Ну и тогда соответственно ключи в массиве совпадать не будут. Спасибо Максим. :)
ответил 04 Март, 14 от UpueH (120 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 08 Май, 14 от HuT (100 баллов)
0 голосов
2 ответов
0 голосов
6 ответов
0 голосов
7 ответов
спросил 11 Авг, 13 от Cathafine (160 баллов)
0 голосов
0 ответов
спросил 28 Июнь, 13 от TurpeH0k (120 баллов)