Блог Горошко Андрея 1C-Битрикс Получение значений пользовательского поля типа «Список»: CUserFieldEnum

Получение значений пользовательского поля типа «Список»: CUserFieldEnum

При работе с пользовательскими полями (UF_*) типа «Список» в базе данных хранится только ID выбранного варианта.

Но часто в коде нужно получить сам текст значения, его XML_ID или вывести все доступные варианты для фильтра.

Для этого используется класс CUserFieldEnum.

Задача: Получить все значения списка для поля UF_GENDER

Чтобы получить значения, нужно знать ID самого поля (FIELD_ID) или его название.

Проще всего искать по названию.

Находим ID поля по его коду:

$rsEnum = CUserTypeEntity::GetList([], ["ENTITY_ID" => "USER", "FIELD_NAME" => "UF_GENDER"]); 
$arField = $rsEnum->Fetch();
 $fieldId = $arField['ID'];

Получаем значения списка:

    $rsEnum = CUserFieldEnum::GetList( [], // Сортировка (не работает в этом методе) [ "USER_FIELD_ID" => $fieldId, // ID поля (обязательно или FIELD_NAME в старых версиях) ] ); $enumValues = []; 
    while ($arEnum = $rsEnum->Fetch()) { // $arEnum содержит: ID, VALUE, XML_ID, SORT, DEF (по умолчанию) 
    $enumValues[$arEnum['ID']] = $arEnum['VALUE'];
     echo "ID: {$arEnum['ID']} - Значение: {$arEnum['VALUE']} (XML_ID: {$arEnum['XML_ID']})<br>"; }

    Получение конкретного значения по ID

    Если у вас есть ID значения (например, из $arResult[‘UF_GENDER’]), получить его текст можно так:

    $enumId = 15; // ID выбранного варианта
    $rsEnum = CUserFieldEnum::GetList([], ["ID" => $enumId]);
    if ($arEnum = $rsEnum->Fetch()) {
        echo "Выбран пол: " . $arEnum["VALUE"];
    }

    Важно: Метод GetList у CUserFieldEnum не поддерживает сортировку первым параметром (всегда передавайте пустой массив []). Сортировка значений всегда происходит по полю SORT внутри самого свойства.

    Вывод:
    Класс CUserFieldEnum — единственный способ добраться до метаданных списочных свойств (текст, XML_ID, сортировка).

    Используйте его для построения фильтров или расшифровки значений в профиле пользователя или разделах.


    CUserFieldEnum, GetList, пользовательское поле список, UF_ поле, значения списка битрикс, UserTypeEntity.

    Похожая задача в бизнесе?

    Помогу автоматизировать процессы и внедрить ИИ

    Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

    Добавить комментарий

    Related Post

    Стоимость аудита и исправления ошибок в файлах robots.txt и sitemap.xml на БитриксСтоимость аудита и исправления ошибок в файлах robots.txt и sitemap.xml на Битрикс

    Прозрачный расчет бюджета, честные сметы и понимание совокупной стоимости владения (TCO) — залог успешного сотрудничества и окупаемости инвестиций в веб-разработку на 1С-Битрикс. В статье «Стоимость аудита и исправления ошибок в

    Как использовать метод SDK sale.persontype.update в Битрикс24Как использовать метод SDK sale.persontype.update в Битрикс24

    Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Как использовать метод SDK sale.persontype.update в Битрикс24». Мы подготовили подробный разбор принципов работы и развернутые

    Комплексный рефакторинг и чистка фронтенд-кода на сайте 1С-БитриксКомплексный рефакторинг и чистка фронтенд-кода на сайте 1С-Битрикс

    Качественная frontend-разработка и профессиональная натяжка макетов на 1С-Битрикс являются фундаментальным фактором конверсии сайта и его позиций в поисковых системах. Услуга «Комплексный рефакторинг и чистка фронтенд-кода на сайте 1С-Битрикс» гарантирует удаление