Заметки из Зазеркалья

24.04.2023

Метод ВызватьПаузу

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.25

По многочисленным просьбам в платформе 1С:Предприятие версии 8.3.25 во встроенном языке будет реализован метод глобального контекста ВызватьПаузу (CallSleep), останавливающий выполнение потока сеанса на заданное время.

Почему метод называется ВызватьПаузу, а не просто Пауза? Дело в том, во многих партнерских решениях уже есть метод Пауза, реализующий какой-то подобный функционал. И мы выбрали название ВызватьПаузу, чтобы избежать массовых изменений кода в существующих решениях, кода тестов и т.п.

Синтаксис: ВызватьПаузу(<Интервал>)

где параметр Интервал – интервал в миллисекундах.

Метод ВызватьПаузу доступен только на сервере и может быть вызван из фоновых заданий, веб-сервисов, http-сервисов, ботов и т.п.

Важная особенность: метод ВызватьПаузу недоступен в клиент-серверном вызове; при вызове с клиента серверного метода, в котором вызывается ВызватьПаузу, будет сгенерировано исключение «Нельзя вызвать метод ВызватьПаузу в клиент-серверном вызове». Мы сделали это осознанно: метод ВызватьПаузу блокирует выполнение кода и, будучи вызван из клиентского кода, заблокирует пользовательский интерфейс. Мы же хотим, чтобы наш пользовательский интерфейс был максимально «отзывчивым». Для реализации функциональности паузы в клиентском коде есть другие способы – например, можно воспользоваться механизмом фоновых заданий.

Метод ВызватьПаузу существенно упростит реализацию ряда сценариев, в частности – сценариев интеграции с внешними системами из серверного кода. Например, метод ВызватьПаузу можно использовать между повторами обращения к внешней системе в ожидании готовности внешней системы к взаимодействию в случае, когда во внешней системе идет длительный процесс (например, подготовка области данных).

Мы уверены, что многие разработчики, использующие платформу 1С:Предприятие, смогут с пользой применить новую функциональность в своих сценариях. Но мы рекомендуем внимательно подумать - нужно ли использовать ВызватьПаузу в каждом конкретном случае. Также мы не рекомендуем делать бесконечный цикл (пусть и с вызовом ВызватьПаузу), то есть количество ожиданий (вызовов ВызватьПаузу) должно быть небольшим.

Теги: 8.3.25 

Рассказать друзьям: