Кастомні сторінки на D7 у Бітрікс: контролери та маршрутизація

Коли стандартних сторінок недостатньо: реальна проблема На одному проєкті знадобилося створити інтерфейс для управління партнерськими програмами з гнучкими правилами. Стандартні компоненти Бітрікс не підходили — вимагалася складна бізнес-логіка з кастомними правами доступу та інтеграцією з зовніш
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Кастомні сторінки на D7 у Бітрікс: контролери та маршрутизація
Середній
~1-2 тижні

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1018
  • 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
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1162

Коли стандартних сторінок недостатньо: реальна проблема

На одному проєкті знадобилося створити інтерфейс для управління партнерськими програмами з гнучкими правилами. Стандартні компоненти Бітрікс не підходили — вимагалася складна бізнес-логіка з кастомними правами доступу та інтеграцією з зовнішніми API. Ручне створення admin-файлів призвело б до дублювання коду та проблем з оновленнями. Ми обрали підхід на D7 — контролери з маршрутизацією, вбудованим захистом від CSRF та модульною архітектурою. Розробка зайняла 5 днів замість очікуваних 2 тижнів. Економія бюджету склала близько $2000. Наші інженери мають сертифікати «1С-Бітрікс» та досвід роботи з D7 з моменту виходу платформи. Команда має 7+ років досвіду з 1С-Бітрікс та реалізувала понад 50 проєктів. Зв'яжіться з нами, щоб отримати аналогічний результат.

Чому варто обрати MVC Controller у Бітрікс?

Контролер позбавляє шаблонного коду: перевірка прав через prefilters, автоматичний CSRF, підтримка JSON та сесій. У класичному admin-файлі ви самі викликаєте bitrix_sessid_post() та перевіряєте права. Досвід нашої команди (понад 50 проєктів) показує, що перехід на контролери скорочує час розробки в 2-3 рази порівняно з admin-файлами (у середньому на 1–2 дні на сторінку). Гарантуємо стабільність при оновленнях ядра — всі prefilters та маршрути керуються кодом, а не файлами. Крім того, знижуються витрати на супровід на 20–30% за рахунок однакової структури.

Як створити кастомну сторінку на D7? Два підходи

Класичний admin-файл (/bitrix/admin/my_page.php) — найпростіший варіант, придатний для допоміжних інструментів. Він не вимагає налаштування маршрутизації, але вся перевірка прав та CSRF лягає на розробника.

<?php require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"); use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; Loader::includeModule('my.module'); // Проверка прав if (!$APPLICATION->IsAdminPage() || !\CMain::GetUserRight("main") >= "S") { $APPLICATION->AuthForm("Доступ запрещён"); } $APPLICATION->SetTitle("Мой инструмент"); require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"); // Вывод содержимого страницы ?> <form method="post" action="<?= $APPLICATION->GetCurPage() ?>"> <?= bitrix_sessid_post() ?> <!-- поля формы --> <input type="submit" value="Выполнить"> </form> <?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"); 

MVC через Controller — правильний шлях для сторінок з логікою.

namespace MyProject\Controllers; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Engine\ActionFilter; class ReportController extends Controller { public function configureActions(): array { return [ 'getReport' => [ 'prefilters' => [ new ActionFilter\Authentication(), new ActionFilter\HttpMethod(['GET', 'POST']), new ActionFilter\Csrf(), ], ], ]; } public function getReportAction(int $periodDays = 30): array { $data = \MyProject\Services\ReportService::build($periodDays); return ['data' => $data, 'total' => count($data)]; } } 

Контролер автоматично обробляє запити, перевіряє CSRF-токен та повертає JSON. Маршрут реєструється через \Bitrix\Main\Routing\Router::getInstance()->add().

Покрокова інструкція: створення контролера для кастомної сторінки

  1. Визначте namespace та клас контролера, успадкувавши його від \Bitrix\Main\Engine\Controller.
  2. Реалізуйте метод configureActions(), задавши prefilters для перевірки прав та CSRF.
  3. Створіть action-методи (наприклад, getListAction, saveAction) з валідацією параметрів.
  4. Зареєструйте маршрут у файлі local/routes.php або через Router::add().
  5. Налаштуйте права доступу за допомогою ActionFilter\Permission або кастомних фільтрів.
  6. Інтегруйте UI: для списків використовуйте CAdminList, для форм — CAdminForm.

Посторінкова навігація та UI: інтеграція з D7

Для списків даних використовуйте \Bitrix\Main\UI\PageNavigation:

use Bitrix\Main\UI\PageNavigation; $nav = new PageNavigation('page'); $nav->allowAllRecords(false) ->setPageSize(20) ->initFromUri(); $result = \MyProject\Storage\OrderLogTable::getList([ 'select' => ['*'], 'order' => ['ID' => 'DESC'], 'count_total' => true, 'offset' => $nav->getOffset(), 'limit' => $nav->getLimit(), ]); $nav->setRecordCount($result->getCount()); 

Для адміністративних сторінок зі списками — готовий UI через CAdminList та CAdminFilter.

Порівняння підходів: admin-файл vs Controller

Критерій Класичний admin-файл MVC Controller
Безпека Ручний CSRF Вбудовані prefilters
Підтримка Складніше Модульна
Швидкість розробки Швидко для простих завдань Швидше для складних
Оновлення ядра Ризик поломки Стабільність

Терміни та вартість

Тип завдання Орієнтовний термін Орієнтовна вартість
Проста admin-сторінка (форма + вивід даних) 2–3 дні від $500
Сторінка зі списком, посторінкою, фільтром та діями 4–7 днів від $900
Повний CRUD-інтерфейс для кастомної сутності з правами та логами 1.5–2.5 тижні від $1500

Вартість розраховується індивідуально. В середньому економія часу на супроводі становить 20–30% порівняно з класичним підходом. Докладніше про переваги D7 читайте в офіційній документації 1С-Бітрікс та на Wikipedia.

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

  • Проектування архітектури сторінки (контролери, маршрути, шаблони)
  • Реалізація бізнес-логіки на D7 з урахуванням кешування та прав доступу
  • Інтеграція з UI Бітрікс (CAdminList, фільтри, посторінкова навігація)
  • Документація по API та структурі коду
  • Передача доступів (репозиторій, БД, адмінка)
  • Навчання команди підтримці сторінки
  • Гарантія 3 місяці на функціональність
Додаткові відомості про безпеку У контролерах D7 можна налаштовувати prefilters для перевірки прав доступу, наприклад `ActionFilter\Authentication` та `ActionFilter\Csrf`. Це виключає помилки, пов'язані з ручною перевіркою. Крім того, контролери підтримують роботу з сесіями та автоматичний захист від XSS.

Кастомна сторінка на D7 — це не заміна компонентній системі. Це інструмент для завдань, які не вкладаються в стандартну модель: інструменти адміністратора, інтерфейси імпорту, дашборди з агрегованими даними. Написані правильно, вони не конфліктують з ядром при оновленнях. Отримайте консультацію по вашому проєкту — оцінимо складність та терміни за 1 день. Запишіться на безкоштовну демонстрацію.