• МАКС: М.Базаров
  • Телеграм: М.Базаров
  • E-mail: mihail@bazarow.ru

Как вывести свойство инфоблока в шаблон

Вопрос задан: 8 июня 2026 в 12:00 | Просмотров: 15 Использованные MCP инструменты: MCP не использовался

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

Добрый день! Давайте разберём, как вывести свойство инфоблока в шаблоне 1С-Битрикс.

Для начала уточню: задача может решаться по-разному в зависимости от того, где именно вы хотите вывести свойство — в шаблоне компонента (например, catalog, news, bitrix:news.list) или в произвольном месте шаблона сайта через API.

Рассмотрим основные варианты.

1. Вывод свойства в шаблоне компонента (через массив $arResult)

В большинстве компонентов, работающих с инфоблоками, свойства элементов доступны в массиве $arResult['PROPERTIES'] или $arResult['ITEMS'][N]['PROPERTIES'].

Пример для компонента bitrix:news.list (шаблон .default):

<?if ($arItem['PROPERTIES']['MY_PROPERTY']['VALUE']):?>
    <p>Свойство: <?=$arItem['PROPERTIES']['MY_PROPERTY']['VALUE']?></p>
<?endif;?>

Структура массива PROPERTIES:

  • $arItem['PROPERTIES']['CODE']['VALUE'] — значение свойства
  • $arItem['PROPERTIES']['CODE']['DESCRIPTION'] — описание свойства
  • $arItem['PROPERTIES']['CODE']['VALUE_ENUM'] — значение для списков (список)
  • $arItem['PROPERTIES']['CODE']['VALUE_ENUM_ID'] — ID варианта списка
  • $arItem['PROPERTIES']['CODE']['PROPERTY_TYPE'] — тип свойства (S, N, L, F, E, G и т.д.)

Для множественных свойств:

<?foreach ($arItem['PROPERTIES']['MY_MULTI_PROP']['VALUE'] as $value):?>
    <p><?=$value?></p>
<?endforeach;?>

2. Вывод свойства элемента инфоблока в шаблоне сайта через API (CIBlockElement::GetList)

Если вы находитесь вне компонента (например, в header.php или footer.php), можно получить данные напрямую:

<?php
if (CModule::IncludeModule('iblock')) {
    $arSelect = Array('ID', 'IBLOCK_ID', 'NAME', 'PROPERTY_MY_PROP');
    $arFilter = Array('IBLOCK_ID' => 1, 'ACTIVE' => 'Y', 'ID' => $elementId);
    $res = CIBlockElement::GetList(Array(), $arFilter, false, Array('nTopCount' => 1), $arSelect);
    if ($ob = $res->GetNextElement()) {
        $arFields = $ob->GetFields();
        $arProps = $ob->GetProperties();
        echo 'Значение свойства: ' . $arProps['MY_PROP']['VALUE'];
    }
}
?>

3. Вывод свойств через ORM (D7) — современный способ

<?php
use Bitrix\Iblock\Elements\ElementCatalogTable;

$element = ElementCatalogTable::getList([
    'select' => ['ID', 'NAME', 'MY_PROPERTY_' => 'MY_PROPERTY.VALUE'],
    'filter' => ['=ID' => $elementId]
])->fetch();

echo $element['MY_PROPERTY_VALUE'];
?>

Важно: Название поля свойства для ORM формируется как СИМВОЛЬНЫЙ_КОД_ПРОПЕРТИ.ПОЛЕ (например, PRICE.VALUE).

4. Вывод свойства раздела инфоблока

<?php
$arSection = CIBlockSection::GetList(
    [],
    ['IBLOCK_ID' => $iblockId, 'ID' => $sectionId],
    false,
    ['ID', 'NAME', 'UF_MY_PROPERTY'] // пользовательские поля раздела
)->Fetch();
echo $arSection['UF_MY_PROPERTY'];
?>

5. Вывод свойства инфоблока (настройки самого инфоблока)

Свойства самого инфоблока (его настройки) можно получить через:

<?php
$arIblock = CIBlock::GetByID($iblockId)->Fetch();
echo $arIblock['DESCRIPTION']; // описание инфоблока
// или пользовательские поля инфоблока:
$arIblock = CIBlock::GetArrayByID($iblockId);
echo $arIblock['UF_MY_FIELD'];
?>

6. Если свойство не выводится — проверьте

  • Код свойства в настройках инфоблока (должен быть уникальным, латиница)
  • В параметрах компонента должно быть установлено "Выводить свойства" = Да
  • Свойство добавлено в $arParams['PROPERTY_CODE'] компонента
  • Для bitrix:news.list — параметр PROPERTY_CODE должен содержать код вашего свойства

Подскажите, какой именно компонент вы используете и где хотите вывести свойство? Я смогу дать более точный пример кода.