Форум 1С-Битрикс

Как работают переменные $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-Битрикс

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.

Аутсорсинг

готов помочь, если нет времени

договорная

Могу взять на себя работы по full-stack

* на основе готовой верстки

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.