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

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    765
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    813
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1168

Адміністратор Бітрікс-сайту має отримувати сповіщення про критичні події миттєво: нове замовлення, збій оплати, помилка агента, перевищення дискового ліміту. Стандартні поштові події покривають базові сценарії, але ми часто зустрічаємо кейси, коли їх недостатньо: затримка відправки, відсутність Telegram-каналу, неможливість фільтрації за пріоритетом. Розробляємо систему оповіщень, яка об'єднує Email, Telegram, SMS та внутрішній журнал — під ключ із налаштуванням пріоритетів та дайджестів. Наприклад, при збої оплати через ЮKassa потрібно негайно сповістити адміністратора в Telegram, щоб оперативно зв'язатися з клієнтом. Або при перевищенні дискового простору агент може відправити SMS, якщо сайт критично важливий. Кожна хвилина простою обходиться в середньому в 10 000 грн, тому швидкість сповіщень критична. Ми реалізували такі сценарії на 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-ключ. Вартість одного повідомлення — 2–5 грн, що виправдано при ризику втрати замовлення.

Push-сповіщення в браузер

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

Канал Швидкість доставки Надійність при падінні сайту Вартість
Email від 1 секунди до 5 хвилин низька (залежить від SMTP) безкоштовно (через свій сервер)
Telegram 0.5–2 секунди низька (без інтернету не працює) безкоштовно
SMS 1–10 секунд висока (через мобільну мережу) 2–5 грн за повідомлення
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 дні — зв'яжіться з нами.