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

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
Наверх