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

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

PHP календарь на месяц

Функция для вывода календаря на заданный месяц и пример её использования.

Bitrix запись своих настроек в settings.php

Bitrix запись своих настроек в settings.php

Статья о том как разместить свои настройки не создавая велосипеды и костыли, а используя возможности системы.

Bitrix получить путь до компонента

Bitrix получить путь до компонента

В статье приводится пример кода для получения директории в которой находится файл компонента.

Битрикс пропали статусы веб-форм

Битрикс пропали статусы веб-форм

В статье описана новая настройка модуля веб-форм которая скрывает вкладки Статусы и Поля со страницы редактирования веб-формы

PHP Удалить лишние нули после запятой

PHP Удалить лишние нули после запятой

Когда в проекте диапазон чисел от 0,0001 до 1 000 000, удобно автоматически удалять лишнии нули после запятой.

Bitrix проверить входит ли пользователь в группу

Bitrix проверить входит ли пользователь в группу

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

Комментарии

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