Разработка кастомного шаблона сайта 1С-Битрикс
Стандартные шаблоны из Битрикс.Маркетплейс решают 20% реальных задач. Остальные 80% — кастом: уникальный дизайн, нестандартная структура страниц, специфические требования к производительности или интеграции с внешними системами. Разрабатывать шаблон «поверх» готового маркетплейсного — путь к техническому долгу: чужие стили и скрипты конфликтуют, обновление шаблона затирает правки.
Разработка кастомного шаблона сайта 1С-Битрикс
Структура кастомного шаблона
Кастомный шаблон создаётся в /local/templates/<имя_шаблона>/. Использование /local/ — принципиально: эта папка не затрагивается при обновлениях Битрикс. Минимальная структура:
/local/templates/main/
header.php — шапка сайта, подключение CSS/JS
footer.php — подвал, закрывающие теги
styles.css — основные стили (или подключение сборки)
script.js — основные скрипты
.parameters.php — настройки шаблона (необязательно)
components/ — переопределения шаблонов компонентов
page_templates/ — шаблоны типов страниц
images/ — изображения шаблона
В header.php через $APPLICATION->SetAdditionalCSS() и $APPLICATION->AddHeadScript() подключаются ресурсы. Для современных проектов удобнее использовать сборщик (Webpack, Vite) с выходом в папку шаблона.
Подключение ресурсов и Asset Pipeline
Битрикс поддерживает два подхода:
Нативный — CUtil::InitJSCore(), $APPLICATION->SetAdditionalCSS('/local/templates/main/css/style.css'), Asset::getInstance()->addJs(). Файлы отдаются напрямую, возможна конкатенация через настройки модуля main.
Через сборщик — npm run build генерирует минифицированные бандлы в /local/templates/main/assets/. В header.php подключается итоговый файл. Этот подход предпочтителен: tree-shaking, PostCSS, современный JS с транспиляцией.
Для проектов с Vue или React во фронтенде шаблон Битрикс выступает как shell: рендерит HTML-контейнеры и передаёт данные через <script> с JSON, который собирается из $arResult компонентов.
Типы страниц и page_templates
В папке page_templates/ хранятся PHP-файлы с разными layout страниц. Например: layout-fullwidth.php (без сайдбара), layout-sidebar.php (с боковой колонкой), layout-landing.php (без шапки и подвала для лендингов). Редактор выбирает тип страницы в административной панели.
Это позволяет одним шаблоном сайта покрыть разные структуры страниц без дублирования кода.
Кейс: шаблон для B2B-портала
Производственная компания, Битрикс «Бизнес». Требования: личный кабинет для дилеров с индивидуальными ценами, каталог без публичного доступа, интеграция с 1С через API. Стандартный шаблон не подходил — нужна была кастомная навигация с учётом групп пользователей.
Разработали шаблон с нуля в /local/templates/b2b/. В header.php — проверка авторизации через $USER->IsAuthorized(), для неавторизованных — редирект на страницу входа. Навигация строится динамически через bitrix:menu с кастомным шаблоном, отображающим пункты меню в зависимости от группы пользователя. Стили — Tailwind CSS через PostCSS, сборка Vite. Итог: шаблон с нуля за 3 недели, включая шаблоны основных компонентов каталога и личного кабинета.
Что нужно учесть при разработке
-
Режим правки — при включённой панели управления Битрикс добавляет оверлеи для редактирования контента. Шаблон должен корректно работать с
bx-editmode-overlayклассами -
SEO-мета —
$APPLICATION->SetTitle(),$APPLICATION->SetKeywords(),$APPLICATION->SetDescription()вызываются в компонентах, шаблон должен выводить их в<head>через соответствующие методы -
Кэширование —
managed_cacheиCPHPCacheкэшируют вывод компонентов, но неheader.php/footer.php— они рендерятся на каждый запрос - Безопасность — в шаблоне не должно быть прямых SQL-запросов, все данные — через API Битрикс
Сроки
| Объём шаблона | Сроки |
|---|---|
| Простой шаблон (до 5 типов страниц, базовые компоненты) | 2–4 недели |
| Средний шаблон (5–15 типов страниц, кастомные компоненты) | 4–8 недель |
| Сложный шаблон (B2B, личный кабинет, нестандартная логика) | 8–16 недель |







