Имя: Пароль:
1C
1С v8
Как асинхронный результат превратить в синхронный в тонком клиенте?
,
0 DES
 
18.02.23
23:46
Задача:
проверить доступность сервера и по результату выполнить действие
Сервер проверяется отсылкой ему тестового вопроса, если ответил - хорошо, если нет то запустить сервер и повторить проверку.
Так как дождаться ответа если запрос можно делать только асинхронной функцией?
Как-то опрашивать глобальную переменнную ?
1 p-soft
 
19.02.23
03:01
тк не указано, какими средствами реализуются проверки, то ответ один - пользуйтесть чтением/записью данных в таблицы БД, они все стерпят. в общем случае, без разницы, с помощью чего реализуете доступ к общей памяти двух разных потоков)
2 eddy_n
 
19.02.23
08:35
ПриНачалеРаботыСистемы() в модуле приложения ловить пул соединений через ПолучитьСоединенияИнформационнойБазы(). Если нужное соединение, допустим с именем приложения 1CV8C присутствует, то всё норм?
3 DES
 
19.02.23
09:53
(2) Да не о том.
Тонкий клиент проверяет другой вебсервер, а не свой.
Как проверять общую память? запустить цикл проверки пдительностью 5-10 сек.?
4 asady
 
19.02.23
10:44
(3) что-то ты намудрил с описанием
ты хочешь привязать сеанс клиента к определенному сеансу сервера?
5 DES
 
19.02.23
11:21
(4) тема не привязке чего то к чему то.
тема как ждать ответа от асинх процедуры чтобы проанализировать ее ответ?
6 Смотрящий
 
19.02.23
11:27
Пока ж чем проверяешь доступность сервера
7 asady
 
19.02.23
11:28
(5) тогда тебе вероятно это поможет:
https://infostart.ru/public/326713/
8 DES
 
19.02.23
11:44
(6) пока это делается вручную, а хочу автоматизировать.
9 1snik_d
 
19.02.23
11:45
Ну на то она и асинхронная, чтобы ответ получать отдельным методом. А то, что описано тут - это в чистом виде синхронный запрос с ожиданием ответа
10 DES
 
19.02.23
11:46
(7) да эти примеры изучены. все проверено и работает.
тема как применить асинх вызов нет, тему как дождаться ответа и продолжить по результату - не нахожу
11 DES
 
19.02.23
11:47
(9) в тонком клиенте синхрон нельзя же использовать?
12 1snik_d
 
19.02.23
11:48
(11) Плавание в терминологии, причем тут вид клиента
13 1snik_d
 
19.02.23
11:51
В общих чертах асинхронность работает так:
1. Мы отправляем некий запрос и все, ничего не ждем. Сервер, которому отправили запрос, выполняет некие алгоритмы, и подготавливает ответ.
2. Через некоторое время отправляем новый запрос на получение результатов выполнения.
3. Если результат есть, то отправляем третий запрос на получение самого результата.
14 1snik_d
 
19.02.23
11:53
Пункт 2 можно в некоторых случаях исключить
15 1snik_d
 
19.02.23
11:54
Под асинхронностью в 1С обычно имеют ввиду работу форм на клиенте, но это просто частный случай.
16 1snik_d
 
19.02.23
11:57
И вообще в рамках этой задачи нафиг не нужен асинхронный вызов, если проверяемый сервер лежит, то какой ответ он может сформировать? Просто проверять результат запроса, если там 404, то значит лежит. Как-то так.
17 DES
 
19.02.23
12:55
(16) чтобы проверить сервер на локалной машине нужно использовать или веб или тонкий клиент, а в них синхрон невозможен.
18 DES
 
19.02.23
12:57
(16) + вебсервер работает на локальной машине, его готовность нужно проверить из серверной 1с8 . Как?
19 DES
 
19.02.23
13:01
Задача такая: взять данные у сервера 1с8.21.хххх обработать на сайте локальной (сервер локальный) машины и вернуть данные на сервер 1с8.22
20 DES
 
19.02.23
13:06
можно зацикливаться на опросе результата всей транзакции, но сколько ждать, ведь это работа по интернет-сети, могут быть обрывы связи , медленная скорость и т.д. Повторять действие? или еще 1 сек подождать?
21 Смотрящий
 
19.02.23
13:17
Какой сервер будет инициировать запрос .21 или .22 ?
22 DES
 
19.02.23
15:22
(21) тут без разницы
вопрос про локальный сервер
23 ДедМорроз
 
19.02.23
20:07
Начнем с того,что в web-клиенте делать http-запрос нельзя.
Можно только в тонком клиенте.
И,насколько я помню, асинхронный запрос завезли только в 21-ой платформе.
Во всех ниже он синхронный.
У асинхронного есть так называемое обещание,которое можно завернуть в обработку оповещения.

Или что мы хотим ?
24 DES
 
19.02.23
21:33
(23) Да все это происходит (можно делать) в процедуре которая помечается Асинх()
Как результаты этой процедуры поймать?