- Основные понятия и структура компонента в 1С-Битрикс
- Подготовка к созданию компонента
- Простой пример создания компонента
- Подключение и использование компонента на странице сайта
- Советы и рекомендации
- SEO-аспекты при создании компонентов в 1С-Битрикс
Несмотря на то, что платформа уже содержит множество стандартных компонентов, часто требуется создать собственный компонент для решения специфических задач бизнеса. Разработка собственных компонентов позволяет:
-
Реализовать уникальные функции, отсутствующие в стандартных компонентах
-
Оптимизировать производительность за счет исключения избыточного функционала
-
Сделать код более модульным и поддерживаемым
-
Упростить масштабирование и расширение функциональности сайта
Данная статья будет полезна разработчикам, которые хотят углубить свои знания в создании компонентов для 1С-Битрикс, а также администраторам сайтов, желающим понять архитектуру платформы и научиться расширять её возможности.
Основные понятия и структура компонента в 1С-Битрикс
Прежде чем мы начнем создавать компонент, давайте разберемся с его структурой и основными составляющими.
Компонент в 1С-Битрикс включает следующие элементы:
-
Файл component.php — основной файл компонента, содержащий логику обработки данных. Здесь происходит подготовка данных для отображения.
-
Файл .parameters.php — описывает настраиваемые параметры компонента, которые будут доступны в визуальном редакторе.
-
Папка templates — содержит шаблоны отображения для компонента. Внутри этой папки обычно создается папка .default с файлом template.php, который отвечает за внешний вид компонента.
-
Файл .description.php (опционально) — содержит информацию о компоненте, которая отображается в визуальном редакторе.
-
Папка lang (опционально) — содержит языковые файлы для локализации компонента.
Размещать компоненты рекомендуется в директории /local/components/ (вместо /bitrix/components/), создавая следующую структуру:
/local/components/
├── namespace/ // Ваше пространство имен (обычно название компании или проекта)
│ ├── component_name/ // Название вашего компонента
│ │ ├── component.php
│ │ ├── .parameters.php
│ │ ├── .description.php (опционально)
│ │ └── templates/
│ │ └── .default/
│ │ └── template.php
Использование директории /local/ вместо /bitrix/ обеспечивает более безопасное обновление ядра CMS без риска потери вашего кода.
Подготовка к созданию компонента
Существует два основных способа создания структуры компонента:
1. Использование «Мастера создания компонента»
1С-Битрикс предлагает специальный инструмент в Marketplace для упрощения процесса. Мастер создания компонента автоматически генерирует необходимые файлы и папки с базовым кодом.
Как использовать мастер:
-
Установите решение «Мастер создания компонента» из Marketplace
-
В административной панели перейдите в раздел «Мастер создания компонента»
-
Заполните форму, указав название, пространство имен и другие параметры
-
Мастер создаст все необходимые файлы и базовый код.
2. Создание структуры вручную
Если вы предпочитаете более глубокое понимание процесса или хотите иметь полный контроль над структурой, можно создать все файлы вручную:
-
Создайте папку пространства имен в /local/components/
-
Внутри создайте папку с названием компонента
-
Создайте основные файлы: component.php, .parameters.php
-
Создайте директорию templates/.default и внутри неё файл template.php
Важно правильно выбрать имя пространства имен и компонента:
-
Имя пространства имен должно быть уникальным (обычно используется название компании или проекта)
-
Имя компонента должно отражать его назначение и следовать соглашению об именовании (например, news.list, catalog.element)
-
Рекомендуется использовать английские названия в нижнем регистре с разделением частей точкой.
Простой пример создания компонента
Для демонстрации процесса создадим простой компонент, который выводит текущую дату в заданном формате. Назовем наш компонент date.current, а в качестве пространства имен используем mycompany.
Шаг 1: Создание структуры папок и файлов
Создайте следующую структуру:
/local/components/
├── mycompany/
│ ├── date.current/
│ │ ├── component.php
│ │ ├── .parameters.php
│ │ └── templates/
│ │ └── .default/
│ │ └── template.php
Шаг 2: Создание файла параметров
Файл .parameters.php определяет, какие настройки компонента будут доступны в визуальном редакторе. Для нашего компонента определим параметр, позволяющий указать формат даты:
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = array(
"GROUPS" => array(),
"PARAMETERS" => array(
"DATE_FORMAT" => array(
"PARENT" => "BASE",
"NAME" => "Формат даты",
"TYPE" => "STRING",
"DEFAULT" => "d.m.Y H:i:s",
),
),
);
Этот код определяет один параметр DATE_FORMAT с форматом даты по умолчанию d.m.Y H:i:s (день.месяц.год часы:минуты:секунды).
Шаг 3: Создание логики компонента
Файл component.php содержит основную логику. В нашем случае он будет форматировать текущую дату:
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
// Значение по умолчанию, если параметр не задан
if(empty($arParams["DATE_FORMAT"])) {
$arParams["DATE_FORMAT"] = "d.m.Y H:i:s";
}
// Получаем текущую дату в заданном формате
$arResult["FORMATTED_DATE"] = date($arParams["DATE_FORMAT"]);
// Также сохраняем timestamp для использования в шаблоне
$arResult["TIMESTAMP"] = time();
// Подключаем шаблон компонента
$this->IncludeComponentTemplate();
Этот код:
-
Проверяет, определен ли параметр формата даты, и устанавливает значение по умолчанию
-
Форматирует текущую дату с использованием функции date()
-
Сохраняет результат в массив $arResult
-
Подключает шаблон компонента.
Шаг 4: Создание шаблона вывода
Файл template.php в папке .default отвечает за отображение данных, подготовленных в component.php:
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
?>
<div class="date-current-component">
<p>Текущая дата и время: <strong><?= htmlspecialchars($arResult["FORMATTED_DATE"]) ?></strong></p>
<p>Unix timestamp: <?= $arResult["TIMESTAMP"] ?></p>
</div>
Этот шаблон выводит отформатированную дату и время, а также unix timestamp в виде HTML-разметки.
Шаг 5: Создание файла описания (опционально)
Для удобства работы с компонентом в визуальном редакторе создадим файл .description.php:
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
"NAME" => "Текущая дата",
"DESCRIPTION" => "Компонент для вывода текущей даты и времени в заданном формате",
"CACHE_PATH" => "Y",
"PATH" => array(
"ID" => "mycompany",
"NAME" => "Мои компоненты",
),
);
Теперь компонент будет отображаться в визуальном редакторе в группе «Мои компоненты» с названием «Текущая дата».
Подключение и использование компонента на странице сайта
После создания компонента его можно подключить на любую страницу сайта. Для этого вставьте следующий код в нужное место шаблона или контента:
<?$APPLICATION->IncludeComponent(
"mycompany:date.current",
"",
array(
"DATE_FORMAT" => "d.m.Y H:i",
),
false
);?>
При этом:
-
Первый параметр — имя компонента в формате namespace:component_name
-
Второй параметр — имя шаблона (пустая строка для шаблона по умолчанию)
-
Третий параметр — массив параметров компонента
-
Четвертый параметр — флаг буферизации вывода
Вы также можете подключить компонент через визуальный редактор, найдя его в группе «Мои компоненты».
Советы и рекомендации
Размещение компонентов
Всегда размещайте собственные компоненты в директории /local/components/, а не в /bitrix/components/. Это защитит ваш код при обновлении системы и упростит перенос решений между проектами.
Использование кеширования
Для повышения производительности добавьте кеширование в компонент:
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
// Настройка кеширования
if($this->StartResultCache()) {
// Код компонента
$arResult["FORMATTED_DATE"] = date($arParams["DATE_FORMAT"]);
$arResult["TIMESTAMP"] = time();
// Завершение кеширования
$this->SetResultCacheKeys(array(
"FORMATTED_DATE",
"TIMESTAMP",
));
$this->IncludeComponentTemplate();
}
Обратите внимание, что динамически изменяющиеся данные (например, текущая дата) не следует кешировать с долгим временем жизни кеша.
Локализация компонентов
Для поддержки мультиязычности используйте языковые файлы:
-
Создайте папки lang/ru/ и lang/en/ в директории компонента
-
В каждой папке создайте файлы .parameters.php и .description.php с переводами
Пример локализации параметров:
// /local/components/mycompany/date.current/lang/ru/.parameters.php
$MESS["DATE_FORMAT_PARAM"] = "Формат даты";
// /local/components/mycompany/date.current/lang/en/.parameters.php
$MESS["DATE_FORMAT_PARAM"] = "Date format";
И в файле .parameters.php используйте:
"NAME" => GetMessage("DATE_FORMAT_PARAM"),
Проверка и отладка
Для отладки компонентов используйте:
-
Константу SITE_TEMPLATE_PATH для формирования корректных путей к файлам
-
Метод ShowError() для вывода ошибок
-
Функцию dump() для вывода отладочной информации.
SEO-аспекты при создании компонентов в 1С-Битрикс
Влияние компонентов на SEO
Компоненты могут существенно влиять на SEO-характеристики сайта, поскольку они формируют контент и структуру страниц. При создании компонентов учитывайте:
-
Семантическую HTML-разметку
-
Скорость загрузки страницы
-
ЧПУ (человекопонятные URL)
-
Корректную работу с заголовками и метатегами.
Вывод метатегов и заголовков
Для правильного управления метатегами в компонентах используйте следующие функции:
// Установка заголовка страницы
$APPLICATION->SetTitle("Заголовок страницы");
// Установка метатегов
$APPLICATION->SetPageProperty("description", "Описание страницы");
$APPLICATION->SetPageProperty("keywords", "ключевые, слова");
Использование SEO-модуля
1С-Битрикс включает специальный модуль для управления SEO-параметрами. Если этот модуль установлен, учитывайте его при разработке компонентов:
// Проверка наличия модуля SEO
if(\Bitrix\Main\Loader::includeModule('seo')) {
// Работа с SEO-модулем
}
Советы по созданию SEO-дружественных компонентов
-
Используйте микроразметку Schema.org для улучшения понимания контента поисковыми системами
-
Добавляйте атрибут alt для всех изображений
-
Обеспечивайте правильную структуру заголовков (h1, h2, h3)
-
Реализуйте поддержку ЧПУ в компонентах, работающих со списками и детальными страницами
-
Оптимизируйте запросы к базе данных для уменьшения времени загрузки.
Создание собственных компонентов в 1С-Битрикс — это мощный инструмент для расширения функциональности вашего сайта. В этой статье мы рассмотрели основные шаги:
-
Создание структуры папок и файлов компонента
-
Определение параметров компонента для настройки в визуальном редакторе
-
Написание логики обработки данных
-
Создание шаблона для вывода результатов
-
Подключение компонента на страницы сайта
Собственные компоненты позволяют реализовать уникальные функции, оптимизировать производительность и упростить поддержку кода. При соблюдении рекомендаций по структуре, кешированию и SEO-оптимизации, ваши компоненты будут не только функциональными, но и эффективными.
Если вы хотите ускорить процесс разработки компонентов для вашего проекта на 1С-Битрикс или получить профессиональную консультацию, обратите внимание на услуги компании Интерволга. Эксперты предлагают комплексный подход к разработке на платформе 1С-Битрикс, включая создание уникальных компонентов для решения бизнес-задач любой сложности.
Профессиональный подход компании поможет:
-
Разработать индивидуальные компоненты, точно соответствующие потребностям вашего бизнеса
-
Оптимизировать существующие решения для повышения производительности сайта
-
Обеспечить грамотную интеграцию с внешними системами и сервисами
-
Организовать обучение ваших сотрудников принципам разработки на 1С-Битрикс
-
Внедрить современные практики и стандарты кодирования в вашу команду
Команда Интерволга имеет многолетний опыт работы с платформой 1С-Битрикс и поможет вам реализовать любые функциональные требования с максимальной эффективностью.
Статьи по теме





- аренда команды (от 2 человек, не менее 3 месяцев);
- итерации с фиксированной ценой (1-3 месяца длительностью).
- регулярные онлайн-планерки с заказчиком;
- квалифицированных специалистов;
- организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
- полную прозрачность и регулярность отчетов о результатах.
- нагруженный интернет-магазин;
- личный кабинет;
- оптовые продажи — B2B-платформа;
- маркетплейс;
- технический аудит сайта;
- Битрикс24 — корпоративные HR-порталы;
- Битрикс24 — построение CRM-системы;
- Битрикс24 — личные кабинеты сотрудников;
- Битрикс24 — аудит портала;
- 1С — интеграция с другими системами;
- 1С — доработка системы;
- маркетинг — комплексное интернет-продвижение;
- маркетинг — продвижение для B2B.