В современных конфигурациях на платформе 1С:Предприятие 8.3 Центр оповещений стал основным инструментом взаимодействия с пользователем. В отличие от классического окна сообщений, которое часто перекрывает рабочую область или игнорируется внизу экрана, Центр оповещений (тот самый «колокольчик» в правом верхнем углу) позволяет хранить историю уведомлений и обеспечивать быстрый переход к объектам системы. Рассмотрим подробнее, как разработчику правильно использовать этот механизм.
Для вывода уведомления в Центр оповещений используется процедура ПоказатьОповещениеПользователя. Этот метод доступен на клиенте. Разберем его синтаксис и основные параметры, чтобы понять, как система интерпретирует наши команды.
Проанализируем типовой пример кода, который выводит простое текстовое уведомление:
ТекстОповещения = "Обработка данных завершена успешно.";
ПоказатьОповещениеПользователя(ТекстОповещения, , "Всего обработано 150 строк", БиблиотекаКартинок.ИнформационныйШрифт);
В данном случае мы передаем основной текст, который увидит пользователь, и пояснение. Однако для полноценной работы этого часто недостаточно. Проанализируем ситуацию, когда нам нужно, чтобы пользователь мог не просто прочитать текст, но и открыть документ, о котором идет речь.
Одним из главных преимуществ Центра оповещений является возможность сделать сообщение кликабельным. Для этого используется параметр НавигационнаяСсылка. Если мы передадим в него ссылку на объект (например, Объект.Ссылка), платформа автоматически сформирует переход.
Посмотрим на пример реализации внутри цикла, когда нам нужно оповестить о создании нескольких документов:
Для каждого СтрокаРезультата Из Результат Цикл
ТекстЗаголовка = "Создан новый документ";
Пояснение = "Нажмите, чтобы открыть " + Строка(СтрокаРезультата.Ссылка);
ПоказатьОповещениеПользователя(
ТекстЗаголовка,
ПолучитьНавигационнуюСсылку(СтрокаРезультата.Ссылка),
Пояснение,
СтатусСообщения.Важное
);
КонецЦикла;
Здесь крайне важно обратить внимание на использование СтатусСообщения.Важное. Выясним причину, почему это важно: статус влияет на визуальное оформление (иконку) и на время отображения всплывающего окна. Сообщения со статусом Важное дольше остаются на экране перед тем, как «свернуться» в колокольчик.
Часто разработчики сталкиваются с вопросом: как программно очистить список уведомлений? Выяснилось, что метод ОчиститьСообщения() здесь абсолютно бесполезен. Разберем почему.
В платформе 1С существует жесткое разделение:
Сообщить() и ОчиститьСообщения().ПоказатьОповещениеПользователя().На текущий момент прямого метода «ОчиститьВсеОповещения()» не существует. Центр оповещений позиционируется как личный лог пользователя, который он должен очищать самостоятельно. Однако существует техническая хитрость (трюк с ключом), позволяющая управлять конкретными записями.
Если нам нужно не плодить новые записи, а обновлять существующее уведомление (или имитировать его скрытие), мы должны использовать параметр КлючОповещения. Рассмотрим, как это работает программно.
Когда вы вызываете ПоказатьОповещениеПользователя с указанным ключом, система ищет в списке уже существующее оповещение с таким же идентификатором. Если находит — заменяет его новым текстом и параметрами.
// Выводим первое сообщение с уникальным ключом
КлючПроцесса = "ЗагрузкаДанных_ID_123";
ПоказатьОповещениеПользователя("Загрузка началась...", , , , КлючПроцесса);
// Спустя время обновляем это же сообщение
ПоказатьОповещениеПользователя("Загрузка выполнена на 50%", , , , КлючПроцесса);
// Имитируем "удаление" или завершение: заменяем на пустое или финальное сообщение
ПоказатьОповещениеПользователя("Процесс завершен", , "Нажмите для скрытия", , КлючПроцесса);
Этот подход позволяет избежать «замусоривания» интерфейса, когда однотипные события (например, прогресс выполнения фонового задания) создают десятки строк в Центре оповещений.
Рассмотрим нюансы работы с мобильной платформой. В мобильном клиенте 1С Центр оповещений тесно интегрирован с системными уведомлениями Android и iOS. Если приложение свернуто, вызов ПоказатьОповещениеПользователя может превратиться в стандартное Push-уведомление телефона. Для вывода системных оповещений пользователям на платформе Windows можно использовать инструмент для отображения уведомлений 1С в центре уведомлений Windows.
Важный момент: на мобильных устройствах механизм обновления по КлючОповещения может вести себя иначе в зависимости от версии операционной системы. Рекомендуется не злоупотреблять частым обновлением уведомлений в мобильных решениях, чтобы не перегружать системный трей уведомлений.
Проанализируем сценарий использования уведомлений для фоновых заданий. В современных конфигурациях (например, на базе БСП) принято уведомлять пользователя о завершении формирования тяжелого отчета или завершении групповой обработки документов. Для организации подобных фоновых задач с отслеживанием состояния подойдёт обработка с фоновым выполнением и индикацией процесса на базе БСП.
Сформулируем правила хорошего тона при создании таких оповещений:
Помните о лимитах платформы: Центр оповещений хранит до 200 записей. При достижении этого предела старые сообщения удаляются автоматически по принципу очереди. Программного доступа к чтению истории этих сообщений у разработчика нет — это механизм «в одну сторону».
Мы выяснили, что для полноценной работы с уведомлениями недостаточно просто вызвать метод. Нужно грамотно управлять статусами, навигационными ссылками и, самое главное, использовать ключи для контроля жизненного цикла сообщения. Это позволит сделать интерфейс вашего решения чистым, понятным и удобным для конечного пользователя.