Тема
Наша CMS vs 1С-Битрикс — сравнение по 55 параметрам
Честное сравнение проектируемой CMS (v2, реализация на волне 20 из 23 фазы 1) с 1С-Битрикс: Управление сайтом (+ REST-механики Битрикс24, где уместно). Столбец «Впереди»: 🟢 — мы, 🔴 — Битрикс, 🟡 — паритет/зависит от контекста. Важно держать в голове асимметрию: Битрикс — 20 лет продакшена и огромная экосистема; у нас — современная архитектура без легаси, но не проверенная боем. Связанные доки: уроки Bitrix24 REST, исследование ядер, выбор пути.
A. Платформа и стек
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 1 | Язык / версия PHP | PHP 8.1+, но ядро тянет легаси-код с 2000-х | PHP 8.4, строгая типизация, larastan | 🟢 |
| 2 | Фреймворк | Собственный (bitrix/main + D7), вне PHP-мейнстрима | Laravel 13 — мейнстрим, LTS-цикл, экосистема пакетов | 🟢 |
| 3 | СУБД | MySQL/MariaDB исторически; PostgreSQL — недавно (импортозамещение) | PostgreSQL 16 нативно: JSONB, GIN, generated/functional index | 🟢 |
| 4 | ORM | Двойное ядро: легаси CDatabase + D7 ORM параллельно | Один Eloquent + контракты репозиториев | 🟢 |
| 5 | Миграции схемы | Нет штатных: инфоблоки создаются руками, перенос dev→prod — известная боль | Laravel migrations + обязательный down(); типы контента — данные, не DDL | 🟢 |
| 6 | Шаблонизация | PHP-шаблоны компонентов (result_modifier.php, .default) — код и вёрстка смешаны | Blade + токены темы, линтер {!! !!} | 🟢 |
| 7 | Админка | Собственная, тяжёлая, UX из 2010-х; Эрмитаж — inline-редактирование на публичке | Filament 5 — современная, генерируется из схем | 🟢 |
| 8 | Фронтенд-стек | jQuery-эпоха, BX.js; свой бандлер | Vite 8, Tailwind 4, Alpine + React-острова, Inertia в кабинетах | 🟢 |
| 9 | Инфраструктура | «БитриксВМ»/VMBitrix, требователен к хостингу | Эталонный Docker (PHP 8.4), Horizon, Redis 7 | 🟢 |
| 10 | Тесты ядра и культура тестов | Публичных тестов ядра нет; культура тестов в экосистеме слабая | Pest в гейте каждой волны (138+ тестов), CI обязателен, изоляция тестовой БД | 🟢 |
B. Архитектура ядра
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 11 | Модульность | Зрелая: ядро + модули (sale, catalog, iblock…), 20 лет обкатки | Та же модель (осознанно взята), но манифест богаче: requires/conflicts/provides/capabilities | 🟡 |
| 12 | Изоляция кастома от ядра | /local над /bitrix — их лучшая идея, взята нами | app/Local/ + классы вместо init.php-свалки | 🟡 |
| 13 | Права модуля | Модуль = ядро по правам, пишет куда угодно | Capability-слой: декларация прав, статический анализ запретов | 🟢 |
| 14 | События | EventManager, регистрация на хит или в БД; без типизации payload | Типизированные DTO-события, #[CmsListener(priority, before, after)], semver payload | 🟢 |
| 15 | Фильтры значений | EventResult — неявный, без цепочки | FilterBus (аналог WP-filters на Pipeline) — явные именованные точки | 🟢 |
| 16 | Реестр точек расширения | Нет — знание «какие события есть» тribal | php artisan cms:hooks — machine-readable реестр | 🟢 |
| 17 | Кастомные поля / сущности | Инфоблоки на EAV — главный антипаттерн производительности на больших каталогах | JSONB + GIN + functional index; один движок полей на блоки/типы/формы | 🟢 |
| 18 | Ревизии контента | Документооборот/версии только в старших редакциях, для инфоблоков — ограниченно | Ревизии страниц в ядре: draft/publish/rollback/preview-токен | 🟢 |
| 19 | DI-контейнер | Частичный (ServiceLocator в D7) | Полный (Laravel container), контракты core-contracts | 🟢 |
| 20 | Деградация при сбое модуля | «Белый экран смерти» возможен | Инвариант: fallback-заглушка блока вместо 500, изоляция boot/render/listener | 🟢 |
| 21 | Планировщик | «Агенты» — исполняются на хитах посетителей (классическая боль), cron надо настраивать отдельно | Laravel Scheduler через хук ядра, очереди Horizon | 🟢 |
| 22 | Зрелость архитектуры в бою | 20 лет, сотни тысяч установок — все грабли собраны | Не проверена: волна 20, ноль клиентских сайтов | 🔴 |
C. API и интеграции
| # | Параметр | Битрикс (УС + Б24 REST) | Наша CMS | Впереди |
|---|---|---|---|---|
| 23 | REST API | В УС пришёл поздно и урезан; полноценный REST — только в Битрикс24 | /api/v1 в ядре с волны 9: конверт, ресурсы, health | 🟢 |
| 24 | Batch | Есть, самый используемый метод Б24 (50 команд, $result[...]) | Запланирован (волна 24), упрощённый — без зависимых цепочек | 🔴 |
| 25 | Пагинация | Offset, страница всегда 50; start=-1 как костыль против COUNT | cursorPaginate из коробки, опциональный total | 🟢 |
| 26 | Вебхуки исходящие | Online-события: без ретраев, без гарантий доставки | HMAC + timestamp, ретраи с backoff, dead-letter, журнал | 🟢 |
| 27 | Очередь для массовых синков | Offline-события с компакцией состояния — сильная механика | Только запланирована (фаза 3, урок Битрикса) | 🔴 |
| 28 | OAuth / scopes | Зрелый OAuth 2.0 + ~40 скоупов + admin-confirmation | Sanctum; abilities-скоупы — волна 21 | 🔴 |
| 29 | OpenAPI / документация API | v1/v2 — нет; только в REST v3 появился rest.documentation.openapi | Scramble из кода + runtime-схема (волна 24) | 🟡 |
| 30 | Обмен с 1С | Нативный CommerceML — эталон рынка, «просто работает» с любой 1С | Модуль по CommerceML 2 запланирован (фаза 3), не написан | 🔴 |
| 31 | Готовые интеграции (платежи/доставки/CRM) | Сотни из коробки и маркетплейса | Спроектированы контракты; реализация — фаза 3, по заказу | 🔴 |
| 32 | GraphQL | Нет | Опциональный модуль (Lighthouse) | 🟢 |
| 33 | Идемпотентность мутаций API | Нет | Пока тоже нет (кандидат в контракт — разбор Stripe) | 🟡 |
D. Производительность
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 34 | Кеш страниц | Композитный кеш — сильная и зрелая механика (статика + динамические зоны) | Page-cache тегами, 0 запросов на хит (тест), stampede-lock | 🟡 |
| 35 | Инвалидация кеша | Ручная/по TTL, частые «почистите кеш» | Только тегами по событиям, Cache::flush() запрещён, cms:cache:inspect | 🟢 |
| 36 | Стоимость miss-а | Инфоблоки-EAV: JOIN-ад на сложных выборках | Бюджет запросов ≤ 20 — красный тест при регрессе | 🟢 |
| 37 | Требования к железу | Высокие (общеизвестно); PHP-процесс тяжёлый | Стандартный Laravel; Octane-готовность проверена (scoped-биндинги) | 🟢 |
| 38 | Масштабирование | Модуль «Веб-кластер» в старших редакциях — зрелое решение | Стандартное горизонтальное масштабирование Laravel (stateless + Redis), кластер не обкатан | 🟡 |
| 39 | Наблюдаемость | Монитор производительности встроен | Pulse/health запланированы точечно; телеметрия p95 — деферен волны 20 | 🔴 |
E. Безопасность
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 40 | Безопасность по умолчанию | Ответственность разработчика (bitrix_sessid_post() руками) — источник CVE | Enforced-by-default: CSRF глобально, санитизация в движке полей, линтеры | 🟢 |
| 41 | WAF / проактивная защита | Сильный встроенный комплект: WAF, контроль целостности, OTP, антивирус | Attack-monitor (брутфорс) — волна 21; WAF-слоя нет (внешний Caddy/CDN) | 🔴 |
| 42 | История CVE | Регулярные критические CVE в модулях (vote, landing — CVSS 10) | Истории нет вообще — не аргумент, а неизвестность; поверхность меньше | 🟡 |
| 43 | Обновления безопасности | Только при активной (платной) лицензии | Через Satis по подписке студии; критические фиксы — вопрос нашей политики | 🟡 |
| 44 | RBAC | Свои права по модулям + группы; исторически запутанные | spatie/permission + Shield, канон pages.*, матрица в тестах (волна 21) | 🟢 |
| 45 | 2FA | Есть (OTP) давно | Запланирована (волна 21) | 🔴 |
| 46 | Аудит действий | Журнал событий встроен | activitylog (spatie) — заложен, тонкая настройка по мере надобности | 🟡 |
F. Контент и редактор
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 47 | Редактор страниц | Эрмитаж + визуальный редактор; «Сайты24» — блочный, но отдельный продукт | Drag&drop блочный редактор средней свободы (без стилей на блоке) — волна 16 ✅ | 🟢 |
| 48 | Дисциплина дизайна | Контент-менеджер может «раскрасить» страницу как угодно | Стили только в теме (color-variant), линтер стилевых полей | 🟢 |
| 49 | SEO | Эталон рынка: умный фильтр, ЧПУ, мета-шаблоны, региональность | Спроектировано на уровне Битрикса (seo.md), базa — волна 5 ✅, умный фильтр — фаза 3 | 🔴 |
| 50 | Темы | Шаблоны сайта: PHP, наследование слабое | Контракт темы: каскад, theme.json → Tailwind, галерея | 🟢 |
| 51 | Формы | Модуль веб-форм — старый; в Б24 — CRM-формы | Конструктор форм на движке полей, полный security-набор | 🟢 |
| 52 | Мультиязычность / мультирегиональность | Через многосайтовость — работает, но дублирование контента | Заготовка locale/city_id в ядре, модуль-стратегия; не реализовано | 🟡 |
| 53 | E-commerce | sale+catalog — глубочайшая функциональность (цены, склады, ТП, корзина) | Модель спроектирована (Lunar как база), реализация — фаза 3 | 🔴 |
G. Обновления и жизненный цикл
| # | Параметр | 1С-Битрикс УС | Наша CMS | Впереди |
|---|---|---|---|---|
| 54 | Механизм обновлений | SiteUpdate — зрелый, но обновление способно сломать кастом; откат — из бэкапа | cms:upgrade: preflight, бэкап, health-гейт, откат по трём слоям (фаза 2) | 🟡 |
| 55 | Контент при обновлении | Может пострадать (перенос инфоблоков) | Физически разделён: код/схема vs контент-конвейер | 🟢 |
| 56 | Staging-проверка | Практика «обновляемся на копии» — ручная | Заложена в политику центра обновлений | 🟢 |
| 57 | Здоровье системы | Проверка системы в админке | cms:doctor + health-чеки + module-integrity | 🟡 |
H. Экосистема и бизнес
| # | Параметр | 1С-Битрикс | Наша CMS | Впереди |
|---|---|---|---|---|
| 58 | Маркетплейс | Тысячи готовых решений | Нет и не скоро (фаза 5, закрытый) | 🔴 |
| 59 | Кадры на рынке | Огромный пул Битрикс-разработчиков в РФ | Любой Laravel-разработчик (пул больше!), но CMS-специфике надо учить | 🟡 |
| 60 | Документация | Огромная, но фрагментированная (старая/D7/REST вперемешку) | Docs-as-code, единая, AI-friendly (спеки для Claude Code) | 🟢 |
| 61 | Стоимость для клиента | Лицензия + ежегодное продление + хостинг мощнее | Подписка студии на обновления; экономика в нашу пользу при нашей поддержке | 🟡 |
| 62 | Vendor lock-in | Сильный: безопасность и обновления только с лицензией | Lock-in на студию (честно: тоже lock-in, но код у клиента, стек — мейнстрим) | 🟡 |
| 63 | Скорость разработки фич | Экосистема даёт готовое, но кастом в легаси — медленный | Claude Code пишет 100% кода по спекам; DX — центральное преимущество | 🟢 |
| 64 | Риск платформы (bus factor) | Компания, 20 лет, тысячи партнёров | Одна студия; смягчение — мейнстрим-стек и открытые контракты | 🔴 |
| 65 | Соответствие РФ-специфике | Эталон: 54-ФЗ, 152-ФЗ, ЕГАИС, маркировка — всё есть | Спроектировано (152/54/38-ФЗ, ЕСИА, ЭДО), реализация по фазам | 🔴 |
Итоговый счёт
| Категория | 🟢 Мы | 🔴 Битрикс | 🟡 Паритет |
|---|---|---|---|
| A. Платформа и стек | 10 | 0 | 0 |
| B. Архитектура ядра | 9 | 1 | 2 |
| C. API и интеграции | 5 | 4 | 2 |
| D. Производительность | 3 | 1 | 2 |
| E. Безопасность | 2 | 2 | 3 |
| F. Контент и редактор | 4 | 2 | 1 |
| G. Обновления | 2 | 0 | 2 |
| H. Экосистема и бизнес | 2 | 3 | 3 |
| Всего (65) | 37 | 13 | 13 |
Как читать этот счёт (честно)
Счёт 37:13 не значит «мы почти в 3 раза лучше». Он значит другое:
- Мы выигрываем везде, где решает архитектура и стек — потому что проектируем в 2026 на Laravel 13, а Битрикс несёт 20 лет обратной совместимости. Это ожидаемо и заслуга не наша, а позиции на кривой времени.
- Битрикс выигрывает везде, где решают годы и масса: e-commerce глубина, готовые интеграции, 1С-обмен «из коробки», маркетплейс, кадры, доверие рынка, РФ-специфика в проде. Эти 13 пунктов — самые дорогие в закрытии: их нельзя «спроектировать», только наработать.
- Жёлтые зоны — наш план работ: batch и scopes (волны 21/24), offline-очередь и SEO-фильтр (фаза 3), кластер и наблюдаемость (по мере нагрузки).
- Самый недооценённый риск — № 22 и № 64: непроверенность боем и bus factor. Ответ на оба — первый клиентский сайт (волна 23) и дисциплина контрактов: мейнстрим-стек означает, что проект переживёт смену исполнителя.
Стратегический вывод
Мы не конкурируем с Битриксом на его поле (маркетплейс, коробка «всё включено», тысячи партнёров) — и не должны. Наше поле: студийная CMS с современным стеком, обновлениями без страха, AI-нативной разработкой и производительностью по умолчанию — для клиентов, которым Битрикс тяжёл, дорог или архаичен. Каждый 🔴-пункт из категорий C/E/F уже имеет адрес в плане (TZ.md / roadmap); 🔴-пункты категории H закрываются только временем и живыми клиентами.