|
v7: Как перебрать строки ТЗ с задержкой в n секунд? | ☑ | ||
---|---|---|---|---|
0
aptomilov
29.08.11
✎
12:07
|
Как перебрать строки ТЗ с задержкой в n секунд?
|
|||
1
Chum
29.08.11
✎
12:09
|
_GetPerfomanseCounter не поможет?
|
|||
2
Chum
29.08.11
✎
12:10
|
т.е. _GetPerformanceCounter
|
|||
3
povar
29.08.11
✎
12:11
|
интересно зачем ?
|
|||
4
Chum
29.08.11
✎
12:13
|
ну или метод Sleep объекта WScript тебе в помощь, оно кагбэ предпочтительнее будет.
(3) +1 |
|||
5
aptomilov
29.08.11
✎
12:23
|
фишка такая я перебираю строки тз в которую ген дир откладывает запросы на отчет в пдф , собственно перебирая строки я по условным символам формирую пдф через пдф ный принтер а тут вы сами понимаете что если отчетов больше одного в тз то оно тупо не успевает сформироваться вообщем из 3 1 выползает)
|
|||
6
izekia
29.08.11
✎
12:32
|
правильное название темы: "Как организовать программную задержку"
|
|||
7
Mikeware
29.08.11
✎
12:38
|
Тут не нужна программная задержка. Собственно, и необходимость ТЗ вызывает вопрос...
ТС нужно просто последовательное выполнение заданий. А он банально не умеет читать документацию... |
|||
8
aptomilov
29.08.11
✎
12:56
|
.. как заставить 1С последовательно исполнять задачи дожидаясь окончания работы обработки? а потом запускать её заново?
|
|||
9
FN
29.08.11
✎
12:59
|
(8) дык она по другому и не умеет...
|
|||
10
aptomilov
29.08.11
✎
13:10
|
в том то и дело что она уже запускает обработку в след раз а пред идущая ещё печатает на пдф принтер !
|
|||
11
mishaPH
29.08.11
✎
13:11
|
у формекса есть аналог ЗапуститьПриложение() от 1с
ЗапуститьОжидая() |
|||
12
VladZ
29.08.11
✎
13:14
|
(0) Нда... Когда ты научишься правильно задавать вопросы - сможешь быстрее решать поставленные задачи...
|
|||
13
aptomilov
29.08.11
✎
13:27
|
VladZ, ответ я хочу получить именно на первоначальный вопрос!
|
|||
14
defini
29.08.11
✎
13:31
|
(0)
Процедура Пауза(мс) ч = _GetPerformanceCounter(); Для н = 1 По 1000000000 Цикл Если (_GetPerformanceCounter() - ч) > мс Тогда Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
15
Mikeware
29.08.11
✎
13:36
|
(13) "Ответ на первоначальный вопрос" никак не связан с решением задачи.
зы. открой для себя ОткрытьФормуМодально() |
|||
16
Фокусник
29.08.11
✎
13:37
|
(14) Буквально неделю назад разгребал за одним автоматизатором аналогичный код. У заказчика сервер "ни с того ни с сего начал выдавать 100%ую загрузку процессора"
если уж пауза нужна, то Предупреждение("Пауза", 10) лучше сделать :) |
|||
17
zak555
29.08.11
✎
13:37
|
по-моему, ген диру пора в отпуск
чем голову себе забил ? |
|||
18
mishaPH
29.08.11
✎
13:39
|
(14) за это надо бить. можно по голове.
Процедура Пауза(КолСек) Экспорт Темп = КаталогВременныхФайлов() + "sleep.vbs"; Текст = СоздатьОбъект("Текст"); Текст.ДобавитьСтроку("wscript.sleep 1000"); Текст.Записать(Темп); cmdLine = "wscript.exe " + Темп; WshShell = СоздатьОбъект("WScript.Shell"); Для Сч = -КолСек По -1 Цикл Состояние("Пауза. Осталось секунд: " + (-Сч)); WshShell.Run(cmdLine, 0, -1); КонецЦикла; КонецПроцедуры // Пауза() |
|||
19
defini
29.08.11
✎
13:40
|
(16) Согласен;) Просто мне необходима была пауза в доли секунды.
|
|||
20
aptomilov
29.08.11
✎
13:40
|
предупреждение и ввести строку почему то не помогает, форма открывается 1 раз и все время открыта и в конце закрывается
то есть из 3 нужных итераций я получаю одну( |
|||
21
defini
29.08.11
✎
13:41
|
(18) Как раз за создание файлов во временной папке с последующим их исполнением и надо бить, и можно не только по голове)
|
|||
22
mishaPH
29.08.11
✎
13:42
|
(19) см (18) или используй слип во вк.
(21) с чего это. они по крайней мере не грузят тупо проц как цикл от 1с. |
|||
23
mishaPH
29.08.11
✎
13:43
|
+ 22 у автора не просто затормозить работу компа надо, а чтобы выполнилась другая прога.
|
|||
24
defini
29.08.11
✎
13:44
|
(22) Вот насчет 1с грузит проц не спорю, так и есть. А вот код скрипта можно и из самой 1С выполнить, не создавая файлов, и уж тем более, не используя для таких целей ВК!
|
|||
25
defini
29.08.11
✎
13:45
|
+24 ОткрытьФормуМодально может помочь
|
|||
26
mishaPH
29.08.11
✎
13:46
|
(24) это уже детали. а за (14) надо бить по голове. спорить тут глупо.
|
|||
27
aptomilov
29.08.11
✎
13:46
|
буду пробовать модальную форму
|
|||
28
__Se24
29.08.11
✎
13:51
|
//*************************************************************************************
Функция ПаузаСекунды(Секи) Попытка scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); scrptCtrl.language="vbscript"; КодСкрипта=" |Function GetPause() |Set WScript = CreateObject(""WScript.Shell"") |WScript.Sleep ("; КодСкрипта=КодСкрипта+Строка(Секи*1000)+")"; КодСкрипта=КодСкрипта+" |GetPause = """" |End Function |"; scrptCtrl.addcode(КодСкрипта); Рез = ScrptCtrl.Run("GetPause"); Исключение Возврат ""; КонецПопытки; Возврат Рез; КонецФункции |
|||
29
povar
29.08.11
✎
13:51
|
(20) (15) смотрел ?
|
|||
30
__Se24
29.08.11
✎
13:54
|
+(28) чтото мне подсказывает , что она так и не заработала ...
изза отсутствия sleep.exe в итоге я сделал через пинг |
|||
31
mishaPH
29.08.11
✎
13:57
|
(28)
Рез = ScrptCtrl.Run("GetPause"); {D:\ОБРАБОТКИ В РАЗАРАБОТКЕ\ЗАГРУЗКААКТОВХ5.ERT(33)}: Ошибка выполнения Microsoft VBScript: Объект не поддерживает это свойство или метод: 'WScript.Sleep' |
|||
32
__Se24
29.08.11
✎
14:02
|
во , нашел , кстати на мисте ...
Процедура глПауза(Сек) scr = СоздатьОбъект("WScript.Shell"); scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(Сек)+1),0,1); КонецПроцедуры; |
|||
33
aptomilov
29.08.11
✎
14:13
|
спасибо всем кто участвовал в процессе вообще не понимая как я мог забыть про модальную форму ведь она пока не отработает никого не пускат, с модальной формой все пашет
|
|||
34
Mikeware
29.08.11
✎
14:19
|
(33) Это потому, что вместо вопроса "как дождаться конца выполнения задания" ты поставил _себе_ вопрос "как сделать паузу"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |