Кастомизация шаблонов стандартных компонентов 1С-Битрикс
Макет утверждён, вёрстка готова, а catalog.element выводит карточку товара не по дизайну — это типичная боль интегратора. Прямое редактирование /bitrix/components/ — гарантированная потеря изменений при первом обновлении системы. Промышленный подход — кастомные шаблоны в /local/, которые не трогают ядро. За многие годы мы переопределили шаблоны для более чем 50 проектов — от интернет-магазинов с каталогами на 100 000 товаров до корпоративных порталов. Ни одного сбоя при обновлениях. Сертифицированные специалисты 1С-Битрикс гарантируют совместимость с актуальными версиями платформы. В этой статье разберём, как создать кастомный шаблон правильно и избежать типичных ошибок.
Почему не стоит править шаблоны в /bitrix/?
Изменение файлов в /bitrix/components/bitrix/ приводит к их замене при установке обновлений. Даже если обновление не затрагивает шаблон, при следующем патче изменения пропадут. Корректный способ — переопределение через /local/. Битрикс ищет шаблон компонента в порядке:
-
/local/templates/<шаблон_сайта>/components/<namespace>/<компонент>/<шаблон>/ -
/local/components/<namespace>/<компонент>/templates/<шаблон>/ -
/bitrix/templates/<шаблон_сайта>/components/... -
/bitrix/components/<namespace>/<компонент>/templates/<шаблон>/
Достаточно создать нужную структуру папок в /local/ и поместить туда переопределённый файл. Оригинал в /bitrix/ остаётся нетронутым. Кастомные шаблоны в 5 раз надёжнее редактирования ядра — это подтверждает наш опыт. Для углублённого изучения рекомендую официальную документацию по шаблонам компонентов.
| Критерий | Редактирование в /bitrix/ | Кастомный шаблон в /local/ |
|---|---|---|
| Сохранность при обновлениях | Теряется | Полная сохранность |
| Поддержка | Хаотичная, сложно отследить | Версионирование, понятная структура |
| Риск конфликтов | Высокий | Минимальный |
| Время на настройку | Минуты (ненадёжно) | Часы (надёжно) |
Как безопасно кастомизировать шаблон компонента?
Разберём на примере bitrix:catalog.element — карточка товара. Смотрим оригинал, но не трогаем его:
// Оригинальный шаблон (не трогать) // /bitrix/components/bitrix/catalog.element/templates/.default/template.php // Наш кастомный шаблон в /local/ // /local/templates/my_site/components/bitrix/catalog.element/.default/template.php // /local/templates/my_site/components/bitrix/catalog.element/.default/style.css // /local/templates/my_site/components/bitrix/catalog.element/.default/script.js В template.php доступны все переменные, подготовленные компонентом: $arResult, $arParams, $arCurrentValues. Смотреть их состав через \Bitrix\Main\Diag\Debug::dump($arResult) или компонент bitrix:diag.phpinfo.
Подключаем шаблон в коде страницы:
<?$APPLICATION->IncludeComponent( "bitrix:catalog.element", ".default", // имя шаблона [ "IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => 12, ], false );?> Если нужен отдельный шаблон для конкретной страницы или секции, создаём шаблон с произвольным именем, например card_v2, и указываем его при вызове.
Кастомизация шаблонов комплексных компонентов
Комплексные компоненты (bitrix:catalog, bitrix:news) состоят из нескольких подключаемых компонентов. Шаблон комплексного компонента содержит component_epilog.php и подпапки для подкомпонентов:
/local/templates/my_site/components/bitrix/catalog/.default/ template.php component_epilog.php bitrix/ catalog.section/ .default/ template.php catalog.element/ .default/ template.php Это позволяет переопределить вёрстку раздела и карточки в рамках одного шаблона каталога.
Что такое result_modifier.php и component_epilog.php?
Два файла, которые дают доступ к данным компонента без переопределения его логики:
result_modifier.php — выполняется после основного кода компонента, до шаблона. Здесь можно изменить $arResult:
// result_modifier.php if (!empty($arResult['ITEMS'])) { foreach ($arResult['ITEMS'] as &$item) { $item['PRICE_FORMATTED'] = number_format($item['CATALOG_PRICE_1'], 0, '.', ' ') . ' ₽'; } } component_epilog.php — выполняется после шаблона. Используется для финальных манипуляций: установка заголовка страницы, добавление breadcrumbs, подключение скриптов.
<?php // component_epilog.php $APPLICATION->SetTitle('Каталог товаров'); $APPLICATION->AddChainItem('Главная', '/'); $APPLICATION->AddChainItem('Каталог'); ?> Подключение CSS и JS в шаблоне компонента
// В template.php $this->addCSS($this->GetFolder() . '/style.css'); $this->addJS($this->GetFolder() . '/script.js'); // Или через Asset Manager для объединения файлов \Bitrix\Main\Page\Asset::getInstance()->addCss($this->GetFolder() . '/style.css'); Что входит в кастомизацию шаблона
- Разработка шаблонов — переопределение всех необходимых шаблонов под ваш макет.
- Документация — описание структуры, изменений и инструкция по поддержке.
- Тестирование на совместимость — проверка с актуальной версией Битрикс и обновлениями.
- Обучение сотрудников — как вносить правки без риска.
- Поддержка после внедрения — исправление ошибок и консультации в течение месяца.
Какие ошибки чаще всего допускают при кастомизации?
- Редактирование файлов в
/bitrix/— гарантированная потеря изменений. - Создание шаблона без учёта вложенности комплексного компонента — части каталога не работают.
- Игнорирование
result_modifier.php— код дублируется в шаблоне, усложняя поддержку. - Использование абсолютных путей к файлам — проблемы при переносе на другой хостинг.
Сроки
| Задача | Сроки |
|---|---|
| Кастомный шаблон одного компонента (карточка, список) | 4–16 часов |
| Шаблоны всех компонентов каталога под макет | 3–5 дней |
| Кастомизация комплексного компонента с подшаблонами | 2–4 дня |
Свяжитесь с нами, чтобы обсудить ваш проект — мы оценим сложность и сроки. Получите консультацию, если хотите избежать проблем с обновлениями и получить надёжное решение.
Официальная документация 1С-Битрикс по шаблонам компонентов
Наш подход к решению
Каждая задача требует индивидуального анализа и тщательного планирования. Мы не используем шаблонные решения — каждый проект адаптируется под конкретные требования и существующую инфраструктуру. Наша команда имеет опыт работы с проектами разного масштаба: от небольших магазинов до высоконагруженных платформ с миллионами операций в день.
Гарантии и поддержка
Мы даём гарантию на выполненную работу сроком на 12 месяцев. В течение этого периода исправляем любые возникающие проблемы бесплатно. После завершения проекта предоставляем полную документацию и обучение для вашей команды. Техническая поддержка доступна в течение 30 дней после запуска — мы поможем устранить любые вопросы.







