1С: Thread.Sleep или процессорный отдых

Очень редко, но иногда очень нужно, чтобы при выполнении кода в 1С происходила пауза между действиями. Частым примером этого является ситуация печати большого числа документов на сетевом принтере. Если не поставить паузу между отправкой документов на печать, более чем вероятно произойдет перемешивание документов, а это не есть хорошо.


К сожалению 1C не имеет стандартной функции паузы (например как Sleep в C#). Однако не составит труда написать собственную функцию, которая займет аж три строчки.

Процедура Пауза(мСек)
    WinAPI= СоздатьОбъект("DynamicWrapper");
    WinAPI.Register("KERNEL32.DLL", "Sleep", "i=l", "f=s");
    WinAPI.Sleep(мСек);
КонецПроцедуры

Далее для вызова паузы на 1 секунду пишем:

Пауза(1000);

Хитро, быстро и очень удобно. Все довольны и счастливы =)

Запись опубликована в рубрике с метками , , , . Добавьте в закладки постоянную ссылку.