На главную

Коробочный Bitrix24: фикс установки приложения

Обновлено 11 августа 2026

На коробочном (self-hosted) Bitrix24 установка приложения из Маркетплейса не всегда доходит до конца: кнопка «Открыть приложение» не срабатывает из-за особенности самого Bitrix. Лечится одним обработчиком в файле local/php_interface/init.php. Шаг обязательный — без него приложение считается неустановленным, плитка скрыта от сотрудников, а события портала не доставляются.

Касается только коробочных порталов — и портала интегратора, и портала клиента. На облачных Bitrix24 ничего делать не нужно. С режимом Local App не связано: фикс нужен и без него.

1. Как понять, что нужен фикс

  • В карточке приложения на портале кнопка «Открыть приложение» нажимается, но ничего не происходит (в консоли браузера — ошибка вида BX.rest.AppLayout is undefined).
  • Плитку приложения видит только администратор портала — рядовые сотрудники её не находят.
  • В настройках интеграции включены события (вебхук), но статус подписки не меняется на «активна» и остаётся в ожидании.
  • При этом синхронизация в целом работает: задачи и сообщения ходят по обычному опросу.

Все четыре признака — следствия одной причины, достаточно одного из них.

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

Страница Маркетплейса на коробке вызывает у себя внутренний интерфейс Bitrix для открытия приложения, но не подгружает расширение applayout, в котором этот интерфейс объявлен. Обработчик кнопки падает с ошибкой, страница приложения не открывается — а значит не выполняется завершающий шаг установки, который приложение делает уже в своём окне.

В результате Bitrix продолжает считать приложение не до конца установленным, и это меняет его поведение:

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

Обычные запросы к порталу при этом работают штатно — поэтому проблема выглядит не как поломка, а как «события почему-то не включаются».

3. Что добавить в init.php

На сервере портала откройте файл /local/php_interface/init.php и добавьте обработчик, который принудительно подгружает нужное расширение:

<?php
// BIC fix (marketplace install): Bitrix install-store.bundle.js calls
// top.BX.rest.AppLayout.openApplication() but never loads the 'applayout' extension, so
// BX.rest.AppLayout is undefined and "Open application" crashes. Force-load applayout
// (js+css+lang) on portal pages so the API and its URL messages exist. See /local/bic (BIC).
\Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'OnProlog', function () {
    if (\Bitrix\Main\Loader::includeModule('rest')) {
        \CJSCore::Init(['applayout']);
    }
});
  • Файла нет — создайте его целиком с приведённым содержимым (владелец и права — как у остальных файлов портала).
  • Файл уже есть — допишите обработчик в конец, не удаляя то, что там подключается (например, собственные доработки портала). Открывающий <?php в файле должен остаться один — в начале.

Файл init.php подключается на каждой странице портала — синтаксическая ошибка в нём положит портал целиком. Сохраните копию файла перед правкой и после сохранения откройте любую страницу портала, чтобы убедиться, что всё в порядке.

4. Проверка

  1. Перезагрузите страницу портала с очисткой кэша браузера (Ctrl+F5 / Cmd+Shift+R).
  2. Откройте карточку приложения и нажмите «Открыть приложение» — должно открыться окно BIC.
  3. Проверьте, что плитка приложения видна сотруднику без прав администратора.
  4. Включите события в настройках интеграции — подписка должна перейти в активное состояние.

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

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

5. Связанные разделы

Не нашли ответа — напишите в поддержку: info@bic-24.ru.