Как правильно и безопасно кастомизировать коробочные продукты
Ошибки в кастомизации приводят к потере данных, нарушают стабильную работу системы, создают уязвимости в безопасности и сложности в установке обновлений. Это критично, потому что обновления необходимы для защиты сайта от угроз и утечки данных.
За защиту данных пользователей на сайте отвечает администратор (ст. 19 Федерального закона N 152-ФЗ «О персональных данных»). С 30 мая 2025 года штраф за утечку данных для должностного лица составит от 200 тыс. до 400 тысяч рублей (Федеральный закон от 30.11.2024 N 420-ФЗ «О внесении изменений в Кодекс Российской Федерации об административных правонарушениях»).
Утечка данных может навредить репутации вашего проекта и снизить доверие пользователей. Обновления не формальность, а способ избежать реальных рисков. Чтобы сайт работал стабильно, а персональные данные пользователей не подвергались угрозам, кастомизируйте коробочные продукты на платформе Bitrix Framework правильно и регулярно устанавливайте обновления.
Как кастомизировать правильно
Правильная кастомизация позволяет:
- устанавливать обновления без потери изменений,
- избегать конфликтов с новыми версиями продукта,
- обеспечивать стабильную и безопасную работу сайта.
Пройдите обучение
Пройдите курсы по разработке на платформе Bitrix Framework, чтобы лучше понимать возможности платформы и избежать ошибок. Если разработкой занимается сторонний специалист, убедитесь, что у него есть сертификат о прохождении обучения.
Как подготовить рабочую среду перед кастомизацией
- Регулярно создавайте резервные копии. Делайте копии не реже одного раза в день. Это защитит от потери данных в случае ошибок.
Создание резервной копии
- Используйте установку для разработки. Настройте отдельную среду для разработки. Это предотвращает случайное выполнение опасных действий на боевом сайте и упрощает отладку.
Установка для разработки
- Проверяйте доработки на тестовой копии. Переносите их на боевой сайт только после тщательного тестирования.
Где размещать изменения
Изменения рекомендуем хранить в папке /local/. Это обеспечит четкое разделение между системными файлами и кастомизацией. Папка /local/ не перезаписывается при обновлениях системы, поэтому ваши доработки останутся нетронутыми. Такой подход создает организованную структуру проекта, которая упрощает поддержку, масштабирование и обновление системы.
Подробнее в статье Структура директорий.
Нельзя вносить изменения в ядро системы
Не изменяйте файлы ядра системы в папках:
/bitrix/modules//bitrix/components/bitrix//bitrix/activities/bitrix//bitrix/blocks/bitrix//bitrix/gadgets/bitrix//bitrix/wizards/bitrix//bitrix/routes//bitrix/js/
Изменение файлов ядра приведет:
- к потере изменений при обновлении,
- лишению права на техническую поддержку,
- возможной неработоспособности системы.
Что не рекомендуется делать
-
Не пишите прямые SQL-запросы к базе данных. Используйте документированное API продукта. Прямые SQL-запросы обходят встроенные механизмы безопасности и валидации. Это может привести к уязвимости системы и несогласованности данных.
-
Не добавляйте HTML-код в PHP-логику. Разделяйте логику и представление. HTML-код должен находиться в шаблонах, а не в PHP-файлах.
Дополнительные рекомендации
-
Используйте систему контроля версий. Это поможет отслеживать изменения и восстанавливать их при необходимости. Убедитесь, что к файлам репозитория нет доступа через веб-сервер.
-
Защищайте файлы от прямого доступа. Добавьте следующий код в начало всех файлов, которые не должны выполняться напрямую:
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {die();} ?> -
Регулярно тестируйте изменения. Перед внедрением доработок на боевой сайт тестируйте их в изолированной среде. Это помогает выявить возможные ошибки и убедиться в корректности работы системы.
-
Используйте кеширование. Оптимизируйте производительность с помощью эффективного использования кеширования.
Инструменты кастомизации
Продукт предоставляет инструменты для кастомизации под любые задачи: от no-code решений до работы с API и кодом Bitrix Framework. Выберите подходящий инструмент в зависимости от ваших целей и уровня сложности проекта.
No-code и Low-code инструменты
No-code инструменты позволяют настраивать и автоматизировать процессы без написания кода, Low-code требуют минимального программирования. Решения, реализованные такими инструментами, не требуют дополнительной поддержки.
Пользовательские действия в бизнес-процессах
Если базовых возможностей бизнес-процессов недостаточно, создайте пользовательские действия. Это позволит автоматизировать уникальные задачи, например интеграцию с внешними системами, выполнение сложных расчетов или отправку уведомлений через нестандартные каналы.
Как создать пользовательские действия
REST API
Битрикс24 предлагает разработчикам инструменты для создания интеграций, автоматизации рабочих процессов и кастомизации пользовательских сценариев через REST API.
Обработчики событий
Обработчики событий добавляют дополнительную логику в существующие процессы. Они позволяют расширить функционал, реагируя на события платформы.
Агенты
Агенты выполняют задачи в фоновом режиме по расписанию или при определенных условиях. Используйте их для периодических операций, которые не должны мешать основному потоку работы.
Пользовательские типы полей
Создавайте пользовательские типы полей, чтобы расширить возможности стандартных объектов: добавить специализированные данные и настраиваемую логику обработки.
CSS и JS кастомизация
Используйте CSS и JavaScript для изменения внешнего вида и поведения сайта. Подключайте стили и скрипты через Bitrix\Main\Page\Asset, чтобы избежать конфликтов.
О способе организации JS и CSS кода в статье Расширения
Административная часть
Кастомизируйте административную часть для удобства управления системой:
- меняйте структуру меню,
- добавляйте новые страницы,
- настраивайте формы.
Кастомизация административной части
Кастомизация компонентов
Адаптируйте шаблоны и компоненты под нужды проекта. Можно модифицировать готовые решения или создавать новые элементы интерфейса и функционала.
Создание компонентов и модулей
Собственные компоненты и модули это способ организованно добавлять новый функционал в систему, когда другие способы не подходят для реализации задач.