Проектирование архитектуры проекта на 1С-Битрикс
Архитектурные решения в Битрикс-проекте принимаются один раз — и живут с проектом годами. Выбор между монолитным шаблоном и компонентной архитектурой, между хранением данных в инфоблоках и HL-блоках, между стандартными компонентами и кастомной разработкой — каждое из этих решений определяет стоимость поддержки, возможность масштабирования и скорость добавления новых функций через 2–3 года. Проектирование архитектуры — это фаза, которую нельзя пропускать, если проект планируется как долгосрочный.
Слои архитектуры Битрикс-проекта
Битрикс имеет несколько уровней, и решения на каждом из них влияют на другие.
Уровень данных: инфоблоки, HL-блоки, пользовательские таблицы
Инфоблоки (b_iblock_element, b_iblock_element_property) — гибкий инструмент, но с ценой: EAV-схема плохо масштабируется на больших объёмах. Ключевые решения на этом уровне:
- Какие данные хранятся в инфоблоках, какие — в HL-блоках, какие — в собственных таблицах через D7 ORM (
\Bitrix\Main\ORM\Data\DataManager) - Структура типов инфоблоков и их группировка
- Схема торговых предложений: один инфоблок офферов на всё или раздельные на категории
Уровень логики: компоненты vs. собственный код
Стандартные компоненты Битрикс (bitrix:catalog.section, bitrix:sale.order.ajax, bitrix:form) покрывают типовые сценарии. За их пределами начинается выбор: расширять существующий компонент через шаблон, создавать кастомный компонент (CBitrixComponent) или писать логику в контроллере D7 (\Bitrix\Main\Engine\Controller).
Критерий: если бизнес-логика специфична для проекта и не является переиспользуемой — она не должна быть в шаблоне компонента. Шаблон — это только представление.
Уровень кеширования
Архитектурное решение — какие данные кешируются и как инвалидируются. Варианты в Битрикс:
-
BXCache/CPHPCache— файловый кеш для компонентов -
TaggedCache(\Bitrix\Main\Data\TaggedCache) — инвалидация по тегам -
CacheD7 (\Bitrix\Main\Data\Cache) — унифицированный кеш с поддержкой memcached/Redis - Композитный кеш — статический HTML для анонимных пользователей
Уровень фронтенда
Битрикс поддерживает несколько подходов: классический PHP-шаблон с jQuery, Битрикс-компоненты с BX.ajax, и современный стек — Vue/React через REST API или компоненты с bitrix:ui.*. Выбор влияет на поддерживаемость: фронтенд-разработчик, пришедший на поддержку, должен ориентироваться в том, что вы выбрали.
Многосайтовость и мультирегиональность
Если проект охватывает несколько регионов или языков, архитектурное решение принимается на старте. Битрикс поддерживает:
- Несколько сайтов в одном ядре с общей БД (
b_site) - Языковые версии через механизм
languagesмодуляmain - Региональные сайты с разными доменами и общим контентом
Неправильный выбор (например, разные каталоги для каждого региона вместо одного с региональными ценами) приводит к дублированию данных и проблемам синхронизации.
Кейс: переработка архитектуры e-commerce проекта
Дистрибьютор промышленного оборудования, 2019 год. Проект разрабатывался без явного архитектурного решения: 4 инфоблока каталога для разных категорий товаров, каждый со своим набором свойств-строк, пользовательская логика в init.php, шаблоны компонентов с бизнес-логикой внутри.
К 2022 году: 45 000 элементов суммарно, добавление нового свойства требовало изменений в 4 местах, фильтр не мог работать по свойствам из разных инфоблоков, обмен с 1С — кастомный скрипт на 2 000 строк без документации.
Что сделали при рефакторинге:
- Объединили 4 инфоблока каталога в один с единой схемой свойств через HL-блоки
- Перенесли бизнес-логику из шаблонов в D7-компоненты и сервисные классы в
local/lib/ - Логику в
init.phpразбили на обработчики событий с регистрацией черезAddEventHandler - Настроили фасетный индекс на едином инфоблоке — фильтр стал работать корректно
- Стандартный обмен с 1С через CommerceML заменил кастомный скрипт
Документы, которые производятся на этапе проектирования
- Диаграмма структуры данных: инфоблоки, HL-блоки, связи
- Схема компонентного состава страниц
- Схема кеширования и инвалидации
- Архитектура интеграций: 1С, CRM, сторонние сервисы
- Решения по многосайтовости и мультиязычности
- Обоснование выбора редакции и модулей Битрикс
Срок проектирования: от 1 недели для небольшого проекта до 4–6 недель для enterprise-проекта с несколькими интеграциями и мультисайтовой структурой.







