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

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

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