|
|
|
Пауза в коде 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
|
Книга знаний: Перепроведение документов в 1С:Предприятие без блокировки других пользователей
тут можешь посмотреть варианты Sleep |
|||
|
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
|
Всем спасибо. Воспользуюсь.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |