Как в Битрикс выполнить фильтр с отрицанием по множественному свойству?

Чтобы выполнить фильтр с отрицанием по множественному свойству в 1C-Bitrix, вам потребуется использовать объект класса CIBlockElement и его метод GetList.

Для начала, необходимо определить параметры фильтрации. В вашем случае, вы хотите найти элементы, у которых множественное свойство не содержит определенное значение. Предположим, у вас есть инфоблок с кодом IBLOCK_CODE и множественное свойство PROPERTY_CODE.

Код, выполняющий поиск, будет выглядеть следующим образом:

$filter = array(
    'IBLOCK_CODE' => 'IBLOCK_CODE',
    '!PROPERTY_PROPERTY_CODE_VALUE' => 'VALUE',
);

$select = array(
    'ID',
    'NAME',
    'PROPERTY_PROPERTY_CODE',
);

$res = CIBlockElement::GetList(array(), $filter, false, false, $select);
while ($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
    // дальнейшая обработка найденных элементов
}

В данном примере мы используем массив $filter для определения параметров фильтрации. В строке '!PROPERTY_PROPERTY_CODE_VALUE' указываем, что мы хотим найти элементы, у которых свойство PROPERTY_CODE не содержит значение VALUE.

Затем, в массиве $select указываем, какие поля элемента необходимо выбрать.

После этого, вызываем метод GetList класса CIBlockElement, передавая параметры фильтрации, а также массив $select для выбора полей элемента. Полученный объект результата $res перебираем с помощью цикла while, и для каждого найденного элемента получаем его поля при помощи метода GetFields.

Дальнейшую обработку найденных элементов вы можете выполнять по вашему усмотрению.

Вот и все, теперь вы знаете, как выполнить фильтр с отрицанием по множественному свойству в 1C-Bitrix при помощи объекта CIBlockElement и его метода GetList.