Имя: Пароль:
1C
1С v8
Всплывающие уведомления после открытия базы.
0 lirt82
 
18.06.26
15:25
Возникла необходимость информировать конкретного пользователя определенными уведомлениями после того как откроется база.
В расширение с директивой &После("ПриНачалеРаботыСистемы")
сделал вызов из своего общего модуля процедуру, процедура отработала и вывела сообщение, но возможно ли тексты сообщении накопить в массиве и при нажатии на значок "колокольчик" в верхней рамке основного окна приложения отобразить их пользователю?
как реализовать?

&После("ПриНачалеРаботыСистемы")
Процедура РасшПР_ПриНачалеРаботыСистемы()
    
    ВзаимодействияСПользователями.УведомленияОСрокахДействияДокументовФизЛиц();    
    
КонецПроцедуры


Процедура УведомленияОСрокахДействияДокументовФизЛиц() Экспорт
    
    //проверяем на вхождение в справочник рассылок, уведомлений, сообщений
    Оповестить = ПроверитьПользователяДляУведомлений(Пользователи.ТекущийПользователь());
    
    Если Оповестить Тогда
        
        ТекстСообщения = "";
        ТекущаяДата = НачалоДня(ТекущаяДата());
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
...........................
    ТекстСообщения = СтрШаблон(НСтр("ru = '....
КонецЕсли;        
            
        КонецЦикла;    
        
        Если ЗначениеЗаполнено(ТекстСообщения) Тогда
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        КонецЕсли;    
                
    КонецЕсли;
    
КонецПроцедуры

Функция ПроверитьПользователяДляУведомлений(ТекПользователь)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПользователиДляРассылокУведомленийСообщений.Пользователь КАК Пользователь
    |ИЗ
    |    Справочник.ПользователиДляРассылокУведомленийСообщений КАК ПользователиДляРассылокУведомленийСообщений
    |ГДЕ
    |    ПользователиДляРассылокУведомленийСообщений.Пользователь = &ТекПользователь";
    
    Запрос.УстановитьПараметр("ТекПользователь", ТекПользователь);
    
    Если Не Запрос.Выполнить().Пустой() Тогда
        Возврат Истина;
    Иначе
        Возврат Ложь;
    КонецЕсли;
    
КонецФункции
1 АгентБезопасной Нацио
 
18.06.26
15:30
ПоказатьОповещениеПользователя (ShowUserNotification)
Синтаксис:
ПоказатьОповещениеПользователя(<Текст>, <ДействиеПриНажатии>, <Пояснение>, <Картинка>, <СтатусОповещенияПользователя>, <КлючУникальности>)
2 lirt82
 
18.06.26
15:46
(1) это клиентский метод но я нахожусь на сервере
&После("ПриНачалеРаботыСистемы")
3 lirt82
 
19.06.26
11:30
решение

&После("ПриНачалеРаботыСистемы")
Процедура РасшПР_ПриНачалеРаботыСистемы()
    
    СообщенияОСрокахДействияДокументовФизЛиц = ВзаимодействияСПользователямиВызовСервера.УведомленияОСрокахДействияДокументовФизЛиц();    
    
    Если ЗначениеЗаполнено(СообщенияОСрокахДействияДокументовФизЛиц) Тогда
        ОповеститьПользователяОбОкончанииПроверкиСроковДействияДокументов(СообщенияОСрокахДействияДокументовФизЛиц);
    КонецЕсли;    
    
КонецПроцедуры

Процедура ОповеститьПользователяОбОкончанииПроверкиСроковДействияДокументов(СообщенияОСрокахДействияДокументовФизЛиц)
    
    ПоказатьОповещениеПользователя(СообщенияОСрокахДействияДокументовФизЛиц,,, БиблиотекаКартинок.Информация, СтатусОповещенияПользователя.Важное);
    
КонецПроцедуры
4 vis
 
19.06.26
12:17
(3) Уважаю людей которые описывают найденное решение, а не просто "тема закрыта".
5 H A D G E H O G s
 
19.06.26
13:06
Таким авторам надо отрывать руки. По самых хвост.


От создаталей "найдены устаревшие версии платформы".
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший