Как отфильтровать по свойству типа список в iblock.Element.list?

Для фильтрации по свойству типа "список" в Битриксе 1С можно использовать следующий подход.

Первым шагом необходимо получить код свойства типа "список". Для этого можно открыть настройки инфоблока, затем перейти на вкладку "Свойства". Найти нужное свойство и скопировать его код.

Затем, при формировании фильтра для выборки элементов, нужно добавить соответствующую конструкцию. В качестве фильтра в функции CIBlockElement::GetList необходимо использовать "PROPERTY_" + "код свойства". Для фильтрации по значению свойства типа "список" можно использовать следующие операторы:

- PROPERTY_CODE - фильтр по конкретному значению свойства.
- PROPERTY_CODE_VALUE - фильтр по фразе в значениях свойства.
- PROPERTY_CODE_ENUM - фильтр по ID значения свойства.

Пример:

$arFilter = array(
  'IBLOCK_ID' => 1, // ID инфоблока
  'ACTIVE' => 'Y', // Учитываем только активные элементы
  'PROPERTY_COLOR' => 'red', // Фильтр по конкретному значению свойства
);
$res = CIBlockElement::GetList(array(), $arFilter, false, false);
while ($arItem = $res->Fetch()) {
  // ...
}

В данном примере фильтр PROPERTY_COLOR указывает на свойство "цвет" (где "COLOR" - код свойства), и выбираются только элементы, у которых значение этого свойства равно "red".

Также можно использовать другие операторы фильтрации. Например, для фильтрации по ID значения свойства:

$arFilter = array(
  'IBLOCK_ID' => 1,
  'ACTIVE' => 'Y',
  'PROPERTY_COLOR_ENUM' => 3, // Фильтр по ID значения свойства
);
$res = CIBlockElement::GetList(array(), $arFilter, false, false);
while ($arItem = $res->Fetch()) {
  // ...
}

В этом примере фильтр PROPERTY_COLOR_ENUM указывает на свойство "цвет" и выбираются только элементы, у которых значение этого свойства имеет ID равный 3.

Если нужно осуществить фильтрацию по фразе в значениях свойства типа "список", то можно использовать следующий фильтр:

$arFilter = array(
  'IBLOCK_ID' => 1,
  'ACTIVE' => 'Y',
  '%PROPERTY_COLOR_VALUE' => 'red', // Фильтр по фразе в значениях свойства
);
$res = CIBlockElement::GetList(array(), $arFilter, false, false);
while ($arItem = $res->Fetch()) {
  // ...
}

В данном примере фильтр %PROPERTY_COLOR_VALUE указывает на свойство "цвет" и выбираются только элементы, у которых значение этого свойства содержит фразу "red".

Таким образом, используя соответствующую конструкцию и операторы фильтрации, можно легко отфильтровать элементы инфоблока по свойству типа "список" в Битриксе 1С.