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

3 мин чтения

Крупный релиз почти без ломающих изменений: модуль обзавёлся публичным 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.

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

security 26.200.0 Безопасность Свежее

Security 26.200.0 не ставится на маке и Windows: фатал «Cannot redeclare class» прямо в апдейтере

Обновление security 26.200.0 у нас не установилось вообще: апдейтер умирает с фаталом посреди своего скрипта. Если ваш прод на Linux — выдыхайте, вас это не касается. А вот если вы ставите обновления в локальной разработке на macOS или Windows (Docker с bind-mount проектной папки — это ровно тот слу...

4 мин
mail 26.900.0 Заметное Свежее

Mail 26.900.0: общие подписи ломают старый API, а тяжёлые вложения переезжают на Диск

Модуль mail получил один из самых жирных релизов за последнее время: 523 файла, +39 182/−3 131 строк. Внутри — три большие фичи (общие подписи, автоперенос тяжёлых вложений на Диск, избранное с AI-классификацией писем), переработанный IMAP-синк истории и три новые таблицы в БД. Если вы кастомизирова...

4 мин
location 26.300.0 Заметное Свежее

Location 26.300.0: батчевый обратный геокодинг — до 20 координат за один вызов

Релиз от 17 июня 2026 с одной, но цельной темой: в модуль `location` завезли батчевый обратный геокодинг — метод `findByCoordsList`, который превращает список координат в список локаций за один вызов сервиса. Если вы строите интеграции с картами или доставкой и до сих пор дёргали `findByCoords` в ци...

2 мин
main 26.700.0 Заметное Свежее

Main 26.700.0: в ядре появились фича-флаги

Битрикс выкатил main 26.700.0 — и это тот редкий случай, когда в ядре появляется целая новая подсистема: фича-флаги `Bitrix\Main\Config\Feature` с двумя таблицами в БД. Плюс несколько тихих поведенческих изменений, которые стоит проверить, если у вас не-UTF-8 сайт, кастомные фильтры пользователей ил...

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

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

на связи

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

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

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

Войти