Автоматические уведомления из 1С в Telegram: настройка

1С умеет отправлять сообщения в Telegram через штатный HTTP-запрос к Bot API – без сторонних программ и платных коннекторов. Для этого нужны три компонента: Telegram-бот с токеном, регламентное задание в 1С и около 30 строк кода на встроенном языке. Настройка занимает один рабочий день программиста.
Зачем Telegram, если в 1С есть отчёты
Отчёты в 1С требуют входа в систему, выбора периода и ожидания формирования. Telegram-сообщение приходит на телефон в нужный момент без каких-либо дополнительных действий.
Типичная картина в компании с 8 менеджерами: каждый день в 18:00 руководитель звонит и спрашивает про выручку. Каждый менеджер тратит 7-10 минут на поиск данных и формирование ответа. Итого 60-80 минут ежедневно – только на ответы на один повторяющийся вопрос. За год это больше 300 часов рабочего времени.
Автоматический отчёт в 17:45 закрывает этот вопрос без участия людей.
Что отправлять и что нет: три уровня фильтрации
Главная ошибка при первой настройке – отправлять всё подряд. Чат засоряется за три дня, и руководитель перестаёт его читать.
Критические события – отправлять мгновенно. Отгрузка без оплаты сверх согласованного лимита. Скидка выше полномочий должности. Маржа по сделке ниже нуля. Это пожар – нужно знать прямо сейчас.
Оперативные данные – отправлять по расписанию. Сводка выручки за день в 17:45. Просроченная дебиторка свыше 30 дней – раз в утро. Отклонение от плана свыше 20% – в конце рабочей недели.
Шум – не отправлять. Каждый проведённый документ. Каждая продажа на сумму до 5 000 ₽. Служебные операции вроде закрытия периода или проведения инвентаризации. Это информация для базы, не для руководителя.
Практическое правило: один Telegram-бот на одно направление. Отдельный бот для продаж, отдельный для склада, отдельный для финансов. Если всё сваливать в один чат, его перестают читать через неделю. Для настройки автоматического разделения уведомлений по приоритетам в 1С существуют готовые регламентные решения, которые классифицируют события без ручной настройки условий.
Пошаговая настройка: от токена до первого сообщения
Шаг 1. Создать бота в Telegram
Откройте @BotFather в Telegram, введите /newbot, дайте имя и username. BotFather вернёт токен вида 7412345678:AAF.... Сохраните токен в константу 1С – не вписывайте его в текст модуля напрямую, иначе при смене токена придётся менять код.
Шаг 2. Получить chat_id
Отправьте любое сообщение боту с телефона. Затем откройте в браузере https://api.telegram.org/botВАШ_ТОКЕН/getUpdates. В JSON-ответе найдите поле chat.id – это и есть chat_id. Для группового чата добавьте бота в группу и проделайте то же самое.
Шаг 3. Функция отправки в 1С
Функция ОтправитьВTelegram(Текст) Экспорт
Токен = Константы.ТелеграмТокен.Получить();
ЧатИД = Константы.ТелеграмЧатИД.Получить();
Соединение = Новый HTTPСоединение(
"api.telegram.org", 443, , , , 30,
Новый ЗащищённоеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(
"/bot" + Токен + "/sendMessage");
Запрос.УстановитьТелоИзСтроки(
"chat_id=" + ЧатИД +
"&text=" + URLКодированиеСтроки(Текст));
Запрос.Заголовки.Вставить(
"Content-Type",
"application/x-www-form-urlencoded");
Соединение.ОтправитьДляОбработки(Запрос);
КонецФункции
Шаг 4. Регламентное задание
В конфигураторе создайте регламентное задание с методом, который формирует текст сводки и вызывает функцию отправки. Расписание: ежедневно в 17:45 для итогового отчёта, ежечасно для мониторинга критических показателей в рабочее время.
Если сервер 1С не имеет прямого выхода в интернет, потребуется прокси. Параметры прокси передаются в конструктор HTTPСоединение четвёртым и пятым аргументами.
Готовые пороги: что ставить в условие отправки
Конкретные числа из практики малого и среднего бизнеса:
Маржа по сделке: если (Выручка – Себестоимость) / Выручка < 0,12 – уведомление немедленно. 12% – типовой минимум для торговли. Ниже – либо ошибка в ценообразовании, либо несогласованная скидка. О том, как найти убыточные позиции ещё до закрытия месяца, подробно написано в статье «Контроль себестоимости в 1С: как найти убыточные позиции».
Скидка по полномочиям – типовая шкала:
- Менеджер – не более 5%
- Старший менеджер – не более 10%
- Руководитель отдела – не более 15%
- Директор – без ограничений (или отдельный порог)
Если скидка в документе превышает лимит должности контрагента – уведомление руководителю в день проведения документа, не на следующий день.
Дебиторская задолженность: долг контрагента старше 30 дней и сумма свыше 50 000 ₽ – ежедневное уведомление до погашения. Порог 50 000 ₽ исключает мелкие задержки и фокусирует внимание на реальных рисках.
Выполнение плана выручки: если к 16:00 выполнено менее 60% дневного плана – уведомление. Остаётся два часа для дополнительных усилий. К 19:00 – итог дня с процентом выполнения.
Кассовый разрыв: если сумма запланированных платежей на следующие три рабочих дня превышает остаток на расчётных счетах – уведомление финансовому директору в 09:00.
Кейс: магазин строительных материалов, Екатеринбург
Компания с оборотом 45 млн ₽ в месяц, 9 менеджеров по продажам. До автоматизации: руководитель проверял данные вручную каждый вечер, звонил менеджерам, получал Excel-таблицы. Каждый такой сбор занимал 40-50 минут.
Настроили три автоматических отчёта:
- 17:45 – сводка дня: выручка, топ-3 менеджера, выполнение плана в процентах
- 09:00 – просроченная дебиторка: контрагенты с задержкой более 30 дней и сумма долга
- Мгновенно – скидка выше полномочий, маржа ниже 10%
Через два месяца ежевечерние звонки сократились с ежедневных до 1-2 в неделю – только по нестандартным ситуациям. Менеджеры высвободили около 40 минут ежедневно.
Важнее другое: система поймала 11 случаев скидок выше полномочий за первый месяц. Средняя сделка – 180 000 ₽, средний излишек скидки – 4,5%. Потенциальные потери на 11 сделках – около 90 000 ₽. В большинстве случаев менеджеры объяснили это устной договорённостью с руководителем, которую никто не фиксировал. Ввели правило: скидка выше лимита – только с письменным комментарием в документе и явным согласованием.
Чек-лист перед запуском
- Токен бота сохранён в константы 1С, не в текст программного модуля
- chat_id проверен – тестовое сообщение дошло до нужного чата
- Прокси настроен, если сервер 1С в закрытом периметре
- Регламентное задание активно, расписание проверено тестовым запуском
- Текст уведомления помещается в 200-300 символов без прокрутки на телефоне
- Права: нужные люди добавлены в чат, лишние – нет
- Лимит: не более 5-7 сообщений в сутки на один чат
- Настроен мониторинг самого регламентного задания – если оно упало, кто об этом узнает
- Всё протестировано на тестовой базе с реальными данными, не с нулями
Типовая ошибка: одно уведомление на каждое событие
Программист настраивает подписку на событие «ПослеЗаписи» каждого документа реализации. В компании 12 менеджеров, каждый проводит 25-40 документов в день. Итого 300-480 сообщений в сутки в один чат.
Руководитель игнорирует чат уже на третий день. Система перестаёт работать – не технически, а организационно. Деньги на разработку потрачены, результат нулевой.
Решение – агрегация. Вместо «Менеджер Козлова провела реализацию N РН-00001234 на 12 300 ₽» – «Итог дня, 17:45: реализаций 38, выручка 1,74 млн ₽, план 89%, лидер – Козлова (320 тыс. ₽)».
Мгновенно отправляются только критические события: скидка сверх полномочий, маржа ниже порога, отгрузка без оплаты. Всё остальное идёт в агрегированный дневной отчёт.
Это можно не делать руками. Виртуальные сотрудники внутри 1С проверяют 100% документов по заданным регламентам – скидки, маржу, дебиторку – и сами ставят задачи по нарушениям, перепроверяя исправления без участия руководителя. Посмотрите, как работают виртуальные сотрудники контроля качества в 1С – сводка в Telegram вместо ручных проверок.
Частые вопросы
Нужно ли платить за Telegram Bot API?
Нет. Базовый API Telegram бесплатный без ограничений по количеству ботов. Лимит в 30 сообщений в секунду на одного бота достаточен для любой компании малого и среднего бизнеса.
Работает ли это в 1С:УТ, 1С:БП, 1С:КА?
Да. Механизм HTTP-запросов одинаков во всех конфигурациях на платформе 8.3. Код функции отправки переносится без изменений. Разница только в том, к каким объектам обращаться за данными для формирования текста сводки.
Что делать, если сервер 1С не имеет выхода в интернет?
Два варианта. Первый – настроить HTTP-прокси и передать его параметры в конструктор HTTPСоединение. Второй – поднять промежуточный сервис внутри периметра, который принимает запросы из 1С и пересылает их в Telegram Bot API.
Можно ли отправлять в несколько чатов одновременно?
Да. Вызовите функцию отправки несколько раз с разными значениями chat_id в одном вызове регламентного задания. Руководитель получает сводку в личный чат, менеджеры – в общий рабочий, финансовый директор – в отдельный финансовый канал.