Структура компонентов в 1C-Битрикс: разбор с примерами

Структура компонентов в 1C-Битрикс: разбор с примерами

Где лежат компоненты

Компоненты в Битрикс размещаются в двух местах:

  • /bitrix/components/ — системные компоненты (их лучше не трогать, иначе при обновлении всё затрётся).
  • /local/components/ — пользовательские компоненты. Всегда кладите свои разработки сюда: это упростит поддержку и защитит код при апдейтах.

Общая структура

Пример дерева папок:

/local/components/
└── namespace/
    └── news.list/
        ├── lang/
        │   └── ru/
        │       ├── .description.php
        │       └── .parameters.php
        ├── templates/
        │   └── .default/
        │       ├── template.php
        │       ├── result_modifier.php
        │       ├── component_epilog.php
        │       ├── script.js
        │       └── style.css
        ├── .description.php
        ├── .parameters.php
        ├── ajax.php
        ├── class.php
        └── component.php

Основные файлы и папки

1. class.php

  • Что это: основной файл бизнес-логики (D7-подход).
  • Как работает: описывает класс, наследуемый от CBitrixComponent. Здесь готовятся данные для шаблона.

Пример:

class ExampleComponent extends CBitrixComponent
{
    public function executeComponent()
    {
        $this->arResult['DATA'] = $this->getData();
        $this->includeComponentTemplate();
    }

    private function getData()
    {
        return ['example' => 'data'];
    }
}

👉 Лучше всегда использовать именно class.php, а не устаревший процедурный component.php.

2. component.php

  • Что это: старый процедурный способ написания компонентов.
  • Когда нужен: только если вы сознательно не используете D7 (новые проекты — почти никогда).

3. .description.php

  • Что это: описание компонента для визуального редактора.
  • Зачем нужно: без него компонент не появится в списке в админке.
  • Подводный камень: ошибки в этом файле могут ломать сохранение страниц в публичной части — имейте в виду.

4. .parameters.php

  • Что это: описание входных параметров компонента.
  • Где работает: параметры настраиваются в админке.
  • Пример: выбор эффекта и времени смены слайдов для слайдера.

5. lang/

  • Что это: папка для языковых файлов.
  • Зачем нужна: выносите все надписи в $MESS, чтобы не плодить «жёстко прошитые» строки.

Пример:

$MESS['T_NEWS_NEWS_NA'] = "Раздел не найден.";

6. templates/

  • Что это: шаблоны отображения компонента.
  • Важно: вся HTML-разметка должна быть здесь, а не в бизнес-логике.
  • Шаблон .default: подключается автоматически, если другой не указан.

7. template.php

  • Что это: основной файл шаблона, именно он формирует вывод на страницу.

8. result_modifier.php

  • Что это: файл для предобработки массива $arResult перед шаблоном.
  • Особенность: кешируется. Удобно для мелкой логики: например, подготовки картинок или формирования удобных структур.

9. component_epilog.php

  • Что это: подключается после шаблона.
  • Особенность: не кешируется — можно вставлять счётчики, доп.скрипты, что угодно.

10. script.js, style.css, images/

  • Опциональные файлы для клиентской части (JS, CSS, картинки).
  • Подключаются автоматически, если находятся в папке шаблона.

Жизненный цикл компонента

  1. Инициализация (чтение параметров).
  2. Выполнение логики (class.php или component.php).
  3. Формирование массива $arResult.
  4. Передача данных в шаблон.
  5. Кеширование результата (если включено).

Рекомендации

  • Используйте D7-подход — это современно и поддерживается лучше.
  • Добавляйте .description.php (иначе в редакторе компонент будет «невидимым»).
  • Разделяйте логику и представление.
  • Локализуйте текст через lang/.
  • Настраивайте кеширование, особенно для тяжёлых выборок.
  • Делайте несколько шаблонов под разные задачи (например, список новостей и плитка).

Читайте также

Интеграции с 1С и API
1074 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
941 6 мин.

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны

Пошаговый гайд по скидкам в CMS-магазине: скидка на товар, правило корзины от суммы, купоны с лимитом, приоритеты без конфликтов и тестовый заказ. Не Bitrix24.
Интеграции с 1С и API
757 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

Эта статья — ваш проводник в мир компонентов «1С-Битрикс». Мы не будем сыпать сухими терминами из документации. Вместо этого мы совершим путешествие: от философии, заложенной в эту архитектуру, до мельчайших деталей её работы. Мы разберем компонент на атомы — его файлы, логику, шаблон, параметры — и соберем обратно, чтобы вы не просто знали, что это, но и глубоко понимали, почему это работает именно так. Это знание — ключ к эффективной и профессиональной разработке на Битрикс.

Интеграции с 1С и API
717 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.