
Шаблон сайта в 1С Битрикс – ключевой элемент, определяющий структуру и внешний вид веб-ресурса. Правильная организация шаблона обеспечивает удобство управления и масштабирования проекта. В этой инструкции подробно рассмотрим этапы создания шаблона с нуля, опираясь на стандартные механизмы платформы.
Первый шаг – подготовка необходимых файлов: header.php, footer.php, template.php. Они отвечают за шапку, подвал и основное содержимое страницы. Следует разместить эти файлы в папке шаблона, соблюдая структуру каталога /bitrix/templates/название_шаблона/. Важно соблюдать кодировку UTF-8 без BOM для корректного отображения текста.
Для подключения стилей и скриптов применяйте метод Asset::getInstance()->addCss() и addJs() в файле header.php. Это позволит централизованно управлять ресурсами и обеспечит правильную загрузку в браузере. Использование стандартных API 1С Битрикс гарантирует совместимость и производительность.
Подготовка рабочего пространства для создания шаблона

Перед началом разработки шаблона в 1С-Битрикс необходимо подготовить среду, которая обеспечит стабильную и предсказуемую работу. Это включает настройку сервера, создание структуры проекта и базовые конфигурации.
- Установите локальный веб-сервер. Рекомендуемые варианты: Open Server, XAMPP или Docker с конфигурацией Apache + PHP 7.4+ + MySQL.
- Создайте отдельный виртуальный хост. Укажите корневой каталог сайта – папку
/bitrixили/в зависимости от структуры. - Установите чистую копию 1С-Битрикс (редакция «Старт» или выше). Проверьте доступ к административной панели.
- Создайте директорию шаблона в
/bitrix/templates/. Имя папки должно быть уникальным и содержать только латинские символы и цифры. - Скопируйте в неё файлы базового шаблона или создайте минимум:
header.php,footer.php,style.css,description.php. - В файле
description.phpзадайте массив с названием шаблона и автором, чтобы он отображался в административной панели. - Отключите кеширование в
/bitrix/.settings.phpдля ускорения разработки. Установите'cache_flags' => ['config' => false]. - Убедитесь, что включена отладка: в
php.iniустановитеdisplay_errors = Onиerror_reporting = E_ALL. - Создайте структуру разделов: папки для CSS, JS и изображений. Например:
/bitrix/templates/your_template/css/.
После подготовки среды можно переходить к верстке и подключению шаблона через административную панель в разделе «Настройки» → «Шаблоны сайта».
Создание структуры папок и файлов шаблона

Шаблон сайта в 1С-Битрикс размещается в директории /bitrix/templates/. Для создания нового шаблона необходимо вручную создать отдельную папку с уникальным названием, например my_site_template.
Внутри папки шаблона создаются следующие обязательные файлы:
description.php – содержит описание шаблона, возвращающее массив с ключами 'NAME', 'DESCRIPTION', 'SORT', 'TYPE'.
style.css – основной CSS-файл, подключаемый автоматически. В первой строке обязательно указывается комментарий вида /* Template Name */, чтобы Битрикс корректно распознал шаблон.
header.php и footer.php – включаемые области, которые оборачивают контент сайта. В header.php размещаются теги <html>, <head>, начало <body> и вызов $APPLICATION->ShowHead(). В footer.php – закрывающие теги </body> и </html>.
template.php – основной файл, в который Битрикс подставляет содержимое компонентов и включаемых областей.
Рекомендуется также создать подкаталоги:
/css/ – для дополнительных таблиц стилей;
/js/ – для JavaScript-файлов;
/images/ – для графических элементов интерфейса.
Если планируется адаптивная верстка, целесообразно использовать meta viewport в header.php и подключать медиа-запросы в style.css.
После создания структуры шаблон можно выбрать в настройках сайта или подключить программно через метод SetTemplate() объекта $APPLICATION.
Настройка файла style.css для шаблона
Файл style.css размещается в директории шаблона: /bitrix/templates/имя_шаблона/styles.css или /style.css внутри той же директории. Этот файл отвечает за оформление всех элементов шаблона и загружается через файл header.php с помощью функции $APPLICATION->SetAdditionalCSS().
Рекомендуется начинать с нормализации стилей. Подключите Reset или Normalize внутри style.css, либо вставьте минимальный набор обнуляющих правил вручную. Например:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
Используйте уникальные селекторы, исключающие конфликт с системными стилями Битрикс. Пример: .my-template-header вместо просто header. Это предотвращает переопределение глобальных стилей административной панели и модулей.
Для подключения шрифтов используйте относительные пути, если шрифты хранятся в папке шаблона. Пример:
@font-face {
font-family: 'MyFont';
src: url('fonts/MyFont.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
Разбейте стили по блокам: заголовок, меню, контент, подвал. Комментируйте разделы для удобства поддержки:
/* === HEADER === */
.my-template-header {
background-color: #f5f5f5;
padding: 20px;
}
Используйте переменные через препроцессор (например, SCSS), если проект предполагает сборку. Для статических шаблонов возможна реализация через CSS-переменные:
:root {
--primary-color: #3366cc;
}
.my-template-button {
background-color: var(--primary-color);
}
Для кроссбраузерности обязательно проверяйте корректность отступов и размеров в популярных браузерах, включая Edge и Safari. Избегайте использования устаревших свойств вроде float, применяйте flexbox или grid.
После каждого изменения стилей очищайте кеш в админке: Настройки → Производительность → Управление кешем, иначе правки не применятся.
Создание и подключение файла шаблона header.php

Минимальный пример содержимого header.php:
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
IncludeTemplateLangFile(__FILE__);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowHead()?>
</head>
<body>
<div id="panel"><?$APPLICATION->ShowPanel()?></div>
<header>
<div class="logo"><a href="/">Главная</a></div>
<nav>
<?$APPLICATION->IncludeComponent(
"bitrix:menu",
"top",
array(
"ROOT_MENU_TYPE" => "top",
"MAX_LEVEL" => "1",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600"
),
false
);?>
</nav>
</header>
Чтобы шаблон начал использоваться, в административной панели перейдите в Настройки → Сайты → Шаблоны сайтов. Добавьте правило с условием php self::GetCurDir() == '/' или другим, соответствующим вашим требованиям, и укажите имя созданного шаблона.
Проверьте подключение шаблона на главной или внутренней странице. При корректной настройке header.php будет автоматически подставляться перед контентом каждого компонента, использующего вызов $APPLICATION->IncludeComponent().
Разработка файла шаблона footer.php с подключением скриптов

Файл footer.php закрывает структуру HTML-документа и содержит подключение JavaScript-скриптов. Его расположение – /bitrix/templates/имя_шаблона/footer.php.
Перед закрывающим тегом </body> вставляют вызов функции ShowHeadScripts() и подключение пользовательских скриптов. Пример структуры:
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
?>
</div><!-- Закрытие обёртки контента -->
<?$APPLICATION->ShowViewContent("footer_before");?>
<footer>
<div class="footer-content">
<p>© <?=date("Y")?> Компания «Название»</p>
</div>
</footer>
<?$APPLICATION->ShowHeadScripts();?>
<?$APPLICATION->ShowBodyScripts();?>
<script src="/local/templates/имя_шаблона/js/main.js"></script>
</body>
</html>
Пользовательские скрипты подключаются после вызовов API, чтобы исключить конфликт при загрузке. Убедитесь, что пути к скриптам относительные и не содержат домена, чтобы избежать проблем на разных окружениях (дев, прод).
Файл main.js должен быть минимизирован и объединён, если используется несколько скриптов. Это снижает количество HTTP-запросов и ускоряет загрузку страницы.
Рекомендуется использовать $APPLICATION->AddHeadScript() в header.php для скриптов, требующих загрузки в <head>, а не в footer.php.
Добавление области контента в шаблон с помощью include
Для подключения области контента в шаблоне 1С-Битрикс используется функция IncludeFile(). Этот подход позволяет вынести повторяющиеся части верстки в отдельные файлы, упрощая поддержку шаблона.
Создайте директорию /include/ в корне сайта, если она отсутствует. Внутри нее создайте файл, например, main_text.php. В этом файле размещается HTML-код или PHP-логика, предназначенные для вставки:
<div class="main-text"> <h1>Добро пожаловать на сайт</h1> <p>Этот текст можно редактировать через визуальный редактор в административной части.</p> </div>
В шаблоне сайта (обычно это /bitrix/templates/имя_шаблона/header.php или footer.php) вставьте следующий код:
<?$APPLICATION->IncludeFile(
SITE_DIR."include/main_text.php",
array(),
array("MODE" => "html")
);?>
Параметр «MODE» определяет режим редактирования области через визуальный интерфейс. Допустимые значения: html, php, text. Для стандартного контента предпочтительно использовать html.
Файл можно редактировать через административную панель: Контент → Файлы и папки → /include/. Это позволяет менять содержимое без доступа к FTP или коду шаблона.
Использование IncludeFile() обеспечивает централизованное управление участками шаблона и ускоряет внедрение изменений на всех страницах.
Подключение и настройка компонентов 1С Битрикс в шаблоне
Для подключения компонентов в шаблоне 1С Битрикс используется функция $APPLICATION->IncludeComponent. Размещение компонента осуществляется напрямую в файле шаблона – чаще всего это header.php, footer.php, template.php или index.php.
- Откройте файл шаблона, куда необходимо вставить компонент.
- Вставьте вызов компонента. Пример подключения новостного компонента:
$APPLICATION->IncludeComponent( "bitrix:news.list", "custom_template", array( "IBLOCK_TYPE" => "content", "IBLOCK_ID" => "5", "NEWS_COUNT" => "3", "SORT_BY1" => "ACTIVE_FROM", "SORT_ORDER1" => "DESC", "FILTER_NAME" => "", "PROPERTY_CODE" => array("AUTHOR", "DATE"), "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "SET_TITLE" => "N" ), false ); - Создайте шаблон компонента:
- Перейдите в
/local/templates/ваш_шаблон/components/bitrix/имя_компонента/имя_шаблона/. - Скопируйте шаблон из
/bitrix/components/bitrix/имя_компонента/templates/.default/.
- Перейдите в
- Для передачи данных из шаблона сайта в компонент используйте глобальные переменные или параметры компонента через массив
$arParams.
- При использовании нескольких компонентов следите за уникальностью
FILTER_NAME, чтобы избежать конфликтов. - Компоненты могут быть вложенными. Оборачивайте вызовы во вспомогательные
<div>для управления стилями. - Используйте
CMain::SetTitleи$APPLICATION->SetPagePropertyвнутри шаблона компонента для SEO-настройки.
После подключения обязательно проверьте кэширование. Включайте его только при стабильных данных, иначе используйте тип N или задайте короткое время кэша.
Тестирование и отладка созданного шаблона на сайте

После подключения шаблона необходимо активировать его для тестового сайта или конкретной страницы через административную панель: «Настройки» → «Настройки продукта» → «Сайты» → «Шаблоны сайта». Назначьте созданный шаблон в разделе условий отображения.
Откройте страницу в режиме инкогнито и проверьте корректность отображения элементов: шапки, футера, навигации, контентных блоков. Особое внимание уделите адаптивности – используйте инструменты разработчика в браузере (F12) для эмуляции различных разрешений экрана.
Проверьте консоль браузера на наличие JavaScript-ошибок. Все кастомные скрипты и сторонние библиотеки должны загружаться без задержек и конфликтов. Убедитесь, что AJAX-запросы, если они используются, возвращают ожидаемые данные.
Просмотрите лог ошибок Bitrix: /bitrix/php_interface/dbconn.php и /bitrix/.settings.php могут содержать сведения о неправильно подключённых компонентах. Используйте модуль «Проактивная защита» для анализа потенциальных уязвимостей шаблона.
Проверьте кеширование. Очистите кеш через административную панель: «Настройки» → «Инструменты» → «Очистка кеша». Изменения в шаблоне могут не применяться из-за устаревших кешированных данных.
Для анализа производительности шаблона активируйте панель производительности: «Настройки» → «Производительность» → «Панель производительности». Следите за временем генерации страницы, количеством SQL-запросов и объёмом загружаемых ресурсов.
Вопрос-ответ:
Какой файл нужно редактировать, чтобы изменить внешний вид шаблона в 1С Битрикс?
Основной файл, отвечающий за внешний вид шаблона, — это `header.php`, который содержит верхнюю часть сайта, а также `footer.php` — нижнюю. Между ними размещаются шаблоны компонентов и основное содержимое (`template.php`). Все эти файлы находятся в папке шаблона по пути: `/bitrix/templates/название_шаблона/`. При работе с ними стоит учитывать, что структура может немного отличаться в зависимости от версии и типа шаблона.
Можно ли создать свой шаблон без копирования существующего?
Да, можно создать шаблон «с нуля». Для этого нужно в папке `/bitrix/templates/` создать новую директорию с уникальным названием. Внутри неё необходимо разместить обязательные файлы: `description.php` (описание шаблона), `header.php`, `footer.php` и `styles.css`. Также желательно сразу добавить файл `template_styles.css` и подключить нужные компоненты. После этого шаблон можно выбрать в настройках сайта в административной части.
Как назначить новый шаблон для определенного сайта в многосайтовой конфигурации?
В многосайтовой конфигурации шаблон можно назначить для каждого сайта отдельно. Это делается через административную панель: перейдите в раздел «Настройки» → «Настройки продукта» → «Сites» → выберите нужный сайт и в поле «Шаблон сайта» укажите созданный шаблон. Можно также задать условия отображения шаблона в зависимости от URL или других параметров, указав соответствующее условие в поле «Условие».
Что будет, если в шаблоне отсутствует файл `description.php`?
Если файл `description.php` отсутствует, шаблон всё равно будет работать, но в административной части он будет отображаться без названия и описания. Это может затруднить выбор шаблона, особенно при наличии нескольких. Поэтому желательно этот файл создать и указать в нём хотя бы минимальную информацию: название и описание шаблона, авторство и версию.
Можно ли использовать сторонние CSS-фреймворки, такие как Bootstrap, при создании шаблона?
Да, использование сторонних CSS-фреймворков допустимо. Их можно подключить в `header.php` либо через `styles.css`. Однако стоит учитывать, что некоторые компоненты Битрикс могут конфликтовать с сеткой или классами фреймворка, поэтому при интеграции потребуется аккуратно настраивать стили и, возможно, переопределять стандартные классы. Также желательно минимизировать загрузку ненужных модулей, чтобы не перегружать страницу.
