Имя: Пароль:
1C
1С v8
Оповещение клиента о событии. Как? :)
,
0 Baker_it
 
12.04.20
20:56
Добрый день. 8.3, толстый клиент, клиент-сервер. Снаружи стучатся на HTTP-сервис. По факту стука у определённого клиента в его сеансе должен выполнятся алгоритм. Вопрос - как? Давно не следил за обновлением платформы, может есть что-то быстрое и удобное для этого?
1 ДенисЧ
 
12.04.20
21:00
Сервер взаимодействия?
2 Baker_it
 
12.04.20
21:01
(1) Не понимать вопрос :)
3 ДенисЧ
 
12.04.20
21:08
(2) А ты из какой местности, если не секрет?
4 sevod
 
12.04.20
21:08
(0) С сервера к клиенту не обратится никак. Делаешь что бы клиент слал на сервер запросы с необходимой периодичностью (час/минута/секунда). Используй ПодключитьОбработчикОжидания (подробности сам догуглишь). Разумеется все что прилетает на http где то хранишь на сервере, куда клиент и стучится.
5 sevod
 
12.04.20
21:10
К (4). Сервер и клиен, это серверная и клиентская часть 1с.
6 Baker_it
 
12.04.20
21:11
(4) Спасибо, думал есть альтернативный вариант :) Так уже реализовано почти, не нравится.
7 sevod
 
12.04.20
21:12
(6) мне тоже. Может я чего пропустил и напишут.
8 craxx
 
12.04.20
21:12
(6) Тебе же написали в (1)
9 Baker_it
 
12.04.20
21:13
(8) Так я вопрос не понял :)
10 Garykom
 
гуру
12.04.20
21:16
(0) Внешняя компонента поднимает свой микро http сервер/сервис и если пришел запрос то внешнее событие
11 Baker_it
 
12.04.20
21:26
(10) ВК работает в сеансе пользователя? Там параллельно есть необходимость распределения событий между пользователями. Сейчас работает так, как предлагали выше - анализируется тело POST-запроса, результат пишется в регистр сведений, который опрашивается пользователи по заданному интервалу. Так как пользователей много (а будет кратно больше) - не хочу тыркать очень часто РС на предмет обновлений (это еще и не очень ОК с точки зрения комфорта работы пользователя), как и редкое обновление тоже. Почему-то думал, что в 1С уже прикрутили чего-нибудь реактивного, с получением данных на лету.
12 Юрий Лазаренко
 
12.04.20
21:29
(11) Если сервер и клиентские машины в одной подсети, то через UDP можно. Именно как в (10) сказано ВК - в сеансе пользователя, точнее, даже не в сеансе, а на самой машине пользователя, так как это не сервер, а клиент.
13 Юрий Лазаренко
 
12.04.20
21:30
+(12) На краснодарском Infostart Meetup в феврале был доклад на эту тему, даже с кусками кода - копируй и запускай.
14 acht
 
12.04.20
21:32
(0) А какой результат ожидается, если пользователь откроет под собой два сеанса на одной машине? Ну, например, для ускорения длительных операций (:
Или наоборот, закроет сеанс.
15 Baker_it
 
12.04.20
21:33
(14) Если два сеанса - то код выполнится в обоих (но на самом деле 99% таких пользователей работают в рамках одного сеанса). Если нет ни одного - то не выполнится вовсе :)
16 Baker_it
 
12.04.20
21:36
(12) Машины в одной подсети. Остался один последний вопрос - поднимаю в сеансе пользователя ВК, которая слушает UDP. Кто его будет слать? Внешние HTTP запросы по замыслу принимаются сервером 1С совсем снаружи (от стороннего сервиса) и потом по-идее я должен в этом же серверном сеансе постучаться к пользователю? :)
17 Юрий Лазаренко
 
12.04.20
21:38
(16) Да, сервер принимает http-запрос и шлет UDP-запрос пользователю.
18 acht
 
12.04.20
21:40
(15) Я к чему. Схема с регистром и опросом дает тебе бесплатно еще и возможность легко найти необработанные события и обработать их потом или наехать на пользователя. Модный UDP все равно потребует того же самого, плюс две компоненты - на сервере и на каждом клиенте.
Выигрыш только в выносе опроса сервера в отдельный поток и уменьшение серверных вызовов.
19 Baker_it
 
12.04.20
21:43
(17) Спасибо за идею, будем подумать! :)
20 Baker_it
 
12.04.20
21:48
(18) Мне история с регистром не нравится только с одного ракурса - притормаживания в сеансе пользователя. Там теоретические коротенький РС должен быть, длиной n*m, где n - количество юзеров,а m - число оповещений, не более 5 на первый взгляд.
21 Garykom
 
гуру
12.04.20
21:48
(17) Зачем udp когда сервер и другие клиенты могут штатно httpсоединение без ВК
22 Baker_it
 
12.04.20
21:50
(18) И хотелось бы реакции системы максимально быстрой с момента поступления HTTP запроса ко мне на веб-сервер :)
23 Garykom
 
гуру
12.04.20
22:04
Самое интересное что в 1С уже изначально встроен механизм "сообщений с сервера на клиент".
Это банальная отладка - debug.
24 Курцвейл
 
12.04.20
22:37
ПодключитьОбработчикОповещения(<ИмяПроцедуры>)
И оповещай всех пользователей как закончишь свой ХТТП запрос обрабатывать.
25 Сияющий в темноте
 
12.04.20
22:51
(23) там передача в конфигуратор операций и с клиента и с сервера,опять же,принимающая сторона-конфигуратор.
26 Сияющий в темноте
 
12.04.20
22:53
если оповещение нужно не мгновенно,то с регистром нормально,только нужно регистр наличия сообщений для сеансов,который они будут дергать все время,отдельно от регистра с данными сообщения,где будут хранится только сообщения,которые еще не обработаны.
27 Garykom
 
гуру
12.04.20
23:03
(25) и обратно передача тоже, потому что команды понимает продолжить отладку и т.д.
и да отладку через http настраивал?