Компоненты BitrixОбновлено: 23.10.2026 11:24:55

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

Базовая структура компонента в /local/components, назначение файлов и рабочий пример вызова через $APPLICATION->IncludeComponent().

Время чтения: 12 мин.Уровень: Средний

Системные требования

Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.

Смотреть системные требования

1. Выберите пространство имён

Собственные компоненты размещайте в /local/components/vendor/component.name/. Первая папка — уникальное пространство имён проекта, вторая — имя компонента.

/local/components/webcat/user.card/

Название вызова получится webcat:user.card. Не используйте пространство bitrix: оно предназначено для системных компонентов.

Простой пример создания компонента

Официальный урок с размещением, файлами и вызовом IncludeComponent.

Скачать

2. Создайте структуру компонента

Минимальный компонент содержит описание, параметры, класс и шаблон:

.description.php
.parameters.php
class.php
templates/.default/template.php
lang/ru/

.description.php регистрирует компонент в визуальном редакторе, .parameters.php описывает форму настроек, class.php готовит данные, а шаблон отвечает только за вывод.

Совет

Не копируйте системный компонент в /bitrix/components/bitrix и не меняйте его файлы: обновление платформы может перезаписать изменения.

3. Опишите параметры

В .parameters.php объявите только параметры, которые редактор действительно может менять: ID сущности, лимит, шаблон отображения и параметры кеша.

$arComponentParameters = [
  "PARAMETERS" => [
    "USER_ID" => ["PARENT" => "BASE", "TYPE" => "STRING"],
    "CACHE_TIME" => ["DEFAULT" => 3600],
  ],
];

Все входные значения повторно нормализуйте в onPrepareComponentParams().

4. Реализуйте class.php и шаблон

Класс компонента наследуется от CBitrixComponent. В executeComponent() подключите модуль, получите данные и вызовите шаблон.

public function executeComponent()
{
  if ($this->startResultCache()) {
    $this->arResult = $this->loadData();
    $this->includeComponentTemplate();
  }
  return $this->arResult;
}

Не выполняйте запросы к базе в template.php.

5. Вызовите компонент на странице

На странице компонент подключается методом $APPLICATION->IncludeComponent():

$APPLICATION->IncludeComponent(
  "webcat:user.card",
  "",
  ["USER_ID" => 7, "CACHE_TYPE" => "A", "CACHE_TIME" => 3600]
);

После размещения проверьте работу без авторизации, права пользователя, пустой результат и сброс кеша после изменения данных.

Была ли эта статья полезной?

Спасибо за ваш отзыв!