Обновление приложений
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Страница описывает, что происходит на Битрикс24, когда установленное приложение обновляется до новой версии: чем обновление отличается от первой установки, какие данные сохраняются и что учесть в инсталляторе новой версии. Прочитав ее, вы сможете спланировать выпуск новой версии тиражного приложения так, чтобы у пользователей не сломались настроенные сценарии.
Первую установку приложения эта страница не разбирает — ей посвящен раздел Варианты установки приложений в Битрикс24. Что происходит при удалении, описано в статье Удаление приложений.
Как выходит новая версия
Новая версия тиражного приложения проходит тот же путь, что и первая. Разработчик добавляет версию на вкладке «История версий» в карточке решения и отправляет ее на модерацию. После успешной модерации первой версии решение публикуется в каталоге автоматически, а состоянием галочки «Доступен в каталоге для покупателей» для последующих версий разработчик управляет сам. Подробности — в статье Порядок публикации решений в Битрикс24 Маркетплейс.
Обновление до опубликованной версии происходит на каждом Битрикс24 отдельно. Приложение при этом не устанавливается заново: client_id и client_secret остаются прежними, история установки сохраняется.
Что происходит при обновлении
Отдельной процедуры обновления у приложения нет: Битрикс24 выполняет ту же установку, что и в первый раз, только вместо создания записи о приложении обновляет существующую. При этом заново определяется способ завершения установки, и от него зависит и поведение мастера, и судьба служебных подписок приложения.
|
Тип приложения |
Мастер установки |
Служебные подписки |
|
Приложение с мастером установки — задан путь для первоначальной установки |
Признак завершенной установки сбрасывается. Пользователю снова открывается страница установки, а новая версия должна снова вызвать installFinish. Пока этот вызов не пришел, приложение считается ненастроенным, и его функционал заблокирован |
Подписка на |
|
Приложение без интерфейса, только с API, или без пути для первоначальной установки |
Не открывается, приложение остается установленным |
Подписки на |
Отсюда два практических следствия. Инсталлятор должен корректно отрабатывать не только на чистом Битрикс24, но и там, где предыдущая версия уже все настроила. И приложению с мастером установки нельзя рассчитывать на собственную подписку ONAPPINSTALL: после обновления ее не будет, а узнать об обновлении оно сможет, когда пользователь откроет страницу установки.
Что сохраняется при обновлении
Обновление не трогает данные, которые приложение хранит на Битрикс24 — записи CRM, файлы, элементы списков. Сохраняются и регистрации, которые приложение сделало через REST, кроме двух служебных подписок из таблицы выше.
|
Что |
Что происходит при обновлении |
|
|
Не меняются. Приложение остается тем же самым, повторная регистрация в OAuth не нужна |
|
Обработчики событий, кроме |
Сохраняются. Подписки снимает только удаление приложения |
|
Сохраняются на тех же условиях |
|
|
Сохраняются. Их очищает только удаление приложения с включенной опцией «Удалить настройки и данные приложения» |
|
|
Сохраняются на тех же условиях |
Чек-лист выпуска новой версии
- Сделайте инсталлятор идемпотентным. Один и тот же код отрабатывает и при первой установке, и при обновлении. Повторная регистрация уже существующей сущности не должна ломать установку.
- Не создавайте дубли при повторной регистрации. Большинство регистраций обновление переживает, поэтому перед event.bind получите текущие подписки методом event.get, перед placement.bind — placement.get, и регистрируйте только недостающее. Исключение —
ONAPPINSTALLиONAPPUSERREADY: эти подписки Битрикс24 пересобирает сам. - Не меняйте символьные коды роботов и действий между версиями. Схемы автоматизации и бизнес-процессы ссылаются на робота по его символьному коду. Новая версия с другим кодом оставит настроенные схемы сломанными.
- Храните версию структуры своих данных отдельно. Записывайте ее в хранилище приложения или на своей стороне, чтобы инсталлятор новой версии понимал, какие миграции применять.
- Проверьте обновление на тестовом Битрикс24. Установите предыдущую версию, настройте на ней сценарии — роботы в воронках, виджеты, подписки на события, — и обновитесь до новой. Убедитесь, что мастер установки отработал повторно и вызвал
installFinish. Проверять только чистую установку недостаточно. - Предусмотрите обратную совместимость обработчиков. Пользователи разных Битрикс24 обновляются не одновременно, и ваш сервер какое-то время принимает запросы и от старой, и от новой версии.