Восстановление работы кастомизированного модуля Битрикс24 на php8
1Цели и задачи
К нам обратилась компания, использующая Битрикс24 для сопровождения лизинговых сделок через полностью кастомный интерфейс, построенный на CRM-сущностях и HL-блоках. После переключения окружения на PHP 8 и обновления Битрикс24 интерфейс перестал корректно работать: возникли ошибки в компонентах и подключаемых библиотеках, часть страниц/сценариев стала недоступна, а критичный для процесса функционал (генерация документов DOCX) перестал формировать документы.Важный момент: мы не переписывали бизнес-логику и не меняли пользовательские сценарии — задача была в том, чтобы восстановить работоспособность существующего решения (разработанного ранее не нашей командой) и обеспечить стабильную работу на PHP 8 и актуальной версии Битрикс24.
2Аналитика и первая итерация исправлений
Из-за того, что после обновления проявилось сразу несколько типов проблем (совместимость PHP 8, изменения в API Битрикса, конфликты/устаревание библиотек), работы проводили итеративно: фиксировали ошибки, проверяли ключевые сценарии, формировали список следующей итерации.
На первом этапе:
- воспроизвели ошибки на тестовом контуре после обновления и собрали первичную диагностику;
- выделили “критичный путь” пользователя в кастомном интерфейсе (просмотр/редактирование данных сделки, статусы, связанные данные, документы);
- выявили участки кода, которые ломались из-за изменений в окружении и несовместимых зависимостей;
- составили перечень проблем по интерфейсу и отдельно — по генерации DOCX.
3Рефакторинг и восстановление функционала
На основной итерации мы сфокусировались на рефакторинге проблемных участков и стабилизации зависимостей. Цель — “оживить” существующий кастомный интерфейс и DOCX-генерацию на новом окружении, не меняя бизнес-правила.Основные проблемы, которые были выявлены и устранены:
- ошибки совместимости кода с PHP 8 (в т.ч. места, где ранее работали неявные преобразования типов и устаревшие конструкции);
- некорректная работа подключаемых библиотек после обновления (конфликты версий, устаревшие пакеты, несовместимые зависимости);
- сбои в обработчиках/компонентах, отвечающих за отображение и сохранение данных CRM-сущностей и HL-блоков;
- поломка генерации документов DOCX (шаблоны формировались с ошибками или не формировались вовсе) из-за несовместимости используемого механизма/библиотеки с PHP 8;
- нестабильность отдельных сценариев интерфейса, завязанных на события, проверки прав и серверную валидацию.
- провели рефакторинг кода, критичного для работы интерфейса, с сохранением логики и структуры данных;
- актуализировали/заменили проблемные зависимости, устранили конфликты библиотек;
- восстановили работу DOCX-генерации: корректная подстановка данных, формирование файлов и выдача пользователю в рамках привычного процесса;
- добавили более устойчивую обработку ошибок и логирование там, где это было необходимо для дальнейшей поддержки.
4Итоги и результаты
В результате проект был успешно переведён на PHP 8 и обновлённый Битрикс24 без потери пользовательских сценариев и бизнес-логики кастомного решения. Работоспособность интерфейса, построенного на CRM-сущностях и HL-блоках, восстановлена, а генерация документов DOCX снова стала стабильной и пригодной для ежедневной работы.Итоговый перечень выполненных работ:
- адаптация проекта под PHP 8 и обновление Битрикс24;
- диагностика и устранение ошибок, вызванных несовместимостью кода и зависимостей;
- рефакторинг проблемных участков (без переписывания бизнес-логики интерфейса);
- восстановление функционала кастомного интерфейса на CRM-сущностях и HL-блоках;
- восстановление и стабилизация генерации DOCX-документов;
- проверка ключевых сценариев и регрессионное тестирование критичного пути пользователя.
В результате комплексного тестирования были выявлены и решены ошибки, не связанные с обновлением сайта и присутсвовавшие на основном сайте
Битрикс обновлен до последней версии, таблицы БД конвертированы в новый формат модуля sale
Обновлена библиотека генерации PDF - используется актуальная версия с поддержкой php 8 - не только изменения в коде, но и composer и mpdf библиотеку.
Более 50 шаблонов кастомизированных компонентов приведены в соответствие стандартам php8
Нужен похожий проект?
Расскажите о задаче — покажем близкие по смыслу работы и предложим решение со сроками и бюджетом.
Похожие проекты





