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