Как в Битрикс получить все элементы инфоблока по значению свойства меньшего установленного значения?

Для получения всех элементов инфоблока по значению свойства меньше установленного значения в Битриксе есть несколько способов. Рассмотрим наиболее распространенные из них.

1. Использование класса CIBlockElement:

$iblockId = 1; // ID инфоблока
$propertyCode = 'PROPERTY_CODE'; // Код свойства
$propertyValue = 10; // Значение свойства

$arResult = [];

$res = CIBlockElement::GetList(
    [],
    [
        'IBLOCK_ID' => $iblockId,
        'ACTIVE' => 'Y',
        '<PROPERTY_'.$propertyCode => $propertyValue,
    ],
    false,
    false,
    ['ID', 'NAME', 'PROPERTY_'.$propertyCode]
);

while ($element = $res->GetNext()) {
    $arResult[] = $element;
}

// Результат будет содержать все элементы инфоблока, у которых значение свойства PROPERTY_CODE меньше $propertyValue
print_r($arResult);

2. Использование класса BitrixMainEntityQuery:

use BitrixMainEntityQuery;
use BitrixMainORMQueryFilterConditionTree;
use BitrixMainORMQueryFilterCondition;
use BitrixMainEntityExpressionField;

$iblockId = 1; // ID инфоблока
$propertyCode = 'PROPERTY_CODE'; // Код свойства
$propertyValue = 10; // Значение свойства

$query = new Query(IBlockElement::getEntity());
$query->setSelect(['ID', 'NAME', 'PROPERTY_'.$propertyCode]);
$query->setFilter(
    (new ConditionTree())
        ->where('IBLOCK_ID', $iblockId)
        ->where('ACTIVE', 'Y')
        ->where(new Condition('<PROPERTY_'.$propertyCode, $propertyValue))
);

$result = $query->exec();

$arResult = [];

while ($element = $result->fetch()) {
    $arResult[] = $element;
}

// Результат будет содержать все элементы инфоблока, у которых значение свойства PROPERTY_CODE меньше $propertyValue
print_r($arResult);

3. Использование класса BitrixMainLoader и метода getList:

use BitrixMainLoader;
use BitrixIblockElementTable;

$iblockId = 1; // ID инфоблока
$propertyCode = 'PROPERTY_CODE'; // Код свойства
$propertyValue = 10; // Значение свойства

$arResult = [];

if (Loader::includeModule('iblock')) {
    $res = ElementTable::getList([
        'filter' => [
            'IBLOCK_ID' => $iblockId,
            'ACTIVE' => 'Y',
            '<PROPERTY_'.$propertyCode => $propertyValue
        ],
        'select' => ['ID', 'NAME', 'PROPERTY_'.$propertyCode]
    ]);

    while ($element = $res->fetch()) {
        $arResult[] = $element;
    }
}

// Результат будет содержать все элементы инфоблока, у которых значение свойства PROPERTY_CODE меньше $propertyValue
print_r($arResult);

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