Разработка и Конфигурация · 12 мин
Как создать уведомления в 1С:Предприятие
Разбираем способы создания уведомлений в 1С: напоминания пользователя, системные сообщения, обсуждения, email и push. Примеры кода, настройка и типичные ошибки.
Уведомления в 1С:Предприятие решают две задачи: информируют пользователя о событиях в системе (проведён документ, приближается срок оплаты, поступила новая задача) и напоминают о запланированных действиях. В зависимости от платформы и конфигурации доступны несколько механизмов: встроенные напоминания пользователя, системные взаимодействия (обсуждения), оповещения через регламентные задания, отправка писем и push-уведомления в мобильном клиенте.
Выбор способа зависит от сценария. Если нужно разово напомнить себе о звонке клиенту — достаточно стандартных напоминаний, они есть в типовых конфигурациях без доработок. Если требуется автоматически оповещать менеджеров о просроченных заказах — понадобится регламентное задание с программной отправкой сообщения или письма. Ниже разобраны основные варианты с примерами кода и условиями применения.
Какие виды уведомлений доступны в 1С
Платформа 1С:Предприятие 8.3 предоставляет несколько независимых механизмов оповещения. Стандартные напоминания пользователя — это объекты, которые показываются в отдельном окне или всплывающей подсказке в заданное время. Система взаимодействия (обсуждения) позволяет отправлять сообщения пользователям внутри базы, в том числе с контекстом конкретного документа. Почтовые уведомления отправляются через встроенные объекты работы с интернет-почтой.
Отдельно стоит выделить показ оповещения пользователя средствами встроенного языка — метод ПоказатьОповещениеПользователя(). Он выводит всплывающее окно в клиентском приложении и подходит для мгновенной обратной связи: например, сообщить, что фоновая загрузка данных завершена. Для мобильной платформы предусмотрены локальные и push-уведомления.
Сравнение вариантов
Подходят для личных и общих напоминаний по расписанию; не работают без настройки в типовой конфигурации и не отправляют ничего вне базы.
Подходят для сообщений между пользователями с контекстом объекта; требуют настройки сервера взаимодействия.
Подходят для оповещения вне базы, включая внешних адресатов; требуют учётной записи и осторожности с паролями.
Мгновенное всплывающее окно в сеансе; работает только пока пользователь в программе, история не сохраняется.
Настройка стандартных напоминаний пользователя
В типовых конфигурациях на платформе БСП (Библиотека стандартных подсистем) напоминания включаются через настройки. Откройте раздел «Администрирование» → «Общие настройки» (в некоторых конфигурациях — «Настройки работы с файлами и напоминания») и установите флаг «Напоминания пользователя». После этого у пользователей появится возможность создавать напоминания из карточек документов, задач и контрагентов — кнопка «Напомнить» или пункт в меню «Ещё».
Пользователь указывает текст, время срабатывания и при необходимости предмет напоминания — ссылку на документ. Когда время наступает, платформа показывает окно со списком просроченных и текущих напоминаний. Частоту проверки можно изменить: по умолчанию механизм опрашивает список периодически, интервал задаётся в настройках подсистемы.
- 1Откройте «Администрирование» → «Общие настройки».
- 2Включите флаг «Напоминания пользователя».
- 3Откройте документ и нажмите «Напомнить» (или «Ещё» → «Напомнить»).
- 4Задайте текст, дату и время срабатывания, сохраните.
- 5Дождитесь срабатывания и проверьте, что окно напоминания появилось.
Если пункта «Напомнить» нет в интерфейсе, проверьте два момента: включена ли сама подсистема в настройках и есть ли у пользователя соответствующие права. В конфигурациях без БСП стандартных напоминаний может не быть — тогда механизм добавляется разработчиком.
Программное создание напоминаний и оповещений
Для мгновенного оповещения в текущем сеансе используется метод ПоказатьОповещениеПользователя. Он принимает текст, необязательную навигационную ссылку и пояснение. Типичный пример — сообщить пользователю о завершении длительной операции:
ПоказатьОповещениеПользователя(
НСтр("ru = 'Загрузка завершена'"),
ПолучитьНавигационнуюСсылку(ДокументСсылка),
Строка(ДокументСсылка),
БиблиотекаКартинок.Информация);
Если конфигурация построена на БСП, программно создать напоминание можно через подсистему «НапоминанияПользователя»: заполняется структура с описанием, временем и предметом, после чего вызывается метод создания напоминания. Это удобно для автоматики — например, при записи договора автоматически ставить напоминание ответственному о проверке через три дня.
ПараметрыНапоминания = Новый Структура;
ПараметрыНапоминания.Вставить("Описание", "Проверить договор " + НомерДоговора);
ПараметрыНапоминания.Вставить("ВремяСобытия", ТекущаяДатаСеанса() + 3 * 86400);
ПараметрыНапоминания.Вставить("Предмет", ДоговорСсылка);
НапоминанияПользователя.УстановитьНапоминание(ПараметрыНапоминания);Учтите, что состав методов подсистемы зависит от версии БСП — перед использованием откройте модуль НапоминанияПользователя или НапоминанияПользователяКлиент в конфигураторе и проверьте актуальные экспортные процедуры.
Уведомления через систему взаимодействия (обсуждения)
Система взаимодействия — встроенный в платформу механизм обмена сообщениями между пользователями информационной базы. Если она настроена (через сервер взаимодействия 1С или сервис 1С:Диалог), можно программно отправлять сообщения конкретному пользователю с привязкой к объекту. Пользователь увидит уведомление в панели обсуждений, а при настройке клиентского приложения — и всплывающее окно.
Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения);
Сообщение.Текст = "Заказ " + НомерЗаказа + " просрочен";
Сообщение.Данные = ЗаказСсылка;
Сообщение.Записать();
Плюс этого способа — сообщения хранятся в базе, доступны с контекстом документа и работают в тонком, веб- и мобильном клиенте. Минус — требуется развёртывание и регистрация сервера взаимодействия, а в файловых базах без сервера механизм недоступен в полном объёме.
Отправка уведомлений по электронной почте
Email-уведомления — универсальный способ достучаться до пользователя вне базы. В типовых конфигурациях сначала настраивается учётная запись: «Администрирование» → «Органайзер» → «Настройки электронной почты» (или «Обмен электронной почтой»). Укажите SMTP-сервер, порт, тип шифрования и реквизиты ящика, с которого будут уходить письма.
Программная отправка выполняется через объект ИнтернетПочта: создаётся сообщение, заполняются получатели, тема и текст, затем вызывается отправка через профиль учётной записи. В БСП есть обёртка — РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(), которая берёт настройки из системной учётной записи и не требует ручной работы с профилем.
Частая проблема — письма не уходят из-за настроек почтового сервиса: многие провайдеры требуют отдельный «пароль приложения» вместо основного и включённый доступ для внешних программ. Если отправка завершается ошибкой аутентификации при верном пароле, проверьте именно эти настройки в веб-интерфейсе почты.
Автоматические уведомления через регламентные задания
Чтобы уведомления формировались без участия пользователя — например, каждое утро о просроченных счетах — создайте регламентное задание. В конфигураторе добавьте объект «Регламентное задание», укажите общий модуль с экспортной процедурой и настройте расписание в консоли заданий или через «Администрирование» → «Обслуживание» → «Регламентные операции».
Внутри процедуры выполняется запрос к данным (просроченные документы, приближающиеся сроки), затем для каждого ответственного формируется и отправляется уведомление выбранным способом. Важно предусмотреть защиту от повторной отправки: фиксируйте в регистре сведений, по каким объектам уведомление уже отправлено, иначе пользователи получат дубли при каждом запуске.
В файловом режиме работы регламентные задания выполняются только пока запущен сеанс, которому назначено их выполнение. Для стабильной автоматической рассылки используйте клиент-серверный вариант или отдельный сеанс-планировщик.
Push-уведомления в мобильном клиенте
Если пользователи работают через мобильный клиент 1С, платформа поддерживает push-уведомления через сервис доставки. Для этого информационная база регистрируется в сервисе уведомлений, а отправка выполняется программно через объект работы с push-уведомлениями. Пользователь получает сообщение на устройство даже когда приложение закрыто.
Альтернатива без сервиса push — локальные уведомления мобильного приложения, но они планируются только на самом устройстве и не подходят для серверных событий. Для большинства сценариев корпоративного применения проще и надёжнее комбинировать email и обсуждения, оставив push для критичных оповещений.
Как проверить результат
Окно с текстом появляется в заданное время у нужного пользователя
Напоминание создано, но окно не появляется — проверьте настройки подсистемы и права
Письмо приходит адресату, в журнале нет ошибок
Ошибка аутентификации или таймаут — проверьте пароль приложения и порт SMTP
В консоли заданий статус «Выполнено», уведомления приходят по расписанию
Задание завершается с ошибкой или не запускается — смотрите журнал регистрации
Контроль результата и типичные ограничения
После внедрения любого механизма уведомлений проверьте цепочку целиком: создание события → срабатывание → доставка → подтверждение получения. Для email полезно вести журнал отправленных писем, для регламентных заданий — анализировать журнал регистрации с отбором по фоновым заданиям. Если уведомление критично (например, о сбое обмена данными), продублируйте канал: письмо плюс сообщение в обсуждениях.
Помните об ограничениях: оповещение ПоказатьОповещениеПользователя живёт только в текущем сеансе, напоминания в файловой базе проверяются только у активных пользователей, а push требует внешнего сервиса. Выбирайте механизм под реальный сценарий, а не под самый «продвинутый» вариант.
Что важно запомнить
Личные напоминания включаются в настройках без доработок, мгновенные оповещения делаются методом ПоказатьОповещениеПользователя, автоматика строится на регламентных заданиях с отправкой через обсуждения или email. Всегда защищайте рассылку от дублей и не храните пароли в коде.
Частые вопросы
Почему напоминания не появляются, хотя флаг в настройках включён?
Чаще всего причина в правах пользователя или в том, что напоминание создано на другого пользователя. Также проверьте, не отключена ли проверка напоминаний в персональных настройках и не просрочено ли время срабатывания — в некоторых конфигурациях окно показывается только при активном сеансе.
Можно ли отправлять уведомления в Telegram или WhatsApp из 1С?
Штатного механизма нет, но можно обратиться к API мессенджера через HTTP-запросы из встроенного языка. Для Telegram это бот с токеном и метод sendMessage. Учитывайте, что такие интеграции требуют обслуживания и зависят от доступности внешних сервисов.
Работают ли регламентные задания в файловой базе?
Да, но только пока запущен сеанс, выполняющий фоновые задания. Если все пользователи закрыли программу, задания не выполняются. Для круглосуточной рассылки нужен клиент-серверный режим или выделенный сеанс-планировщик.
Как уведомить сразу нескольких пользователей о событии?
В обсуждениях создайте групповое обсуждение или отправьте сообщение каждому получателю в цикле. Для email сформируйте список адресов через запрос к пользователям или подписчикам события и отправьте одно письмо с несколькими получателями либо персональные письма в цикле.
Чем отличается Сообщить() от ПоказатьОповещениеПользователя()?
Сообщить() выводит текст в панель сообщений и обычно привязывается к ошибкам проверки при проведении. ПоказатьОповещениеПользователя() показывает отдельное всплывающее окно, которое можно связать с навигационной ссылкой на объект. Для информационных уведомлений предпочтителен второй вариант.
Как отладить регламентное задание, если уведомления не приходят?
Откройте консоль заданий и проверьте статус последнего выполнения, затем журнал регистрации с отбором по имени задания. Временно добавьте в процедуру запись отладочных сообщений в журнал регистрации — так видно, до какого шага доходит выполнение: запрос данных, формирование текста или отправка.