Оповестить об окончании работы инсталлятора BX24.installFinish

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

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

Функция BX24.installFinish сообщает об окончании работы инсталлятора или настройщика приложения. Вызовом этой функции приложение с интерфейсом завершает свою установку в Битрикс24.

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

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

Собственный scope функции не нужен: она не обращается к REST API. Права и scope проверяются в тех методах Битрикс24, которые вызывает сам установочный сценарий: например, placement.bind требует прав администратора, а event.bind доступен любому пользователю — с ограничениями для офлайн-событий и чужого auth_type.

Параметры функции

Без параметров.

Поведение на разных этапах установки

Результат зависит от того, на каком этапе вызвана функция.

Этап

Когда наступает

Что происходит по вызову

Инсталлятор

Приложение еще не установлено, у него задан адрес страницы установки, а у текущего пользователя есть право устанавливать приложения. Битрикс24 открывает во фрейме страницу установки

Битрикс24 помечает приложение установленным и перезагружает страницу Битрикс24, на которой открыто приложение

Настройка

Выполняется обработчик первого запуска, зарегистрированный через BX24.install

Управление переходит к следующему обработчику BX24.install. После последнего обработчика Битрикс24 запоминает, что для этого пользователя приложение уже запускалось, и запускает обработчики BX24.init

Обычный запуск

Приложение уже установлено и открыто пользователем

Вызов не делает ничего и не сообщает об этом

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

Пока installFinish не вызван, приложение с интерфейсом считается неустановленным, и Битрикс24 не доставляет ему события: обработчики чат-ботов и обработчики, зарегистрированные через event.bind, не получают запросов. Встройки, зарегистрированные через placement.bind, не появятся в интерфейсе.

Ошибки при этом нет: регистрация проходит успешно, обработчики видны при запросе, но трафика нет.

Вызывайте installFinish последним шагом установочного сценария — после того как зарегистрировали встройки и подписались на события. Если регистрация не удалась, не завершайте установку на этапе инсталлятора. Внутри обработчика BX24.install правило обратное: вызывайте installFinish в любом случае, иначе цепочка обработчиков остановится.

Пример кода

Как использовать примеры в документации

Код размещают на странице, которая указана у приложения как адрес установки. Установочный сценарий регистрирует встройку и подписку на событие пакетом BX24.callBatch и завершает установку только после того, как обе регистрации прошли.

<div id="install-error"></div>

<script src="//api.bitrix24.tech/api/v1/"></script>
<script>
    // ждем данные Битрикс24: вызванный раньше installFinish пометит приложение установленным, не разбирая этап
    BX24.init(function() {
        BX24.callBatch({
            bindPlacement: {
                method: 'placement.bind',
                params: {
                    PLACEMENT: 'CRM_DEAL_DETAIL_TAB',
                    HANDLER: 'https://example.com/b24/deal-tab.php',
                    TITLE: 'Аналитика по сделке'
                }
            },
            bindEvent: {
                method: 'event.bind',
                params: {
                    event: 'ONCRMDEALUPDATE',
                    handler: 'https://example.com/b24/deal-update.php'
                }
            }
        }, function(result) {
            if (result.bindPlacement.error() || result.bindEvent.error()) {
                // установку не завершаем: без встройки и подписки приложение работать не будет
                console.error('Ошибка регистрации: ', result.bindPlacement.error(), result.bindEvent.error());
                document.getElementById('install-error').textContent = 'Установка не завершена, попробуйте еще раз';
                return;
            }

            // installFinish — последним шагом, когда встройки и события уже зарегистрированы
            BX24.installFinish();
        });
    });
</script>

Обработка ответа

Функция не возвращает данные (void) и не принимает обработчик. О результате говорит поведение Битрикс24 — на каждом этапе свое, как описывает таблица Поведение на разных этапах установки.

Вызывайте функцию один раз за этап. На этапе инсталлятора управление после вызова уходит Битрикс24, страница перезагружается, и код после installFinish может не выполниться.

После цепочки обработчиков BX24.install функция становится пустой: следующие вызовы, в том числе из обработчиков BX24.init, ничего не делают. Завершайте настройку внутри цепочки, а не после нее.

Проверить состояние установки программно можно методом app.info. Поле result.INSTALLED имеет тип boolean. Фрагмент ответа для завершенной установки:

{
    "result": {
        "INSTALLED": true
    }
}

У приложения с интерфейсом значение false означает, что installFinish еще не вызван. Остальные поля ответа описывает страница метода app.info.

Обработка ошибок

Своих кодов ошибок у функции нет: она не обращается к REST API, а передает сообщение странице Битрикс24. Неудачи выглядят как отсутствие результата.

Ситуация

Что происходит

Что делать

Функция вызвана после инициализации вне этапа инсталлятора и вне обработчика BX24.install

Библиотека заменяет функцию пустой, вызов не делает ничего

Вызывать функцию со страницы установки приложения или из обработчика BX24.install

Приложение устанавливается серверным обработчиком, а не страницей установки

Вызывать функцию неоткуда: кода во фрейме нет

Завершать установку так, как описывает Установка приложения через callback-обработчик

Функция вызвана до того, как отработала инициализация библиотеки

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

Вызывать функцию в обработчике BX24.init или в обработчике BX24.install

Страница открыта не во фрейме приложения

Библиотека не инициализируется: при загрузке она выбрасывает исключение Unable to initialize Bitrix24 JS library!, объект BX24 становится равен null

Открывать страницу как приложение Битрикс24

У пользователя нет права устанавливать приложения

Приложение остается неустановленным. Если пользователь открывает приложение, у которого задана страница установки, Битрикс24 показывает ему сообщение о незавершенной установке вместо интерфейса приложения

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

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