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





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

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

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

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

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

Ресурсы:

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

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

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

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

 

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

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

 

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

 

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

 

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

КонецПроцедуры

 

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

 

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

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

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

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

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

6 — Обновить

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

 

 

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

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

 

8 Comments

  1. AlX0id

    Мало того, что прочитал.. Надо еще добавить сохранение информации о том, кто понял сообщение ))

    Reply
  2. LordPhoenix

    (1) AlX0id,

    Спасибо) Реализуем )

    Reply
  3. necropunk

    (1) AlX0id, ага, маленький опросик по мотивам сообщения, типа того кроссворда по мотивам поэзии Пушкина:

    Reply
  4. DanilaDru

    Как быть с частыми запросами если пользователей будет много ?

    Reply
  5. LordPhoenix

    (4) DanilaDru, А в чем проблема? Слабый сервер или несколько тысяч пользователей? Оптимизировать конечно можно все что угодно, но не вижу смысла в этом

    Reply
  6. LordPhoenix

    Вот что у меня: для каждого пользователя запрос выполняется 0,04 сек. , памяти требуется примерно 5 КБ. Вот и считайте)

    Reply
  7. TreeDogNight

    Я так долго искал такую вещь! Есть ли возможность получить эту обработку бесплатно?

    Reply
  8. necropunk

    (7) TreeDogNight, так она бесплатная, даже код вон приведен…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *