Имя: Пароль:
1C
 
ПродолжитьВызов не отрабатывает в асинхронной процедуре?
0 korolar
 
27.03.25
17:15
или должно отрабатывать?
1 korolar
 
27.03.25
17:21
&Вместо("ВыполнитьДействиеЗадачи")
Асинх Процедура расш_ВыполнитьДействиеЗадачи(ДействияЗадач) Экспорт
//...
ПродолжитьВызов(ДействияЗадач)

пишет
Ошибка при вызове метода контекста (ПродолжитьВызов)


[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Вызов метода разрешен только в методах с аннотацией "Вместо"
[ОшибкаИспользованияВстроенногоЯзыка]
2 lucky_
 
27.03.25
17:48
Возможно тут..
СП: Асинх Модификатор применим только к процедуре, выполняемой на клиенте.
СП: ПродолжитьВызов
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, интеграция.
3 Garykom
 
гуру
27.03.25
19:33
(0) Не используйте новомодные извраты синтаксические сахары
Чем тебя ОписаниеОповещения не устраивает?
4 timurhv
 
27.03.25
23:15
(3) БСП и типовые уже через Асинх начали писать)
5 Умный Слоненок
 
28.03.25
12:29
(3) громоздко и неудобно читать
6 Garykom
 
гуру
28.03.25
12:45
(5) Вопрос привычки
Привыкнуть к новому синтаксису тоже сложно
7 Garykom
 
гуру
28.03.25
12:53
(6)+
Фактически это попытка вернуть обратно модальность (аля синхронность), после отказа от нее
Что на практике выглядит слегка странно

Работа через Обещание и Ждать довольно удобна
Меня реализация убивает

Вот нахрена делать так:
&НаКлиенте
Асинх Процедура ПроцедураНовомодная()
 Обещание = ПредупреждениеАсинх("Текст");
 Результат = Ждать Обещание;
 // ...
КонецПроцедуры


Когда можно было прекрасно сделать так:
&НаКлиентеАсинх
Процедура ПроцедураНовомодная()
 Обещание = ПредупреждениеАсинх("Текст");
 Результат = Ждать Обещание;
 // ...
КонецПроцедуры
8 alexela
 
28.03.25
12:54
(7) ага, прикольно.
и читается удобнее
9 Garykom
 
гуру
28.03.25
12:56
(7)+ ну нафига ломать нечто привычное?
зачем этот модификатора Асинх перед именем Процедуры/Функции?
когда уже есть директивы/аннотации
&НаКлиенте, &НаСервере, &НаСервереБезКонтекста
и просто надо туда добавить &НаКлиентеАсинх?
10 Garykom
 
гуру
28.03.25
13:01
(8) угу
или тогда перевести все на два варианта!
или директивы/аннотации:
&НаКлиенте
Процедура ИмяПроцедуры()

&НаКлиентеАсинх
Процедура ИмяПроцедуры()

&НаСервере
Процедура ИмяПроцедурыНаСервере()

или модификаторы:
НаКлиенте Процедура ИмяПроцедуры()

НаКлиентеАсинх Процедура ИмяПроцедуры()

НаСервере Процедура ИмяПроцедурыНаСервере()
11 alexela
 
28.03.25
13:38
(10) 👍
Мне вариант с директивами понравился.
Хотя это всё вкусовщина возможно.
12 timurhv
 
28.03.25
13:50
(7) Правильно писать:
Асинх Процедура ПроцедураНовомоднаяАсинх()
13 Garykom
 
гуру
28.03.25
14:24
(12) это уже масло масляное асинх асинхнутое
ладно когда пишут ИмяПроцедурыНаСервере
но смысл с Асинх это делать?

хотя возник интересный вопрос
&НаКлиенте
Асинх Процедура ИмяПроцедурыАсинх()
 Обещание = ПредупреждениеАсинх("Текст");
 Результат = Ждать Обещание;
 // ...
КонецПроцедуры

&НаКлиенте
Процедура ИмяПроцедуры()
 ИмяПроцедурыАсинх(); // вот тут тоже остановится и дальше продолжится?
 // ...
КонецПроцедуры
14 timurhv
 
28.03.25
16:38
(13) Чтобы сразу видно было сахар при обращении экспортным методам в общих модулях.

>вот тут тоже остановится и дальше продолжится?
Нет, не остановится