Как лучше задать условие в фильтре НЕ РАВНО?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: подскажите, как в фильтре задать условие не равно ПУСТО (IS NOT NULL)
По вводным: суть вопроса как это сделать через форму фильтра в админке, в массиве это примерно так "!PROPERTY_493"=>FALSE

По вводным: задаю условие в фильтре в админке
688b3d5c9fefe906755517.jpeg

По вводным: на выходе получаю вот так

array(3) { [0]=> array(2) { ["?SECTION_ID"]=> int(112) ["INCLUDE_SUBSECTIONS"]=> string(1) "Y" } ["!PROPERTY_493"]=> string(5) "FALSE" ["LOGIC"]=> string(3) "AND" }

Сейчас ситуация такая: в фильтр попадает строка FALSE, он не понял, что это булево значение.
Может как-то по другому нужно?

Нужно понять: я могу конечно на выходе массив перебрать и правильно записать, но мб есть что-то проще?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Web-разработка Ответ

В Битриксе условие “свойство не пустое” в массиве фильтра обычно задаётся через отрицание false: '!PROPERTY_CODE' => false или '!PROPERTY_493' => false. Но в админской форме фильтра это не всегда можно выразить напрямую, потому что UI фильтра поддерживает не все варианты сложных условий.

В коде это выглядит так:

$filter = [
    'IBLOCK_ID' => 10,
    'ACTIVE' => 'Y',
    '!PROPERTY_493' => false,
];

$filter = [ 'IBLOCK_ID' => 10, 'ACTIVE' => 'Y', '!PROPERTY_493' => false, ];

Для “равно пусто” обычно используют:

$filter = [
    'PROPERTY_493' => false,
];

$filter = [ 'PROPERTY_493' => false, ];

Если речь именно про форму фильтра в админке, зависит от типа свойства и версии Битрикса. Иногда нужно выбрать оператор “не равно” и оставить значение пустым, но не все административные фильтры это корректно переводят в !PROPERTY. Для списков элементов часто проще сохранить нужный фильтр в URL или сделать кастомную административную страницу/доработку.

Проверьте ещё тип свойства:

  • строка;
  • число;
  • список;
  • привязка к элементу;
  • множественное свойство.

Для множественных свойств “не пусто” может работать иначе, потому что значения лежат в отдельной таблице свойств. Если фильтр в админке не даёт нужного результата, проверьте тот же фильтр через CIBlockElement::GetList в тестовом скрипте. Если в коде работает, значит ограничение именно в UI админского фильтра.

Итог: в PHP используйте '!PROPERTY_493' => false. Через стандартную форму админки это может быть недоступно или зависеть от конкретного фильтра, тогда нужен кастомный фильтр или сохранённый URL.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно