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