Почему доработки пропадают после обновления
Платформа 1С-Битрикс регулярно получает обновления ядра и модулей. Обновление заменяет системные файлы — стандартные компоненты, модули, служебные скрипты — новыми версиями. Если предыдущий разработчик вносил изменения прямо в эти файлы, обновление их перезапишет. Отсюда две типичные ситуации:
- сайт годами не обновляют, «чтобы ничего не сломалось», — и он отстаёт по безопасности и совместимости;
- сайт обновили, и пропал блок, перестал работать фильтр или поменялся вид карточки товара.
Обе проблемы решаются одним правилом: свои изменения — только в местах, которые обновление не трогает.
Где место для своих доработок
Папка /local/
В современных версиях Битрикса для собственного кода есть папка /local/. Шаблоны, свои компоненты и файл init.php с обработчиками событий можно хранить в ней: система ищет их там в первую очередь, а обновления эту папку не изменяют. Если на сайте всё лежит в /bitrix/, это не катастрофа, но доработки лучше переносить в /local/ по мере работы.
Шаблоны компонентов вместо правки компонента
Чтобы изменить вид каталога, меню или формы, не нужно трогать сам стандартный компонент. Его шаблон копируют в шаблон сайта или в /local/templates/ и меняют уже копию. Логику показа можно дополнить файлами шаблона, которые выполняются до вывода.
Свои компоненты
Если нужного поведения у стандартного компонента нет, пишут свой компонент в собственном пространстве имён, а не переделывают системный.
Обработчики событий вместо правки модулей
Нужно, чтобы при оформлении заказа происходило что-то своё — отправлялось сообщение, менялось поле, передавались данные в CRM? Для этого у Битрикса есть события, к которым подключают свой обработчик. Код модуля магазина при этом остаётся нетронутым.
Контент — в админке, а не в коде
Вторая частая проблема: тексты, цены и баннеры вписаны прямо в шаблон. Тогда даже поменять фразу на главной может только программист. Правильнее:
- Инфоблоки и свойства — для всего, что повторяется: товары, услуги, акции, отзывы, сотрудники. Менеджер добавляет элемент, сайт сам выводит его в нужном месте.
- Включаемые области — для отдельных текстов на страницах, которые редактируются в визуальном редакторе.
- Свойства разделов — для настроек, которые отличаются от раздела к разделу: баннер, описание, порядок блоков.
Доработка, после которой менеджер сам меняет содержание, окупается быстрее любой другой: дальше не нужно платить разработчику за каждую правку текста.
Перед любым изменением
- Сделать резервную копию — встроенным резервным копированием Битрикса или средствами хостинга — и убедиться, что из неё можно восстановиться.
- По возможности работать на тестовой копии сайта, а не на рабочем.
- Узнать версию платформы, редакцию и что дорабатывали до вас: часть функций зависит от редакции, а старые доработки могут быть связаны неочевидно.
- Составить список сценариев, которые изменение может задеть: каталог, фильтр, корзина, формы, мобильная версия.
После изменения
- Сбросить кеш. Компоненты Битрикса кешируют результат. Если после правки страница выглядит по-старому, причина часто в кеше, а не в ошибке.
- Пройти затронутые сценарии на компьютере и телефоне — не только ту страницу, которую меняли.
- Записать, что изменено и где. Следующему разработчику, да и вам через год, это сэкономит часы.
Нужна ли действующая лицензия
Сайт на коробочной версии продолжает работать и после окончания срока лицензии, но без её продления недоступны обновления платформы и техподдержка разработчика платформы. Для небольших доработок шаблонов и контента это не помеха. Если нужно обновить платформу или модули, без продления не обойтись — это стоит учесть заранее.
Частые вопросы
Предыдущий разработчик правил ядро. Что делать?
Сначала найти и описать эти правки, затем перенести их в шаблоны, свои компоненты и обработчики событий. После этого сайт можно обновлять. Иногда часть правок уже не нужна — их проще удалить.
Обновили сайт, и что-то сломалось. Можно вернуть как было?
Если есть резервная копия до обновления — да. Но лучше не откатываться, а найти, какие изменения перезаписались, и восстановить их в правильном месте: иначе проблема повторится при следующем обновлении.
Можно ли сделать так, чтобы менеджеры сами меняли блок на главной?
Да, это одна из самых частых доработок: блок переводят на инфоблок или включаемую область, и содержание меняется в админке без программиста.