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
Пользовательские комментарии
Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.