Структура компонентов в 1C-Битрикс: разбор с примерами
12 сентября 2025
2 мин.
301
28 сентября 2025
Где лежат компоненты
Компоненты в Битрикс размещаются в двух местах:
/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, картинки).
- Подключаются автоматически, если находятся в папке шаблона.
Жизненный цикл компонента
- Инициализация (чтение параметров).
- Выполнение логики (
class.phpилиcomponent.php). - Формирование массива
$arResult. - Передача данных в шаблон.
- Кеширование результата (если включено).
Рекомендации
- Используйте D7-подход — это современно и поддерживается лучше.
- Добавляйте
.description.php(иначе в редакторе компонент будет «невидимым»). - Разделяйте логику и представление.
- Локализуйте текст через
lang/. - Настраивайте кеширование, особенно для тяжёлых выборок.
- Делайте несколько шаблонов под разные задачи (например, список новостей и плитка).
Популярно сейчас 🔥