messageservice 26.100.0: публичный UI-слой редактора сообщений и селектора каналов

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

Крупный релиз почти без ломающих изменений: модуль обзавёлся публичным Public\UI — фабрикой, из которой любой модуль собирает редактор сообщения, селектор канала или слайдер подключений. Раньше каждый потребитель (CRM, рассылки, роботы бизнес-процессов) рисовал этот интерфейс сам.

Что решает Factory

Точка входа одна, регистрируется в .settings.php как сервис messageservice.public.ui.factory:

        $factory = \Bitrix\Main\DI\ServiceLocator::getInstance()
    ->get('messageservice.public.ui.factory');

$editor    = $factory->createEditor($scene, $context);
$selector  = $factory->createSelector($scene, $context);
$slider    = $factory->createConnectionsSlider();

    

Scene и Context — это то, ради чего фабрика вообще нужна: один и тот же редактор должен выглядеть по-разному в карточке сделки, в роботе и в рассылке — разный набор каналов, разные плейсхолдеры, разные ограничения. Вместо копии компонента на каждый случай сцена описывает контекст, а сборку берёт на себя модуль.

Слои:

  • Редактор — MessageEditor\Editor, Layout, Context, Scene (+ NullScene), ViewChannel с Appearance / Backend / Icon, каналы Channel\From и Channel\To, провайдеры контента (ContentProvider\Copilot, Files, интерфейс Showable), NotificationTemplate с Placeholder, Preferences, PromoBanner.
  • Селектор каналов — ChannelSelector\Selector, ViewChannel.
  • Слайдер подключений — ConnectionsSlider со страницами Recommendations и Sms и секциями. Компонент bitrix:messageservice.connections теперь просто дёргает фабрику.

Плюс Public\UI\SenderCode с константами SMS_PROVIDER и BITRIX24 — код провайдера перестал быть строковым литералом на стороне вызывающего.

Настройки поведения вынесены в Infrastructure\UI\Message\Editor\GlobalConfig и читаются из опций модуля: message_editor_max_visible_channels (10), message_editor_min_visible_channels (1), message_editor_recommended_max_message_length (200). JS-конфиги расширений берут GlobalConfig из ServiceLocator по FQCN — так что крутить эти числа можно централизованно, без правки бандлов.

Для IDE в модуле появился .phpstorm.meta.php на код сервиса — автодополнение по ServiceLocator::get('messageservice.public.ui.factory') работает.

Единственное изменение поведения существующего API

Sender\Sms\Wazzup::isSupported() больше не проверяет imconnector.feature_wazzup и Bitrix\Crm\Feature\TelegramActivity — остался только parent::isSupported(). Проще говоря, провайдер стал доступен там, где раньше отсекался фичефлагами. Если ваш код завязан на то, что Wazzup недоступен без включённого коннектора, — проверьте, что список провайдеров у вас не поехал.

Ломающих удалений в api.diff нет: релиз только добавляет.

Мелочи, которые видно только в диффе

  • У Wazzup появились константы CHANNEL_TYPE_TGAPI и CHANNEL_TYPE_WHATSAPP, а URL контакт-центра берётся через Integration\ImOpenLines::getContactCenterUrl() — то же сделано для Edna WhatsApp Informant.
  • Converter::convertOptions() избавился от литералов 'smsru' и 'twilio' в пользу SmsRu::ID / Twilio::ID.
  • Integration\Notifications вырос: canSendMessage, isAvailableInRegion, isLimited, isModulesInstalled, переводы шаблонов и константа SCENARIO_CRM_PAYMENT.

Что делать

  • Если вы рисуете свой выбор SMS-канала или форму отправки сообщения — посмотрите на Public\UI\Factory прежде чем поддерживать свою копию дальше. Это ровно тот случай, когда самописный компонент можно списать.
  • Проверьте доступность Wazzup в своих сценариях.
  • Новые лимиты редактора настраиваются опциями модуля, а не правкой JS.

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

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

Подписаться

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

Messageservice 26.200.0: пользовательские шаблоны сообщений через зоны и миграции вместо install.sql

Changelog называет messageservice 26.200.0 технической подготовкой к шаблонам сообщений в CRM. В диффе от 26.100.0 ([разбор](/bitrix-updates/messageservice/messageservice-26-100-0)) почти 11 тысяч строк, и это подсистема пользовательских шаблонов: таблица, команды, реестр зон, JSON-контроллер, грид…

3 мин
voximplant 26.900.0 Заметное Свежее

Voximplant 26.900.0: подписанные параметры экспорта статистики

Voximplant 26.900.0 подписывает имя компонента при экспорте детализации статистики. Обновление также исправляет REST-сценарии, отметку пропущенного переадресованного звонка и чтение настроек прокси.

1 мин
superset 26.700.0 Заметное Свежее

Superset 26.700.0: пользовательский контекст и проверяемый act-as

Версия 26.700.0 добавляет пользовательский контекст Superset в публичные провайдеры и команды. Проверяемый act-as для SQL Lab включается явно, поэтому существующие вызовы продолжают работать по-прежнему. Все новые параметры необязательны, прежние значения по умолчанию сохранены.

2 мин
sign 26.1200.0 Ломающее Свежее

Sign 26.1200.0: автоопределение бланков и удаление CRM API

Sign 26.1200.0 упрощает загрузку документов КЭДО, добавляет списки сотрудников в робот и обновляет «Мой сейф» без перезагрузки страницы. Перед обновлением проверьте интеграции с CRM и сервисом бланков: четыре публичные точки API удалены, а `CRM::saveCompanyStamp()` сменил тип результата.

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

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

на связи

пишет…

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

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

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

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

Войти