mobile 26.1050.0 Заметное

Mobile 26.1000.0–26.1050.0: Мобильный Маркет и личный кабинет за опциями, push/listener ловит пуш при холодном старте

2 мин чтения Устаревших API: 1
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Модуль mobile пришёл в коробочный Битрикс24 сразу двумя версиями, 26.1000.0 и 26.1050.0 (прошлую, 26.975.0, мы разбирали отдельно). Почти всё новое лежит в 26.1000.0: Мобильный Маркет и личный кабинет сотрудника (оба выключены опциями) и JS-модуль push/listener, а 26.1050.0 правит только каталог вайбкод-приложений. Разбор пригодится тем, кто пишет свои мобильные расширения с пушами, и администраторам, которые решают, что включить сотрудникам.

Новое

Включите Мобильный Маркет (26.1000.0)

Маркет теперь открывается в мобильном приложении: главная, категории, поиск, установленные приложения, установка и активация демо-подписки. Включает его флаг Bitrix\Mobile\Feature\MobileMarketFeature, за которым стоит опция mobile:isMobileMarketAvailable со значением N по умолчанию. После включения появляется вкладка Маркета с кодом marketplace, её можно поставить в нижнюю панель или открыть из меню «Ещё». Экстранет-пользователи и коллаберы вкладку не видят, а без модулей market и rest её не будет ни у кого. Страницу /mobile/market/ обновление ставит само.

Пути /market/, /market/category/<код>/, /market/detail/<код приложения>/ и /market/installed/ зарегистрированы в in-app-url, такие ссылки приложение открывает своими экранами. /market/installed/?updates=Y сразу показывает приложения с доступными обновлениями.

Дайте сотрудникам расчётные листки в телефоне (26.1000.0)

Флаг PersonalAccountFeature, опция mobile:feature_personal_account_enabled. В меню «Ещё», в блоке компании, появляется «Личный кабинет» с расчётными листками и остатками отпуска. Сотрудник выбирает компанию (если их несколько) и, для листка, месяц. Потом подтверждает запрос ПИН-кодом, который приложение подставляет само, и получает документ. Данные идут через HCM Link модуля humanresources (экшены humanresources.HcmLink.SalaryVacation.*). Поэтому пункт виден, только если портал в регионе ru, в humanresources включена опция hcmlink_salary_vacation_api_available (по умолчанию N), а сотрудник сопоставлен с работником хотя бы одной компании в HCM Link. Экстранету, коллаберам и гостям пункт не показывается.

Оба флага и опцию humanresources можно включить, например, в миграции:

        <?php

declare(strict_types=1);

use Bitrix\Main\Config\Option;
use Bitrix\Main\Loader;
use Bitrix\Mobile\Config\Feature;
use Bitrix\Mobile\Feature\MobileMarketFeature;
use Bitrix\Mobile\Feature\PersonalAccountFeature;

if (Loader::includeModule('mobile')) {
    Feature::enable(MobileMarketFeature::class);
    Feature::enable(PersonalAccountFeature::class);
}

if (Loader::includeModule('humanresources')) {
    // скрытый переключатель: сеттера и настройки в админке нет, без него пункт не появится
    Option::set('humanresources', 'hcmlink_salary_vacation_api_available', 'Y');
}

    

Feature::disable() удаляет опцию, и флаг снова выключен.

Подписывайтесь на пуши через push/listener (26.1000.0)

Пуш-слушатель теперь берут из push/listener (экспорт pushListener, методы прежние: subscribe(type, callback) и unsubscribe(type)), и у него поменялось поведение, когда на тип пуша ещё никто не подписан. Раньше такой пуш пропадал, например когда сотрудник тапнул по уведомлению, приложение стартовало с нуля, а ваше расширение ещё не загрузилось. Теперь слушатель хранит последнее сообщение каждого типа и отдаёт его первому подписчику, если с получения прошло не больше минуты.

        const { pushListener } = require('push/listener');

pushListener.subscribe('MYVENDOR_ORDER_READY', (message) => {
	// у сообщения есть id, type, title, body и payload
	openOrder(message.payload.orderId);
});

    

Тип — первый аргумент new \Bitrix\Mobile\Push\Message(...), с которым ваш бэкенд отправил пуш. Функция openOrder ваша. Список штатных обработчиков в push/notifications-register зашит, своё расширение туда не добавить, подписывайтесь в его коде.

Гостей с закрытым доступом приложение больше не пускает в чат (26.1000.0)

Гость чата, которого исключили, у которого отозвали ссылку или который сам вышел, при следующем запуске приложения попадает на экран авторизации. Сервер отвечает контрактом sessionInvalid с ошибкой GUEST_SESSION_TERMINATED. Раньше приложение снова отправляло сохранённый код ссылки, и гость молча возвращался в чат, а если его токен уже не находился, входил как новый гость.

Каталог вайбкод-приложений открывается на новых (26.1000.0, 26.1050.0)

В 26.1000.0 в каталоге появились вкладка «Новые» и бейдж «Новое» у приложений. С 26.1050.0 каталог при открытии сам переключается на «Новые», если сервер сообщил о новых приложениях, а пользователь не выбирал вкладку и не начал поиск. Счётчик newAppsCount и штамп сессии просмотра отдаёт vibecodeconnector 26.300.0 из того же обновления.

Deprecated

push/listeners с экспортом PushListener помечен @deprecated, замена — pushListener из push/listener. Старый модуль остался обёрткой над тем же объектом, глобальный this.PushListener тоже на месте, поэтому ваши расширения работают без правок. Переезд сводится к замене импорта и зависимости в deps.php:

        // было
const { PushListener } = require('push/listeners');
// стало
const { pushListener } = require('push/listener');

    

Мелочи и находки

  • При создании проекта появился шаг настройки уведомлений, а форма с несохранёнными изменениями предупреждает при закрытии (26.1000.0).
  • (new \Bitrix\Mobile\Tab\Manager())->isTabActive('marketplace') отвечает, стоит ли доступная вкладка в нижней панели текущего пользователя (26.1000.0).
  • Третий новый флаг, OnboardingPushFeature (mobile:should_send_onboarding), включает серию онбординг-пушей, но в коробке они не уйдут: агент проверяет возраст портала через CBitrix24::getCreateTime() облачного модуля bitrix24, а без него ничего не отправляет (26.1000.0).
  • Пункт «Выйти на других устройствах» в настройках безопасности сервер покажет, только когда в intranetmobile появится LoginHistory::logoutOtherDevicesAction. В intranetmobile 26.600.0 этого экшена нет (26.1000.0).

Устаревшие и удалённые API в этой версии

Символ Статус Чем заменять
push/listeners (PushListener) Deprecated push/listener (pushListener)

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

mobile 26.975.0 Рутинное Свежее

Mobile 26.975.0: вайбкод-приложения открываются в нативном PersistentScreen, если клиент его поддерживает

Mobile 26.975.0 вышел в коробку 11 сентября 2026 года (по официальному каналу «Битрикс24 changelog»). Он правит мобильный JS каталога вайбкод-приложений и расширения `feature`, а в `deps.php` каталога добавляет зависимость от `feature`. PHP-классы и БД не затронуты. `openInApp(url, options)` из `vib…

1 мин
vibecodeconnector 26.450.0 Заметное Свежее

Vibecodeconnector 26.300.0–26.450.0: ссылки на приложения, правка карточки и каталог только для сотрудников

Модуль «Интеграция с Битрикс24 Вайбкод» связывает портал с платформой Битрикс24 Вайбкод и ведёт в мессенджере каталог вайбкод-приложений и ботов. В коробочный Битрикс24 одним днём пришли три его версии: 26.300.0, 26.400.0 и 26.450.0. Последняя правит только облачное лицензирование Vibe+ и в коробке…

3 мин
signmobile 26.300.0 Заметное Свежее

Signmobile 26.200.0–26.300.0: подписанные документы КЭДО можно аннулировать с телефона

Signmobile 26.200.0 и 26.300.0 пришли в коробочный Битрикс24 одним днём. В 26.200.0 только внутренние правки, а 26.300.0 перенесла в мобильное приложение аннулирование подписанных документов КЭДО из [sign 26.700.0](/bitrix-updates/sign/sign-26-700-0). Пригодится порталам с кадровым ЭДО и тем, кто пи…

3 мин
crm 26.1400.0 Ломающее Свежее

Crm 26.900.0–26.1400.0: CRM V2 для PHP, CCrmDeal::Add только через Operation и белый список фильтра в crm.item.productrow.list

В коробочный Битрикс24 одним днём пришли шесть версий CRM: 26.900.0, 26.1000.0, 26.1100.0, 26.1200.0, 26.1300.0 и 26.1400.0. PHP-разработчику достался типизированный слой CRM V2, на котором строится и REST 3.0, а интеграции перед обновлением стоит проверить на `crm.item.productrow.list`, записи в та…

1 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти