Проектирование архитектуры проекта на 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) — инвалидация по тегам -
CacheD7 (\Bitrix\Main\Data\Cache) — унифицированный кеш с поддержкой memcached/Redis - Композитный кеш — статический HTML для анонимных пользователей
Правильно настроенное кеширование ускоряет загрузку страниц в 5–10 раз и снижает нагрузку на сервер. Сравним методы:
| Метод кеширования | Скорость (усл. ед.) | Сложность настройки | Инвалидация |
|---|---|---|---|
| Файловый (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 строк без документации. Стоимость проектирования для такого проекта — от 150 000 до 500 000 ₽, что в итоге окупается за счёт снижения затрат на поддержку.
Реализованное решение:
- Объединили 4 инфоблока в один с единой схемой свойств через HL-блоки
- Перенесли бизнес-логику из шаблонов в D7-компоненты и сервисные классы в
local/lib/ - Логику в
init.phpразбили на обработчики событий с регистрацией черезAddEventHandler - Настроили фасетный индекс на едином инфоблоке — фильтр заработал корректно
- Стандартный обмен с 1С через CommerceML заменил кастомный скрипт
Результат: время загрузки страниц сократилось в 4 раза, экономия на поддержке — порядка 40% (примерно 200 000 ₽ в год). Весь проект масштабируется без переписывания кода. Если вы столкнулись с похожими проблемами, получите консультацию — мы поможем перепроектировать архитектуру.
Включено в работу на этапе проектирования
- Анализ бизнес-требований и прогнозируемых нагрузок
- Диаграмма структуры данных: инфоблоки, HL-блоки, связи
- Схема компонентного состава страниц
- Схема кеширования и инвалидации
- Архитектура интеграций: 1С, CRM, платежные шлюзы
- План миграции (если проект не с нуля)
- Документация и передача команде разработки
Сроки ориентировочно
Проектирование занимает от 1 недели для типового проекта до 4–6 недель для enterprise-систем с несколькими интеграциями и мультисайтовой структурой. Стоимость рассчитывается индивидуально. У нас 10+ лет опыта с Битрикс, сертификация 1С-Битрикс Эксперт, гарантия на архитектурные решения. Закажите проектирование архитектуры — и ваш проект будет готов к росту.







