База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как настроить уведомления в 1С о завершении срока действия ЭЦП? › Ответ в теме: Как настроить уведомления в 1С о завершении срока действия ЭЦП?
Чтобы настроить уведомление пользователям 1С об окончании срока действия электронной цифровой подписи (ЭЦП), нужно реализовать механизм, который будет:
1. Проверять дату окончания срока ЭЦП.
2. Формировать и показывать уведомление пользователю.
3. Желательно, чтобы уведомления были видны и при работе в веб-клиенте и в тонком клиенте.
### Как это сделать на практике
#### 1. Хранение данных о сроке ЭЦП
Если у вас в базе есть справочник или регистр сведений, где хранится информация о пользователях и сроках их ЭЦП, то используйте его. Если нет — нужно создать.
Например, справочник «ПользователиЭЦП» с реквизитами:
— Пользователь (ссылка на пользователя)
— ДатаОкончанияСрокаЭЦП (дата)
#### 2. Создание фоновой обработки или регламентного задания
Создайте регламентное задание, которое будет запускаться ежедневно и проверять, у кого из пользователей срок ЭЦП заканчивается в ближайшие дни (например, за 7 дней до окончания).
Пример кода проверки:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Процедура ПроверитьСрокиЭЦП() Запрос = Новый Запрос; Запрос.Текст = |ВЫБРАТЬ | ПользователиЭЦП.Пользователь, | ПользователиЭЦП.ДатаОкончанияСрокаЭЦП |ИЗ | Справочник.ПользователиЭЦП КАК ПользователиЭЦП |ГДЕ | ПользователиЭЦП.ДатаОкончанияСрокаЭЦП <= &ДатаПредел | И ПользователиЭЦП.ДатаОкончанияСрокаЭЦП >= &ДатаСегодня ; Запрос.УстановитьПараметр("ДатаПредел", ТекущаяДата() + 7); Запрос.УстановитьПараметр("ДатаСегодня", ТекущаяДата()); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл // Формируем уведомление для пользователя ТекстОповещения = "Срок действия вашей ЭЦП истекает " + Формат(Выборка.ДатаОкончанияСрокаЭЦП, "ДФ=dd.MM.yyyy"); // Отправляем уведомление пользователю ОтправитьОповещение(Выборка.Пользователь, ТекстОповещения); КонецЦикла; КонецПроцедуры |
#### 3. Отправка уведомления пользователю
В 1С есть встроенный механизм оповещений пользователя (начиная с версии 8.3.10 и выше). Используйте метод ПоказатьОповещениеПользователя.
Если уведомления нужно показывать сразу при входе пользователя в систему, то можно в общем модуле или в обработчике события входа пользователя вызвать:
|
1 2 3 4 5 6 7 8 9 10 11 |
Процедура ОтправитьОповещение(Пользователь, ТекстОповещения) // Здесь можно использовать Центр оповещений 1С // Для веб-клиента и тонкого клиента ПараметрыОповещения = Новый ОписаниеОповещенияПользователя; ПараметрыОповещения.Текст = ТекстОповещения; ПараметрыОповещения.СтатусОповещенияПользователя = СтатусыОповещенияПользователя.Важное; ПараметрыОповещения.ДействиеПриНажатии = Новый ОписаниеДействияПриНажатииОповещенияПользователя(ТипДействияПриНажатииОповещенияПользователя.Нет); // Отправляем оповещение конкретному пользователю ЦентрОповещений.ДобавитьОповещение(Пользователь, ПараметрыОповещения); КонецПроцедуры |
Если ЦентрОповещений не доступен, можно использовать метод ПоказатьОповещениеПользователя в контексте текущего пользователя.
#### 4. Автоматизация показа уведомлений при входе
В модуле приложения (например, в событии ПриВходеПользователя) можно запускать проверку и показывать уведомления.
#### 5. Дополнительно
— Можно сделать отдельный отчет или обработку для администраторов, чтобы они видели список пользователей с истекающими ЭЦП.
— Можно отправлять уведомления по электронной почте, если есть такая необходимость.
— В веб-клиенте браузер может запросить разрешение на показ системных уведомлений, это улучшит видимость оповещений.
—
Рекомендую посмотреть здесь, как работает механизм оповещений пользователя и центр оповещений в 1С, чтобы использовать их правильно и красиво:
http://wonderland.v8.1c.ru/blog/mekhanizm-opoveshcheniy-polzovatelya-i-tsentr-opoveshcheniy/