Розробка сайту на 1С-Бітрікс: архітектура, продуктивність

Коли ми беремося за проєкт на Бітріксі, перше питання — не "який шаблон", а "як спроєктувати структуру даних так, щоб через рік не переписувати фільтри"? Один невдалий інфоблок з 30 властивостями — і `b_iblock_element_property` розростається до мільйонів рядків. `CIBlockElement::GetList` виконуєт
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка сайту на 1С-Бітрікс: архітектура, продуктивність
Складний
від 1 тижня до 3 місяців

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

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

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

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

Коли ми беремося за проєкт на Бітріксі, перше питання — не "який шаблон", а "як спроєктувати структуру даних так, щоб через рік не переписувати фільтри"?

Один невдалий інфоблок з 30 властивостями — і b_iblock_element_property розростається до мільйонів рядків. CIBlockElement::GetList виконується 4 секунди, а фасетний індекс не рятує, тому що властивості-прив'язки не потрапили до b_catalog_sm_*. Переробити на продакшені — переписувати шаблони, фільтри, SEO-правила. Дешевше спроєктувати один раз. Наш досвід показує: правильна архітектура економить до 40% бюджету на підтримку. Типові наслідки неправильної архітектури — зростання часу завантаження сторінок, падіння конверсії та перевитрата бюджету на доробки.

Чому вибір типу зберігання визначає продуктивність?

Це не абстрактне питання. Від нього залежить, які компоненти працюватимуть "з коробки", а які доведеться писати з нуля. Помилка на етапі проектування може коштувати місяців переписування коду.

Інфоблоки зберігають властивості в EAV-таблиці b_iblock_element_property. Для 5 000 товарів з 10 властивостями — 50 000 рядків, MySQL справляється. Для 80 000 товарів з 25 властивостями — 2 000 000 рядків, JOIN-и при фільтрації дають секунди. Зате інфоблоки дають SEO-обв'язку, візуальний редактор, компоненти каталогу.

Highload-блоки — плоска таблиця, колонка на властивість. Індекси ефективні, фільтрація 200 000 записів за 30-80 мс. Немає наслідування властивостей розділів, немає штатного SEO-модуля. Ідеально для довідників (міста, бренди).

D7 ORM (Bitrix\Main\ORM\Data\DataManager) — для сутностей, які не вписуються в інфоблоки або HL-блоки. Заявки зі зв'язками, кастомні логи, агрегації. Повний контроль, але адмінка малюється вручну.

Критерій Інфоблоки Highload-блоки D7 ORM
Швидкість фільтрації 100К+ товарів 1-3 с (з фасет. індексом 50-200 мс) 30-80 мс Залежить від запиту
Штатні компоненти каталогу Так Ні Ні
SEO-модуль Так Ні Ні
Довільні зв'язки Обмежені По полю Повноцінні

Як Бітрікс порівнюється з WordPress та Laravel?

WordPress — теж EAV через wp_postmeta, але без штатного e-commerce рівня. WooCommerce — плагін. Бітрікс дає модуль catalog з торговими пропозиціями, типами цін, складським обліком, обміном з 1С через CommerceML. Для компаній, які живуть у 1С:Підприємство, це вирішальний аргумент.

Laravel — фреймворк, не CMS. Свобода архітектури, але каталог, корзина, права доступу, обмін з 1С пишуться з нуля. На проєкті з бюджетом 4-6 місяців і командою з 3 осіб Laravel виправданий. Для корпоративного сайту, який потрібен через 2 місяці, Бітрікс швидше. Не краще — швидше при типових задачах.

Принципова відмінність — компонентний підхід. bitrix:catalog.section — готова зв'язка контролер + модель + кешування. Підключається в шаблон, налаштовується через $arParams, кастомізується в template.php. Бізнес-логіка — в result_modifier.php або в кастомному модулі local/modules/. Шаблон — в local/templates/. Не в ядрі, ніколи в ядрі.

Як ми забезпечуємо продуктивність до першого коміту?

Оптимізувати після запуску дорого. Ось що закладаємо в архітектуру:

Кешування — три рівні: керований кеш компонентів, загальний кеш (memcached/Redis), композитний сайт. Композит віддає HTML без ініціалізації ядра — час відповіді падає з 200 мс до 15-30 мс.

Статика — CDN для /upload/, /bitrix/js/, /bitrix/css/. WebP через CFile::ResizeImageGet(). Lazy loading. Винос статики на CDN знімає 40-60% навантаження з веб-сервера.

База даних — складені індекси на часто фільтровані властивості. EXPLAIN на кожен важкий запит. Для каталогів понад 50 000 товарів — фасетні індекси (Bitrix\Catalog\Model\SmartFilter), фільтрація з 3 секунд перетворюється на 50 мс.

PHP — OPcache з JIT на PHP 8.1+, realpath_cache_size=4096K. Перевірка через панель "Продуктивність" → "PHP".

Кейс: прискорення каталогу в 6 разів

Для клієнта з каталогом 120 000 товарів і 40 властивостями ми перевели фільтрацію з інфоблоків на Highload-блоки з фасетними індексами. Час завантаження сторінки каталогу впав з 4.2 с до 0.7 с. Додатково налаштували композитний кеш для неавторизованих користувачів — перший байт став 25 мс. Економія на підтримці склала до 30% річного бюджету.

Докладніше про композитний режим читайте в офіційній документації.

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

  • Аналіз вимог і проектування архітектури даних
  • Розробка дизайну та адаптивна верстка
  • Створення кастомних компонентів і модулів
  • Інтеграція з 1С (CommerceML), платіжними системами, службами доставки
  • Налаштування кешування, CDN, композитного режиму
  • Тестування (функціональне, навантажувальне, безпека)
  • Документація та навчання адміністраторів
  • Гарантійна підтримка 12 місяців

Етапи та терміни

  1. Аналітика та проектування (1-2 тижні) — специфікація інфоблоків, інтеграцій, прототипи
  2. Дизайн (1-3 тижні) — UI/UX, дизайн-система
  3. Розробка (3-8 тижнів) — спринти по 2 тижні, демо на staging
  4. Тестування (1-2 тижні) — PageSpeed, Lighthouse, WebPageTest
  5. Запуск (3-5 днів) — деплой, моніторинг, стабілізація
Масштаб проєкту Терміни
Корпоративний сайт, 10-20 сторінок 6-10 тижнів
Каталог з фільтрацією, до 10 000 товарів 8-14 тижнів
Інтернет-магазин з 1С 12-20 тижнів
B2B-портал з кабінетом 14-24 тижні

Терміни коригуються після аналізу вимог. Вартість розраховується індивідуально — занадто багато змінних для шаблонних цифр.

Типові помилки в проєктах на Бітрікс

  • Бізнес-логіка в template.php. Розрахунок знижок, перевірка прав — виносимо в result_modifier.php або сервісний клас модуля.
  • Прямі SQL-запити ($DB->Query()) замість D7 ORM. Втрачається кешування, типобезпека, ін'єкції.
  • Один гігантський init.php на 2000 рядків. Переносимо в модуль з автозавантаженням.
  • Кеш без тегів. Використовуємо SetResultCacheKeys() та CIBlock::clearIblockTagCache().
  • Оновлення ядра без staging. Завжди staging, потім продакшен.

Наші інженери мають сертифікацію 1С-Бітрікс та 10+ років комерційного досвіду. Ми гарантуємо якість та дотримання термінів.

Замовте сайт на Бітрікс — отримайте консультацію та оцінку проєкту за 2 дні. Зв'яжіться з нами, щоб обговорити деталі.