Имя: Пароль:
1C
1C 7.7
v7: програмная задержка (sleep)
,
0 perkos
 
14.09.12
08:49
сейчас делаю так

Процедура глПауза(Сек)
   scr = СоздатьОбъект("WScript.Shell");
   scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(Сек)+1),0,1);
КонецПроцедуры

но у меня есть пример батника который делает так

   cscript //nologo /e:jscript "%~f0" 5000
*/
WScript.Sleep(WScript.Arguments(0))

как бы такую штуку вместо пинга засунуть подскажите
1 perkos
 
14.09.12
08:50
5000 время в милисекундах
2 perkos
 
14.09.12
08:59
Функция ПаузаСекунды(Секи)
   Попытка
       scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
       scrptCtrl.language="vbscript";
       КодСкрипта="
       |Function GetPause()
       |Set WScript = CreateObject(""WScript.Shell"")
       |WScript.Sleep (";
       КодСкрипта=КодСкрипта+Строка(Секи*1000)+")";
       КодСкрипта=КодСкрипта+"
       |GetPause = """"
       |End Function
       |";
       scrptCtrl.addcode(КодСкрипта);
       Рез = ScrptCtrl.Run("GetPause");
   Исключение
       Возврат "";
   КонецПопытки;
   Возврат Рез;
КонецФункции

вот такую штуку нашел но
Рез = ScrptCtrl.Run("GetPause");
{D:\1C\ТЕСТПАУЗЫ.ERT(26)}: Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'WScript.Sleep'
3 Voronve
 
14.09.12
09:02
глWScript = СоздатьОбъект("WScript.Shell"); // Где то в глобальнике

глWScript.Run(КаталогИБ() + "sleep.vbs", 0, -1); // В нужном месте

Файл sleep.vbs (1 строка):
WScript.sleep 2000
4 aleks-id
 
14.09.12
09:04
слип это зло. обсуждалось мильён раз. меняй алгоритм
5 perkos
 
14.09.12
09:04
а без файла скрипта можно?
6 PaulBC
 
14.09.12
09:04
|Set WScript = CreateObject(""WScript.Shell"")  - это лишнее
Объект WScript можно использовать в сценарии WSH сразу, без какого-либо предварительного описания или создания, т.к. его экземпляр создаётся сервером сценариев (CScript.exe или WScript.exe) автоматически.
7 Voronve
 
14.09.12
09:05
(5) У меня не получилось.
8 perkos
 
14.09.12
09:06
(6)
Функция ПаузаСекунды(Секи)
   //Попытка
       scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
       scrptCtrl.language="vbscript";
       КодСкрипта="
       |Function GetPause()
       |WScript.Sleep (";
       КодСкрипта=КодСкрипта+Строка(Секи*1000)+")";
       КодСкрипта=КодСкрипта+"
       |GetPause = """"
       |End Function
       |";
       scrptCtrl.addcode(КодСкрипта);
       Рез = ScrptCtrl.Run("GetPause");
   //Исключение
   //    Возврат "";
   //КонецПопытки;
   Возврат Рез;
КонецФункции

Рез = ScrptCtrl.Run("GetPause");
{D:\1C\ТЕСТПАУЗЫ.ERT(25)}: Ошибка выполнения Microsoft VBScript: Требуется объект: 'WScript'
9 Serg_1960
 
14.09.12
09:08
Лаконично - по нраву мне. Автор - не я.

Wrapper=Новый ComОбъект("DynamicWrapper");
Wrapper.Register("KERNEL32.DLL","Sleep","i=l","f=s");
Wrapper.Sleep(мсек);
10 perkos
 
14.09.12
09:20
(9) вся система висит во время таких пауз... уф не годно
11 dk
 
14.09.12
09:47
а просто
ВвестиСтроку("Ждем",,,, 1)
не вариант? )
12 mikecool
 
14.09.12
09:51
в КЗ есть статья по организации паузы
13 mikecool
 
14.09.12
09:51
(11) и по рукам линейкой...
14 mikecool
 
14.09.12
09:52
15 dk
 
14.09.12
09:54
(13) ты свою ссылку смотрел? )) так-то этот пример там есть
16 mikecool
 
14.09.12
09:56
(15) пох, за всю статью не отвечаю, но раздачу бы устроил за твой пример )
17 dk
 
14.09.12
09:57
(16) а аргументация?
сильно подозреваю что ты не в курсе как ввестистроку работает
18 perkos
 
14.09.12
11:05
(14) хмм делать паузы чтобы база не тормозила это идея конечно... впринципе кучу задач можно так размазать во времени... интересно так то
19 Fragster
 
гуру
14.09.12
11:07
а чем пинг не устраивает?
20 Fragster
 
гуру
14.09.12
11:07
(9) а DEP не ругается?
21 perkos
 
14.09.12
11:26
(19) не красивый код только и всего(= я думаю тема исчерпана, неплохой варик вбс файл запускать, пинг, скопировать слип.exe, ну и предупреждение впринципе тоже может сойти.
22 varelchik
 
14.09.12
15:46
а так:
Функция глПауза(ЧислоСек) Экспорт
   Система=СоздатьОбъект("Система");
   Для н=1 По ЧислоСек Цикл
       Система.Уснуть(1000);
       Состояние("Пауза : "+Строка(н)+" сек.");
   КонецЦикла;
КонецФункции
23 varelchik
 
14.09.12
15:46
Паравда надо что 1С++ была загружена.