Имя: Пароль:
1C
 
Как сделать 2-х секундную паузу ?
Ø
0 McTSIMCO
 
05.10.05
18:47
В цикле нужна 2-х секундная пауза. Как это сделать?
1 Муму после всплытия
 
05.10.05
18:48
Предупреждение("", 2)
2 McTSIMCO
 
05.10.05
18:50
Это конечно, но мне нужна таки гарантированно 2-х секундная, а если кто-то нажмет "ОК"... К сожалению, вариант не подходит.
3 Муму после всплытия
 
05.10.05
18:52
Предупреждение("Не нажимайте ОК", 2)
4 КонецЦикла
 
05.10.05
18:56
Сделай пустой цикл и сверяй с ГетКаунтером() - если не прошло 2 сек - продолжаем цикл - но это приблизительно
5 systemstopper
 
05.10.05
18:58
  час="";
  минут="";
  сек="";
  час2="";
  минут2="";
  сек2="";
  вр=ТекущееВремя(час, минут, сек);
  Пока 1=1 Цикл
    вр=ТекущееВремя(час2, минут2, сек2);
    Если сек2-сек<2 Тогда
      Продолжить;
    Иначе
      Сообщить("Прошло 2 секунды");
      Прервать;
    КонецЕсли;
  КонецЦикла;
Правда этот код по теории конкретно жрёт ресурсы проца
6 McTSIMCO
 
05.10.05
19:04
(5) Вообще-то код не совсем верен - если запустить в 59 секунд, то все уже...
А в принципе, похоже, так и сделаю, только с часами и минутами.
7 EXH
 
05.10.05
20:23
(0) а разрешите полюбопытствовать - нафига? музыку исполняете?
8 Caligula
 
06.10.05
09:39
(7) да, причем интересно почему именно 2
9 Соратник
 
06.10.05
10:02
Все штатные методы грузят процессор, если не ошибаюсь :)
Нештатно только через ВК, например DialMail - там есть метод Ожидание(милисекунд), проц негрузится, что не маловажно, например, при работе на сервере
10 Caligula
 
06.10.05
10:40
(9) народ, да вы не поняли, у человека проц шустрит, вот он и думает, как его обуздать :-)
11 zak
 
06.10.05
10:56
Как нагнуть проц, можно посмотреть здесь :)
http://www.forum.odessa.ua/files/pic1_114.jpg
http://www.forum.odessa.ua/files/pic2.jpg
12 ГеройАсфальта
 
06.10.05
11:04
ии Раз..ии Два..вот
13 AnS2005
 
06.10.05
16:16
Лучше вот так:
Процедура Таймаут(МиллиСекунды)
  Темп=КаталогВременныхФайлов()+"sleep.vbs";
  Текст=СоздатьОбъект("Текст");
  Текст.ДобавитьСтроку("wscript.sleep "+СокрЛП(МиллиСекунды));
  Текст.Записать(Темп);
  cmdLine="wscript.exe "+Темп;
  WshShell=СоздатьОбъект("WScript.Shell");
  WshShell.Run(cmdLine, 0, -1);
  ФС.УдалитьФайл(Темп);
КонецПроцедуры
15 AnS2005
 
06.10.05
16:33
2(14): Это будет грузить проц.
Вариант (13) проц не грузит.
17 dralex
 
06.10.05
17:07
(16) >> проще открыть поток со слипом
Угу. Из 1С. А затем еще заниматься синхронизацией потоков внутренними средствами 1С...
19 dralex
 
06.10.05
17:43
(18) Запускал? Загрузку проца смотрел?
20 dralex
 
06.10.05
17:47
+19 Кстати, где в 7.7 такая процедура?
21 smaharbA
 
06.10.05
17:53
WshShell=СоздатьОбъект("WScript.Shell");
WshShell.Popup("",2);
22 McTSIMCO
 
06.10.05
18:34
(21) см. (2).
В конце концов воспользовался вариантом (14), за что Sadovnikov-у
большое спасибо.
23 КонецЦикла
 
06.10.05
19:25
Вариант (4) был практически таким же :) .... только надо было самому кодировать
25 smaharbA
 
07.10.05
09:02
http://www.forum.mista.ru/topic.php?id=127614&
26 SnarkHunter
 
07.10.05
09:08
ЗапуститьТаймер(?,,);
StartTimer(?,,);
Синтаксис:
ЗапуститьТаймер(<ИмяПроцедуры>,<ИнтервалВызова>,<ИдентификаторТаймера>)
Назначение:
Создает таймер с идентификатором <ИдентификаторТаймера> для выполнения процедуры, переданной в параметре <ИмяПроцедуры> через <ИнтервалВызова> секунд.
Параметры:
<ИмяПроцедуры> - строка кода 1С, который должен быть выполнен через <ИнтервалВызова> секунд.
<ИнтервалВызова> - число, количество секунд, через которое должен выполниться код, переданный в параметре <ИмяПроцедуры>.
<ИдентификаторТаймера> - строка, уникальный идентификатор таймера. Необходим для перезапуска и останова таймера.
 
и еще:
ЗапуститьТаймерНаВремя(?,,);
StartTimerOnTime(?,,);
Синтаксис:
ЗапуститьТаймерНаВремя(<ИмяПроцедуры>,<Часов>,<Минут>,<ИдентификаторТаймера>)
Назначение:
Создает таймер с идентификатором <ИдентификаторТаймера> для выполнения процедуры, переданной в параметре <ИмяПроцедуры> во время, переданное в параметрах <Часов> и <Минут>.
ВНИМАНИЕ!!! Если в процедуре <ИмяПроцедуры> не остановить таймер командой ОстановитьТаймер, то процедура будет выполняться бесконечно с интервалом в 1 минуту.
Параметры:
<ИмяПроцедуры> - строка кода 1С, который должен быть выполнен через <ИнтервалВызова> секунд.
<Часов> - число, количество часов, во сколько должен выполниться код, переданный в параметре <ИмяПроцедуры>.
<Минут> - число, количество минут, во сколько должен выполниться код, переданный в параметре <ИмяПроцедуры>.
<ИдентификаторТаймера> - строка, уникальный идентификатор таймера. Необходим для останова таймера.
27 SnarkHunter
 
07.10.05
09:10
(+26)Это для (20). Проц на самом деле не грузит.
28 smaharbA
 
07.10.05
09:12
Вы зачем весь гербарий выкурили...(с)
Где это вы в 7.7 видели?
(27) А вот сделай так задержку, а потом взгляни загрузку
30 2S
 
07.10.05
09:24
на взлет, команда системы "pause"
31 SnarkHunter
 
07.10.05
09:26
(29)Да он просто не в курсе.
32 fagotov
 
07.10.05
09:39
(29),(31) Господа, прекращайте мистифицировать (читай, разводить) ))
Где в 7.7 эти методы? вернее так, в состав какой ВК они входят? )
33 smaharbA
 
07.10.05
09:42
Нет вы ребята сделайте именно приостановку выполнения 1С...
Напишите код, он простой будет и поглядите загрузит, незагрузит?
Вам без цикла всеравно необойтись, а Nop или DoEvents в 1С отсутствуют...
35 Vaicartana
 
07.10.05
09:50
2 (0) забей "nop"ами
один nop выполняется за 1 машинный цикл
Тебе потребуется 2млн циклов при скорости проца в 1МГц.
Для своего считай сам.
36 smaharbA
 
07.10.05
09:58
(34) сделай слип, но без "внешнего" скрипта
37 karek
 
07.10.05
10:00
А мне кажется, чтобы сделать это штатными средствами, и при этом не грузить проц, надо объединить варианты 1 и 14:
  Н = _GetPerformanceCounter();
  Пока (_GetPerformanceCounter() - Н) < 5000 Цикл
      Предупреждение("Не нажимайте ОК. Хотя, вобщем-то все равно.", 2);
  КонецЦикла;
38 smaharbA
 
07.10.05
10:06
(37) И свернуть 1С...
39 dralex
 
07.10.05
12:07
(17)+(18)+(34) Оценил:)).