Имя: Пароль:
1C
 
Пауза в коде 1С 8.1
0 ProgaN
 
08.02.10
09:43
Подскажите, пожалуйста, есть ли возможность в коде поставить паузе между двумя процедурами. Код должен выполняться как сервером, так и клиентом.
1 oprosnik
 
08.02.10
09:45
ТВ = ТекущееВремя(),
В цикле ждешь когда ТекущееВремя() превысит ТВ +Таймаут
2 asady
 
08.02.10
09:46
(0) поиском пользовался уже?
3 Sadovnikov
 
08.02.10
09:47
(1) На загрузку проца при этом глянь.
4 Ненавижу 1С
 
гуру
08.02.10
09:48
(0) для чего?
5 azernot
 
08.02.10
09:48
(0) Зачем пауза на сервере?
6 ProgaN
 
08.02.10
09:53
(5) Регламентное задание выполняется на сервере. В коде выполняются 2 процедуры подряд - выгрузка и загрузка. Между ними нужно выждать паузу. Так как в процедурах вызывается запуск процедур SQL (экспорт и импорт). Идея с циклом и текущим временем - работает, но грузит процесс 100%.
7 strange2007
 
08.02.10
09:55
(1) Я замерял. По производительности сервера вообще нет изменений
8 strange2007
 
08.02.10
09:56
Вот как раз СКЛ заставлять работать на полную - загрузка компа. СКЛ изначально заточен на макс производительность. Цикл в 1Ц не работает с объектами и поэтому загрузка минимальная
9 Михей
 
08.02.10
10:00
10 azernot
 
08.02.10
10:03
ИнтервалОжидания = Таймаут*1000;
   ИмяФайлаВрем = ПолучитьИмяВременногоФайла("js");
   ТекстовыйДокумент = Новый ТекстовыйДокумент;
   ТекстовыйДокумент.УстановитьТекст
   (
   "if (WScript.Arguments.Count()==0)
   |    WScript.Quit();
   |else
   |    if (isNaN(parseInt(WScript.Arguments(0))))
   |        WScript.Quit();
   |WScript.Sleep(WScript.Arguments(0));"
   );
   ТекстовыйДокумент.Записать(ИмяФайлаВрем,КодировкаТекста.ANSI);
   WshShell = Новый COMОбъект("WScript.Shell");
   WshShell.Run("wscript.exe """+ИмяФайлаВрем+""" "+Формат(ИнтервалОжидания,"ЧГ=0"),0,-1);
   УдалитьФайлы(ИмяФайлаВрем);
11 oprosnik
 
08.02.10
11:16
(9) Мне понравился вариант :
"Fragster: Для паузы можно использовать более короткий вариант:
Процедура глПауза(Сек)
   scr = СоздатьОбъект("WScript.Shell");
   scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;"

КАк грится : краткость сестра таланта :)
Вопрос на сервере 8.1 это отработает ?
РС разумеется scr = новый COMОбъект("WScript.Shell");
12 ProgaN
 
08.02.10
11:28
Всем спасибо. Воспользуюсь.