|
Аналог Sleep() | ☑ | ||
---|---|---|---|---|
0
Lenny
22.02.07
✎
09:31
|
Подскажите,братцы,если аналог апишной Sleep() в восьмерке,
циклы не предлагать.Спасибо заранее. |
|||
1
coder1cv8
22.02.07
✎
09:32
|
Предупреждение()?
|
|||
2
coder1cv8
22.02.07
✎
09:33
|
(0) а что тебе мешает Sleep() использовать?
|
|||
3
Lenny
22.02.07
✎
09:34
|
Нет,не подходит,диалог появиться на экране я думаю
|
|||
4
coder1cv8
22.02.07
✎
09:36
|
(3) а по поводу (2)?
|
|||
5
Lenny
22.02.07
✎
09:40
|
А как я могу Sleep() использовать?
|
|||
6
coder1cv8
22.02.07
✎
09:41
|
выполнить скрипт внутри эски, например...
|
|||
7
coder1cv8
22.02.07
✎
09:43
|
+(6) вот теория: http://script-coding.info/MSScriptControl.html
|
|||
8
Lenny
22.02.07
✎
09:47
|
Спасибо,сейчас почитаю
|
|||
9
Gepard
22.02.07
✎
09:49
|
||||
10
smaharbA
22.02.07
✎
09:52
|
с шагом в 1 сек всего 1 строка кода, ну если черенькие окошки раздрожают то 2 строки
|
|||
11
smaharbA
22.02.07
✎
10:02
|
Выбирай по вкусу
и еще - есть способ получить объект WScript во всей своей кросе в адинеску.. есть еще метод - 3 строки, но шаг тоже 1 сек |
|||
12
coder1cv8
22.02.07
✎
10:07
|
(11) Вот по поводу WScript во всей красе, расскажи по-подробней, плиз.
|
|||
13
Звездочёт
22.02.07
✎
11:38
|
(11) С командой ping клёво придумано :)
А вот остальные: C:\Documents and Settings\ivan>timeout /? "timeout" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. То же и для choice... |
|||
14
romix
22.02.07
✎
11:41
|
||||
15
romix
22.02.07
✎
11:49
|
(7) sleep что-то не получается замутить...
|
|||
16
Звездочёт
22.02.07
✎
11:58
|
(15) конечно не получится.
Т.к. в MSScriptControl нет объекта WScript (контекста WSH). |
|||
17
romix
22.02.07
✎
12:03
|
(16) Т.е. розовый обломинго?
У меня ВК юзается. Книга знаний: Перепроведение документов в 1С:Предприятие без блокировки других пользователей |
|||
18
Звездочёт
22.02.07
✎
12:08
|
(17) можно и так сказать :) т.е. методом Sleep воспользоваться не удастся.
|
|||
19
Звездочёт
22.02.07
✎
12:10
|
(17) знаешь, чем Предупреждение плохо использовать в качестве паузы? :)
|
|||
20
romix
22.02.07
✎
12:11
|
(19) Да, там че-то не срабатывает когда окно свернуто...
|
|||
21
Звездочёт
22.02.07
✎
12:14
|
(20) именно. Точнее, когда окно фокус теряет.
То же самое, для диалога ВводЧисла. А вот для ВводСтроки - таймаут работает! ;)) |
|||
22
Лойфер
27.03.07
✎
14:03
|
Так есть способ заSleepаться без внешних файлов и компонент? Неужели через COM нельзя совсем? Мне вот конкретно надо ставить задержку в цикле. Видел способ (Книга знаний: Перепроведение документов в 1С:Предприятие без блокировки других пользователей), где создается файл-скрипт и он запускается. Но мне он совсем не нравится.
|
|||
23
tsr
27.03.07
✎
14:12
|
Я такую процедурку замутил, ибо нужно было именно так
Процедура Sleep(сек) Экспорт нач=ТекущаяДата(); Пока ТекущаяДата() - нач < сек Цикл КонецЦикла; КонецПроцедуры |
|||
24
Лойфер
27.03.07
✎
14:15
|
Да вродь неплохо, но, боюсь, это процессор займет аж на 100%. А у меня программа на серваке работает - не есть гут...
|
|||
25
tsr
27.03.07
✎
14:17
|
Я юзаю для определенных случаев. Например, при массовом перепроведении документов. Чтобы другие юзеры могли работать. Процедура запускается на клиенте и никак на производительность сервера не влияет
|
|||
26
coder1cv8
27.03.07
✎
14:18
|
(16) хм... а я не знал, извиняюсь...
|
|||
27
Лойфер
27.03.07
✎
14:20
|
(26) и это печально :(
|
|||
28
smaharbA
27.03.07
✎
14:28
|
Sleep довольно просто получается замутить, причем именно тот который в WScript
|
|||
29
Михаил Козлов
27.03.07
✎
14:31
|
Может быть так:
ПРОЦЕДУРА Sleep() ЭКСПОРТ ОтключитьОбработчикОжидания(Sleep); КОНЕЦПРОЦЕДУРЫ Там где надо: ПодключитьОбработчикОжидания(Sleep, 5); |
|||
30
Лефмихалыч
27.03.07
✎
14:32
|
(0) Книга знаний: Перепроведение документов в 1С:Предприятие без блокировки других пользователей
в самом конце процедурка, которая WScript.Sleep() для нужд 1С используется |
|||
31
smaharbA
27.03.07
✎
14:34
|
(30) можно гораздо интереснее, сам WScript в 1С задействовать...
(29) блин, ниче не понимаю, ноль в восьмерке полнейший (( |
|||
32
Лефмихалыч
27.03.07
✎
14:38
|
(31) =o как? Объект WScript же создается программами wscript.exe & cscript.exe
|
|||
33
smaharbA
27.03.07
✎
14:44
|
(32) вот в том и беда, но всеравно его можно выдрать, как гланды через одно место ))
...
|
|||
34
smaharbA
27.03.07
✎
14:46
|
Понятно, что это запускать в начале конфы, а после только проверять наличие WScript
|
|||
35
ХорошийПарень
27.03.07
✎
15:11
|
(29)+1
Или так: Модуль приложения: //*********************************************************************** Перем НачалоСчета Экспорт; Перем КонецСчета Экспорт; Процедура ИмяПроцедурыМодуляПриложения()Экспорт ОтключитьОбработчикОжидания("ИмяПроцедурыМодуляПриложения"); Пока не НачалоСчета=КонецСчета Цикл НачалоСчета=НачалоСчета+1; Сообщить("Обработано "+НачалоСчета+" из "+КонецСчета); Если НачалоСчета=Цел(КонецСчета/2)Тогда Sleep(10); Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры Процедура Sleep(КоличествоСекунд) Сообщить("Пауза "+КоличествоСекунд+" сек."); ПодключитьОбработчикОжидания("ИмяПроцедурыМодуляПриложения", КоличествоСекунд); КонецПроцедуры //*********************************************************************** Модуль объекта: //*********************************************************************** Процедура Запустить()Экспорт НачалоСчета=0; КонецСчета=9; ИмяПроцедурыМодуляПриложения(); КонецПроцедуры //*********************************************************************** Результат работы: Обработано 1 из 9 Обработано 2 из 9 Обработано 3 из 9 Обработано 4 из 9 Пауза 10 сек. Обработано 5 из 9 Обработано 6 из 9 Обработано 7 из 9 Обработано 8 из 9 Обработано 9 из 9 |
|||
36
Лойфер
27.03.07
✎
15:13
|
Похвально :)
Я остановился на таком способе: // Установить задержку // Парам1 - время задержки в сек. Процедура Спать(Время) Если Время = 0 Тогда Возврат КонецЕсли; Сигнатура = Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"); ПутьСкрипта = КаталогВременныхФайлов()+"SleepScript"+Сигнатура+".vbs"; СкриптФайл = Новый ТекстовыйДокумент; СкриптФайл.ДобавитьСтроку("WScript.Sleep("+Формат(Время*1000, "ЧГ=0")+")"); СкриптФайл.Записать(ПутьСкрипта, КодировкаТекста.OEM); WSHShell = Новый COMОбъект("WScript.Shell"); WSHShell.Run("wscript.exe """+ПутьСкрипта+"""", 0, Истина); УдалитьФайлы(ПутьСкрипта); КонецПроцедуры Это для восмерки. |
|||
37
smaharbA
27.03.07
✎
15:21
|
А для кратности в 1Сек в восьмерке надо всего 3 строчки (на ХР/2003)
|
|||
38
smaharbA
27.03.07
✎
15:25
|
|
|||
39
Лефмихалыч
27.03.07
✎
15:31
|
(33) а это зачем?
while(true){WScript.Sleep(1000)}; |
|||
40
smaharbA
27.03.07
✎
15:33
|
(39) в этом то весь фокус, скрипт крутится бесконечно, такчто объект WScript переданый им в ИЕ живет пока живет скриптхост...
|
|||
41
Лефмихалыч
27.03.07
✎
15:38
|
(40) о бозэ мой... нет уж, лучше создавать скрипт и его выполнять - накладных расходов в разы меньше
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |