Обновление приложений

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

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

Первую установку приложения эта страница не разбирает — ей посвящен раздел Варианты установки приложений в Битрикс24. Что происходит при удалении, описано в статье Удаление приложений.

Как выходит новая версия

Новая версия тиражного приложения проходит тот же путь, что и первая. Разработчик добавляет версию на вкладке «История версий» в карточке решения и отправляет ее на модерацию. После успешной модерации первой версии решение публикуется в каталоге автоматически, а состоянием галочки «Доступен в каталоге для покупателей» для последующих версий разработчик управляет сам. Подробности — в статье Порядок публикации решений в Битрикс24 Маркетплейс.

Обновление до опубликованной версии происходит на каждом Битрикс24 отдельно. Приложение при этом не устанавливается заново: client_id и client_secret остаются прежними, история установки сохраняется.

Что происходит при обновлении

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

Тип приложения

Мастер установки

Служебные подписки

Приложение с мастером установки — задан путь для первоначальной установки

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

Подписка на ONAPPINSTALL удаляется и заново не создается — даже если приложение завело ее само через event.bind. Подписка на ONAPPUSERREADY пересоздается на тот же путь установки

Приложение без интерфейса, только с API, или без пути для первоначальной установки

Не открывается, приложение остается установленным

Подписки на ONAPPINSTALL и ONAPPUSERREADY пересоздаются на путь установки, и приложение получает событие ONAPPINSTALL при каждом обновлении

Отсюда два практических следствия. Инсталлятор должен корректно отрабатывать не только на чистом Битрикс24, но и там, где предыдущая версия уже все настроила. И приложению с мастером установки нельзя рассчитывать на собственную подписку ONAPPINSTALL: после обновления ее не будет, а узнать об обновлении оно сможет, когда пользователь откроет страницу установки.

Что сохраняется при обновлении

Обновление не трогает данные, которые приложение хранит на Битрикс24 — записи CRM, файлы, элементы списков. Сохраняются и регистрации, которые приложение сделало через REST, кроме двух служебных подписок из таблицы выше.

Что

Что происходит при обновлении

client_id и client_secret

Не меняются. Приложение остается тем же самым, повторная регистрация в OAuth не нужна

Обработчики событий, кроме ONAPPINSTALL и ONAPPUSERREADY

Сохраняются. Подписки снимает только удаление приложения

Обработчики виджетов

Сохраняются на тех же условиях

Хранилища приложения

Сохраняются. Их очищает только удаление приложения с включенной опцией «Удалить настройки и данные приложения»

Настройки приложения

Сохраняются на тех же условиях

Чек-лист выпуска новой версии

  1. Сделайте инсталлятор идемпотентным. Один и тот же код отрабатывает и при первой установке, и при обновлении. Повторная регистрация уже существующей сущности не должна ломать установку.
  2. Не создавайте дубли при повторной регистрации. Большинство регистраций обновление переживает, поэтому перед event.bind получите текущие подписки методом event.get, перед placement.bind — placement.get, и регистрируйте только недостающее. Исключение — ONAPPINSTALL и ONAPPUSERREADY: эти подписки Битрикс24 пересобирает сам.
  3. Не меняйте символьные коды роботов и действий между версиями. Схемы автоматизации и бизнес-процессы ссылаются на робота по его символьному коду. Новая версия с другим кодом оставит настроенные схемы сломанными.
  4. Храните версию структуры своих данных отдельно. Записывайте ее в хранилище приложения или на своей стороне, чтобы инсталлятор новой версии понимал, какие миграции применять.
  5. Проверьте обновление на тестовом Битрикс24. Установите предыдущую версию, настройте на ней сценарии — роботы в воронках, виджеты, подписки на события, — и обновитесь до новой. Убедитесь, что мастер установки отработал повторно и вызвал installFinish. Проверять только чистую установку недостаточно.
  6. Предусмотрите обратную совместимость обработчиков. Пользователи разных Битрикс24 обновляются не одновременно, и ваш сервер какое-то время принимает запросы и от старой, и от новой версии.

Продолжите изучение