Асинхронные функции.



Обещание и Возвращающие Обещание в 1С 8.3



Процедура ВыполнениеПримераСАсих()



Попытка

ВыполнениеКода();

Исключение

// Исключение из ВыполнениеКода() не будет перехвачено здесь

КонецПопытки



КонецПроцедуры



Асинх Функция ВыполнениеКода() // Всегда возвращает Обещание



ВызватьИсключение "Выброшено в ВыполнениеКода()";

//При успешном завершении в Обещание будет завернуто значение, которое было аргументом оператора Возврат.

//Если при выполнении Асинх функции произошло исключение, то в Обещание будет завернуто это исключение.



КонецФункции






Обещание как аргумент оператора Ждать в 1С 8.3:



Асинх Процедура ВыполнениеПримераСАсих()



Попытка

// Для того, чтобы узнать как завершилась Асинх функция – это использовать возвращенное ею Обещание как аргумент оператора Ждать.

Ждать ВыполнениеКода(Null);

Исключение

// Исключение из НеNull() будет перехвачено здесь

Сообщить("Передали Null");

КонецПопытки



КонецПроцедуры



Асинх Функция ВыполнениеКода(ПеремП) // Всегда возвращает Обещание



Если ПеремП = Null Тогда

ВызватьИсключение "Выброшено в ВыполнениеКода()";

Иначе

Возврат ПеремП;

КонецЕсли;



КонецФункции



// Асинх процедура не возвращает значения. А если при выполнении Асинх процедуры возникнет не перехваченное исключение,

// то это приведет к выдаче сообщения об ошибке.






✍️ @odin1C_rus