Пауза в 1С
Иногда требуется сделать паузу в середине кода, например при работе с файлами или по сети что-то грузим... по протоколам http\ftp, платформа 1С не имеет встроенной функции sleep, но есть несколько вариантов:
1. вариант объект http
Процедура Sleep(КоличествоСекунд)
Попытка
Соединение = Новый HTTPСоединение("127.0.0.0",,,,,КоличествоСекунд);
Соединение.Получить(Новый HTTPЗапрос());
Исключение
Конецпопытки;
КонецПроцедуры
2.вариант команда виндоус
Процедура Sleep(Секунд)
КомандаWindows = "Timeout /T " + Строка(Секунд) + " /NoBreak";
ЗапуститьПриложение(КомандаWindows,,Истина);
КонецПроцедуры
3.вариант пинг
//видно черное окно (на сервере не важно)
Процедура Sleep(Секунд)
КомандаWindows = "ping -n 1 -w "+Формат(1000 * Секунд, "ЧДЦ=0; ЧГ=") + " 127.255.255.255";
ЗапуститьПриложение(КомандаWindows,,Истина);
КонецПроцедуры
//он же но без черного окна
Процедура Sleep(Секунд)
Попытка
WshShell= Новый COMОбъект("WScript.Shell");
WshShell.Run("ping -n 1 -w "+Формат(1000 * Секунд, "ЧГ=0")+" 127.255.255.255", 0, -1);
Исключение
КонецПопытки;
КонецПроцедуры
4.вариант ПодключитьОбработчикОжидания
Процедура МояФункция()
........ какой то код............
Если ...=Истина Тогда
ПодключитьОбработчикОжидания("МояФункция2", Секунд, Истина);
КонцЕсли;
КонецПроцедуры
Процедура МояФункция2()
......... код после паузы..
КонецПроцедуры