Проектування архітектури проекту на 1С-Бітрікс

Проектування архітектури проекту на 1С-Бітрікс Ми часто бачимо проекти, де архітектурні рішення приймалися на ходу. Через рік сайт починає гальмувати на каталозі з 50 000 товарів, додавання нової властивості вимагає правки в чотирьох місцях, а обмін з 1С — скрипт на 2000 рядків без документації.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Проектування архітектури проекту на 1С-Бітрікс
Середній
~2-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

Проектування архітектури проекту на 1С-Бітрікс

Ми часто бачимо проекти, де архітектурні рішення приймалися на ходу. Через рік сайт починає гальмувати на каталозі з 50 000 товарів, додавання нової властивості вимагає правки в чотирьох місцях, а обмін з 1С — скрипт на 2000 рядків без документації. Найчастіше проблеми проявляються не одразу. На етапі запуску все працює, але через півроку активної роботи каталогу з 50 000 товарів і 20 000 відвідувачами на день починаються падіння. Причина — неоптимальна структура інфоблоків, відсутність кешування та бізнес-логіка, розмазана по шаблонах. Результат: кожен запит генерує 30+ SQL-запитів, сторінка завантажується 5–7 секунд. Відвідувачі йдуть, конверсія падає, підтримка захлинається в баг-репортах. Кожна нова властивість — біль, кожен обмін з 1С — стрес. Навантаження 20 000 відвідувачів на день — не межа: при пікових значеннях у свята сайт може лягти повністю. Ми проектуємо архітектуру так, щоб цього не сталося. Зв'яжіться — безкоштовно оцінимо ваш проект.

Шари архітектури Бітрікс-проекту

Бітрікс має кілька рівнів, і рішення на кожному впливають на інші. Розглянемо ключові.

Рівень даних: інфоблоки, HL-блоки, користувацькі таблиці

Інфоблоки (b_iblock_element, b_iblock_element_property) — гнучкий EAV, але на великих обсягах (>100 000 елементів) продуктивність падає. Ключові рішення:

  • Розподіл даних: інфоблоки для основного контенту, HL-блоки для довідників, власні таблиці через D7 ORM (\Bitrix\Main\ORM\Data\DataManager)
  • Структура типів інфоблоків та їх групування
  • Схема торгових пропозицій: один інфоблок оферів на все або роздільні на категорії
Сховище Коли використовувати Коли уникати
Інфоблоки (EAV) Каталоги товарів, контент з багатьма властивостями Дані з високим навантаженням на запис, великі обсяги (>100 000 елементів)
HL-блоки (Highload) Довідники, списки значень, допоміжні дані Ієрархічні дані, де потрібна вкладеність
Власні таблиці ORM Логіка замовлень, кошик, аудит Прості довідники

В офіційній документації 1С-Бітрікс підкреслюється: «Інфоблоки призначені для зберігання контентних даних, а HL-блоки — для довідників та допоміжних сутностей». Сховище на HL-блоках працює в 3 рази швидше при вибірці 10 000 записів, ніж EAV-інфоблок з десятком властивостей.

Рівень логіки: компоненти vs. власний код

Стандартні компоненти (bitrix:catalog.section, bitrix:sale.order.ajax) покривають типові сценарії. За їх межами обирають: розширювати шаблон, створювати кастомний компонент (CBitrixComponent) або писати контролер D7 (\Bitrix\Main\Engine\Controller). Критерій: бізнес-логіка, специфічна для проекту, не повинна бути в шаблоні — шаблон тільки для представлення.

Як вибрати між інфоблоками та HL-блоками?

Вибір визначається типом даних та навантаженням. Інфоблоки — для каталогів з гнучкими властивостями, але при >100 000 елементів і частих запитах на вибірку за властивостями краще використовувати HL-блоки або власні таблиці. Наприклад, для довідника регіонів з 200 записами підійде HL-блок, а для каталогу товарів з 50 000 позицій — інфоблок з фасетним індексом. Ми завжди проводимо навантажувальне тестування.

Рівень кешування

Архітектурне рішення — які дані кешувати і як інвалідувати. Варіанти:

  • BXCache/CPHPCache — файловий кеш для компонентів
  • TaggedCache (\Bitrix\Main\Data\TaggedCache) — інвалідація за тегами
  • Cache D7 (\Bitrix\Main\Data\Cache) — уніфікований кеш з підтримкою memcached/Redis
  • Композитний кеш — статичний HTML для анонімних користувачів

Правильно налаштоване кешування прискорює завантаження сторінок у 5–10 разів і знижує навантаження на сервер. Теговане кешування працює в 3 рази швидше за файловий кеш при високому навантаженні. Порівняємо методи:

Метод кешування Швидкість (ум. од.) Складність налаштування Інвалідація
Файловий (BXCache) 50 Низька Ручна
Тегований (TaggedCache) 80 Середня Автоматична за тегами
Redis/Memcached 95 Висока Автоматична за ключами
Композитний 100 (для анонімів) Середня Повний скид при змінах
Приклад архітектурного рішення для кешування Для каталогу з 50 000 товарів ми використовуємо теговане кешування з інвалідацією за змінами в інфоблоці. Композитний кеш вмикається для анонімних користувачів. Результат: час завантаження сторінок <1 секунди.

Чому кешування – основа швидкого Бітрікс-проекту?

Без кешування кожен запит до сторінки каталогу генерує десятки SQL-запитів. На каталозі в 50 000 товарів час відповіді може перевищувати 5 секунд. Теговане кешування дозволяє інвалідувати лише змінені блоки, а композитний кеш віддає статику анонімним користувачам. У наших проектах час завантаження сторінок не перевищує 1 секунди. Якщо ви впізнали свій проект у цьому описі, отримайте консультацію — ми підкажемо, як виправити архітектуру.

Рівень фронтенду

Бітрікс підтримує кілька підходів: класичний PHP-шаблон з jQuery, компоненти з BX.ajax, і сучасний стек — Vue/React через REST API. Вибір впливає на підтримуваність: фронтенд-розробник на підтримці повинен орієнтуватися в прийнятому рішенні.

Як реалізувати багатосайтовість та мультирегіональність?

Якщо проект охоплює кілька регіонів або мов, архітектурне рішення приймається на старті. Бітрікс підтримує кілька сайтів в одному ядрі зі спільною БД, мовні версії через модуль main, регіональні сайти з різними доменами. Неправильний вибір (наприклад, різні каталоги для кожного регіону замість одного з регіональними цінами) призводить до дублювання та проблем синхронізації.

Кейс: переробка архітектури e-commerce проекту

Наш клієнт, дистриб'ютор промислового обладнання, мав проект без явного архітектурного рішення: 4 інфоблоки каталогу для різних категорій, кожен зі своїм набором рядкових властивостей, бізнес-логіка в init.php, шаблони компонентів з логікою всередині. На момент рефакторингу: 45 000 елементів сумарно, додавання нової властивості — правки в 4 місцях, фільтр не працював за властивостями з різних інфоблоків, обмін з 1С — кастомний скрипт на 2 000 рядків без документації. Вартість проектування для такого проекту визначається індивідуально, що в підсумку окупається за рахунок зниження витрат на підтримку.

Реалізоване рішення:

  1. Об'єднали 4 інфоблоки в один з єдиною схемою властивостей через HL-блоки
  2. Перенесли бізнес-логіку з шаблонів у D7-компоненти та сервісні класи в local/lib/
  3. Логіку в init.php розбили на обробники подій з реєстрацією через AddEventHandler
  4. Налаштували фасетний індекс на єдиному інфоблоці — фільтр запрацював коректно
  5. Стандартний обмін з 1С через CommerceML замінив кастомний скрипт

Результат: час завантаження сторінок скоротився в 4 рази, економія на підтримці — близько $15 000 на рік. Весь проект масштабується без переписування коду. Якщо ви зіткнулися зі схожими проблемами, отримайте консультацію — ми допоможемо перепроектувати архітектуру.

Що входить в роботу на етапі проектування

  • Аналіз бізнес-вимог та прогнозованих навантажень
  • Діаграма структури даних: інфоблоки, HL-блоки, зв'язки
  • Схема компонентного складу сторінок
  • Схема кешування та інвалідації
  • Архітектура інтеграцій: 1С, CRM, платіжні шлюзи
  • План міграції (якщо проект не з нуля)
  • Документація та передача команді розробки
  • Надання доступів до репозиторію та документації, навчання команди розробки основам архітектури, супровід на етапі впровадження

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

Проектування займає від 1 тижня для типового проекту до 4–6 тижнів для enterprise-систем з кількома інтеграціями та багатосайтовою структурою. Вартість проектування стартує від $1,000 для невеликих проектів та може сягати $10,000 для enterprise-рішень. У нас 10+ років досвіду з Бітрікс, сертифікація 1С-Бітрікс Експерт, гарантія на архітектурні рішення. Замовте проектування архітектури — і ваш проект буде готовий до зростання.