DataFilter
Генерация orm-фильтра (или GetList-фильтра для старого api). Используется в настраиваемом фильтре для отбора данных и загрузчике данных (iblock).
| Метод | Описание | С версии |
|---|---|---|
| construct | Конструктор класса | |
| initFieldTypeHandlers | Служебный метод заполняет список поддерживаемых типов полей | |
| addCheckboxValue | Метод преобразует значение типа чекбокс в формат bitrix:main.ui.filter. | |
| addCustomDateValue | Метод преобразует значение типа диапазоны дат в формат bitrix:main.ui.filter. | |
| addDateValue | Преобразует значение типа дата или дата/время в формат bitrix:main.ui.filter. | |
| addDestSelectorValue | Метод преобразует значение типа привязка к сущности в формат bitrix:main.ui.filter. | |
| addListValue | Метод преобразует значение типа список/множественный список в формат bitrix:main.ui.filter. | |
| addNumberValue | Преобразует значение типа число в формат bitrix:main.ui.filter. | |
| addStringValue | Преобразует значение типа строка в формат bitrix:main.ui.filter. |
Пример
Преобразования фильтра блока в orm-фильтр (также см пример пользовательского источника). Обратите внимание, что для полей указан ключ operators - без него работать не будет.
$fields = []; // поле NAME типа строка $fields['NAME'] = [ 'id' => 'NAME', // идентификатор (совпадает с ключом массива) 'type' => 'string', // тип поля Строка (main.ui.filter) 'operators' => [ // префиксы для условий 'default' => '%' // префикс по умолчанию ] ]; // поле ID типа число $fields['ID'] = [ 'id' => 'ID', // идентификатор (совпадает с ключом массива) 'type' => 'number', // тип поля Число (main.ui.filter) 'operators' => [ // префиксы для условий 'default' => '=', // префикс по умолчанию 'exact' => '=', // точное совпадение (равно) (X === value) 'range' => '><', // фильтр по диапазону (min <= X <= max) 'more' => '>', // больше (X > value) 'less' => '<' // меньше (X < value) ] ]; // поле SECTION_ID типа список $fields['SECTION_ID'] = [ 'id' => 'SECTION_ID', // идентификатор (совпадает с ключом массива) 'type' => 'list', // тип поля Список (main.ui.filter) 'operators' => [ // префиксы для условий 'default' => '=' // префикс по умолчанию ] ]; // поле INCLUDE_SUBSECTIONS типа чекбокс $fields['INCLUDE_SUBSECTIONS'] = [ 'id' => 'INCLUDE_SUBSECTIONS', // идентификатор (совпадает с ключом массива) 'type' => 'checkbox', тип поля Чекбокс (main.ui.filter) 'operators' => [ // префиксы для условий 'default' => '' // префикс по умолчанию ] ]; $sourceFilter = ... // получение фильтра блока см описание класса \Bitrix\Landing\Source\DataLoader и его наследников $filter = \Bitrix\Landing\Source\DataFilter(); $filter->setFields($filter); $ormFilter = $filter->create($sourceFilter); // фильтр для orm
© «Битрикс», 2001-2026, «1С-Битрикс», 2026