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

Sokolin D.A. 52 1 1 3

Оптимальное решение формирования Паузы в коде 1С. Другие способы имеют недостатки, не буду описывать все. Например, бесконечный цикл с проверкой истечения времени грузит процессор, а WshShell не будет работать под Linux.

Подсмотрено в конфигурации 1С ERP.

//Процедуру следует разместить в модуле КакойтоСерверныйОбщийМодуль :)

// Делает паузу выполнения кода
// 
// Параметры:
// 	КоличествоСекунд - Число - длительность паузы

Процедура Пауза(КоличествоСекунд) Экспорт
	Если ТипЗнч(КоличествоСекунд) <> Тип("Число") ИЛИ КоличествоСекунд < 1 ИЛИ КоличествоСекунд > 180 Тогда
		Возврат;
	КонецЕсли;

	ФоновоеЗадание = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание();
	Если ФоновоеЗадание = Неопределено Тогда
		Параметры = Новый Массив;
		Параметры.Добавить(КоличествоСекунд);
		ИмяМетода = "КакойтоСерверныйОбщийМодуль.Пауза";
		ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, Параметры);
		ФоновоеЗадание.ОжидатьЗавершенияВыполнения(КоличествоСекунд);
	Иначе
		ФоновоеЗадание.ОжидатьЗавершенияВыполнения(КоличествоСекунд)
	КонецЕсли;
КонецПроцедуры
0
Орфографическая ошибка в КакойтоСерверныйОбщийМодуль (найдено 2): Какойто

См. также

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

СформироватьЗаголовокДатыРеализации (БСП)

СформироватьДатуРеализации (БСП)

Пауза

Пауза (БСП)

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

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

Срез на даты за период. Шаблон запроса

МетаданныеКонфигурации (БСП)

Модератору