Искусственные паузы при исполнении кода

1. zaursoft 19 28.09.11 14:34 Сейчас в теме
При обработке данных мне необходимо программно делать паузы через определенное количество обработанных данных на определенное количество секунд.
Пришло в голову два варианта:
Вариант 1. Используем _getPerformanceCounter():
Для НомерСотрудника = 1 По КолвоСотрудников Цикл
Если (НомерСотрудника>1) И (НомерСотрудника%20 = 1) Тогда
СчетчикВремени1 = _getPerformanceCounter();
Пока 1=1 Цикл
СчетчикВремени2 = _getPerformanceCounter();
ПаузаСекунд = (СчетчикВремени2-СчетчикВремени1)/1000;
Если ПаузаСекунд > 5 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;

Плюсы: Незаметно для пользователей (нет сообщений в интерфейсе).
Минусы: Нагружается процессор.


Вариант 2. Используем Предупреждение():
Для НомерСотрудника = 1 По КолвоСотрудников Цикл
Если (НомерСотрудника>1) И (НомерСотрудника%20 = 1) Тогда
Предупреждение("Ожидание оправки пакета "+Цел(НомерСотрудника/20)+". Пожалуйста, не нажимайте кнопку ""ОК"".", 5);
КонецЦикла;

Плюсы: Не нагружает процессор.
Минусы: на каждое предупреждение отображается табличка и пикает сигнал спикера.


Вопрос: Есть ли вариант решения, при котором не нагружался бы процессор, и не отображались окна, и не пикал спикер?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. Sega.Bu 29.09.11 13:19 Сейчас в теме
(1) zaursoft,

Есть внешняя компонента (кажется, здесь где-то видел), называется TerminalSleep. Она как раз и делает системный вызов sleep(кол-во миллисекунд) не нагружая процессор.
+
12. SirStefan 53 04.10.11 18:51 Сейчас в теме
(10)
Addin Romix'а делает паузу на указанное число мс
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"vk_sleep_1C.dll")=1 Тогда
vk_sleep=СоздатьОбъект("Addin.vk_sleep_1C");
vk_sleep.sleep(5000);
КонецЕсли;
+
34. ture 606 15.05.15 12:51 Сейчас в теме
(1) можно запустить командную строку с паузой и подождать ее выполнения.
+
36. ture 606 15.05.15 15:59 Сейчас в теме
(1) если все это выглядит сложно, то просто делайте цикл с бесполезными действиями, так раньше делали разного рода специалисты из франчайзинга.
+
37. akita 15.05.15 16:04 Сейчас в теме
(36) ture, цикл с бесполезными действиями грузит ядро на 100%, а условие ТС - "грузить не должно"...
+
38. ture 606 15.05.15 16:08 Сейчас в теме
(37) ну тогда открыть предупреждение с указанием секунд.
+
2. zaursoft 19 28.09.11 15:59 Сейчас в теме
Нашел на miste (forum.mista.ru) простой вариант:

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

Не нагружает процессор и не пикает спикером.
emorozova; adhocprog; alexsh76; autotrade; Shrike; +5
3. cool.vlad4 2 28.09.11 16:06 Сейчас в теме
Для 8-ки я использую бывает, для 7-ки попробуйте перепишите(я 7-ку не знаю)
Процедура Пауза(ИнтервалОжидания)

Скрипт=Новый ТекстовыйДокумент();
Скрипт.УстановитьТекст
(
"if (WScript.Arguments.Count()==0)
| WScript.Quit();
|else
| if (isNaN(parseInt(WScript.Arguments(0))))
| WScript.Quit();
|WScript.Sleep(WScript.Arguments(0));"
);
Скрипт.Записать(КаталогВременныхФайлов()+"sleep.js",КодировкаТекста.ANSI);
WshShell=Новый COMОбъект("wscript.shell");
Сообщить(ТекущаяДата());
WshShell.Run("wscript.exe """+КаталогВременныхФайлов()+"sleep.js"" "+Формат(ИнтервалОжидания,"ЧГ=0"),0,-1);
Сообщить(ТекущаяДата());
УдалитьФайлы(КаталогВременныхФайлов()+"sleep.js");

КонецПроцедуры;
+
4. cool.vlad4 2 28.09.11 16:11 Сейчас в теме
+3 правда в этом решении большой минус, это права
+
5. zaursoft 19 28.09.11 16:35 Сейчас в теме
zaursoft пишет:

Нашел на miste (forum.mista.ru) простой вариант:

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

Не нагружает процессор и не пикает спикером.

Забыл указать, что этот вариант работает в 7-ке.
dour-dead; +1
58. iones 195 15.10.15 15:45 Сейчас в теме
(5) zaursoft, для 8-ки будет правильно написать так:
Shell = Новый COMОбъект("WScript.Shell");
Shell.Run("ping 127.0.0.1 -n 2",0,1);
saddy; +1
6. ArCtic 3 28.09.11 16:51 Сейчас в теме
Есть еще в семерке стандартный вариант:

ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени.
Возвращает имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. Тело процедуры <ИмяПроцедуры> должно быть написано разработчиком конфигурации в глобальном программном модуле. Если в качестве параметра передается 'пустая строка', то ранее запущенный процесс прекращается.
<ИнтервалВызова> - необязательный параметр. Числовое выражение - интервал времени в секундах, с которым периодически будет вызываться процедура глобального модуля <ИмяПроцедуры>. Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.
+
7. zaursoft 19 28.09.11 17:02 Сейчас в теме
(6) ArCtic,
Это немножко не то. Используя функцию ОбработкаОжидания() можно сделать таймер, а мне нужна была пауза при исполнении кода.
+
8. vcv 89 28.09.11 17:42 Сейчас в теме
Пауза есть то ли в 1С++, то ли в FormEx.
Sega.Bu; +1
9. onyx 29 29.09.11 06:12 Сейчас в теме
scr = СоздатьОбъект("WScript.Shell");
scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
+
11. zaursoft 19 29.09.11 13:30 Сейчас в теме
onyx пишет:
scr = СоздатьОбъект("WScript.Shell");
scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);

Не работает в 7-ке. Пишет ошибку:
scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
{M:\1CMET\TEMP\ТЕСТПАУЗЫ.ERT(38)}: :
+
13. madvovik 31 09.10.11 16:51 Сейчас в теме
Ребят, зачем такие костыли делать? Есть простой способ используя встроенные методы, ничего не нагружает, не заметно для пользователя, работает как на дбф так и на скуле:
Процедура Пауза(Время)
чЧас=0; чМин=0; чСек=0;
ТекущееВремя(чЧас,чМин,чСек);
чТекВремя = чЧас*3600+чМин*60+чСек;
чВремяЗавершения = чТекВремя+Время;
Пока чТекВремя<чВремяЗавершения Цикл
ТекущееВремя(чЧас,чМин,чСек);
чТекВремя = чЧас*3600+чМин*60+чСек;
КонецЦикла;
КонецПроцедуры;

В переменную "время" передаете числовое значение секунды необходимое для паузы (60 - минута, 3600 = час - это садизм :))) ), работает с любыми числами, универсально
+
14. vcv 89 09.10.11 18:07 Сейчас в теме
(13) В 7.7 как то не замечалось, что бы цикл не грузил процессор. В терминале подобные решения могут привести к проблемам с быстродействием базы в целом.
+
16. madvovik 31 09.10.11 20:03 Сейчас в теме
(14)(15)Пардон, точно грузит проц... извините...
+
15. zaursoft 19 09.10.11 19:02 Сейчас в теме
(13) madvovik, Предложенное Вами решение аналогично предложенному мною в самом начале первому варианту и грузит одно ядро процессора на 100 %. Вы проверяли предложенное решение?
Pari; +1
17. VLMedvedev 09.10.11 22:29 Сейчас в теме
Вот так можно

Процедура ПродолжениеОбработки
ОбработкаОжидания("ПродолжениеОбработки",0);
//Продолжаем обработку
А=В;

КонецПроцедуры


Процедура НачалоОбработки
В=С;
//Тут начало
//Запускаем паузу
ПаузаСек=3;
ОбработкаОжидания("ПродолжениеОбработки",ПаузаСек);

КонкцПроцедуры


Единственная проблема с модальностью форм обработка ожидания при модальных формах и не модальных рвботает по разному (честно не помню как)
etmarket; Pari; +2
25. zaursoft 19 10.10.11 17:37 Сейчас в теме
(17) VLMedvedev, Это уже предлагали в (6), я ответил в (7). Пожалуйста, читайте ветку перед ответом.
+
18. madvovik 31 09.10.11 22:50 Сейчас в теме
ну она работает только в ГЛ, а запустить ее из модуля обработки к примеру, будет работать?
+
19. tdr1225 37 10.10.11 09:07 Сейчас в теме
(18)
Форма.ОбработкаОжидания("ТвояПроц",...);

процедура ТвояПроц - в этой же обработке, а не в ГМ
+
20. madvovik 31 10.10.11 10:04 Сейчас в теме
ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени.
Возвращает имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. Тело процедуры <ИмяПроцедуры> должно быть написано разработчиком конфигурации в глобальном программном модуле. Если в качестве параметра передается 'пустая строка', то ранее запущенный процесс прекращается.
<ИнтервалВызова> - необязательный параметр. Числовое выражение - интервал времени в секундах, с которым периодически будет вызываться процедура глобального модуля <ИмяПроцедуры>. Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.

Я думаю в в описании достаточно часто, указывается на ГМ?
+
22. tdr1225 37 10.10.11 11:44 Сейчас в теме
(20)
в (19) - недокументированная возможность
ОбработкуОжидания() можно использовать с локальной процедурой
+
21. IvanSusanin 10.10.11 10:14 Сейчас в теме
"То что нет типовых механизмов, явно указывает на то что производится попытка "неправильного" использования программного продукта.

Судя по тексту
"
Предупреждение("Ожидание оправки пакета "+Цел(НомерСотрудника/20)+". Пожалуйста, не нажимайте кнопку ""ОК"".", 5);
"
видимо, Вы хотите производщить задержку при обмене данными.
Если это так, то ожидание, не "красивый" способ и не лучший с точки зрения реализации обмена.
Я бы переписал механизм обмена следующим образом:
1. С помощью плана обмена фиксировать изменения в необходимом типе объектов (по изменению которого вы понимаете что нужно обмениваться)
2. Реализовать регламентное задание:
2.1 Получаете все измененные объекты.
2.2 Осуществляете обмен.
2.3 Если обмен прошел успешно то удаляете изменения в плане обмена.

При такой реализации, обмен будет "невидим" для пользователей и обмен из за этого будет работать более стабильно. Расписание регламентного задания можно настроить хоть каждую секунду, но я бы рекомендовал посоветоваться с Заказчиком и сделать раз в 5 минут. Еще одним плюсом является то что регламентное зададание будет работать на сервере и не зависеть от работы клиентов."


Прошу прощения, не обратил внимание на то что эта тема по 7.7 и решение написал для 8.х, но возможно в 7.7 есть аналогичные механизмы.
+
24. zaursoft 19 10.10.11 15:20 Сейчас в теме
(21) IvanSusanin,
В 7.7 нет аналогичных механизмов.
Задача не по обмену данных.
+
23. madvovik 31 10.10.11 11:53 Сейчас в теме
Интересно надо попробовать
+
26. VLMedvedev 10.10.11 17:44 Сейчас в теме
А я и предлагаю паузу а не таймер
См код внимательней
В процедуре НачалоОбработки
начало обработки затем после заданной паузы -
однократное продолжение в процедуре ПродолжениеОбработки

Проверено - работает
+
27. zaursoft 19 10.10.11 20:59 Сейчас в теме
(26) VLMedvedev,
Что-то мы друг друга недопонимаем :)
Хорошо, давай разберем ситуацию в деталях.
Допустим, есть некая длинная процедура обработки данных:
Процедура ОбработкаДанных()
...
// тут должна быть пауза на 10 секунд.
...
КонецПроцедуры // ОбработкаДанных()
В определенном месте этой процедуры мне необходимо вставить паузу на 10 секунд. Как будет выглядеть реализация с использованием ОбработкаОжидания()?
+
31. VLMedvedev 11.10.11 04:48 Сейчас в теме
(27) zaursoft,
Помоему товарисч Pari ответил.
Можно на две процедуры одну разделить до и после паузы.
1С - язык процедурный !
А линейный код - это стиль индуских программистов.
+
28. madvovik 31 10.10.11 21:44 Сейчас в теме
(26)мне тоже пример, а то я не понял причем тут форма.обработкаожидания() если мне в модуль формы надо в процедуре паузу сделать
+
29. andrewks 1370 10.10.11 23:18 Сейчас в теме
подключаем дюнаврап:

Wrapper=Новый ComОбъект("DynamicWrapper");
Wrapper.Register("KERNEL32.DLL","Sleep","i=l","f=s");

Wrapper.Sleep(мсек);
MadDAD; +1
33. MadDAD 152 15.05.15 12:29 Сейчас в теме
(29) andrewks, Так же делал, пока не обнаружил что в 1С++ уже есть метод Уснуть().

Класс "Система" метод "Уснуть()"
+
30. Pari 10.10.11 23:40 Сейчас в теме
zaursoft пишет:
В определенном месте этой процедуры мне необходимо вставить паузу на 10 секунд. Как будет выглядеть реализация с использованием ОбработкаОжидания()?

Процедура разбывается на две части. Первая часть запускается как обычно, заканчивается запуском обработки ожидания там, где нужно поставить паузу. Остальная часть кода пишется в виде второй процедуры, вызываемой из первой по обработке ожидания. Во второй процедуре обработка ожидания сбрасывается, т.е. вызов второй части происходит только один раз (после паузы), а не многократно. Само собой нужно чтобы переменные, используемые и в первой и во второй процедуре/части, были локальными переменными модуля формы, а не отдельных процедур.
+
32. 1c_boys 5 14.05.15 22:54 Сейчас в теме
Я обычно делаю все это с помощью обработчиков ожидания. Даже когда требуется две паузы (пауза в паузе, как аналог вложенных циклов) - можно всегда добавить глобальную переменную и проверять ее значение в обработчике ожидания, а потом в зависимости от условий выполнять тот или иной код. Получается все довольно красиво.
+
35. akita 15.05.15 15:34 Сейчас в теме
ping иногда ведёт себя непредсказуемо, предпочитаю честный слип:

scr = СоздатьОбъект("WScript.Shell")
scr.run("d:\base\sleep.vbs",0,1)


В файле пишем: wscript.sleep 5000
+
39. Chameleon1980 15.05.15 16:22 Сейчас в теме
40. ture 606 15.05.15 16:34 Сейчас в теме
(39) я думаю средства ОС можно через компоненты задействовать. 77 вообще падка на дополнения. я за 1с++
+
41. parcan 66 27.08.15 18:35 Сейчас в теме
Для файлового варианта может подойти

Глобальный контекст (Global context)
ВыполнитьОбработкуЗаданий (ProcessJobs)
Синтаксис:

ВыполнитьОбработкуЗаданий(<ВремяОбработки>)
Параметры:

<ВремяОбработки> (необязательный)

Тип: Число.
Время в секундах обработки очередной порции заданий. Если время не задано, будет выполнен только один цикл обработки.
Описание:

Вызывает обработку текущих заданий. Имеет смысл только для файлового варианта.
В управляемом режиме в толстом, тонком и веб-клиентах приводит к появлению диалога, содержащего сообщение о выполнении обработки заданий и кнопку "Прервать", нажатие на которую приводит к прерыванию цикла обработки заданий.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
+
42. Maxx2008 28.08.15 10:13 Сейчас в теме
Для 1с 8.2 и не только) Перелопатил всё, задержка нужна была именно в 0,1с (100мс), а, например Предупреждение меньше 1 секунды не хавает. Помог только пример с сайта http://extremallife.ru:

Задержка = 5;
СтрокаЗапроса = "ping -n 1 -w "+Формат(1000*Задержка, "ЧГ=0")
+" 127.255.255.255";
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(СтрокаЗапроса, 0, -1);

В данном случае выполняется стандартная для всех версий Windows команда ping на IP-адрес, ответа от которого не будет и выставляется время ожидания отклика в секундах.
В данном примере задержка составляет 5 секунд, сама команда ping использует время в миллисекундах.
vx_gas; BoryaMbi; +2
43. akita 02.09.15 13:27 Сейчас в теме
(42) Maxx2008, На компе как минимум может быть "не поднят" сетевой интерфейс плюс функция Формат может повести себя непредсказуемо и отработка её может занять, скажем так "какое-то время"... Скриптовый Sleep в таких ситуациях на порядок "надёжнее"...
+
44. Serginio 938 02.09.15 14:13 Сейчас в теме
http://infostart.ru/public/238584/

врап=новый COMОбъект("NetObjectToIDispatch45");
Thread=Врап.ПолучитьТип("System.Threading.Thread");
Thread.Sleep(1000);
+
45. akita 03.09.15 10:12 Сейчас в теме
46. Serginio 938 03.09.15 10:40 Сейчас в теме
(45) Так там написано же Использование сборок .NET в 1С 7.x b 8.x

Единственно, что 7.7 не понимает много COM совместимых типов
врап=СоздатьОбъект("NetObjectToIDispatch45");
врап.УстЭтоСемерка();

Там есть внешний отчет на 7.7
+
47. akita 03.09.15 14:20 Сейчас в теме
(46) Serginio, но код-то Вы в теме запостили "восьмёрошный"... Понятно Ваше желание "прорекламировать" статью, но, ИМХО, "пилить" сборку ради паузы... да еще с "нюансами" на 7.7....
+
48. Serginio 938 03.09.15 15:33 Сейчас в теме
Хорошо вот семерочный

врап=СоздатьОбъект("NetObjectToIDispatch45");
врап.УстЭтоСемерка(); 
Thread=Врап.ПолучитьТип("System.Threading.Thread");
Thread.Sleep(1000);


Не надо пилить сборку. Ты можешь использовать все, что находится в GAC.
Уже подключены
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" /

Но ты можешь всегда достучаться из до GAC через AssemblyQualifiedName
например

Сборка=врап.ПолучитьТип("System.Reflection.Assembly").Load("System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");

Или Сборка.ПолучитьТип(namespace3 + "RSACryptoServiceProvider+",System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");

Вот тут переписка с человеком совсем не знающего C#
http://1c.mista.ru/topic.php?id=720653&page=1#48
+
50. akita 03.09.15 15:44 Сейчас в теме
(48) Serginio, получаю: Неудачная попытка создания объекта (NetObjectToIDispatch45)
+
51. Serginio 938 03.09.15 16:29 Сейчас в теме
(50) А ты скачал и зарегистрировал?
+
52. akita 03.09.15 16:53 Сейчас в теме
(51) Serginio, Конечно, нет) Я про то и намекаю, что ради паузы, которая намного проще решается что-то еще докачивать, регистрировать, допиливать пилить и передопиливать и т.д... не та задача...
+
53. Serginio 938 03.09.15 16:56 Сейчас в теме
(52) Сейчас пауза, завтра еще куча задач которые через Net решаются элементарно. Без ВК и COM классов.
+
54. akita 03.09.15 17:14 Сейчас в теме
(53) Serginio, Типа "зачем тебе отвертка, покупай набор слесаря!!! Сегодня шуруп, завтра дюбель... а там глядишь и крышу крыть надо!" ИМХО не совсем здравый подход... благо та же пауза без Net решается еще элементарнее чем с ним...
+
49. Serginio 938 03.09.15 15:43 Сейчас в теме
Правда код не совсем верен. Проблема в том, что 1000 семерка интерпретирует как Double а в Net нужно прямое соответствие типов.
Поэтому введены функции конвертации


Функция Децимал(стр)
	возврат врап.ToDecimal(Строка(стр));
	
КонецФункции // Децимал

Функция Инт(стр)
	возврат врап.ToInt(Строка(стр));
	
КонецФункции // Децимал
Показать


И правильный код выглядит так

врап=СоздатьОбъект("NetObjectToIDispatch45");
врап.УстЭтоСемерка(); 
Thread=Врап.ПолучитьТип("System.Threading.Thread");
Thread.Sleep( врап.ToInt("1000"));
// или
Thread.Sleep( врап.ToInt(1000));

+
55. Serginio 938 03.09.15 17:21 Сейчас в теме
Так кто тебе мешает то. Решай. А кому то может понадобится. Я же ничего не навязываю. Я сам использую для широкого круга задач.
+
56. akita 04.09.15 09:42 Сейчас в теме
(55) Serginio,
Я же ничего не навязываю
... сложно это назвать по-другому...
+
57. Serginio 938 04.09.15 10:29 Сейчас в теме
(56) Прошу прощения, что доставил тебе неудобства своим советом.
+
59. Shef_zeon 7 19.04.17 13:08 Сейчас в теме
Сек = 5;
scr = Новый COMОбъект("WScript.Shell");
scr.Run("TIMEOUT -T "+Число(Сек)+" -NOBREAK",0,1);
+
60. imax26 91 24.04.17 08:29 Сейчас в теме
VK_Sleep.DLL прекрасно справляется с этой задачей.
+
61. websamson 306 17.05.17 07:31 Сейчас в теме
Найдено в интернетах

Процедура Спать(ВремяМС)
    Если ВремяМС = 0 Тогда
        Возврат
    КонецЕсли;
    Сигнатура = Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
    ПутьСкрипта = КаталогВременныхФайлов()+"SleepScript"+Сигнатура+".vbs";
    СкриптФайл = Новый ТекстовыйДокумент;
    СкриптФайл.ДобавитьСтроку("WScript.Sleep("+Формат(ВремяМС, "ЧГ=0")+")");
    СкриптФайл.Записать(ПутьСкрипта, КодировкаТекста.OEM);
    WSHShell = Новый COMОбъект("WScript.Shell");
    WSHShell.Run("wscript.exe """+ПутьСкрипта+"""", 0, Истина);
    УдалитьФайлы(ПутьСкрипта);
КонецПроцедуры
Показать
timurhv; nofx; Vitalk; +3
62. timeforlive 15 13.02.19 10:11 Сейчас в теме
На клиенте и на сервере (регламентные задания) работает отлично вариант, предложенный выше.
Платформа 8.3.10.х

КоличествоСекундОжидания = 10;
Shell = Новый COMОбъект("WScript.Shell"); 
Shell.Run("ping 127.0.0.1 -n " + КоличествоСекундОжидания,0,1);
+
63. CheBurator 3119 14.02.19 10:39 Сейчас в теме
1С++
глСистема = СоздатьОбъект("Система");
глСистема.Sleep(5000); //5 сек
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот