UiFilterPreset
Класс для преобразования фильтра блока в формат main.ui.filter. Используется в настраиваемом фильтре для отбора данных.
| Метод | Описание | С версии |
|---|---|---|
| construct | Конструктор | |
| 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. | |
| create | Преобразует фильтр блока в формат bitrix:main.ui.filter. | |
| initFieldTypeHandlers | Служебный метод заполняет список поддерживаемых типов полей. |
Пример
Инициализация компонента bitrix:main.ui.filter значениями из фильтра блока при открытии формы настройки (настраиваемый фильтр для отбора данных). Обратите внимание, что в этом примере для полей нет ключа operators, т.к. он не требуется (хотя его наличие не запрещается).
$gridFilterConfig = new UI\Filter\Options('ИД_фильтра');
$preset = [];
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
$data = $request->getPost('filter'); // в этом ключе отдается фильтр блока в форму
if (!empty($data) && is_array($data))
{
$fields = []; // поля фильтра - см формат
$fields['NAME'] = [
'id' => 'NAME',
'type' => 'string',
];
$fields['ID'] = [
'id' => 'ID',
'type' => 'number',
];
$fields['ENTITY_LIST'] = [
'id' => 'ENTITY_LIST',
'type' => 'list',
'params' => [
'multiple' => 'Y'
]
];
$fields['ACTIVE'] = [
'id' => 'ACTIVE',
'type' => 'checkbox',
'operators' => [
'default' => ''
]
];
$sourceFilter = new \Bitrix\Landing\Source\UiFilterPreset();
$sourceFilter->setFields($fields);
$preset = $sourceFilter->create($data);
}
$gridFilterConfig->setFilterSettings(
\Bitrix\Main\UI\Filter\Options::TMP_FILTER,
[
'name' => '',
'fields' => $preset
],
true,
false
);
$gridFilterConfig->save();
© «Битрикс», 2001-2026, «1С-Битрикс», 2026