Как работают переменные $arParams и $arResult в компонентах 1С-Битрикс

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Как работают переменные $arParams и $arResult в компонентах 1С-Битрикс
Что такое $arParams и $arResult в компонентах 1С-Битрикс и как с ними работать

При создании собственных компонентов в 1С-Битрикс важно понимать, как правильно использовать две основные переменные: $arParams и $arResult.  Именно они позволяют передавать параметры при вызове компонента и  возвращать результат выполнения в шаблон. В данной статье мы подробно  разберём назначение этих переменных, их особенности, а также рассмотрим  различные способы изменения $arResult, в том числе через файл result_modifier.php.
Изменено: Валерий Макеев - 29.09.2025 10:53:56
Выводим список элементов инфоблока с применением фильтрации, сортировки и дополнительной обработки в `result_modifier.php`, например, добавляя произвольное поле к каждому элементу.
Пример кода (component.php):
Код
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
// Подготовка параметров
$arParams['IBLOCK_ID'] = intval($arParams['IBLOCK_ID']);
$arParams['SORT_BY'] = $arParams['SORT_BY'] ?: 'ID';
$arParams['SORT_ORDER'] = $arParams['SORT_ORDER'] === 'DESC' ? 'DESC' : 'ASC';
// Получение элементов
$arResult['ITEMS'] = [];
$res = CIBlockElement::GetList(
    [$arParams['SORT_BY'] => $arParams['SORT_ORDER']],
    ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ACTIVE' => 'Y'],
    false,
    ['nPageSize' => $arParams['PAGE_SIZE'] ?: 10],
    ['ID', 'NAME', 'PREVIEW_TEXT', 'DETAIL_PAGE_URL']
);
while ($item = $res->GetNext()) {
    $arResult['ITEMS'][] = $item;
}
$this->IncludeComponentTemplate();


Файл result_modifier.php:
Код
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
foreach ($arResult['ITEMS'] as &$item) {
    $item['CUSTOM_FIELD'] = 'Дополнительный текст для ' . $item['NAME'];
}
unset($item);


Файл template.php:
Код
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
foreach ($arResult['ITEMS'] as $item): ?>
    <div class="item">
        <h2><?= $item['NAME'] ?></h2>
        <p><?= $item['PREVIEW_TEXT'] ?></p>
        <small><?= $item['CUSTOM_FIELD'] ?></small>
    </div>
<?php endforeach; ?>


Вызов компонента:
Код
<?php
$APPLICATION->IncludeComponent(
    'your_namespace:your_component',
    '',
    [
        'IBLOCK_ID' => 5,
        'SORT_BY' => 'NAME',
        'SORT_ORDER' => 'ASC',
        'PAGE_SIZE' => 5
    ]
);
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Разработка корпоративного сайта

от 7 дней

от 40 000 рублей

Разработка сайта без системы оплаты заказов через корзину

* стоимость зависит от наличия верстки, использования готового решения и т.д.

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Лечение сайтов от вирусов

восстановление сайта и подъем версии PHP

от 25 000 рублей
Лечение сайтов на решениях АСПРО и прочих.

* полный комплекс лечения проекта и закрытия дыр