Документация для разработчиков
Темная тема

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