+7 499 938 8452 пн.-пт. 10:00 – 17:00
Есть идея по этому модулю?

Опишите доработку или сценарий — обсудим вместе с другими клиентами.

Все идеи для обсуждения

Отправка доступна после входа или регистрации. Текст формы сохранится.

Оповещения об ошибках на почту, по СМС и в мессенджеры

Менее 50 раз установок
Ставится из 1С-Битрикс Marketplace за пару минут — вкладка «Установка».

Скриншоты

Технические данные

Число установок:
Менее 50 раз
Дата обновления:
28.10.2026
Версия:
1.1.0
Адаптивность:
Нет
Поддержка композита:
Нет
Дата публикации:
12.08.2026

Совместимые редакции

Описание

Коротко: модуль подключается к штатному обработчику исключений Bitrix и присылает администратору уведомление о необработанных ошибках и fatal error — по почте или SMS/мессенджер, — используя уже настроенные на сайте почтовые события и SMS-провайдер. Тот же механизм доступен вашему коду: из модуля или скрипта можно отправить собственное оповещение в свой канал.

Что делает модуль

Rover Notifier не подменяет системный лог ошибок Bitrix, а дополняет его: регистрируется как ещё один обработчик в exception_handling.value.log и при каждом необработанном исключении или критической ошибке формирует и отправляет уведомление через стандартные события Bitrix (CEvent, SMS-событие модуля messageservice). Сам модуль писем не рассылает — он лишь инициирует штатное событие, поэтому канал доставки полностью зависит от того, что уже настроено на сайте: почтовый шаблон, SMS-шлюз, интеграция с мессенджером через messageservice.

Возможности
  • Уведомления по email и SMS/мессенджерам — два независимых события (почтовое и SMS), каждое можно включать, выключать и настраивать отдельно, стандартными средствами Bitrix. Через SMS-событие доставка настраивается и в Telegram, WhatsApp, MAX — в зависимости от установленных коннекторов модуля «Сервис уведомлений».
  • Группировка одинаковых ошибок — повторяющиеся ошибки не заваливают почту дублями, а копятся в очереди и раз в заданный интервал (по умолчанию — раз в час) отправляются одним письмом со счётчиком повторений. Одинаковыми считаются ошибки, совпадающие по классу, тексту, коду, файлу, строке, типу, источнику и набору дополнительных полей, — одна и та же ошибка из разных модулей не сливается в одну запись.
  • Критичные ошибки — без задержки — Fatal error и необработанные исключения по умолчанию отправляются немедленно, минуя группировку, даже если она включена для остальных ошибок. Такое письмо уходит и мимо почтовой очереди, поэтому доходит, даже когда разбирающий очередь крон остановлен, — а в аварии это обычное дело.
  • Настраиваемый интервал группировки — регулируется из административной панели модуля, без правки кода.
  • Понятно, кто виноват — в уведомлении указывается источник ошибки: ядро, конкретный модуль (по его идентификатору) или код сайта. Модуль определяет это сам, по месту возникновения ошибки. Рядом — тип ошибки в читаемом виде (FATAL, UNCAUGHT_EXCEPTION и т.д.), а не служебный числовой код.
  • Готов к работе сразу после установки — при установке автоматически создаются почтовый и SMS-типы событий и шаблоны с готовым набором плейсхолдеров (текст ошибки, источник, тип, файл, строка, стек, счётчик повторов); донастроить нужно только получателя SMS.
  • Публичный API для разработчика — Rover\Notifier\Notifier::report() позволяет отправлять произвольные сообщения или исключения из кода сайта и других модулей теми же каналами, с любыми дополнительными полями для шаблона. Такие сообщения подчиняются общим настройкам модуля и участвуют в группировке наравне с перехваченными ошибками.
  • Модуль как транспорт для своих оповещений — отдельная настройка разрешает отправку из кода, когда перехват ошибок сайта выключен. Это для тех, кому нужен только свой канал, а fatal error чужого кода получателям ни к чему.
  • Свой канал: событие, шаблон, получатели — в контексте вызова можно указать собственное почтовое и SMS-событие и сайт (EVENT_NAME, SMS_EVENT_NAME, SITE_ID). Оповещения вашего модуля идут своим шаблоном своим адресатам и не смешиваются с ошибками сайта. Ключ IMMEDIATE отправляет сообщение немедленно — он нужен коду, который уже сгруппировал данные сам и прислал готовую сводку.
  • Корректное удаление — при деинсталляции модуль аккуратно убирает себя из конфигурации обработчика исключений, удаляет агент, таблицу очереди и (по желанию) созданные события/шаблоны, либо оставляет их, если админ отметил соответствующую опцию.
Инженерные детали, на которые стоит обратить внимание
  • Модуль никогда не прерывает основной обработчик исключений: любая ошибка на стороне самого Rover Notifier (недоступна БД, не настроен SMS-шаблон и т.п.) перехватывается и гасится внутри модуля — сайт продолжает работать так, как будто уведомителя нет.
  • Обработчик защищён от повторного входа. Подключение модуля само обращается к базе и управляемому кешу, а значит при их недоступности способно породить новую ошибку — и обработчик вызвал бы сам себя. Повторный вход блокируется флагом, запись в файловый лог при этом выполняется всегда: ей ни база, ни кеш не нужны.
  • Очередь группировки хранится в отдельной таблице через ORM Bitrix, агент разбирает её по расписанию и чистит за собой. Дополнительные поля, переданные из кода вместе с сообщением, переживают очередь и доходят до шаблона в сводном уведомлении.
  • Тип ошибки берётся из штатной классификации обработчика исключений Bitrix, а не из самодельной системы приоритетов, — поэтому «критичность» означает ровно то же, что и для самой платформы.
  • Модуль не создаёт собственную инфраструктуру доставки сообщений — использует ту, что уже есть на проекте, поэтому не конфликтует с существующими интеграциями и легко встраивается в проекты любого масштаба.
Кому подойдёт

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

Авторам собственных модулей и интеграций — как готовый транспорт оповещений: не нужно заводить свои события, очередь и группировку, достаточно одного вызова из кода.

Требования
  • «1С-Битрикс: Управление сайтом» с модулем main; дополнительных лицензий на другие модули ядра не требуется.
  • PHP 8.2 и выше.
  • Для email — ничего дополнительно не нужно, используется штатный CEvent и уже настроенный на сайте почтовый транспорт.
  • Для SMS или доставки в мессенджер (Telegram/WhatsApp/MAX и т.п.) — модуль «Сервис уведомлений» (messageservice) с настроенным провайдером; без него включена и работает только почта, ошибок это не вызывает.
  • Агент группировки использует стандартный агентский механизм «Битрикс» — отдельный крон настраивать не нужно.
Установка и настройка

Модуль устанавливается стандартно. После установки откроется страница результата установки с кнопкой «Перейти к настройкам модуля» — нажмите её.

Страница настроек также доступна в административной части по адресу: Настройки → Настройки продукта → Настройки модулей → «Оповещения об ошибках на почту, по СМС и в мессенджеры».

На странице настроек:

  • Перехват ошибок включён — включает перехват ошибок сайта. После включения и сохранения на email администратора (email сайта по умолчанию) уже будут приходить письма об ошибках без дополнительной настройки.
  • Разрешить оповещения из кода (API) при выключенном перехвате — разрешает отправку сообщений через Notifier::report(), когда перехват ошибок выключен. Включайте, если модуль нужен только как транспорт для оповещений вашего кода, а fatal error и необработанные исключения сайта получателям не нужны. При включённом перехвате настройка ни на что не влияет: report() работает и так.
  • Группировать одинаковые ошибки — если включить, повторяющиеся ошибки не отправляются каждая отдельным письмом, а копятся и раз в заданный интервал отправляются одним уведомлением со счётчиком повторов. Рядом с настройкой отображается количество ошибок в очереди (ссылка на служебную таблицу) и время следующей отправки.
  • Интервал отправки группы, сек (например, 3600 = раз в час) — периодичность отправки накопленной группы ошибок. Поле активно только при включённой группировке.
  • Критичные ошибки (Fatal error / необработанное исключение) отправлять сразу, минуя группировку — включено по умолчанию: даже при включённой группировке фатальные ошибки и необработанные исключения отправляются немедленно, не дожидаясь интервала. Такое письмо уходит и мимо почтовой очереди, поэтому доходит при остановленном кроне.

После изменения настроек нажмите «Сохранить» или «Применить».

SMS и мессенджеры (Telegram / WhatsApp / MAX)

Для доставки уведомлений в SMS или в Telegram/WhatsApp/MAX необходим установленный модуль «Сервис уведомлений» (messageservice) с подходящим коннектором-отправителем.

Чтобы настроить отправку SMS или сообщений в мессенджер, перейдите по ссылке на SMS-шаблон для события «ROVER_NOTIFIER_ERROR_SMS» (ссылка расположена под настройками на этой же странице), откройте шаблон и укажите телефон или chat_id получателя вместо значения по умолчанию «+7XXXXXXXXXX», затем включите шаблон. Для отправки через Telegram/WhatsApp/MAX дополнительно настройте соответствующий коннектор-отправитель в модуле «Сервис уведомлений» (messageservice).

Email

Почтовый шаблон события «ROVER_NOTIFIER_ERROR» находится в разделе Настройки → Настройки продукта → Почтовые и СМС события → Почтовые шаблоны (или по ссылке под настройками модуля). В этом шаблоне при необходимости можно изменить получателя письма (по умолчанию — email сайта) и текст уведомления.

Типы событий

Типы событий ROVER_NOTIFIER_ERROR и ROVER_NOTIFIER_ERROR_SMS расположены в разделе Настройки → Настройки продукта → Почтовые и СМС события → Типы событий (или по ссылкам под настройками модуля).

Отправка собственных уведомлений из кода

Кроме автоматически перехваченных ошибок, модуль умеет отправлять уведомления по запросу из любого кода проекта — обработчика события, агента, скрипта импорта, другого модуля. Для этого служит единственный публичный метод Rover\Notifier\Notifier::report(). Никакой дополнительной настройки для него не требуется: используются те же события и шаблоны, что и для перехваченных ошибок.

Сообщение отправляется, когда включён перехват ошибок либо настройка «Разрешить оповещения из кода (API) при выключенном перехвате».

Перед вызовом нужно подключить модуль:

use Bitrix\Main\Loader;
use Rover\Notifier\Notifier;

Loader::includeModule('rover.notifier');

Отправить исключение

Код исключения, файл, строка и стек вызовов будут взяты из самого исключения:

try {
    $this->syncOrder($order);
} catch (\Throwable $e) {
    Notifier::report($e);
}

Отправить произвольное сообщение

Первым аргументом можно передать обычную строку — например, когда ошибки как таковой нет, но о ситуации нужно узнать:

Notifier::report('Не удалось получить остатки от поставщика: сервис не ответил за 30 секунд');

Добавить свои поля в уведомление

Вторым аргументом передаётся массив дополнительных полей. Поля, которые модуль формирует сам (MESSAGE, MESSAGE_SHORT, CODE, FILE, LINE, TRACE, LOG_TYPE, SOURCE, HOST, COUNT, DATE), можно переопределить, а любые другие становятся дополнительными плейсхолдерами шаблона:

Notifier::report('Не отвечает внешний API', [
    'CODE'     => 504,
    'FILE'     => __FILE__,
    'LINE'     => __LINE__,
    'ORDER_ID' => $order->getId(),
]);

Переданный в примере ORDER_ID будет доступен в шаблоне письма как #ORDER_ID#. Чтобы он попал в уведомление, добавьте этот плейсхолдер в текст почтового или SMS-шаблона (раздел «Почтовые и СМС события») — стандартные шаблоны модуля о нём, разумеется, не знают. Дополнительные поля не теряются при группировке: они сохраняются вместе с ошибкой и доходят до шаблона в сводном уведомлении.

Поля, для которых значение не передано, подставляются в шаблон как «не указано» — в письме не остаётся пустых мест и нераскрытых плейсхолдеров.

Свой канал: своё событие, свой шаблон, свои получатели

Служебные ключи контекста задают адресацию сообщения и в плейсхолдеры шаблона не попадают:

КлючЗначение
EVENT_NAMEИмя почтового события вместо штатного ROVER_NOTIFIER_ERROR
SMS_EVENT_NAMEИмя SMS-события вместо штатного ROVER_NOTIFIER_ERROR_SMS
SITE_IDСайт, для которого отправляется событие. По умолчанию текущий, а если его нет (например, в агенте) — сайт по умолчанию
IMMEDIATE«Y» — отправить сразу, минуя очередь группировки и почтовую очередь. Нужно, когда вызывающий код уже сгруппировал данные сам и прислал готовую сводку, или когда сообщение должно дойти и при остановленном кроне
Notifier::report('Заказы не переданы в 1С', [
    'EVENT_NAME' => 'MY_EXCHANGE_ERROR',
    'SITE_ID'    => 's2',
    'ORDERS'     => '272731, 272746',
]);

Событие и шаблон под своё имя нужно создать самостоятельно, в разделе Настройки → Настройки продукта → Почтовые и СМС события. Служебные ключи входят в хэш группировки, поэтому один и тот же текст, отправленный в разные события или на разные сайты, в одну группу не слипается.

Важно: $context — доверенный канал. Не передавайте в него непроверенные данные посетителя (целиком $_POST, поля формы): это содержимое письма администратору. Имена событий и SITE_ID модуль проверяет сам и при неверном значении возвращается к штатным.

Кто прислал сообщение

Плейсхолдер #SOURCE# («Ядро», идентификатор модуля или «Код сайта») модуль определяет сам, по вызывающему коду — подписывать свои сообщения вручную не нужно. Если автоопределение не подходит, источник можно задать явно:

Notifier::report('Импорт остатков завершился с ошибками', [
    'SOURCE' => 'Импорт остатков',
]);

Общие правила

Сообщения, отправленные через report(), подчиняются настройкам модуля наравне с перехваченными ошибками:

  • при выключенном перехвате и выключенной настройке «Разрешить оповещения из кода (API)» они не отправляются вовсе;
  • при включённой группировке они копятся в очереди и уходят сводным уведомлением со счётчиком повторов, если не передан ключ IMMEDIATE.

Одинаковыми (и потому попадающими в одну группу) считаются сообщения, совпадающие по тексту, коду, файлу, строке, типу, источнику и набору дополнительных полей.

Деинсталляция

При удалении модуля можно отметить опцию «Оставить почтовые и SMS-события и шаблоны модуля» — тогда созданные и настроенные вами события и шаблоны сохранятся после удаления модуля.

По всем вопросам, предложениям и ошибкам обращайтесь в нашу техподдержку.

Поддержка работает по будням с 10 до 18 МСК. Обращения обрабатываются в порядке очереди, поэтому время первой реакции может составлять до 2х рабочих дней, но обычно отвечаем заметно быстрее.

Если вопрос срочный, ответ можно получить вне очереди: приобретите купон спецобращения и укажите его код при создании обращения. По такому обращению мы отвечаем в течение 3 часов в рабочее время.

Авторская поддержка

Модуль разрабатывается и сопровождается автором лично — https://rover-it.me. Мы отвечаем на вопросы по установке и настройке, оперативно исправляем обращения по работе модуля и открыты к пожеланиям по развитию функциональности.

Если у вас нестандартный сценарий — напишите нам, обсудим индивидуальную доработку.

Установите этот модуль прямо сейчас!

Для этого укажите адрес сайта:

пример: https://www.site.ru

Подтвердите что сама лицензия у вас куплена

Оповещения об ошибках на почту, по СМС и в мессенджеры
Оповещения об ошибках на почту, по СМС и в мессенджеры
Бесплатно

Каталог для ИИ