Как правильно настроить вывод списка пользовательских полей в Битриксе?

У меня возникли проблемы с выводом названия выбранного списка в моем личном кабинете. Я попытался использовать следующий код, но ничего не выводится. Можете подсказать, в чем может быть проблема?

```php
<?
global $USER;
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_*");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
if ($res = $arRes->Fetch()) {
    foreach ($res["UF_NOMINATION"] as $id) {
        $rsRes= CUserFieldEnum::GetList(array(), array(
            "ID" => $id,
        ));
        if($arNom = $rsRes->GetNext())
            echo $arNom["VALUE"];
    } 	
    $arResult["PERSONAL_PHOTO_HTML"] = CFile::ShowImage($res["PERSONAL_PHOTO"], 280, 458, "border=0", "", true);
}
?>

выбран: <? echo $arNom["VALUE"];?>

<?  }?>
```
  • 21 ноября 2023 г. 12:43
Ответы на вопрос 1
Проблема в данном коде заключается в том, что переменная $arNom, содержащая значение выбранного списка, доступна только внутри цикла foreach. Поэтому, чтобы вывести значение списка, нужно поместить тег "<? echo $arNom["VALUE"] ?>" внутрь цикла.

Вот исправленный код:

```php
<?
global $USER;
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_*");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
if ($res = $arRes->Fetch()) {
    foreach ($res["UF_NOMINATION"] as $id) {
        $rsRes= CUserFieldEnum::GetList(array(), array(
            "ID" => $id,
        ));
        if($arNom = $rsRes->GetNext()) {
            echo "Выбран: " . $arNom["VALUE"] . "<br>";
        }
    } 	
    $arResult["PERSONAL_PHOTO_HTML"] = CFile::ShowImage($res["PERSONAL_PHOTO"], 280, 458, "border=0", "", true);
}
?>
```

Теперь значение списка будет выводиться внутри цикла foreach.
Похожие вопросы