Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Получить множественное пользовательское поле раздела. Значения множественного UF_ поля через API

Просмотров: 356

Задача: У разделов инфоблока есть множественное поле типа список. Зная ID раздела, нужно получить и вывести всю информацию о выбранных значениях списка UF_ поля этого раздела.

В принципе эта заметка подойдет для получения значений любого UF поля, не обязательно связанного с разделом. Сработает для любого множественного пользовательского поля.

Получаем UF поля раздела инфоблока

Есть множественное пользовательское поле раздела "Способы доставки" типа список, с кодом UF_DELIVERY_TYPE. Что бы получить это поле используем CIBlockSection::GetList.

Значения множественного UF_ поля через API
$dbList = CIBlockSection::GetList(
    false,
    array(
        'IBLOCK_ID' => '2', // ID инфоблока
        'ID' => '27', // ID раздела
    ),
    false,
    array(
        'ID',
        'UF_DELIVERY_TYPE' // UF поле
    )
);
while ($arResult = $dbList->Fetch()) {
	print_r($arResult['UF_DELIVERY_TYPE']);
}

Зная ID инфоблока и раздела получили значение поля UF_DELIVERY_TYPE. Но, так как поле множественное, увидем только ID значений выбранных в этом поле. Нам нужна вся информация о каждом выбранном значении (название, xml-id и.т.д.)

Не множественные значения пользовательских полей получите сразу и со всей информацией. Что-бы получить все пользовательские поля, не обязательно перечислять каждое, достаточно указать UF_* в отборе.

Получаем значения множественного пользовательского поля UF по id значений.

Что бы получить значения со всей информацией о выбранных пунктах списка, множественного поля, используем CUserFieldEnum::GetList- передав в его фильтр id выбранных, в разделе, значений UF_DELIVERY_TYPE

$obEnum = new \CUserFieldEnum; // вкл метод
$dbList = CIBlockSection::GetList(
    false,
    array(
        'IBLOCK_ID' => '2', // ID инфоблока
        'ID' => '27', // ID раздела
    ),
    false,
    array(
        'ID',
        'UF_DELIVERY_TYPE' // UF поле
    )
);
while ($arResult = $dbList->Fetch()) {
	$rsData = $obEnum->GetList(
            array(),
            array(
                    "ID" => $arResult['UF_DELIVERY_TYPE']
                    // перебор полученных id значений
            )
    );
    while ($arEnum = $rsData->Fetch()) {
        $arTypes[] = $arEnum;
    }
}
print_r($arTypes);

На этом все. В массиве $arTypes будут все значения, выбранные для раздела в пользовательском поле UF_DELIVERY_TYPE, со всеми данными о каждом пункте.

Михаил Базаров 29.09.2022
Aналог CIBlockSection::GetList на D7
Bitrix\Iblock\SectionTable::GetList
не даст получить именно UF поля (без танцев и бубна):

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

AJAX корзина с отправкой количества из раздела каталога Просмотров: 19125 Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При... Вывести минимальную и максимальную цену в разделе каталога Битрикс. Просмотров: 2160 Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, доста... Настройка прав доступа в 1С-Битрикс Просмотров: 7544 Часто, в интернет-магазине под управлением 1С Битрикс, нужно создать группу пользователей ... Подключение мобильной версии шаблона Битрикс сайта, с автопереключени... Просмотров: 42288 Предпочитаю, что бы сайт не грузил кучу скриптов и стилей. При загрузке адаптивного шаблон... Как подобрать редакцию Битрикс под задачи Просмотров: 6348 Последнее время, все чаще, при общении с заказчиками, сталкиваюсь с вопросом "— К... Старые шаблоны битрикс для простой верстки Просмотров: 16916 Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии ... Получить все товары из всех заказов пользователя. История купленных т... Просмотров: 1374 Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленн... Объединить отдельные поля ФИО в одно свойство при оформлении заказа. Просмотров: 877 Пользователь, при оформлении заказа, заполняет три отдельных поля с фамилией, именем и отч... Умный фильтр только на последнем уровне разделов каталога. Просмотров: 10489 Если в разработаываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный ф... Почтовое событие на создание нового элемента инфоблока, через API Просмотров: 14341 Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблок... Очистить брошенные корзины с помощью API 1С-Битрикс Просмотров: 367 Задача: в интернет-магазине накапливается большое количество брошенных корзин, нужно их оч... Ссылка и название раздела в списке новостей Битрикс Просмотров: 10517 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новос... Как вывести картинки к разделам на базе _ext меню Просмотров: 7085 Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. ... Вывести производителей на сайте с отбором его товаров из каталога Просмотров: 18244 Достаточно частая задачка для каталога или интернет-магазина: вывести список производителе... Создание скидки на общую сумму покупки в Битрикс корзине Просмотров: 26960 Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать м... Умный фильтр во всплывающей панели на мобильных. Просмотров: 1447 Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень кра... Memcached на сайте под управлением битрикс, при использовании Веб Окр... Просмотров: 6940 Если вам важна скорость отдачи сайта, а у вашего сервера медленный диск для использования ... Получить множественное пользовательское поле раздела. Значения множес... Просмотров: 356 Задача: У разделов инфоблока есть множественное поле типа список. Зная ID раздела, нужно п... Удалить товары из корзины, если есть определенные товары. Просмотров: 879 Задача: если в корзину добавлены товары с определенным свойством, нужно удалить из корзины... Цвета торговых предложений из Highload инфоблоков в списке товаров Просмотров: 14086 Подвернулся на доработку очень старый сайт, работал еще на 11-ой версии Битрикс. Выполнили...