К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как создать уведомления в 1С:Предприятие

Разбираем способы создания уведомлений в 1С: напоминания пользователя, системные сообщения, обсуждения, email и push. Примеры кода, настройка и типичные ошибки.

Уведомления в 1С:Предприятие решают две задачи: информируют пользователя о событиях в системе (проведён документ, приближается срок оплаты, поступила новая задача) и напоминают о запланированных действиях. В зависимости от платформы и конфигурации доступны несколько механизмов: встроенные напоминания пользователя, системные взаимодействия (обсуждения), оповещения через регламентные задания, отправка писем и push-уведомления в мобильном клиенте.

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

Какие виды уведомлений доступны в 1С

Платформа 1С:Предприятие 8.3 предоставляет несколько независимых механизмов оповещения. Стандартные напоминания пользователя — это объекты, которые показываются в отдельном окне или всплывающей подсказке в заданное время. Система взаимодействия (обсуждения) позволяет отправлять сообщения пользователям внутри базы, в том числе с контекстом конкретного документа. Почтовые уведомления отправляются через встроенные объекты работы с интернет-почтой.

Отдельно стоит выделить показ оповещения пользователя средствами встроенного языка — метод ПоказатьОповещениеПользователя(). Он выводит всплывающее окно в клиентском приложении и подходит для мгновенной обратной связи: например, сообщить, что фоновая загрузка данных завершена. Для мобильной платформы предусмотрены локальные и push-уведомления.

Сравнение вариантов

Напоминания пользователя

Подходят для личных и общих напоминаний по расписанию; не работают без настройки в типовой конфигурации и не отправляют ничего вне базы.

Обсуждения (система взаимодействия)

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

Email через ИнтернетПочта

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

ПоказатьОповещениеПользователя

Мгновенное всплывающее окно в сеансе; работает только пока пользователь в программе, история не сохраняется.

Настройка стандартных напоминаний пользователя

В типовых конфигурациях на платформе БСП (Библиотека стандартных подсистем) напоминания включаются через настройки. Откройте раздел «Администрирование» → «Общие настройки» (в некоторых конфигурациях — «Настройки работы с файлами и напоминания») и установите флаг «Напоминания пользователя». После этого у пользователей появится возможность создавать напоминания из карточек документов, задач и контрагентов — кнопка «Напомнить» или пункт в меню «Ещё».

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

Включение напоминаний в типовой конфигурации
  1. 1
    Откройте «Администрирование» → «Общие настройки».
  2. 2
    Включите флаг «Напоминания пользователя».
  3. 3
    Откройте документ и нажмите «Напомнить» (или «Ещё» → «Напомнить»).
  4. 4
    Задайте текст, дату и время срабатывания, сохраните.
  5. 5
    Дождитесь срабатывания и проверьте, что окно напоминания появилось.

Если пункта «Напомнить» нет в интерфейсе, проверьте два момента: включена ли сама подсистема в настройках и есть ли у пользователя соответствующие права. В конфигурациях без БСП стандартных напоминаний может не быть — тогда механизм добавляется разработчиком.

Программное создание напоминаний и оповещений

Для мгновенного оповещения в текущем сеансе используется метод ПоказатьОповещениеПользователя. Он принимает текст, необязательную навигационную ссылку и пояснение. Типичный пример — сообщить пользователю о завершении длительной операции:

ПоказатьОповещениеПользователя(

НСтр("ru = 'Загрузка завершена'"),

ПолучитьНавигационнуюСсылку(ДокументСсылка),

Строка(ДокументСсылка),

БиблиотекаКартинок.Информация);

Если конфигурация построена на БСП, программно создать напоминание можно через подсистему «НапоминанияПользователя»: заполняется структура с описанием, временем и предметом, после чего вызывается метод создания напоминания. Это удобно для автоматики — например, при записи договора автоматически ставить напоминание ответственному о проверке через три дня.

bsl
ПараметрыНапоминания = Новый Структура;
ПараметрыНапоминания.Вставить("Описание", "Проверить договор " + НомерДоговора);
ПараметрыНапоминания.Вставить("ВремяСобытия", ТекущаяДатаСеанса() + 3 * 86400);
ПараметрыНапоминания.Вставить("Предмет", ДоговорСсылка);
НапоминанияПользователя.УстановитьНапоминание(ПараметрыНапоминания);

Учтите, что состав методов подсистемы зависит от версии БСП — перед использованием откройте модуль НапоминанияПользователя или НапоминанияПользователяКлиент в конфигураторе и проверьте актуальные экспортные процедуры.

Уведомления через систему взаимодействия (обсуждения)

Система взаимодействия — встроенный в платформу механизм обмена сообщениями между пользователями информационной базы. Если она настроена (через сервер взаимодействия 1С или сервис 1С:Диалог), можно программно отправлять сообщения конкретному пользователю с привязкой к объекту. Пользователь увидит уведомление в панели обсуждений, а при настройке клиентского приложения — и всплывающее окно.

Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения);

Сообщение.Текст = "Заказ " + НомерЗаказа + " просрочен";

Сообщение.Данные = ЗаказСсылка;

Сообщение.Записать();

Плюс этого способа — сообщения хранятся в базе, доступны с контекстом документа и работают в тонком, веб- и мобильном клиенте. Минус — требуется развёртывание и регистрация сервера взаимодействия, а в файловых базах без сервера механизм недоступен в полном объёме.

Отправка уведомлений по электронной почте

Email-уведомления — универсальный способ достучаться до пользователя вне базы. В типовых конфигурациях сначала настраивается учётная запись: «Администрирование» → «Органайзер» → «Настройки электронной почты» (или «Обмен электронной почтой»). Укажите SMTP-сервер, порт, тип шифрования и реквизиты ящика, с которого будут уходить письма.

Программная отправка выполняется через объект ИнтернетПочта: создаётся сообщение, заполняются получатели, тема и текст, затем вызывается отправка через профиль учётной записи. В БСП есть обёртка — РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(), которая берёт настройки из системной учётной записи и не требует ручной работы с профилем.

Частая проблема — письма не уходят из-за настроек почтового сервиса: многие провайдеры требуют отдельный «пароль приложения» вместо основного и включённый доступ для внешних программ. Если отправка завершается ошибкой аутентификации при верном пароле, проверьте именно эти настройки в веб-интерфейсе почты.

Автоматические уведомления через регламентные задания

Чтобы уведомления формировались без участия пользователя — например, каждое утро о просроченных счетах — создайте регламентное задание. В конфигураторе добавьте объект «Регламентное задание», укажите общий модуль с экспортной процедурой и настройте расписание в консоли заданий или через «Администрирование» → «Обслуживание» → «Регламентные операции».

Внутри процедуры выполняется запрос к данным (просроченные документы, приближающиеся сроки), затем для каждого ответственного формируется и отправляется уведомление выбранным способом. Важно предусмотреть защиту от повторной отправки: фиксируйте в регистре сведений, по каким объектам уведомление уже отправлено, иначе пользователи получат дубли при каждом запуске.

Типичные ошибки
01
Нет защиты от дублей — регламентное задание шлёт одно и то же письмо при каждом запуске; добавьте контроль отправленных объектов.
02
Отправка выполняется в клиентском контексте — регламентные задания работают на сервере, методы с вызовом модальных окон и клиентских оповещений там недоступны.
03
Игнорирование ошибок почты — исключение в фоновом задании останавливает всю рассылку; оборачивайте отправку каждого письма в Попытка/Исключение.
04
Слишком частое расписание — задание каждую минуту грузит сервер; для большинства сценариев достаточно интервала 15–60 минут.

В файловом режиме работы регламентные задания выполняются только пока запущен сеанс, которому назначено их выполнение. Для стабильной автоматической рассылки используйте клиент-серверный вариант или отдельный сеанс-планировщик.

Push-уведомления в мобильном клиенте

Если пользователи работают через мобильный клиент 1С, платформа поддерживает push-уведомления через сервис доставки. Для этого информационная база регистрируется в сервисе уведомлений, а отправка выполняется программно через объект работы с push-уведомлениями. Пользователь получает сообщение на устройство даже когда приложение закрыто.

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

Контрольные точки

Как проверить результат

Срабатывание напоминания
Норма

Окно с текстом появляется в заданное время у нужного пользователя

Тревожный признак

Напоминание создано, но окно не появляется — проверьте настройки подсистемы и права

Отправка email
Норма

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

Тревожный признак

Ошибка аутентификации или таймаут — проверьте пароль приложения и порт SMTP

Регламентное задание
Норма

В консоли заданий статус «Выполнено», уведомления приходят по расписанию

Тревожный признак

Задание завершается с ошибкой или не запускается — смотрите журнал регистрации

Контроль результата и типичные ограничения

После внедрения любого механизма уведомлений проверьте цепочку целиком: создание события → срабатывание → доставка → подтверждение получения. Для email полезно вести журнал отправленных писем, для регламентных заданий — анализировать журнал регистрации с отбором по фоновым заданиям. Если уведомление критично (например, о сбое обмена данными), продублируйте канал: письмо плюс сообщение в обсуждениях.

Помните об ограничениях: оповещение ПоказатьОповещениеПользователя живёт только в текущем сеансе, напоминания в файловой базе проверяются только у активных пользователей, а push требует внешнего сервиса. Выбирайте механизм под реальный сценарий, а не под самый «продвинутый» вариант.

Итог

Что важно запомнить

Личные напоминания включаются в настройках без доработок, мгновенные оповещения делаются методом ПоказатьОповещениеПользователя, автоматика строится на регламентных заданиях с отправкой через обсуждения или email. Всегда защищайте рассылку от дублей и не храните пароли в коде.

Частые вопросы

Почему напоминания не появляются, хотя флаг в настройках включён?

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

Можно ли отправлять уведомления в Telegram или WhatsApp из 1С?

Штатного механизма нет, но можно обратиться к API мессенджера через HTTP-запросы из встроенного языка. Для Telegram это бот с токеном и метод sendMessage. Учитывайте, что такие интеграции требуют обслуживания и зависят от доступности внешних сервисов.

Работают ли регламентные задания в файловой базе?

Да, но только пока запущен сеанс, выполняющий фоновые задания. Если все пользователи закрыли программу, задания не выполняются. Для круглосуточной рассылки нужен клиент-серверный режим или выделенный сеанс-планировщик.

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

В обсуждениях создайте групповое обсуждение или отправьте сообщение каждому получателю в цикле. Для email сформируйте список адресов через запрос к пользователям или подписчикам события и отправьте одно письмо с несколькими получателями либо персональные письма в цикле.

Чем отличается Сообщить() от ПоказатьОповещениеПользователя()?

Сообщить() выводит текст в панель сообщений и обычно привязывается к ошибкам проверки при проведении. ПоказатьОповещениеПользователя() показывает отдельное всплывающее окно, которое можно связать с навигационной ссылкой на объект. Для информационных уведомлений предпочтителен второй вариант.

Как отладить регламентное задание, если уведомления не приходят?

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