К статье
Практический материал

Разработка и Конфигурация · 7 мин

Как изменить шаблон в 1С-Битрикс

Как изменить шаблон сайта и компонентов в 1С-Битрикс: копирование шаблона, правка template.php, стилей и component_epilog.php без потери изменений при обновлении.

Шаблон в 1С-Битрикс определяет внешний вид сайта: шапку, подвал, подключаемые стили, скрипты и общую структуру страниц. Изменить шаблон можно двумя способами — подключить другой готовый шаблон в настройках сайта или отредактировать файлы существующего. Второй путь требует аккуратности: прямая правка стандартных шаблонов приведёт к потере изменений при очередном обновлении продукта.

Работа ведётся в двух местах: через административный раздел (Настройки → Сайты, а также «Шаблоны») и через файловую структуру в каталоге /bitrix/templates/ или /local/templates/. Каталог /local/ предпочтительнее, потому что ядро при обновлении его не перезаписывает.

Где хранятся шаблоны и как они устроены

Шаблон сайта — это папка с файлами header.php (шапка), footer.php (подвал), styles.css, template_styles.css, каталогами изображений и языковых файлов. Ядро сначала собирает шапку, затем выводит контент страницы, потом подвал.

Шаблоны компонентов лежат отдельно — внутри папки компонента (/bitrix/components/пространство/компонент/templates/) или в папке шаблона сайта (/local/templates/имя_шаблона/components/...). Копия в шаблоне сайта имеет приоритет и не затрагивается обновлениями.

Как назначить другой шаблон сайту

Откройте в административном разделе: Настройки → Настройки продукта → Сайты → Список сайтов, выберите нужный сайт. На вкладке «Шаблон» укажите шаблон из выпадающего списка и условие применения (по умолчанию — без условия, то есть для всех страниц).

Условия позволяют показывать разные шаблоны для разных разделов: например, упрощённый шаблон для страницы оформления заказа. Для этого добавьте вторую строку с типом условия «Для папки или файла» и укажите путь.

Смена шаблона сайта
  1. 1
    Скопируйте шаблон в /local/templates/ под уникальным именем
  2. 2
    Откройте Настройки → Сайты → нужный сайт → вкладка Шаблон
  3. 3
    Выберите новый шаблон и сохраните
  4. 4
    Сбросьте кеш: Настройки → Производительность → очистка кеша
  5. 5
    Проверьте главную и внутренние страницы в браузере

Как правильно скопировать шаблон перед правкой

Никогда не редактируйте шаблоны внутри /bitrix/templates/ — это системные файлы. Скопируйте папку шаблона целиком в /local/templates/новое_имя/ через файловый менеджер в админке (Контент → Структура сайта → Файлы и папки) или по FTP/SSH.

Имя папки — это идентификатор шаблона, он указывается в настройках сайта. После копирования откройте description.php внутри новой папки и измените название шаблона, чтобы отличать его в списке.

Редактирование файлов шаблона

Основные правки делаются в header.php и footer.php: там подключаются стили через $APPLICATION->SetAdditionalCSS(), скрипты через $APPLICATION->AddHeadScript(), выводятся метатеги и включаемые области. Текст, который должен редактироваться контент-менеджером, выносите во включаемые области через $APPLICATION->IncludeFile().

Стили правьте в template_styles.css (стили шаблона) и styles.css (стили, видимые в визуальном редакторе). После изменений сбрасывайте кеш, иначе старые версии файлов будут отдаваться браузеру из объединённых кешированных CSS.

php
<?$APPLICATION->IncludeFile(SITE_DIR."include/phone.php", Array(), Array("MODE"=>"html"));?>

Как изменить шаблон компонента

Если нужно поменять вывод конкретного компонента (каталога, новостей, меню), скопируйте его шаблон в папку шаблона сайта. Проще всего это сделать через режим правки: наведите на компонент на странице и выберите «Копировать шаблон компонента» — система сама создаст нужную структуру папок.

В скопированном шаблоне основной файл — template.php, он получает массив $arResult с данными. Логику подготовки данных выносите в result_modifier.php, а действия после кеширования (например, установку заголовка страницы) — в component_epilog.php.

Проверка результата и типичные ошибки

После правок откройте страницу в режиме инкогнито, проверьте консоль браузера на ошибки JavaScript и убедитесь, что стили загрузились новые (посмотрите путь к CSS в исходном коде страницы — там должен быть ваш шаблон из /local/templates/).

Типичные ошибки
01
Правка файлов в /bitrix/templates/ — изменения стираются при обновлении ядра
02
Забытый сброс кеша — кажется, что правки не работают, хотя файл изменён
03
Правка шаблона .default вместо копии — изменения применяются ко всем сайтам, где используется этот шаблон
04
Вывод данных напрямую без htmlspecialchars — риск XSS при вводе HTML в поля элементов
05
Удаление вызовов $APPLICATION->ShowHead() из header.php — ломаются метатеги, стили и скрипты компонентов
Контрольные точки

Как проверить результат

Источник стилей в коде страницы
Норма

Путь содержит /local/templates/ваш_шаблон/

Тревожный признак

Стили грузятся из старого шаблона или /bitrix/

Консоль браузера (F12)
Норма

Нет ошибок 404 у CSS/JS и ошибок скриптов

Тревожный признак

Файлы не найдены, скрипты падают

Метатеги и заголовок страницы
Норма

Title и description выводятся корректно

Тревожный признак

Пустой title или дублирующиеся теги

Частые вопросы

Можно ли применять разные шаблоны для разных разделов?

Да. В настройках сайта на вкладке «Шаблон» добавьте несколько строк с условиями: «Для папки или файла», «Для групп пользователей», «По параметру в URL». Условия проверяются сверху вниз, применяется первое подходящее.

Что делать, если после правки шаблона сайт показывает белую страницу?

Это признак фатальной ошибки PHP. Включите вывод ошибок в файле /bitrix/.settings.php (параметр debug) или посмотрите лог ошибок веб-сервера. Чаще всего причина — незакрытая скобка или опечатка в header.php. Верните файл из резервной копии, если быстро найти ошибку не удаётся.

Почему изменения в CSS не видны на сайте?

Битрикс объединяет и кеширует стили. Очистите кеш в настройках производительности и обновите страницу с принудительной перезагрузкой (Ctrl+F5). Также проверьте, что правите файл именно того шаблона, который назначен сайту.

Как изменить только одну страницу, не трогая весь шаблон?

Используйте условие в header.php по URL страницы или создайте отдельный шаблон с условием «Для папки или файла». Для точечных правок контента достаточно включаемых областей и свойств страницы.

Куда копировать шаблон компонента, чтобы он не затёрся?

В папку /local/templates/ваш_шаблон/components/пространство/компонент/имя_шаблона/. Такая копия имеет приоритет над шаблоном из ядра и не перезаписывается обновлениями.

Итог

Что важно запомнить

Работайте только с копией шаблона в /local/templates/, назначайте её в настройках сайта, сбрасывайте кеш после правок и проверяйте результат в консоли браузера. Шаблоны компонентов копируйте внутрь шаблона сайта — тогда обновления ядра ваши изменения не затронут.