Коробочный 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. Проверка
- Перезагрузите страницу портала с очисткой кэша браузера (Ctrl+F5 / Cmd+Shift+R).
- Откройте карточку приложения и нажмите «Открыть приложение» — должно открыться окно BIC.
- Проверьте, что плитка приложения видна сотруднику без прав администратора.
- Включите события в настройках интеграции — подписка должна перейти в активное состояние.
Платформа помогает сама: она сверяет состояние установки с порталом и, обнаружив расхождение, повторяет завершающий шаг при следующем открытии приложения. А при попытке включить события на неустановленном приложении она не «подпишется молча», а покажет причину отказа.
События включали до фикса? Выключите и включите их заново. Повторное включение «как есть» ничего не изменит: Bitrix уже отвязал свой внутренний обработчик, но запись о подписке оставил — нужен полный цикл отключения и подключения, который платформа и выполняет по этой кнопке.
5. Связанные разделы
- Установка приложения интегратора — если на коробке ваш собственный портал.
- Установка приложения клиента — если на коробке портал клиента (фикс выполняет тот, у кого есть доступ к серверу портала).
- Установка Local App — отдельный необязательный модуль для ускорения синхронизации на коробке. Его шаг «прогрев классов» тоже правит
init.php, но это другая задача и фикс выше он не заменяет.
Не нашли ответа — напишите в поддержку: info@bic-24.ru.