Bitrix Help
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Главная » API Битрикс » CIBlockElement::GetProperty в Битрикс — получение свойств элемента инфоблока

CIBlockElement::GetProperty в Битрикс — получение свойств элемента инфоблока

Обновлено: 2026 • Раздел: API Битрикс


Метод CIBlockElement::GetProperty() предназначен для получения значений свойств элемента инфоблока в 1С-Битрикс. С его помощью можно получить как одиночные, так и множественные свойства, включая строки, числа, списки, файлы, привязки к элементам и разделам.

Краткий ответ

Для получения свойств элемента необходимо вызвать метод CIBlockElement::GetProperty(), указав ID инфоблока и ID элемента.

<?php

$res = CIBlockElement::GetProperty(5, 123);

while ($property = $res->Fetch()) {
    echo $property["CODE"].": ".$property["VALUE"]."<br>";
}

Описание функции

Метод возвращает объект выборки со свойствами указанного элемента инфоблока. В отличие от выборки через CIBlockElement::GetList(), метод позволяет получить полный набор данных по каждому свойству, включая тип, код, описание и значение.

CIBlockElement::GetProperty часто используется при работе с множественными свойствами, файловыми полями и сложными структурами данных, когда стандартного получения через GetList() недостаточно.

Результатом работы метода является объект класса CDBResult, который необходимо обрабатывать через методы Fetch() или GetNext().

Синтаксис

CDBResult CIBlockElement::GetProperty(
    int $IBLOCK_ID,
    int $ELEMENT_ID,
    array $arOrder = array(),
    array $arFilter = array()
);

Параметры

Параметр Тип Описание
$IBLOCK_ID int ID инфоблока.
$ELEMENT_ID int ID элемента.
$arOrder array Массив сортировки результата.
$arFilter array Фильтр по свойствам.

Основные поля результата

Поле Описание
ID ID свойства.
CODE Символьный код свойства.
NAME Название свойства.
VALUE Значение свойства.
DESCRIPTION Описание значения.
PROPERTY_TYPE Тип свойства.
MULTIPLE Признак множественного свойства.

Пример использования

Получение всех свойств элемента

<?php

$res = CIBlockElement::GetProperty(5, 123);

while ($property = $res->Fetch()) {
    echo $property["NAME"].": ".$property["VALUE"]."<br>";
}

Получение свойства по коду

<?php

$res = CIBlockElement::GetProperty(
    5,
    123,
    [],
    ["CODE" => "PRICE"]
);

if ($property = $res->Fetch()) {
    echo $property["VALUE"];
}

Получение множественного свойства

<?php

$tags = [];

$res = CIBlockElement::GetProperty(
    5,
    123,
    [],
    ["CODE" => "TAGS"]
);

while ($property = $res->Fetch()) {
    $tags[] = $property["VALUE"];
}

print_r($tags);

Получение файлового свойства

<?php

$res = CIBlockElement::GetProperty(
    5,
    123,
    [],
    ["CODE" => "PHOTO"]
);

if ($property = $res->Fetch()) {

    $file = CFile::GetFileArray(
        $property["VALUE"]
    );

    echo '<img src="'.$file["SRC"].'" alt="">';
}

Типичные ошибки

Неверный ID инфоблока

CIBlockElement::GetProperty(
    999,
    123
);

Если инфоблок не существует, результат будет пустым.


Неверный ID элемента

CIBlockElement::GetProperty(
    5,
    999999
);

Метод не вернет данные, если элемент отсутствует.


Использование Fetch() только один раз

$property = $res->Fetch();

Для множественных свойств необходимо использовать цикл while.


Ожидание массива вместо объекта выборки

Метод возвращает объект CDBResult, который необходимо перебирать.

$res = CIBlockElement::GetProperty(
    5,
    123
);

while ($property = $res->Fetch()) {

}

Аналог на D7

В современных проектах рекомендуется использовать ORM D7 и сгенерированные классы инфоблоков.

Получение свойств через ORM-класс

<?php

use Bitrix\Iblock\Elements\ElementCatalogTable;

$item = ElementCatalogTable::getByPrimary(
    123,
    [
        'select' => [
            'ID',
            'NAME',
            'PRICE',
            'BRAND'
        ]
    ]
)->fetch();

print_r($item);

Получение через ElementPropertyTable

<?php

use Bitrix\Iblock\ElementPropertyTable;

$res = ElementPropertyTable::getList([
    'filter' => [
        '=IBLOCK_ELEMENT_ID' => 123
    ]
]);

while ($property = $res->fetch()) {
    print_r($property);
}

FAQ

Что возвращает CIBlockElement::GetProperty?

Метод возвращает объект выборки CDBResult со свойствами элемента.

Как получить значение свойства по коду?

<?php

$res = CIBlockElement::GetProperty(
    5,
    123,
    [],
    ["CODE" => "PRICE"]
);

$property = $res->Fetch();

echo $property["VALUE"];

Как получить множественное свойство?

Необходимо перебрать все записи результата через цикл while.

Можно ли получить свойства вместе с элементом?

Да, через CIBlockElement::GetList() и выборку полей вида PROPERTY_CODE. Однако для сложных свойств удобнее использовать GetProperty.

Как получить файл из файлового свойства?

Используйте функцию CFile::GetFileArray() и поле SRC.

Что лучше использовать в новых проектах?

Для новых разработок рекомендуется ORM D7 и сгенерированные классы инфоблоков. Метод CIBlockElement::GetProperty чаще используется при поддержке существующих проектов и интеграций.

Услуги


База знаний