Пауза в любой ОС

builin 103 2 3 2

Алгоритм для имитации длительных вызовов, например, когда нужно подождать определенное количество времени, прежде чем исполнять следующий алгоритм. На основе видео 1С:УЦ 1: https://www.youtube.com/watch?v=oI4i1PeqJ_Y

Блог Жёлтая тетрадь 📒 http://t.me/yellow_pad

//Процедуру нужно расположить в общем модуле с включенными флагами "Сервер" и "Вызов сервера"
Процедура Пауза(КоличествоСекунд) Экспорт
	
	Если ТипЗнч(КоличествоСекунд) <> Тип("Число") ИЛИ КоличествоСекунд = 0 Тогда
		Возврат; // Чтобы не произошло бесконечной паузы (зависания)
	КонецЕсли; 
	
	ФоновоеЗадание = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание(); // Для проверки, работаем ли мы в фоновом задании
	
	Если ФоновоеЗадание = Неопределено Тогда
		
		// Алгоритм запуска фонового задания и ожидания завершения по времени
		
		Параметры = Новый Массив(1);
		Параметры.Установить(0, КоличествоСекунд);
		ИмяМетода = "_ФоновоеЗадание.Пауза"; // Полное имя метода текущей процедуры, с указанием общего модуля
		
		// Запускаем фоновое задание без использования расширений конфигурации (снижаем нагрузку на сервер)
		ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, Параметры);
		
	КонецЕсли; 
	
	ФоновоеЗадание.ОжидатьЗавершенияВыполнения(КоличествоСекунд);
	
КонецПроцедуры
1

Комментарии

См. также

Пауза

Пауза (БСП)

Пауза() при выполнении кода 1С

Реализация функции Пауза() из 1С ERP

Формирование Паузы при выполнении кода

ЗначениеВСтрокуXML (БСП)

Найти дату самого первого документа в любой базе

ВыбратьИсполнителя (БСП)

ПолучитьЗначениеРеквизитаПредмета (БСП)

Модератору