О компании

Доработка сайта на 1С-Битрикс: как оценить текущий код и не утонуть в наследии

Наследный проект на 1С-Битрикс редко выглядит как «аккуратный продукт». Чаще это слоеный пирог из правок разных лет: быстрые фиксы под акции, интеграции «на коленке», доработки в обход стандартов, десятки кастомных обработчиков, которые живут своей жизнью. В такой ситуации главная ошибка владельца бизнеса — просить «оценку по ТЗ» до того, как стало понятно, что у вас вообще лежит в основе сайта.

Ниже — практичный способ оценить состояние кода, собрать факты для сметы и сделать план доработок так, чтобы вы контролировали сроки, риски и результат, а не «верили в обещания».

Что такое «наследие» в Bitrix и почему оно затягивает сроки

Наследие — это не возраст проекта. Наследие — это отсутствие управляемости. Обычно оно проявляется так:

  • Доработки раскиданы по /bitrix/php_interface/, /local/php_interface/, init.php и по компонентам без единой логики.
  • Шаблоны компонентов переписаны «внутри» шаблона сайта, а правки в одной странице ломают другую.
  • Интеграции с /CRM/службами доставки работают, но никто не может объяснить, где именно логика обмена и кто за нее отвечает.
  • Кэш включен «как попало»: где-то все летает, а где-то выключено, потому что «иначе не обновляется корзина».
  • Модули и библиотеки обновлять страшно: после обновления «что-то обязательно сломается».

Если это похоже на ваш проект — оценка до аудита будет либо завышенной (под страховку), либо заниженной (под продажу). И оба варианта плохие: в первом вы переплатите, во втором получите бесконечные допработы.

Цель аудита перед доработкой

У аудита не должно быть цели «переписать все». Цель — перевести проект из режима «угадайка» в режим управляемости:

1) понять, где в коде живут бизнес-критичные сценарии (каталог, корзина, оплата, интеграции); 2) оценить риски изменений (что сломаем, если тронем); 3) получить измеримую базу для сметы: объем, приоритеты, зависимости, ограничения.

Быстрый скрининг за 60-90 минут: что можно понять без глубокого погружения

Даже короткий скрининг дает сигнал, насколько проект «тяжелый». Вот что проверяют в первую очередь:

  • Версия PHP и Битрикс, режим обновлений, наличие «замороженных» модулей.
  • Где живет кастом: /local/ или в /bitrix/ (если много кастома в /bitrix/, почти всегда будет боль).
  • Наличие автозагрузки классов, использование неймспейсов, PSR-подхода (хотя бы частично).
  • Количество обработчиков событий, агентов, кронов и их критичность.
  • Режимы кэширования (компонентный кэш, managed cache, html cache) и «точки отключения».
  • Интеграции: 1С, платежи, доставки, CRM, маркетплейсы — где код, где настройки, где логи.
  • Логи ошибок (PHP error log), журнал событий Битрикс, состояние мониторинга.

Результат скрининга — не отчет «на 40 страниц», а список гипотез: что выглядит опасным и что надо вскрывать глубже.

Полный аудит кода: артефакты, которые реально помогают оценить работы

Чтобы смета была защищаемой, аудит должен закончиться артефактами. Минимальный набор:

1) Карта системы (System Map)

Короткая схема: фронт, админка, каталог, корзина, платежи, доставка, интеграции, поисковый модуль, импорт/экспорт, фоновые задачи. Для каждого блока: «где код», «где настройки», «кто владелец», «как проверяем».

2) Реестр кастома

Таблица, где перечислено:

  • кастомные компоненты и шаблоны;
  • обработчики событий (что слушают и что меняют);
  • агенты/кроны (что делают и как часто);
  • кастомные классы/сервисы;
  • изменения ядра (если есть).

Без такого реестра вы не контролируете ни риски, ни обновления.

3) Матрица рисков изменений

Для каждой ключевой зоны: вероятность поломки и цена ошибки (время простоя, потеря заказов, потеря данных). Это помогает решать, где сначала писать тесты/обвязку, а где можно идти быстрее.

4) Дерево зависимостей

Список «если меняем А, затронем B и C». В Bitrix это особенно важно из-за событий, кэша и логики в шаблонах.

5) Набор репродьюсеров

Не «описание словами», а конкретные сценарии:

  • как воспроизвести баг;
  • на каких данных;
  • какой ожидаемый результат;
  • какие логи смотреть.

Если репродьюсера нет — оценка почти всегда будет ошибочной.

Как правильно оценивать доработку: не «часами», а пакетами неопределенности

Сильная оценка по доработке сайта на 1С-Битрикс строится не на «вере в разработчика», а на разложении работ по зонам и неопределенности.

Шаг 1. Разбиваем задачу на 3 слоя

1) Внешнее поведение: что видит пользователь/менеджер. 2) Бизнес-логика: правила, ограничения, интеграции. 3) Техслой: где именно в Bitrix это реализовано (компонент, событие, ORM, старый API, сторонний модуль).

Одна и та же «простая правка» на уровне UI может оказаться переписыванием цепочки событий в корзине. Пока вы не нашли место в техслое — оценка будет фантазией.

Шаг 2. Присваиваем каждой задаче класс риска

Практичная шкала:

  • A (низкий риск): изолированная правка, понятная точка входа, есть репродьюсер.
  • B (средний): затрагивает кэш/шаблоны/несколько компонентов, есть зависимость от данных.
  • C (высокий): корзина/оплата/интеграции/права/фоновые задачи, много событий, нет тестов.

Для классов B и C корректная смета должна включать время на «вскрытие» и стабилизацию.

Шаг 3. Добавляем «работы по управляемости»

Если проект наследный, в смету нужно закладывать не только реализацию функции, но и меры, чтобы она не сломала сайт через неделю:

  • логирование и понятные ошибки;
  • защита от дублей заказов/платежей;
  • контроль целостности данных;
  • фича-флаги или безопасное включение по группам;
  • мониторинг и метрики (хотя бы минимальные).

Это не «лишние хотелки», а страховка от простоя.

Типовые ловушки наследия в 1С-Битрикс

  • Кастом внутри /bitrix/

Если разработчики правили ядро или штатные модули, обновления превращаются в лотерею. Правильная стратегия: вынести кастом в /local/, зафиксировать патчи и минимизировать прямые изменения ядра.

  • «Логика в шаблоне»

Когда условия и расчеты живут в шаблонах компонентов, любое изменение дизайна становится изменением бизнес-логики. Это самая частая причина, почему «верстка» внезапно стоит как «разработка».

  • События как «магия»

Событийная модель удобна, но в наследных проектах она превращается в непредсказуемый каскад: одно событие дергает другое, а точек входа десятки. Без реестра событий оценка всегда будет плавать.

  • Интеграции без контрактов

Обмен с 1С/CRM часто держится на договоренностях уровня «так исторически сложилось». В результате:

нет схемы данных;

нет валидации;

нет повторной отправки/идемпотентности;

нет изоляции ошибок.

Доработка в таком месте требует сначала описать контракт, иначе «починили одно — сломали три».

  • Кэш, который «то работает, то мешает»

Правильный подход: описать, какие страницы и блоки кэшируются, какие — нет, и по каким триггерам сбрасывается кэш. Иначе любая доработка в каталоге превращается в бесконечные «почему не обновилось».

Что просить у подрядчика до старта работ: конкретный список

Если хотите управлять проектом, просите не «красивые обещания», а результаты в формате артефактов.

1) План аудита: что смотрим, какие ограничения, какие выходные документы. 2) Реестр кастома и точки входа (с привязкой к репозиторию/файлам). 3) Матрица рисков + предложение по стратегии внедрения (поэтапно, с откатом). 4) Пакетная смета: задачи A/B/C с указанием, где есть неопределенность и как она будет снята. 5) План тестирования: что проверяем руками, что автоматизируем, какие контрольные сценарии. 6) План релизов: сколько релизов, как минимизируем простои, как откатываемся. 7) Минимальный SLA на период внедрения (реакция на критические баги).

Если подрядчик не может это дать — он не контролирует наследие, он просто «будет разбираться по ходу».

Как не утонуть: рабочая стратегия доработок на наследном Bitrix

Практика показывает, что лучше всего работает трехконтурный подход.

Контур 1. Стабилизация

Сначала — минимальные меры, чтобы сайт не падал от каждой правки:

  • включить базовое логирование;
  • собрать репродьюсеры критичных сценариев;
  • закрыть «дыры» с дублями заказов/платежей;
  • привести в порядок кэш в самых горячих местах.

Контур 2. Доработка функций

Делаем то, что приносит деньги и снижает ручной труд: корзина, оформление, фильтры, личный кабинет, интеграции. Но каждую задачу проводим через классы риска A/B/C и выпускаем поэтапно.

Контур 3. Погашение техдолга

Точечно: выносим логику из шаблонов, структурируем /local/, унифицируем сервисы, документируем интеграции. Это не «переписать все», а убрать причины, которые раздувают стоимость каждой следующей задачи.

Итог: какой результат считать хорошим

Хорошая доработка — это не «мы сделали новую кнопку». Хорошая доработка — когда вы понимаете:

  • где находится логика ключевых сценариев;
  • что будет затронуто при следующем изменении;
  • сколько стоит задача и почему;
  • какие риски у релиза и как вы их снижаете.

Если хотите, чтобы проект на 1С-Битрикс развивался без вечных авралов, начинайте не с хотелок, а с диагностики и управляемой сметы. Это дешевле, чем чинить последствия «быстрой» разработки на наследии.

Статьи

Статьи

Доработка сайта на 1С-Битрикс: как оценить текущий код и не утонуть в наследии

Статьи

Услуги по администрированию сайтов на Битрикс

Статьи

Авторизация через Госуслуги ЕСИА на Битрикс

Статьи

Интеграция 1С-Битрикс с системой 1С

Статьи

Битрикс версия для слабовидящих

Статьи

SEO продвижение сайта в «1C Битрикс»: просто, удобно, эффективно

Статьи

«1С Битрикс: Управление сайтом» – всё, что нужно знать

Статьи

Bitrix — особенности и преимущества

Статьи

Детальный обзор CMS «1С-Bitrix». Все, что бы вы хотели узнать