304  /  381
Справочник

Выборка, фильтрация и сортировка

Просмотров: 102924
Дата последнего изменения: 11.09.2025
Татьяна Старкова
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Пользовательские поля можно использовать в ORM как обычные: выбирать, фильтровать, сортировать, обновлять. ORM подключит нужные таблицы и сохранит изменения.

В класс таблицы MyTable добавьте статический метод getUfId(). Он должен возвращать код сущности, для которой созданы пользовательские поля.
Например, если поля созданы для сообщений блога, верните BLOG_POST.

class MyTable extends \Bitrix\Main\ORM\Data\DataManager
{
    public static function getUfId()
    {
        return 'BLOG_POST';
    }

    // ...
}

Теперь можно фильтровать, сортировать и выбирать пользовательские поля.

$rows = MyTable::query()
    ->addSelect('UF_GRATITUDE')
    ->where('UF_GRATITUDE', '>', 50)
    ->addOrder('UF_GRATITUDE', 'DESC')
    ->fetchCollection()
;

ORM автоматически добавит JOIN к таблице пользовательских полей. Ничего писать вручную не нужно.

После получения коллекции объектов можно работать с пользовательскими полями через геттеры и сеттеры.

foreach ($rows as $row)
{
    $value = $row->getUfGratitude();
    $row->setUfGratitude($value + 50);
    $row->save();
}


21
Курсы разработаны в компании «1С-Битрикс»