БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»

Обновление 1С-Битрикс на новую версию без простоя магазина

Обновление 1С-Битрикс на новую версию без простоя магазина: SiteUpdate, обновление ядра и модулей, копия и откат

Устаревший 1С-Битрикс — это не «работает и ладно», а тикающий счётчик рисков: незакрытые уязвимости, несовместимость с новой версией PHP на хостинге, невозможность подключить свежий функционал маркетплейса и растущий разрыв с текущей платформой, который однажды придётся закрывать большим и болезненным скачком. И всё же владельцы магазинов тянут с обновлением по одной простой причине — страху, что после нажатия кнопки «Обновить» витрина ляжет в разгар продаж. Этот страх оправдан ровно настолько, насколько небрежно устроен процесс. Сделанное по регламенту обновление битрикс проходит для покупателей незаметно.

Ниже — системный разбор того, как безопасно обновить ядро Битрикс и модули на новую версию: как устроена технология обновлений SiteUpdate, зачем нужны лицензионный ключ и активная техподдержка, чем стабильная ветка отличается от бета, почему нельзя править ядро, как обновлять на копии и переносить результат на бой без простоя, как готовить бэкап и план отката, что делать с версией PHP, композитом и кэшем после обновления и как обновлять готовые решения вроде Аспро. Это выжимка из нашей практики технической поддержки и сопровождения магазинов на 1С-Битрикс — без теории ради теории.

Коротко

  • Обновление в Битриксе — это штатная технология SiteUpdate из раздела «Обновление системы», а не ручная перезаливка папки bitrix.
  • Скачивать свежие обновления можно только при активной техподдержке лицензии; без неё сайт работает, но новые версии недоступны.
  • Главный риск — правки ядра: обновление их затирает. Правило «не править ядро» делает обновление предсказуемым.
  • Безопасный путь — обновиться на копии (staging), проверить сценарии, устранить конфликты и перенести на бой в короткое окно.
  • Обязательны бэкап и план отката; после обновления — сброс кэша, прогрев композита и переиндексация фасета/поиска.

Зачем обновлять 1С-Битрикс и почему боятся простоя

Любая платформа развивается: закрываются уязвимости, растёт совместимость с новыми версиями PHP и СУБД, появляются новые возможности каталога, корзины, персонализации и интеграций. 1С-Битрикс не исключение — обновления выходят регулярно, и чем дольше магазин на них не переходит, тем шире становится разрыв между установленной версией и актуальной. Этот разрыв — не абстрактная «нехорошесть», а вполне конкретные проблемы, которые рано или поздно выстреливают.

Тогда почему бизнес тянет? Потому что боится ровно одного — простоя витрины. Магазин, который «встал» на час в пик продаж, теряет деньги напрямую: незавершённые заказы, брошенные корзины, звонки «у вас сайт не работает». И этот страх подпитывается реальными историями, когда кто-то нажал «Обновить» на боевом сайте, обновление конфликтовало с доработками, и витрина легла. Вывод из этих историй делают неправильный — «обновляться опасно». Правильный вывод другой — «опасно обновляться неправильно». Разница между катастрофой и незаметным для покупателей переходом — в процессе, а не в самой кнопке.

Обновление — это управляемый процесс, а не событие

Ключевая смена мышления: обновление Битрикса — не разовый героический акт «нажал и молюсь», а повторяемая процедура с этапами, проверками и планом отката. У этой процедуры есть подготовка (бэкап, копия, чек-лист), исполнение (обновление на копии, тестирование), перенос на бой в короткое окно и постобработка (кэш, композит, индексы, мониторинг). Когда каждый шаг описан и отрепетирован на копии, «страшное обновление» превращается в рутину, которую можно проводить регулярно и без нервов. Именно так это устроено на проектах, которые мы ведём на постоянной поддержке.

Как устроена система обновлений SiteUpdate

Первое, что важно понять, — в 1С-Битрикс обновление не делается «руками через FTP». Для этого есть встроенная технология SiteUpdate (система обновлений). Это подсистема платформы, которая по защищённому каналу связывается с серверами обновлений 1С-Битрикс, узнаёт, какие свежие версии ядра и модулей доступны для вашей лицензии, скачивает их и устанавливает прямо из админки. Разработчику не нужно вручную выкачивать архивы и раскладывать файлы — платформа делает это сама и согласованно.

Механика в общих чертах такая: сайт формирует запрос к серверу обновлений, передавая свой лицензионный ключ; сервер проверяет ключ и активность техподдержки и возвращает список доступных обновлений; выбранные обновления скачиваются порциями (патчами), распаковываются в файловую структуру и применяют миграции — изменения в структуре базы данных, если они нужны для новой версии. Обновление накатывается инкрементально: система ведёт учёт установленных версий каждого модуля и догружает только недостающие шаги, а не весь дистрибутив заново.

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

Технология обновлений SiteUpdate Ваш сайт лицензионный ключ раздел «Обновление системы» Сервер обновлений проверка ключа и техподдержки запрос: что доступно? патчи ядра и модулей Распаковка файлов + миграции базы инкрементально, по установленным версиям
Схема: SiteUpdate по ключу узнаёт доступные обновления, скачивает патчи ядра и модулей и применяет миграции базы — всё штатно из админки, без ручной перезаливки файлов.

Лицензионный ключ и активная техподдержка

Возможность скачивать свежие обновления завязана на две вещи: лицензионный ключ и активную техническую поддержку лицензии. Ключ — это идентификатор вашей копии продукта, по которому сервер обновлений понимает, какая у вас редакция и какие обновления вам положены. Техподдержка (техническое сопровождение продукта) — это период, в течение которого производитель отдаёт вам новые версии ядра и модулей.

Работает это так. При покупке лицензии первый год технической поддержки включён — весь этот срок вы получаете обновления через SiteUpdate беспрепятственно. По истечении срока поддержку нужно продлевать. Если продление не оформлено, происходит не «отключение сайта», а именно прекращение доступа к новым обновлениям: раздел «Обновление системы» перестаёт отдавать свежие пакеты. При этом уже установленная версия продолжает работать штатно — магазин не превращается в тыкву.

Практический вывод для планирования: если вы давно не обновлялись и техподдержка истекла, перед обновлением её нужно возобновить — иначе SiteUpdate просто не покажет свежие версии. Это часто всплывает как раз в момент, когда «срочно надо поднять PHP» или «закрыть уязвимость»: оказывается, что для этого сначала нужно продлить поддержку. Планируйте продление заранее, чтобы обновление не упёрлось в административный вопрос в самый неподходящий момент.

Не путайте подписки. Техподдержка (доступ к обновлениям) — это одно; отдельно существуют подписки на некоторые сервисы платформы. Для целей обновления ядра и модулей вам важна именно активная техподдержка лицензии. Проверить её статус и срок можно в админке, в разделе обновлений и в настройках лицензии.

Стабильная и бета-ветка обновлений

В настройках обновлений есть развилка, которую многие проскакивают, а зря: стабильные обновления или обновления, включая бета-версии. Это две ветки поставки. Стабильная ветка отдаёт только те версии, которые прошли более длительную обкатку и признаны производителем устойчивыми. Бета-ветка отдаёт свежие версии раньше, но они менее обкатаны и чаще содержат недоработки.

Для боевого интернет-магазина правильный выбор почти всегда — стабильная ветка. Магазин зарабатывает деньги здесь и сейчас, и ему не нужно быть на острие свежайших сборок ценой риска поймать регресс. Бета-ветка оправдана в узких случаях: когда нужна конкретная новая возможность, которая ещё не доехала до стабильной, или когда вы разработчик и обкатываете совместимость заранее — но и тогда бету гоняют на копии, а не на бою.

Ветка обновленийЧто даётКому подходит
СтабильнаяТолько обкатанные версии, меньше риск регрессаБоевые магазины по умолчанию
Бета (включая бета-версии)Свежайшие сборки раньше, но менее обкатанныеТест на копии, ранняя проверка совместимости

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

Две ветки поставки обновлений Выход версии новый релиз ядра/модуля Стабильная дольше обкатана меньше риск регресса → боевой магазин Бета свежее, но сырее возможны регрессы → только копия/тест
Схема: стабильная ветка — для боевого магазина, бета — для обкатки на копии; выбор ветки задаётся в настройках обновлений.

Из чего состоит обновление: ядро и модули

Полезно понимать, что именно обновляется. 1С-Битрикс — модульная платформа: помимо ядра (главный модуль main) есть десятки модулей — «Информационные блоки» (iblock), «Торговый каталог» (catalog), «Интернет-магазин» (sale), «Поиск» (search), «Веб-формы», «Highload-блоки» и другие. Обновление приходит по каждому модулю отдельными версиями, и SiteUpdate показывает, у каких модулей есть свежие версии.

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

Что обновляетсяПримерыОсобенность
Ядро (главный модуль)main, D7-платформаБазовая совместимость, требования к PHP
Модули магазинаiblock, catalog, saleКаталог, цены, корзина, заказы
Сервисные модулиsearch, формы, статистикаМогут требовать переиндексации
Решения и модули маркетплейсашаблон Аспро, сторонние модулиОбновляются отдельно, через Marketplace

Отдельная категория — обновления языковых файлов и данных (например, справочников). Они безопаснее обновлений ядра, но тоже проходят через ту же технологию. А вот обновления сторонних модулей и готовых решений идут своим каналом (Marketplace) и требуют отдельного внимания — о них ниже, в разделе про решения.

Раздел «Обновление системы» в админке

Практически всё управление обновлениями живёт в админке, в разделе «Настройки → Обновление системы» (SiteUpdate). Это и есть тот интерфейс, через который вы видите доступные обновления, выбираете ветку, запускаете установку и следите за результатом. Разберём, что там есть по существу.

  1. Список доступных обновлений. Система показывает, какие модули имеют свежие версии, и краткое описание того, что войдёт. Здесь же виден статус лицензии и техподдержки.
  2. Выбор ветки и режима. Переключатель «стабильные / включая бета» и опции установки. Для боевого магазина — стабильная.
  3. Проверка системы. Встроенная проверка совместимости показывает требования к окружению (версия PHP, настройки, права), которые нужны для новых версий. Её стоит смотреть до установки.
  4. Установка обновлений. Запуск скачивания и применения патчей. Процесс идёт порциями; в конце система сообщает результат и, если нужно, просит выполнить дополнительные шаги (например, конвертацию таблиц).
  5. Журнал и история. Что и когда обновлялось, какие версии стоят сейчас. Полезно для аудита и планирования следующего цикла.

Важная деталь: на время установки обновлений платформа может закрывать доступ к сайту (режим технических работ) — именно поэтому обновление на боевом сайте потенциально означает короткую недоступность витрины. Обходят это ровно тем, что тяжёлую часть (само обновление и устранение конфликтов) делают на копии, а на бой переносят уже готовый результат в короткое окно. К этому регламенту мы придём в разделе 13.

Права и доступ. Для обновления нужны корректные права на запись в файловую структуру и рабочее соединение с серверами обновлений. Если у хостинга закрыт исходящий доступ или не хватает прав на папки, SiteUpdate выдаст ошибку скачивания или распаковки. Это первое, что проверяют, когда «обновление не качается».

Главное правило: не править ядро

Если из всей статьи запомнить одну фразу, пусть это будет она: ядро Битрикса не правят никогда. Ядро — это папка bitrix/modules и всё, что производитель поставляет как системный код. При обновлении SiteUpdate перезаписывает эти файлы новыми версиями. Любая ваша правка внутри ядра при обновлении бесследно исчезнет — файл будет заменён на свежий.

Почему так вообще случается? Обычно из лучших побуждений и в спешке: разработчику нужно изменить поведение штатного компонента или обойти баг, и «проще всего» поправить исходник прямо в ядре. Работает — сразу, ломается — потом, при первом же обновлении. Причём ломается тихо: правка пропала, поведение вернулось к штатному (или сломалось, если магазин на эту правку опирался), а в коде проекта нет ни следа того, что здесь вообще что-то меняли. Отладка такого — археология.

Правильная альтернатива всегда существует. Всё, что нужно изменить, выносят в места, которые обновление не трогает:

Когда весь проект построен по этому правилу, обновление становится безопасным по своей природе: платформа обновляет своё, ваши доработки лежат отдельно и не конфликтуют. Именно поэтому аудит «а не правили ли здесь ядро» — обязательный первый шаг перед первым обновлением незнакомого проекта.

Правки ядра против чистого обновления Правки прямо в ядре bitrix/modules — правленый файл Обновление перезаписывает файл Правка исчезла → сайт сломан Кастомизация отдельно /local, свой шаблон, события Обновление трогает только ядро Доработки на месте → всё работает
Схема: правка в ядре затирается обновлением и роняет сайт; та же логика, вынесенная в /local, свой шаблон или обработчики событий, переживает обновление без потерь.

Что ломается при обновлении кастомизированного проекта

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

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

Шаблоны и компоненты: где прячутся риски

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

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

Правильно скопированный в свою тему шаблон компонента обновление не трогает — и это хорошо. Но есть обратная сторона: если штатный компонент в новой версии изменил структуру $arResult (данные, которые он передаёт в шаблон), ваш старый шаблон может начать выводить пустоту или падать, потому что ждёт данные в прежнем формате. Это не «поломка обновлением напрямую», а рассинхрон между свежим компонентом и вашим замороженным шаблоном. Лечится сверкой: после обновления проверяют, что кастомные шаблоны получают данные в ожидаемом виде, и при необходимости подтягивают их под новую структуру.

Компоненты 2.0 и комплексные компоненты

Комплексные компоненты (например, bitrix:catalog) — это связка нескольких простых компонентов и общая логика маршрутизации. При обновлении меняются и они. Если вы переопределяли часть шаблонов комплексного компонента или вклинивались в его параметры, после обновления стоит проверить всю цепочку: список раздела, детальную, фильтр, пути ЧПУ. Особенно внимательно — к SEO-настройкам и ЧПУ, чтобы обновление не сбросило кастомные правила формирования адресов.

Кастомные и маркетплейс-компоненты

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

Копия и staging: обновляем не на бою

Центральная идея безопасного обновления проста: всё рискованное делается на копии, а не на боевом сайте. Копия (staging, тестовый стенд) — это развёрнутая на отдельном окружении точная копия боевого магазина: те же файлы, та же база (или её актуальный слепок), то же окружение по возможности. На этой копии и проводят обновление в первый раз.

Зачем это нужно, очевидно из предыдущих разделов: обновление на кастомизированном проекте может конфликтовать с доработками, и место для того, чтобы это обнаружить и починить, — копия, где ошибки не видит ни один покупатель. На копии обновление можно повторять сколько угодно раз, откатывать, экспериментировать с версиями PHP и настройками — и только выверенный результат переносить на бой.

Хорошая копия отвечает нескольким требованиям:

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

Бэкап и план отката

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

Что именно бэкапят и почему согласованно:

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

План отката — это заранее написанный сценарий. Не «будем разбираться по ситуации», а конкретные шаги: где лежит бэкап, как быстро развернуть файлы и базу, кто это делает и за сколько. Отрепетированный откат превращает потенциальную катастрофу в 15-минутный инцидент.
Бэкап как план отката 1. Бэкап «до» файлы + база, один момент 2. Обновление ядро, модули, миграции 3. Проверка сценарии магазина Всё ок → готово кэш, композит, индексы Проблема → откат развернуть бэкап «до» откат возвращает состояние «до»
Схема: согласованный бэкап файлов и базы «до» — это точка возврата; если проверка после обновления выявила проблему, откат восстанавливает рабочее состояние магазина.

Чек-лист перед обновлением

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

  1. Проверить лицензию и техподдержку. Активна ли техподдержка, доступны ли обновления. Если истекла — продлить заранее.
  2. Зафиксировать текущие версии. Записать, какие версии ядра и модулей стоят сейчас, чтобы понимать масштаб скачка и иметь точку отсчёта.
  3. Провести аудит кастомизаций. Найти правки ядра, устаревший API, сторонние модули без свежих версий, хаки штатных шаблонов. Это карта рисков.
  4. Проверить окружение. Версия PHP и СУБД, требования новой версии по «Проверке системы». Понять, не нужен ли попутный апгрейд PHP.
  5. Снять и проверить бэкап. Файлы + база согласованно, с проверкой, что разворачивается.
  6. Развернуть свежую копию. Изолированную от боевых писем, оплат и обмена, закрытую от индексации.
  7. Составить список проверок. Ключевые сценарии магазина (каталог, фильтр, корзина, заказ, оплата, обмен), которые надо прогнать после обновления.
  8. Выбрать окно. Время низкой нагрузки для переноса на бой и людей, готовых оперативно откатить в случае проблемы.

Этот чек-лист — не бюрократия, а сжатый опыт: почти каждая авария при обновлении объясняется пропущенным пунктом отсюда. «Не проверили техподдержку — не качается», «не сделали бэкап — нечем откатываться», «не глянули PHP — упало по фаталу», «обновляли сразу на бою — легли в пик».

Регламент обновления без простоя

Теперь соберём всё в единый регламент, по которому обновление проходит для покупателей незаметно. Логика в том, чтобы вся тяжёлая и рискованная работа шла на копии, а на боевой сайт попадал уже выверенный результат в короткое окно.

  1. Копия. Снимаем актуальный слепок боевого магазина (файлы + база), разворачиваем изолированную копию, закрываем от индексации и внешних интеграций.
  2. Обновление на копии. Через SiteUpdate обновляем ядро и модули на копии. Здесь же, при необходимости, поднимаем версию PHP и обновляем решение/модули маркетплейса.
  3. Устранение конфликтов. Чиним всё, что сломалось: несовместимый код, поехавшие шаблоны, устаревший API. На копии это безопасно и повторяемо.
  4. Тестирование. Прогоняем список ключевых сценариев: каталог, карточка, умный фильтр, поиск, корзина, оформление и оплата заказа, авторизация, личный кабинет, обмен с 1С, письма. Проверяем вёрстку и мобильную версию.
  5. Бэкап боевого. Перед переносом снимаем свежий согласованный бэкап боевого сайта — точку отката.
  6. Перенос на бой в короткое окно. В час низкой нагрузки переносим выверенные изменения на боевой сайт (обновлённые файлы и, если нужно, применяем миграции), максимально коротко и по заранее описанному сценарию.
  7. Постобработка. Сбрасываем кэш, прогреваем композит, перестраиваем фасет фильтра и переиндексируем поиск, проверяем ключевые сценарии уже на бою.
  8. Мониторинг. Первые часы и сутки следим за журналом ошибок, скоростью, заказами и обменом. Если что-то всплыло — чиним или откатываемся по плану.

Ключевой приём против простоя — разнесение по времени: длинная и непредсказуемая часть (обновление и починка) отвязана от боя и живёт на копии, а на витрину приходит короткая и предсказуемая операция переноса. Именно поэтому «обновление без простоя» — это не магия, а правильно устроенная последовательность. На высоконагруженных проектах перенос дополнительно готовят так, чтобы переключение было почти мгновенным, а откат — в один шаг; это часть архитектуры highload-проекта на Битриксе, где обновления и релизы изначально проектируют без остановки сервиса.

Регламент обновления без простоя Копия слепок боевого staging, изоляция Обновление SiteUpdate ядро + модули Тест сценарии магазина починка конфликтов Перенос короткое окно бэкап + откат Монитор. кэш, индексы журнал ошибок Тяжёлое — на копии; на бой приходит короткая предсказуемая операция переноса
Схема: обновление проходит на копии (обновление → тест → починка), а на боевой сайт переносится выверенный результат в короткое окно, после чего идёт постобработка и мониторинг.

Обновление версии PHP

Обновление Битрикса почти всегда рано или поздно упирается в версию PHP. Связь двусторонняя, и её важно держать в голове. Свежие версии ядра требуют достаточно современного PHP и перестают поддерживать устаревшие; встроенная «Проверка системы» прямо показывает минимально требуемую версию. Если на сервере PHP слишком стар, часть обновлений не встанет или платформа будет жаловаться.

Обратная сторона опаснее: поднять PHP на старом сайте с кастомным кодом — рискованно. Новые версии PHP удаляют устаревшие конструкции и меняют поведение функций. Старый код (особенно самописный и старые модули маркетплейса) может использовать то, чего в новом PHP уже нет, — и сайт упадёт с фатальными ошибками сразу после переключения версии. Поэтому апгрейд PHP нельзя делать «вслепую» на бою.

Правильный порядок — совмещать оба апгрейда и обкатывать вместе на копии:

  1. На копии поднять целевую версию PHP — ту, что планируется на бою.
  2. Прогнать проверку системы Битрикса и посмотреть предупреждения о совместимости.
  3. Обновить ядро и модули до версий, совместимых с этой версией PHP.
  4. Проверить кастомный код на устаревшие конструкции; поймать фаталы и предупреждения в журнале.
  5. Прогнать сценарии магазина целиком, и только выверенную связку «PHP + Битрикс» переносить на бой.

Иногда именно версия PHP становится триггером всего обновления: хостинг объявляет, что снимает поддержку старой версии, и магазин вынужден и PHP поднять, и Битрикс подтянуть до совместимого. Такой вынужденный апгрейд — как раз тот случай, когда экономия на регулярных обновлениях оборачивается авралом. Регулярное сопровождение держит связку «PHP + ядро» в актуальном коридоре и убирает эти авралы.

Композит, кэш и переиндексация после обновления

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

Логика кэша и его инвалидации подробно разобрана в статье про кэширование в 1С-Битрикс — после обновления работают ровно те же механизмы, только сброс делается тотально: меняется код, поэтому старый кэш недействителен весь. А вот скорость после обновления стоит замерить отдельно: новая версия может изменить производительность в обе стороны, и её влияние на метрики удобно проверять через Core Web Vitals для интернет-магазина — сравнить TTFB и LCP до и после.

Типичный «фантомный баг» после обновления — это неочищенный кэш или композит. Разработчик клянётся, что всё починил, а на витрине висит старое поведение. Прежде чем искать регресс, всегда сначала сбросьте кэш и прогрейте композит — в половине случаев «баг» исчезает сам.

Обновление редакции и переход между редакциями

Отдельно стоит различать обновление версии (в рамках вашей редакции) и переход между редакциями (например, со «Старта» на «Малый бизнес» или на «Бизнес»). Это разные операции. SiteUpdate обновляет версии модулей в пределах вашей редакции. Смена редакции — это апгрейд лицензии, при котором открываются новые модули (интернет-магазин, торговый каталог, дополнительные возможности).

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

ОперацияЧто меняетсяКогда нужна
Обновление версииСвежие версии модулей вашей редакцииРегулярно, ради безопасности и совместимости
Переход на старшую редакциюОткрываются новые модули (магазин, каталог)Когда магазин перерос текущую редакцию
Продление техподдержкиВозобновляется доступ к новым обновлениямПо истечении срока поддержки

Важно: смена редакции меняет доступный функционал, но не отменяет всё, о чём мы говорили. После перехода те же правила — обновляться на копии, бэкапить, проверять сценарии. А новые модули (например, только что открытый интернет-магазин) нужно ещё настроить: типы цен, склады, способы оплаты и доставки, обмен с 1С. Это уже ближе к разработке, чем к обновлению.

Обновление готовых решений (Аспро и другие)

Огромная доля магазинов на Битриксе построена на готовых решениях из маркетплейса — Аспро и подобных. Для них у обновления появляется вторая линия: помимо обновления платформы через SiteUpdate есть обновление самого решения (шаблона) через Marketplace. Эти две линии нужно согласовывать.

Ключевые особенности обновления решений:

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

Перед обновлением решения составьте список ваших доработок витрины и проверьте, где они лежат. Если хоть что-то правилось прямо в файлах решения (а не в дочернем шаблоне или настройках) — это кандидат на «пропадёт после обновления». Такие места переносят в правильные слои до, а не после обновления.

Мониторинг после обновления

Обновление не заканчивается в момент, когда сайт открылся. Часть проблем проявляется не сразу: редкие сценарии, ночной обмен с 1С, отправка писем, отложенные агенты, поведение под реальной нагрузкой. Поэтому первые часы и сутки после переноса на бой — это период активного мониторинга.

Если в окне мониторинга всплывает серьёзная проблема, которую нельзя быстро починить, срабатывает заранее подготовленный план отката: разворачиваем бэкап «до» и возвращаем магазин в рабочее состояние, а разбор конфликта переносим обратно на копию. Наличие такого плана и есть то, что отличает контролируемое обновление от рулетки. На проектах, которые ведут на постоянной технической поддержке, мониторинг после обновления встроен в процесс по умолчанию, и большинство проблем ловится ещё до того, как их заметит бизнес.

Частые ошибки обновления

Большинство аварий при обновлении Битрикса повторяются из проекта в проект. Зная их заранее, вы обойдёте почти все грабли.

Чек-лист обновления

Короткий список, по которому удобно свериться на каждом обновлении — от подготовки до постобработки:

Вывод

Обновление 1С-Битрикс пугает ровно до тех пор, пока остаётся импровизацией. Как только оно превращается в регламент, страх уходит: технология SiteUpdate штатно доставляет свежие версии ядра и модулей при активной техподдержке; стабильная ветка бережёт боевой магазин от сырых сборок; правило «не править ядро» делает обновление предсказуемым; копия и бэкап дают безопасное место для рисков и гарантированный откат. Всё тяжёлое уходит на staging, а на витрину приходит короткая выверенная операция переноса — отсюда и «обновление без простоя».

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

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

Что такое SiteUpdate в 1С-Битрикс и как он работает?

SiteUpdate (технология обновлений) — встроенная в платформу система, через которую 1С-Битрикс скачивает и устанавливает свежие версии ядра и модулей. Она работает из админки в разделе «Обновление системы»: сайт по защищённому каналу связывается с серверами обновлений, сверяет лицензионный ключ и активность техподдержки, получает список доступных обновлений и накатывает выбранные. Обновление приходит порциями (патчами), которые распаковываются в файлы системы и применяют миграции базы. Именно поэтому обновление в Битриксе — это штатная кнопка, а не ручная перезаливка папки bitrix через FTP.

Можно ли обновлять Битрикс, если истекла техподдержка (продление лицензии)?

Скачивание новых обновлений ядра и модулей доступно только пока у лицензии активна техническая поддержка (первый год включён в покупку, дальше продлевается). Если поддержка истекла, сайт продолжает работать на той версии, что уже установлена, но получить свежие обновления через SiteUpdate нельзя — раздел «Обновление системы» перестаёт отдавать новые пакеты. Чтобы снова обновляться (например, ради совместимости с новой версией PHP или закрытия уязвимостей), продление техподдержки нужно возобновить. Отдельно от обновлений доступ к сайту и антивирус/проактивная защита — это другие подписки.

Почему нельзя просто нажать «Обновить» на боевом магазине?

Можно, но это лотерея. Обновление меняет файлы ядра и структуру базы, а на кастомизированном проекте (свои шаблоны, доработанные компоненты, а тем более правки в самом ядре) новая версия может конфликтовать с доработками: сломается вёрстка, отвалится корзина, перестанет открываться каталог. Если это случилось прямо на бою, магазин теряет продажи, пока разработчик разбирается. Безопасный путь — обновиться сначала на копии (staging), прогнать проверку ключевых сценариев, устранить конфликты и только потом перенести результат на боевой сайт в короткое окно. Так простоя витрины практически нет.

Чем опасны правки ядра при обновлении?

Ядро (папка bitrix/modules) при обновлении перезаписывается: SiteUpdate накатывает новые версии файлов поверх старых. Если разработчик когда-то поправил файл ядра напрямую — исправил баг, «подкрутил» поведение компонента в его исходниках, — обновление затрёт эту правку, и поведение вернётся к штатному (или сломается, если правка была нужна для работы магазина). Хуже того, такие правки невидимы: они не задокументированы и всплывают только после обновления, когда «вдруг перестало работать». Поэтому золотое правило Битрикса — ядро не править никогда, а всю кастомизацию выносить в свои шаблоны, компоненты, обработчики событий и модули, которые обновление не трогает.

Нужно ли делать бэкап перед обновлением и что именно бэкапить?

Бэкап перед обновлением обязателен — это ваш план отката, если что-то пойдёт не так. Бэкапить нужно и файлы (как минимум папку bitrix и папку с публичной частью), и базу данных целиком, причём согласованно — на один момент времени. Тогда при неудачном обновлении вы возвращаете и файлы, и базу на состояние «до», и магазин работает как раньше. Бэкап только файлов без базы бесполезен: обновление применяет миграции структуры БД, и без отката базы файлы старой версии не совпадут с новой схемой. Идеально — снять бэкап штатным модулем или средствами хостинга и убедиться, что он разворачивается, а не просто лежит.

Как обновление связано с версией PHP?

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

Что нужно проверить и перестроить после обновления?

После обновления первым делом сбрасывают кэш (иначе часть страниц отдаётся из старого кэша и «показывает баг, которого уже нет») и заново прогревают композит. Дальше проверяют ключевые сценарии: открытие каталога и карточки, работу умного фильтра, добавление в корзину и оформление заказа, авторизацию, обмен с 1С. Отдельно стоит перестроить фасетный индекс умного фильтра и переиндексировать поиск, если обновление затрагивало модуль каталога или поиска. Полезно пройтись по журналу ошибок и включить мониторинг на первые сутки, чтобы поймать редкие сценарии, которые не воспроизвелись при ручной проверке.

Как обновлять магазин на готовом решении, например на Аспро?

У готового решения (Аспро и подобных) две линии обновлений: обновление самой платформы 1С-Битрикс через SiteUpdate и обновление шаблона решения через Marketplace. Их нужно согласовывать: свежая версия ядра может требовать свежей версии решения, и наоборот. Главная сложность в том, что витрину решения почти всегда дорабатывают под себя, а обновление шаблона может затереть эти доработки, если их вносили прямо в файлы решения, а не в дочерний шаблон или через штатные настройки. Поэтому решения обновляют по той же дисциплине: сначала на копии, с проверкой кастомизаций и вёрстки, затем перенос на бой. Перед обновлением решения читают его changelog и заметки вендора.

Поделиться:

Нужно обновить Битрикс без риска для продаж?

Обновим ядро, модули и решение на копии, устраним конфликты с доработками и перенесём на бой без простоя. Возьмём на себя бэкап, откат, кэш и композит после обновления. Рассчитаем работу по вашему магазину.

Услуга «Поддержка сайта»

Игорь Воскресенский

Команда студии B2Bsite. С 2014 года разрабатываем, ускоряем и поддерживаем интернет-магазины на 1С-Битрикс: обновление ядра и модулей через SiteUpdate, переход между редакциями, обновление решений и PHP, композит и кэш для среднего и крупного бизнеса.

← Все статьи блога