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