В Элементе "из коробки" грамотно сделана система для работы с компонентами. Сам xbsl код выполняется линейно, строчка - за строчкой, однако при вызове серверных методов технология поддерживает работу в несколько потоков одновременно. Это делает возможным следующий сценарий:
Пользователь нажимает на кнопку "Закрытие месяца", операция начинает выполняться, при этом, пользователь продолжает работать с формой: формирует в этом же окне отчёт, нажимает на соседнюю кнопку, листает список операций.
Сколько кода для обработки асинхронности я бы при этом написал? Нисколько, работая с клиентским кодом разработчику можно смело стучаться на сервер, это породит отдельный поток исполнения, что можно проверить отладчиком. При этом не используется механизм регламентные заданий, о них позже
Такой эффект достигается за счёт нескольких особенностей
1. Технология рисует и обрабатывает компоненты "под капотом" независимо друг от друга
2. Вызов методов с аннотацией
@ДоступноСКлиента. Когда серверный вызов завершится успешно - мы можем быть уверены что выполнится следующая за ним клиентская строка кодаВ результате, нам, как прикладным разработчикам, доступна удобная архитектура для работы с компонентами - пока отдельная компонента не завершила свой обработчик, её доступность становится "Ложь", это не нужно явно описывать и парится на счет двойных нажатий - вендор эту логику уже заложил в стандартную библиотекую
