Комплексний компонент Бітрікс: SEF, кешування, права доступу

Ви закінчили розробку каталогу на 1С-Бітрікс, але SEF-URL не працюють як треба: детальні сторінки отримують URL виду /catalog/?ELEMENT_ID=123. Пошукові системи не індексують такі адреси, а клієнти не запам'ятовують посилання. Додавання нового типу сторінок (наприклад, пошуку) вимагає переписування л
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Комплексний компонент Бітрікс: SEF, кешування, права доступу
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1421
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    999
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    737
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    864
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    775
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1138

Ви закінчили розробку каталогу на 1С-Бітрікс, але SEF-URL не працюють як треба: детальні сторінки отримують URL виду /catalog/?ELEMENT_ID=123. Пошукові системи не індексують такі адреси, а клієнти не запам'ятовують посилання. Додавання нового типу сторінок (наприклад, пошуку) вимагає переписування логіки компонента. Це типова біль при роботі зі звичайними компонентами. Комплексний компонент (bitrix:news, bitrix:catalog) вирішує ці проблеми одразу: чітка структура URL, розділення логіки, управління кешем.

Ми реалізували понад 50 комплексних компонентів для інтернет-магазинів, корпоративних порталів та B2B-кабінетів. Наш досвід гарантує стабільність на високих навантаженнях та легку підтримку. Нижче — технічні деталі, які допоможуть зрозуміти, чому варто замовити розробку комплексного компонента.

Розробка комплексного компонента 1С-Бітрікс: від SEF до кешування

Комплексний компонент — це точка монтування, яка автоматично вибирає потрібний дочірній компонент залежно від URL. Розуміння цієї механіки — ключ до правильної реалізації багатосторінкового функціоналу.

Як працює механізм SEF в комплексному компоненті?

SEF-URL налаштовується через файл page_templates.php, де задаються шаблони URL для кожного типу сторінки. Наприклад, для детальної сторінки — #ELEMENT_CODE#/. В component.php диспетчер аналізує поточний URL і зіставляє його з шаблонами, визначаючи тип сторінки та витягуючи змінні.

<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); $arSefTemplates = [ 'list' => '', 'detail' => '#ELEMENT_CODE#/', 'section' => '#SECTION_CODE#/', 'search' => 'search/', ]; 

Бітрікс використовує $arCurrentValues['PAGE_ELEMENT_TYPE'] для зберігання визначеного типу сторінки. Комплексний компонент у 3 рази спрощує додавання нових сторінок порівняно зі звичайним.

Диспетчер component.php

<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); $this->setFrameMode(true); if ($arParams['SEF_MODE'] === 'Y') { // ... парсинг поточного URL $page = 'list'; if (isset($arVariables['ELEMENT_CODE']) && $arVariables['ELEMENT_CODE']) { $page = 'detail'; } elseif (isset($arVariables['SECTION_CODE']) && $arVariables['SECTION_CODE']) { $page = 'section'; } } else { $page = $arParams['PAGE_ELEMENT_TYPE']; } $this->includePageTemplate($page); 

Дочірні компоненти та кешування

Файл templates/.default/page_templates/list.php викликає дочірній компонент списку. Критично важливо передавати параметр $component (посилання на батьківський компонент) — інакше кеш дочірніх компонентів не буде скидатися при змінах у батьківському.

<?php $APPLICATION->IncludeComponent('custom:my.section.list', '', [ 'IBLOCK_ID' => $arParams['IBLOCK_ID'], 'PAGE_SIZE' => $arParams['PAGE_SIZE'], 'CACHE_TIME' => $arParams['CACHE_TIME'], 'SET_TITLE' => 'Y', 'SET_BROWSER_TITLE' => 'Y', // ... ], $component); 

Кеш-ключ дочірнього компонента повинен включати змінні з URL (ELEMENT_CODE, SECTION_CODE), інакше всі сторінки показуватимуть однакову кешовану відповідь. Комплексний компонент забезпечує теговане кешування: при зміні одного елемента скидається лише його кеш, а не всього розділу.

Чому важливі права доступу та обробка 404?

Якщо розділ вимагає авторизації (особистий кабінет, B2B), перевірка прав виконується в диспетчері до виклику дочірніх компонентів:

<?php global $USER; if (!$USER->IsAuthorized()) { LocalRedirect(SITE_DIR . 'login/?backurl=' . urlencode($APPLICATION->GetCurPage())); } 

При відсутності елемента або розділу компонент повинен віддавати коректний 404, що критично для SEO та користувацького досвіду. Неправильна обробка 404 — часта помилка, через яку пошукові системи індексують «биті» сторінки. Офіційна документація 1С-Бітрікс рекомендує завжди перевіряти існування елемента перед формуванням сторінки.

Порівняння звичайного та комплексного компонента

Параметр Звичайний компонент Комплексний компонент
SEF-URL Налаштовується вручну, складно Автоматично, шаблони URL
Кешування Індивідуальне для кожного виклику Теговане, з урахуванням батьківського
Додавання нових сторінок Вимагає переписування логіки Просте додавання шаблону
Підтримка Висока зв'язаність Модульна архітектура

Комплексний компонент у 2–3 рази скорочує час на доопрацювання та збільшує продуктивність за рахунок ефективного кешування.

Як створити комплексний компонент: покрокова інструкція

  1. Аналіз вимог та структура URL. Визначте, які типи сторінок потрібні (список, детальна, розділ, пошук) та їх URL-шаблони.
  2. Створення SEF-шаблонів. У файлі page_templates.php пропишіть шаблони для кожного типу.
  3. Написання диспетчера component.php. Реалізуйте логіку визначення поточного типу сторінки та виклику відповідного шаблону.
  4. Розробка дочірніх компонентів. Для кожного типу створіть свій шаблон з викликом IncludeComponent та передачею $component.
  5. Налаштування кешування. Додайте тегований кеш та переконайтеся, що дочірні компоненти прив'язані до батьківського.
  6. Обробка помилок та прав доступу. Перевірте 404, авторизацію, мультисайтовість.
  7. Тестування. Перевірте всі сценарії: пусті списки, неіснуючі елементи, права доступу.
  8. Документація. Опишіть архітектуру, параметри та приклади виклику.

Типові помилки при розробці комплексного компонента

  • Забувають передати $component в дочірні компоненти — кеш не скидається.
  • Не очищають кеш після додавання нових шаблонів.
  • Ігнорують мультисайтовість — на різних сайтах може знадобитися різна логіка.
  • Не перевіряють права доступу в диспетчері — користувач може отримати 404 замість форми входу.

Що входить в роботу?

На виході ви отримуєте:

  • Технічне завдання з архітектурою компонента
  • Вихідний код компонента з коментарями
  • SEF-шаблони для всіх типів сторінок
  • Налаштоване кешування та права доступу
  • Документацію з інтеграції та підтримку протягом 1 місяця

Орієнтовні терміни: для 2 типів сторінок (list + detail) — 1–2 тижні, для 3–4 типів — 2–4 тижні, для повноцінного розділу з AJAX та фільтрами — 4–8 тижнів. Конкретна вартість розраховується індивідуально. Зв'яжіться з нами для консультації — ми допоможемо вибрати оптимальну архітектуру під вашу задачу.

Тип Що реалізується Термін
2 типи сторінок (list + detail) SEF, кеш, параметри, шаблони 1–2 тижні
3–4 типи сторінок + розділ, пошук, права доступу 2–4 тижні
Повноцінний розділ (ОК, каталог) + AJAX, авторизація, фільтри 4–8 тижнів

Комплексний компонент — це правильна архітектура для будь-якого розділу сайту, який планують підтримувати та розвивати. Він у рази спрощує додавання нових сторінок та інтеграцій. Отримайте консультацію — ми розповімо, як покращити ваш проект.

Для поглибленого вивчення рекомендуємо офіційну документацію 1С-Бітрікс по компонентам та Wikipedia.