Верстка шаблона компонента 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Верстка шаблона компонента 1С-Битрикс
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1165
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Верстка шаблона компонента 1С-Битрикс

Задача звучит просто: «поменяй карточку товара». На деле оказывается, что карточка — это шаблон компонента bitrix:catalog.element, который лежит в /bitrix/components/bitrix/catalog.element/templates/.default/, его трогать нельзя (затрётся при обновлении), нужно создавать переопределение в /local/ или в папке шаблона сайта, а сам template.php использует переменные $arResult, структура которых описана в документации не полностью.

Верстка шаблона компонента 1С-Битрикс

Механизм переопределения шаблонов

Битрикс ищет шаблон компонента в следующем порядке (упрощённо):

  1. /local/templates/<шаблон_сайта>/components/<namespace>/<компонент>/<имя_шаблона>/
  2. /bitrix/templates/<шаблон_сайта>/components/<namespace>/<компонент>/<имя_шаблона>/
  3. /local/components/<namespace>/<компонент>/templates/<имя_шаблона>/
  4. /bitrix/components/<namespace>/<компонент>/templates/<имя_шаблона>/

Правильное место для кастомных шаблонов — /local/templates/<шаблон>/components/ или /local/components/. Это гарантирует сохранность при обновлении ядра и модулей.

Минимальный состав папки шаблона компонента: template.php (обязательно), style.css и script.js (подключаются автоматически, если есть).

Что доступно внутри template.php

В template.php автоматически доступны:

  • $arResult — данные, подготовленные компонентом (структура зависит от конкретного компонента)
  • $arParams — параметры, переданные при вызове компонента
  • $APPLICATION, $USER, $DB — глобальные объекты Битрикс
  • $this — объект компонента (CBitrixComponent), через который доступны методы типа $this->GetPath()

Перед версткой обязательно изучаем структуру $arResult — либо через документацию, либо через var_dump() / print_r() на этапе разработки, либо через компонент bitrix:main.ajax.json для отладки без порчи кэша.

Типичные компоненты под кастомную верстку

bitrix:news.list / bitrix:news.detail — новости, блог, портфолио. Чаще всего нужно изменить карточку списка и страницу детального просмотра. В $arResult['ITEMS'] — массив элементов с полями и свойствами инфоблока.

bitrix:catalog.element / bitrix:catalog.section — карточка товара и страница раздела каталога. $arResult['ELEMENT'] содержит данные товара, $arResult['OFFERS'] — торговые предложения (модификации).

bitrix:form.result.new — веб-форма. Шаблон содержит HTML формы с полями, которые генерируются из $arResult['FIELDS'].

bitrix:main.include — подключение статичных областей: баннеров, рекламных блоков, произвольного HTML.

Кейс: шаблон карточки товара с вкладками

Интернет-магазин медтехники. Стандартный шаблон bitrix:catalog.element выводил описание, характеристики и документы единым текстовым блоком. Задача: разбить на вкладки — «Описание», «Характеристики», «Документы» (PDF-файлы из свойства инфоблока типа «Файл»).

Создали переопределение в /local/templates/main/components/bitrix/catalog.element/detail/template.php. В шаблоне: вкладки на чистом CSS (:target-селекторы без JS-зависимости), характеристики — из $arResult['ELEMENT']['DISPLAY_PROPERTIES'], документы — из свойства типа «Файл» с проверкой на непустое значение. Кэширование компонента не трогали — шаблон работает с уже подготовленным $arResult.

Кэширование и шаблоны

Битрикс кэширует результат выполнения компонента, но не сам template.php — шаблон рендерится каждый раз на основе закэшированных данных. Это важно: изменения в template.php видны сразу, без сброса кэша. Но если нужно добавить новое поле в $arResult, потребуется либо изменить параметры компонента (CACHE_GROUPS, CACHE_TIME), либо создать кастомный компонент.

Сроки

Тип задачи Сроки
Верстка шаблона одного простого компонента 4–8 часов
Шаблон компонента со сложной логикой (вкладки, фильтрация, AJAX) 1–3 дня
Комплекс шаблонов (5–10 компонентов) 1–2 недели