Bitrix получить значения списочного свойства

Свойство типа список - это поле, которое позволяет выбрать один или несколько вариантов из предопределенного списка. Например, вы можете создать свойство "Тип клиента", где будут доступны варианты "Физическое лицо", "Юридическое лицо", "ИП" и т.д.

При разработке часто нужно получить все или какие-то конкретные значения списка. Ниже приведены примеры как это можно сделать.

Получить все варианты значений свойства

Всю необходимую информацию о свойстве: ID, название, код свойства, можно узнать в админке на странице редактирования инфоблока к которому привязано свойство.

Указываем IBLOCK_ID чтобы точно получить значения нужно свойства у нужного инфоблока так как возможна ситуация когда у разных инфоблоков есть свойства с одинаковым кодом.

Используя код свойства

\Bitrix\Main\Loader::includeModule('iblock');
$res = \CIBlockPropertyEnum::GetList(array(), array(
	"IBLOCK_ID" => 5,
	"CODE" => 'TIP'
));
while($row = $res->Fetch()) {
	var_dump($row);
}

IBLOCK_ID - ID инфоблока к которому привязано свойство

CODE - код свойства

Используя ID свойства

\Bitrix\Main\Loader::includeModule('iblock');
$res = \CIBlockPropertyEnum::GetList(array(), array(
	"IBLOCK_ID" => 5,
	"PROPERTY_ID" => 65
));
while($row = $res->Fetch()) {
	var_dump($row);
}

IBLOCK_ID - ID инфоблока к которому привязано свойство

PROPERTY_ID - ID свойства

Пример результата работы

array(11) {
  ["ID"]=>
  string(2) "57"
  ["PROPERTY_ID"]=>
  string(2) "65"
  ["VALUE"]=>
  string(29) "Физическое лицо"
  ["DEF"]=>
  string(1) "N"
  ["SORT"]=>
  string(2) "20"
  ["XML_ID"]=>
  string(32) "1126e2879ded40119ccab3583e2b4080"
  ["TMP_ID"]=>
  NULL
  ["EXTERNAL_ID"]=>
  string(32) "1126e2879ded40119ccab3583e2b4080"
  ["PROPERTY_NAME"]=>
  string(6) "Тип"
  ["PROPERTY_CODE"]=>
  string(3) "TIP"
  ["PROPERTY_SORT"]=>
  string(2) "20"
}
array(11) {
  ["ID"]=>
  string(2) "56"
  ["PROPERTY_ID"]=>
  string(2) "65"
  ["VALUE"]=>
  string(31) "Юридическое лицо"
  ["DEF"]=>
  string(1) "N"
  ["SORT"]=>
  string(2) "10"
  ["XML_ID"]=>
  string(32) "a8947a33d6e4e98dcd5ae56846fb1106"
  ["TMP_ID"]=>
  NULL
  ["EXTERNAL_ID"]=>
  string(32) "a8947a33d6e4e98dcd5ae56846fb1106"
  ["PROPERTY_NAME"]=>
  string(6) "Тип"
  ["PROPERTY_CODE"]=>
  string(3) "TIP"
  ["PROPERTY_SORT"]=>
  string(2) "20"
}

Получить конкретный вариант значения свойства

\Bitrix\Main\Loader::includeModule('iblock');
$res = \CIBlockPropertyEnum::GetList(array(), array(
	"ID" => 56
));
while($row = $res->Fetch()) {
	var_dump($row);
}

ID - в данном случаи это ID искомого варианта значения

Пример результата работы

array(11) {
  ["ID"]=>
  string(2) "56"
  ["PROPERTY_ID"]=>
  string(2) "65"
  ["VALUE"]=>
  string(31) "Юридическое лицо"
  ["DEF"]=>
  string(1) "N"
  ["SORT"]=>
  string(2) "10"
  ["XML_ID"]=>
  string(32) "a8947a33d6e4e98dcd5ae56846fb1106"
  ["TMP_ID"]=>
  NULL
  ["EXTERNAL_ID"]=>
  string(32) "a8947a33d6e4e98dcd5ae56846fb1106"
  ["PROPERTY_NAME"]=>
  string(6) "Тип"
  ["PROPERTY_CODE"]=>
  string(3) "TIP"
  ["PROPERTY_SORT"]=>
  string(2) "20"
}

Таким образом используя \CIBlockPropertyEnum::GetList() можно легко получить как все варианты значений свойства так и какой-то конкретный вариант.

Важно помнить, что перед вызовом данного метода необходимо подключить модуль iblock, как показано в примерах.

На нашем сайте так же есть статья о том как получить значения списочного поля в bitrix.

Рубрики: Bitrix

Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Популярные статьи

Как добавить свою вкладку в карточку элемента СРМ?

Вкладки в карточках элементов CRM очень удобное решение. В этой статье разберем как добавить свою вкладку в карточку элемента CRM с помощью создания обработчика на событие.

Bitrix: как подключить js или css файл?

Чтобы подключить JavaScript и CSS файлы в bitrix сущствуют специальные методы addJs и addCss у класса \Bitrix\Main\Page\Asset. Давайте рассмотрим примеры их использования более подробно.

Bitrix получить путь к корню сайта

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

Подключить bitrix без подключения шаблона сайта

В статье приводится пример кода подключения bitrix без подключения шаблона сайта. Так же описано когда это может пригодится.

Bitrix сбросить буфер вывода

Функция RestartBuffer() в Bitrix используется для сброса буфера вывода. Она позволяет прервать вывод страницы на определенном этапе выполнения скрипта и начать вывод заново. В статье рассмотрим основные сценарии использования данной функции, рассмотрим пример кода.

Bitrix подключить модуль

Так как bitrix состоит из большого количества различных модулей, знать как их правильно подключать просто необходимо.

Комментарии

Комментариев пока нет
Данный сайт использует файлы cookies. Продолжая просмотр сайта, вы соглашаетесь с использованием файлов cookies.
ОК