Разработка системы оповещений для администраторов 1С-Битрикс

Администратор Битрикс-сайта должен получать уведомления о критических событиях мгновенно: новый заказ, сбой оплаты, ошибка агента, превышение дискового лимита. Стандартные почтовые события покрывают базовые сценарии, но мы часто встречаем кейсы, когда их недостаточно: задержка отправки, отсутствие T
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка системы оповещений для администраторов 1С-Битрикс
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1466
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    811
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1167

Администратор Битрикс-сайта должен получать уведомления о критических событиях мгновенно: новый заказ, сбой оплаты, ошибка агента, превышение дискового лимита. Стандартные почтовые события покрывают базовые сценарии, но мы часто встречаем кейсы, когда их недостаточно: задержка отправки, отсутствие Telegram-канала, невозможность фильтрации по приоритету. Разрабатываем систему оповещений, которая объединяет Email, Telegram, SMS и внутренний журнал — под ключ с настройкой приоритетов и дайджестов. Например, при сбое оплаты через ЮKassa нужно немедленно оповестить администратора в Telegram, чтобы оперативно связаться с клиентом. Или при превышении дискового пространства агент может отправить SMS, если сайт критически важен. Каждая минута простоя обходится в среднем в $90–130, поэтому скорость уведомлений критична. Мы реализовали такие сценарии на PHP 8.1+ с использованием собственного модуля на инфоблоках v2.0 и тегированного кэширования.

Как устроена стандартная система оповещений в Битрикс?

Ядро Битрикс использует механизм почтовых событий: код события → шаблон письма → получатели. Все события регистрируются в таблице b_event, шаблоны — в b_event_message, а история отправленных писем (при включённом логировании) — в b_event_log.

Для e-commerce критичные события уже существуют: SALE_ORDER_NEW (новый заказ), SALE_ORDER_PAID (оплата получена), SALE_ORDER_CANCEL (отмена). Получателей настраиваете в шаблоне события через модуль main → «Почтовые события».

Проблема стандартного механизма: письма уходят синхронно в момент события, что при медленном SMTP добавляет до 500 мс к загрузке страницы. Решение — очередь отправки через таблицу b_email_service или внешний SMTP с быстрым соединением.

Почему одних почтовых событий недостаточно?

Почтовые события имеют три ограничения:

  • только Email-канал (нельзя отправить Telegram или SMS);
  • синхронная отправка (тормозит сервер);
  • отсутствие встроенной приоритизации (все события равны).

Telegram-оповещения работают в 10 раз быстрее, чем Email при критических событиях, а SMS гарантирует доставку даже при падении сайта. Для нестандартных сценариев мы вешаемся на события модулей через init.php.

Как настроить кастомные оповещения через события модулей

Новая заявка из формыOnAfterAddResult модуля form:

AddEventHandler("form", "OnAfterAddResult", function($formId, $resultId, $arResult) { if ($formId == CALLBACK_FORM_ID) { notifyAdmin('Новая заявка #' . $resultId, formatFormData($arResult)); } }); 

Ошибка в агентах — агенты в b_agent выполняются без явного логирования. Оборачивайте код агента в try-catch и при исключении отправляйте уведомление:

function MyModuleAgent() { try { // код агента } catch (\Throwable $e) { notifyAdmin('Ошибка агента', $e->getMessage() . "\n" . $e->getTraceAsString()); } return __FUNCTION__ . '();'; } 

Превышение лимитов диска — в Битриксе есть агент CIBlockAgent::CheckDiskQuota(). Его можно переопределить или дополнить своим агентом, проверяющим размер директорий и отправляющим alert при превышении порога, например 90% от квоты.

Ошибки оплаты — событие OnSalePaymentUpdate с проверкой смены статуса на ошибочный:

AddEventHandler("sale", "OnSalePaymentUpdate", function($id, &$arFields) { if ($arFields['IS_RETURN'] === 'Y' || strpos($arFields['PS_STATUS_MESSAGE'], 'error') !== false) { notifyAdmin('Ошибка оплаты заказа', print_r($arFields, true)); } }); 

Как отправить уведомление в Telegram?

Создайте бота через BotFather, получите BOT_TOKEN и CHAT_ID администраторского чата. Отправка через \Bitrix\Main\Web\HttpClient:

function notifyTelegram(string $message): void { $botToken = COption::GetOptionString('local', 'telegram_bot_token'); $chatId = COption::GetOptionString('local', 'telegram_admin_chat_id'); $httpClient = new \Bitrix\Main\Web\HttpClient(); $httpClient->post( "https://api.telegram.org/bot{$botToken}/sendMessage", ['chat_id' => $chatId, 'text' => $message, 'parse_mode' => 'HTML'] ); } 

Храните токены в b_option через COption, не в коде — при ротации токена не нужно искать по файлам.

Многоканальная доставка: Telegram, SMS, Push

Email — базовый канал, но не всегда достаточно быстрый. Для критичных уведомлений добавляйте:

Telegram-бот

Скорость доставки: 0.5–2 секунды. Надёжность при падении сайта низкая (требуется интернет), стоимость бесплатно.

SMS через API

Для действительно критичных событий (недоступность платёжного шлюза, взломные попытки) — SMS через SMSC.ru или SMS.ru. Те же HttpClient + API-ключ. Стоимость одного сообщения — $1–1, что оправдано при риске потери заказа.

Push-уведомления в браузер

Для оповещений, когда администратор в административной панели — через системный Bitrix Push Server (push.1c-bitrix.ru) или через Web Push API с VAPID-ключами.

Канал Скорость доставки Надёжность при падении сайта Стоимость
Email от 1 секунды до 5 минут низкая (зависит от SMTP) бесплатно (через свой сервер)
Telegram 0.5–2 секунды низкая (без интернета не работает) бесплатно
SMS 1–10 секунд высокая (через мобильную сеть) $1–1 за сообщение
Push (админка) мгновенно средняя (только когда админ открыт) бесплатно (Bitrix Push Server)

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

  • Анализ сценариев: выявляем все критические события вашего проекта.
  • Проектирование: архитектура каналов, приоритеты, дайджесты.
  • Реализация: кастомный модуль на инфоблоках v2.0, события, агенты.
  • Настройка каналов: Telegram-бот, SMS-шлюз, push-уведомления.
  • Интеграция с REST API для внешних сервисов.
  • Центр уведомлений в админке с фильтрацией и счётчиками.
  • Тестирование: нагрузочное, отказоустойчивость.
  • Документация: описание событий, настройка каналов.
  • Поддержка: сопровождение в течение месяца после внедрения.

Ориентировочные сроки

Этап Срок
Анализ и проектирование 1–2 дня
Разработка модуля 3–5 дней
Настройка каналов 1–2 дня
Тестирование и документы 1–2 дня
Итого 5–10 дней

Типичные ошибки при проектировании оповещений

Частые проблемы и как их избежать
  • Отправлять все события во все каналы — создаёт информационный шум. Назначайте приоритеты.
  • Хранить токены в коде — используйте COption или .settings.php.
  • Игнорировать очистку таблицы b_event_log — через месяц база может вырасти на гигабайты на активном сайте. Настройте агент для удаления записей старше 30 дней.
  • Не тестировать падение сайта — внешний мониторинг (UptimeRobot, Zabbix) обязателен, так как при падении сервера внутренние агенты не сработают.

Мы разрабатываем системы оповещений более 8 лет, реализовали более 30 проектов для интернет-магазинов на Битрикс. Закажите разработку системы оповещений, и мы настроим все каналы под ваш проект. Оценим ваш проект за 2 дня — свяжитесь с нами.