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

builin 89 1 3 3

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

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

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

Комментарии

Похожие публикации

Пауза, ожидание в коде

Пауза (БСП)

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

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

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

Модератору