Кастомізація шаблонів стандартних компонентів 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 днів після запуску — ми допоможемо усунути будь-які питання.
Неправильний вибір редакції 1С-Бітрікс: як це ламає проект
Купили «Малий бізнес», запустили магазин, трафік виріс — і сайт впав. Композитний кеш тільки в «Бізнес», веб-кластер теж. Апгрейд — доплата різниці плюс робота по налаштуванню нових модулів. Правильний підбір та налаштування редакції 1С-Бітрікс одразу економлять значну частину бюджету на ліцензію та виключають витрати на позаплановий апгрейд. За роки роботи з Бітріксом ми провели багато апгрейдів і бачили всі типові помилки: від покупки «Старту» під великий каталог до використання «Бізнесу» для лендінгу з низькою відвідуваністю. Наш принцип — підібрати редакцію під реальні завдання та налаштувати її так, щоб не переплачувати за непотрібні модулі, але й не впиратися в стелю при першому стрибку трафіку.
Редакції 1С-Бітрікс: Управління сайтом
Чотири редакції, і різниця між ними — не в кількості функцій, а в доступних модулях ядра. Офіційна документація 1С-Бітрікс уточнює: композитний кеш доступний лише в редакції «Бізнес» і вище.
| Модуль / можливість |
Старт |
Стандарт |
Малий бізнес |
Бізнес |
| Інформаційні блоки |
+ |
+ |
+ |
+ |
| Веб-форми |
+ |
+ |
+ |
+ |
| Базове SEO |
+ |
+ |
+ |
+ |
| Блог, форум, соцмережа |
– |
+ |
+ |
+ |
Модуль sale (магазин) |
– |
– |
+ |
+ |
Обмін з 1С (catalog) |
– |
– |
+ |
+ |
Композитний кеш (main.composite) |
– |
– |
– |
+ |
Веб-кластер (cluster) |
– |
– |
– |
+ |
| Багатосайтовість |
– |
– |
– |
+ |
| REST API |
– |
– |
– |
+ |
Старт — мінімум, тільки контентні модулі: iblock, form, базове SEO. Для візиток і лендінгів. Модуля sale немає — магазин не побудувати.
Стандарт — контент плюс комунікації: блог, соціальна мережа, форум, розширена техпідтримка. Для корпоративних сайтів і порталів з UGC.
Малий бізнес — перша редакція з e-commerce: з'являється модуль sale. Комфортний стеля — до ~10 000 товарів без серйозної оптимізації. Для невеликих магазинів і каталогів з замовленням.
Бізнес — повний набір: композитний кеш (TTFB падає з 800 мс до 50–80 мс — в 10–15 разів швидше), веб-кластер, багатосайтовість, мультисклад, REST API. Для великих магазинів, маркетплейсів, проектів з 10 000+ відвідувачів на день.
Як не помилитися з вибором редакції 1С-Бітрікс?
Типові помилки
- Покупка «Старту» під інтернет-магазин — модуль sale відсутній, доведеться або апгрейдити одразу, або костилити через кастомні замовлення.
- Вибір «Малого бізнесу» для проекту, який через півроку виросте до 10 000 товарів — композитний кеш не включити, апгрейд до «Бізнесу» обійдеться в різницю ліцензій плюс робота по налаштуванню.
- Використання «Бізнесу» для лендінгу — переплата за функції, які ніколи не знадобляться.
Чому композитний кеш є must have для високонавантаженого проекту?
Композитний кеш (main.composite) прискорює завантаження сторінок в 10–15 разів порівняно з динамічною генерацією. Для магазину з великим трафіком без композиту сервер починає «потіти»: середній час відповіді зростає, база даних перевантажується, сторінки чекауту падають по таймауту. Композит вирішує проблему кардинально — HTML віддається nginx'ом без запуску PHP. Докладніше про технологію — в офіційній документації. Важливо правильно налаштувати exclude-маски для кошика, особистого кабінету та сторінок, де потрібна актуальність даних. Ми налаштовуємо це на кожному апгрейді до «Бізнес».
Вибір редакції для інтернет-магазину
| Тип магазину |
Рекомендована редакція |
Ключове обмеження |
| До 1000 товарів, трафік до 500 уніків/день |
Малий бізнес |
Нема композитного кешу (TTFB > 500 мс при піках) |
| 1000–10 000 товарів, 500–5000 уніків/день |
Малий бізнес з тюнінгом або Бізнес (одразу) |
Навантаження упирається в PHP-FPM |
| 10 000+ товарів, 5000+ уніків/день |
Бізнес |
Потрібен композит + кластер |
| Маркетплейс, 100 000+ товарів |
Бізнес + веб-кластер |
Горизонтальне масштабування обов'язкове |
Як вибрати редакцію: жорсткі критерії
По модулях:
- Обмін з 1С (
catalog) → мінімум «Малий бізнес»
- Композитний кеш (
main.composite) → тільки «Бізнес»
- Веб-кластер (
cluster) → тільки «Бізнес»
- Багатосайтовість → тільки «Бізнес»
- REST API → тільки «Бізнес»
По навантаженню:
- До 1000 уніків/день — будь-яка редакція впорається
- 1000–10 000 уніків/день — «Малий бізнес» з тюнінгом nginx/php-fpm упирається в стелю. «Бізнес» з композитним кешем — правильний вибір
- 10 000+ уніків/день — тільки «Бізнес» з композитом і кластером
По бюджету:
- Різниця між редакціями — варіюється (наприклад, Старт vs Бізнес — значно)
- Апгрейд у будь-який момент — доплата різниці у вартості ліцензій
- Наш принцип: беріть мінімально достатню. Але якщо знаєте, що через півроку знадобиться композит — беріть «Бізнес» одразу, тому що апгрейд — це ще й робота по налаштуванню
Чому апгрейд редакції вигідний при правильному виборі?
1С-Бітрікс дозволяє підвищувати редакцію без перевстановлення — дані зберігаються. Процес:
- Доплата різниці у вартості ліцензії
- Активація нового ключа: «Налаштування» → «Оновлення» → «Реєстрація»
- Встановлення доступних модулів через адмінку
- Налаштування нового функціоналу
- Тестування сумісності
Що ми робимо при апгрейді:
- Перевіряємо кастомний код на конфлікти з новими модулями — особливо якщо є власні обробники подій
OnBeforeOrderAdd, OnSaleBasketSaved
- Вмикаємо та налаштовуємо композитний кеш — коректні exclude-маски для динамічних сторінок (кошик, чекаут, особистий кабінет)
- Налаштовуємо мультисклад, якщо потрібно —
b_catalog_store, правила вибору складу
- Проганяємо весь функціонал на staging
- Документуємо зміни
Що ви отримуєте в результаті:
- Працюючий сайт на новій редакції без втрати даних
- Налаштований композитний кеш (якщо перейшли на «Бізнес»)
- Протокол тестування та рекомендації щодо подальшої оптимізації
- Доступи до staging та документація щодо змін
Ліцензія: продовження та ризики
Активна ліцензія дає оновлення — нові версії, патчі безпеки, багфікси, доступ до маркетплейсу та техпідтримку вендора. При закінченні сайт продовжує працювати, але залишається без оновлень. Для магазинів це небезпечно — патчі безпеки закривають вразливості в модулях sale, catalog, main. Витік даних з b_sale_order або b_user — питання часу. Продовження коштує значно менше покупки нової ліцензії. Регулярне продовження — страховка від незакритих CVE.
Связка «Управління сайтом» + Бітрікс24
Частий сценарій: сайт на 1С-Бітрікс + CRM в Бітрікс24. Замовлення з b_sale_order автоматично перетворюються на ліди або угоди, працює єдина авторизація, синхронізація клієнтської бази. Форми сайту (form або кастомні) ведуть у воронку CRM. Це дві окремі ліцензії та два окремі продукти — інтеграція між ними штатна і стабільно працює.
Рекомендації з практики
- Не економте на редакції, якщо точно знаєте, що функціонал знадобиться через півроку. Апгрейд редакції — та ж доплата плюс робота по налаштуванню та тестуванню.
- Бізнес для проектів з амбіціями зростання — композитний кеш окупає різницю в ціні при першому стрибку трафіку. Без композиту 3000+ уніків/день — сервер починає потіти.
- Бітрікс24 і «Управління сайтом» — різні продукти, різні ліцензії. Плутанина тут коштує грошей.
- Продовжуйте ліцензію щорічно — вартість продовження значно нижча за покупку нової, а без оновлень ви залишаєтеся з незакритими CVE.
Що ми пропонуємо: підбір та налаштування під ключ
Ми не просто консультуємо — беремо на себе повний цикл: аналіз поточного проекту, підбір редакції, закупівлю ліцензії (якщо потрібно), міграцію, налаштування всіх модулів та навчання команди. В рамках послуги ви отримуєте:
- Акт вибору редакції з обґрунтуванням
- План міграції (якщо апгрейд)
- Розгорнутий staging з новою редакцією
- Налаштування композитного кешу та кластеру (при необхідності)
- Документацію по новій конфігурації
- Гарантію працездатності після переходу
Зателефонуйте нам або залиште заявку — розповімо, яка редакція підійде конкретно під ваш проект, навантаження та плани зростання. Замовте консультацію — оцінимо ваш проект за один день і запропонуємо оптимальну конфігурацію. Отримайте персональний розрахунок вартості підбору та налаштування редакції 1С-Бітрікс прямо зараз.