gifts2017

Оповещение пользователей

Опубликовал LordPhoenix Klishin (LordPhoenix) в раздел Администрирование - Системное

Обработка для отправки сообщений пользователям  с возможностью просмотра кто из пользователей прочел данное сообщение
+ Блокировка соединений + Отключение сеансов

Проверено на УПП 

Для работы необходимо создать новый регистр сведений - Оповещение

В регистре должно быть следующее

Измерение: -  "Пользователи" с типом данных - СправочникСсылка.Пользователи

Ресурсы:

Отправлять - тип булево

Сообщение - тип строка

Прочитан - тип булево

Выведен - тип булево

 

В модуле обычного приложения :

Процедура ПриНачалеРаботыСистемы() вставляем код 

 

ПодключитьОбработчикОжидания("ОтправкаСообщений",30);

 

Добавляем процедуру

 

Процедура ОтправкаСообщений() Экспорт
         Запрос=Новый Запрос;
         Запрос.Текст="ВЫБРАТЬ
                      |   Оповещение.Пользователь,
                      |   Оповещение.Отправлять,
                      |   Оповещение.Сообщение,
                      |   Оповещение.Прочитан,
                      |   Оповещение.Выведен
                      |ИЗ
                      |   РегистрСведений.Оповещение КАК Оповещение
                      |ГДЕ
                      |   Оповещение.Пользователь = &Пользователь";
         Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь);
         Строка=Запрос.Выполнить().Выбрать();
         Если Строка.Следующий() тогда
                 Если Строка.Отправлять и не Строка.Прочитан тогда
                          Сигнал();
                          ПоказатьОповещениеПользователя(Строка.Сообщение,,, БиблиотекаКартинок.ИнтернетПоддержкаПользователейПредупреждение);
                          Если не Строка.Прочитан и не Строка.выведен тогда
                                   МенеджерЗаписи=РегистрыСведений.Оповещение.СоздатьМенеджерЗаписи();
                                   МенеджерЗаписи.Пользователь=ПараметрыСеанса.ТекущийПользователь;
                                   МенеджерЗаписи.Прочитать();
                МенеджерЗаписи.выведен=истина;
                                   МенеджерЗаписи.Записать();
                                   Ответ=Вопрос(Строка.Сообщение,РежимДиалогаВопрос.ОК,,,"1С:Предприятие");
                                   Если (Ответ=КодВозвратаДиалога.ОК или Ответ=КодВозвратаДиалога.Отмена) тогда
                                            МенеджерЗаписи=РегистрыСведений.Оповещение.СоздатьМенеджерЗаписи();
                                            МенеджерЗаписи.Пользователь=ПараметрыСеанса.ТекущийПользователь;
                                            МенеджерЗаписи.Прочитать();
                                            Если МенеджерЗаписи.Отправлять тогда
                                                    МенеджерЗаписи.Прочитан=Истина;                             
                                                    МенеджерЗаписи.Записать();
                                            КонецЕсли;                                         
                                   КонецЕсли;
                          КонецЕсли;                        
                 КонецЕсли;
         КонецЕсли;
                
КонецПроцедуры

 

Описание кнопок:

 

1 - Выбрать все

2 - Отменить выбор

3 - Отмена рассылки

4 - Повтор рассылки

5 - Отключить выбранные сеансы (кроме Конфигуратора, фоновых заданий и пользователя открывшего обработку)

6 - Обновить

7 - открыть регистр сведений Оповещение

 

 

В первом случае (вкладка "Сеансы" сообщения отправляются выбранным пользователям, которые сейчас работают в базе

Во втором случае (вкладка "Дополнительно" сообщение отправляется всем пользователям ИБ, даже тем, которые в данный момент не в сети 

 

Скачать файлы

Наименование Файл Версия Размер
ОповещениеПользователей 42
.epf 16,92Kb
23.10.14
42
.epf 1.1 16,92Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Алексей 1 (AlX0id) 24.10.14 14:43
Мало того, что прочитал.. Надо еще добавить сохранение информации о том, кто понял сообщение ))
2. LordPhoenix Klishin (LordPhoenix) 24.10.14 14:45
(1) AlX0id,
Спасибо) Реализуем )
3. Сергей (necropunk) 24.10.14 15:44
(1) AlX0id, ага, маленький опросик по мотивам сообщения, типа того кроссворда по мотивам поэзии Пушкина:
4. Андрей Данилюк (DanilaDru) 26.10.14 07:34
Как быть с частыми запросами если пользователей будет много ?
5. LordPhoenix Klishin (LordPhoenix) 27.10.14 08:00
(4) DanilaDru, А в чем проблема? Слабый сервер или несколько тысяч пользователей? Оптимизировать конечно можно все что угодно, но не вижу смысла в этом
6. LordPhoenix Klishin (LordPhoenix) 27.10.14 08:17
Вот что у меня: для каждого пользователя запрос выполняется 0,04 сек. , памяти требуется примерно 5 КБ. Вот и считайте)
7. Илья Вильчик (TreeDogNight) 12.02.15 11:08
Я так долго искал такую вещь! Есть ли возможность получить эту обработку бесплатно?
8. Сергей (necropunk) 12.02.15 14:49
(7) TreeDogNight, так она бесплатная, даже код вон приведен...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа