Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как отправить сообщение на комп пользователю в активном сеансе.

Как отправить сообщение на комп пользователю в активном сеансе.
Я
   lirt82
 
28.12.21 - 12:25
Необходимо выводить сообщение конкретному пользователю который находиться в активном сеансе. Список активных сеансов получаю, текст сообщения формируется, но проблема как отправить сообщение в активный сеанс пользователю?
Открыл локально (на своем компе) файловую копию базы под двумя разными пользователями. 1 Орлов, 2 Белкина. Выполняется код но сообщения отображаются только у Орлова.

&После("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    ТЗКому = Новый ТаблицаЗначений;
    ТЗКому.Колонки.Добавить("Пользователь");
    Стр = ТЗКому.Добавить();
    Стр.Пользователь = "Орлов Александр Владимирович";
    Стр.Пользователь = "Белкина Анастасия Георгиевна";
    
    Пользаки = ПолучениеСпискаАктивныхПользователей();
    
    Если ЭтоНовый() Тогда
        
        Для Каждого Стр Из Пользаки Цикл
            НайденнаяСтрока = ТЗКому.Найти(Строка(Стр.Пользователь));
            Если НайденнаяСтрока <> Неопределено Тогда
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = "Поступило наличные/безналичные средства от контрагента " + ЭтотОбъект.Контрагент.Наименование + " на сумму " + ЭтотОбъект.СуммаДокумента + ".";
                Сообщение.Сообщить();
            КонецЕсли;
        КонецЦикла;
        
    КонецЕсли;    
    
КонецПроцедуры

Функция ПолучениеСпискаАктивныхПользователей()
    
    ИтогСписокСоединений = Новый ТаблицаЗначений;
    ИтогСписокСоединений.Колонки.Добавить("Пользователь");
    
    СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы();
    
    Для Каждого Соединение Из СоединенияИнформационнойБазы Цикл                   
        ТЗ = ИтогСписокСоединений.Добавить();                                       
        ТЗ.Пользователь = Соединение.Пользователь;                              
    КонецЦикла;
    ИтогСписокСоединений.Свернуть("Пользователь");
    
    Возврат ИтогСписокСоединений;
    
КонецФункции
   Kassern
 
1 - 28.12.21 - 12:29
(0) а 1ска должна телепатически понять, что Сообщение = Новый СообщениеПользователю;  должно отправиться Васе? И каким способом вы планируете постучаться в сеанс Васи, чтобы ему что-то сообщить (это еще при условии, что обработка внешних событий на форме Васи включено).
   lirt82
 
2 - 28.12.21 - 12:30
(1) подскажите как исправить
   acht
 
3 - 28.12.21 - 12:30
Это продолжение Всплывающее уведомление что ли?
   lirt82
 
4 - 28.12.21 - 12:31
(3) да
   Smallrat
 
5 - 28.12.21 - 12:31
система взаимодействия для этого есть https://v8.1c.ru/platforma/sistema-vzaimodeystviy/
   Kassern
 
6 - 28.12.21 - 12:32
Чтобы вы понимали как это все работает. Есть компоненты, которые помогают вызывать внешние события (тот же сканер ШК, Система взаимодействия и т.д.) и через процедуру ОбработкаОповещения можно данное событие обработать.
   Kassern
 
7 - 28.12.21 - 12:33
(2) достаете из широких штанин припасенную С++ и пишите нативную компоненту, которая сможет передавать параметром текст и вызывать внешнее событие 1с.
   Kassern
 
8 - 28.12.21 - 12:36
Либо используете типовой механизм заданий, тогда вместо сообщений, делаете задание и фиксируете к определенным юзверам. Им высветится табличка с текстом.
   Галахад
 
9 - 28.12.21 - 12:37
Можно по простецки.
РС куда писать:
- пользователь
- текст сообщения
Обработка ожидания, которая читает РС.
   Kassern
 
10 - 28.12.21 - 12:38
(8) вот тут пример с уведомлениями https://its.1c.ru/db/metod8dev/content/5930/hdoc
   Kassern
 
11 - 28.12.21 - 12:42
(9) ну и признак, что прочитано тогда)
   Галахад
 
12 - 28.12.21 - 12:44
(11) Если история не важна, можно просто грохнуть. :-)
   Kigo_Kigo
 
13 - 28.12.21 - 12:51
(12) как показывает практика- история нужна всегда :)
   ДенисЧ
 
14 - 28.12.21 - 12:57
net send?
   GANR
 
15 - 28.12.21 - 13:29
(0) В Администрировании при завершении сеанса пользователей см. функционал. Любая конфа на базе современной БСП.
   Kassern
 
16 - 28.12.21 - 13:34
(14) "Популярный ранее, а с развитием интернета - почти забытый способ общения по сети с помощью консольного приложения Net send - может быть использован только в следующих версиях Windows: 95, 98, Me, NT, 2000, 2003, XP."
   Kassern
 
17 - 28.12.21 - 13:35

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.