Имя: Пароль:
1C
 
Асинхронные методы работы
,
0 СинийКот
 
23.09.20
13:40
Я уже поднимал здесь тему взаимодействия браузеров с веб-клиентом, в связи с этим начал разбираться с асинхронными методами и появился уже более глобальный вопрос: как вообще функции с синхронными методами переписываются на асинхронные процедуры? Потому что таких случаев не один и не два.
Даже взять самый простой вариант: функция возвращает синхронный метод КаталогДокументов(), как, скажем, процедурой НачатьПолучениеКаталогаДокументов() получить тот же результат, что и этой функцией?
1 ДенисЧ
 
23.09.20
13:43
Передать в Начать* коллбек и в оном колбеке отрабатывать результат
2 Hmster
 
23.09.20
13:49
На примере обмена с битриксом:
1. Полчучаешь ID для запроса
2. На основании ID инициируешь обработку
3. На основании ID смотришь как выполняется твоя обработка

В 1С при использовании фоновых заданий пункты 1,2 объединяются. ID - это твое фоновое задание, получается в момент инициирования.
3 Hmster
 
23.09.20
13:53
(2) Т.е. тебе надо знать что у тебя выполняется, в каком состоянии это выполнение. А далее либо по кнопке либо по ожиданию делать следующий шаг
4 Franchiser
 
гуру
23.09.20
13:54
Правая кнопка мыши - рефакторинг
5 СинийКот
 
23.09.20
14:08
(4) в таких случаях не работает рефакторинг
6 ДенисЧ
 
23.09.20
14:09
(5) В каких "таких"?
7 Web00001
 
23.09.20
14:12
8 СинийКот
 
23.09.20
14:12
(6) Ну вот я привел пример с каталогом документов, и похожие случаи есть, например подключение расширения, о котором я говорил в другой теме. Преобразовывает не полностью, и создает процедуру с возвратом значения)
9 d4rkmesa
 
23.09.20
14:12
(0) Конфигурация - проверка конфигурации, там отметить поиск синхронных методов. Переписывать, конечно, волшебной кнопки нет, т.к. аргументы могут быть сильно различные.
10 СинийКот
 
23.09.20
14:21
(9) Да не нужна мне волшебная кнопка, мне бы просто пара идей хоть каких-то. Ну вот пока буду отталкиваться от того, что предложили в (1) и (2), попробую это реализовать
Ошибка? Это не ошибка, это системная функция.