К содержанию
Описать задачу
  1. sitebypro
  2. Статьи
  3. Доработка Битрикса без потери обновлений

Как дорабатывать сайт на Битриксе, чтобы обновления ничего не стёрли

Самая дорогая ошибка в доработке сайта на 1С-Битрикс — правка не в том месте. Сайт работает, пока не придёт обновление, а потом изменения пропадают или ломают страницу. Объясняем, где в Битриксе место для своих доработок.

Почему доработки пропадают после обновления

Платформа 1С-Битрикс регулярно получает обновления ядра и модулей. Обновление заменяет системные файлы — стандартные компоненты, модули, служебные скрипты — новыми версиями. Если предыдущий разработчик вносил изменения прямо в эти файлы, обновление их перезапишет. Отсюда две типичные ситуации:

  • сайт годами не обновляют, «чтобы ничего не сломалось», — и он отстаёт по безопасности и совместимости;
  • сайт обновили, и пропал блок, перестал работать фильтр или поменялся вид карточки товара.

Обе проблемы решаются одним правилом: свои изменения — только в местах, которые обновление не трогает.

Где место для своих доработок

Папка /local/

В современных версиях Битрикса для собственного кода есть папка /local/. Шаблоны, свои компоненты и файл init.php с обработчиками событий можно хранить в ней: система ищет их там в первую очередь, а обновления эту папку не изменяют. Если на сайте всё лежит в /bitrix/, это не катастрофа, но доработки лучше переносить в /local/ по мере работы.

Шаблоны компонентов вместо правки компонента

Чтобы изменить вид каталога, меню или формы, не нужно трогать сам стандартный компонент. Его шаблон копируют в шаблон сайта или в /local/templates/ и меняют уже копию. Логику показа можно дополнить файлами шаблона, которые выполняются до вывода.

Свои компоненты

Если нужного поведения у стандартного компонента нет, пишут свой компонент в собственном пространстве имён, а не переделывают системный.

Обработчики событий вместо правки модулей

Нужно, чтобы при оформлении заказа происходило что-то своё — отправлялось сообщение, менялось поле, передавались данные в CRM? Для этого у Битрикса есть события, к которым подключают свой обработчик. Код модуля магазина при этом остаётся нетронутым.

Контент — в админке, а не в коде

Вторая частая проблема: тексты, цены и баннеры вписаны прямо в шаблон. Тогда даже поменять фразу на главной может только программист. Правильнее:

  • Инфоблоки и свойства — для всего, что повторяется: товары, услуги, акции, отзывы, сотрудники. Менеджер добавляет элемент, сайт сам выводит его в нужном месте.
  • Включаемые области — для отдельных текстов на страницах, которые редактируются в визуальном редакторе.
  • Свойства разделов — для настроек, которые отличаются от раздела к разделу: баннер, описание, порядок блоков.

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

Перед любым изменением

  1. Сделать резервную копию — встроенным резервным копированием Битрикса или средствами хостинга — и убедиться, что из неё можно восстановиться.
  2. По возможности работать на тестовой копии сайта, а не на рабочем.
  3. Узнать версию платформы, редакцию и что дорабатывали до вас: часть функций зависит от редакции, а старые доработки могут быть связаны неочевидно.
  4. Составить список сценариев, которые изменение может задеть: каталог, фильтр, корзина, формы, мобильная версия.

После изменения

  • Сбросить кеш. Компоненты Битрикса кешируют результат. Если после правки страница выглядит по-старому, причина часто в кеше, а не в ошибке.
  • Пройти затронутые сценарии на компьютере и телефоне — не только ту страницу, которую меняли.
  • Записать, что изменено и где. Следующему разработчику, да и вам через год, это сэкономит часы.

Нужна ли действующая лицензия

Сайт на коробочной версии продолжает работать и после окончания срока лицензии, но без её продления недоступны обновления платформы и техподдержка разработчика платформы. Для небольших доработок шаблонов и контента это не помеха. Если нужно обновить платформу или модули, без продления не обойтись — это стоит учесть заранее.

Частые вопросы

Предыдущий разработчик правил ядро. Что делать?

Сначала найти и описать эти правки, затем перенести их в шаблоны, свои компоненты и обработчики событий. После этого сайт можно обновлять. Иногда часть правок уже не нужна — их проще удалить.

Обновили сайт, и что-то сломалось. Можно вернуть как было?

Если есть резервная копия до обновления — да. Но лучше не откатываться, а найти, какие изменения перезаписались, и восстановить их в правильном месте: иначе проблема повторится при следующем обновлении.

Можно ли сделать так, чтобы менеджеры сами меняли блок на главной?

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

Ещё по теме

Изменить, а не переписать

Расскажите, что нужно поменять на сайте. Сначала изучим реализацию, потом назовём объём и цену.

Доработка сайта на Битриксе

Опишите, что происходит, своими словами. Пароли и доступы в форму не пишите.

Удобнее написать самому? Telegram @dozer_stoun или sitebypro@mail.ru