helpf.pro
Регистрация
 +13 
Распечатать

Как сделать, задать паузу при выполнении кода?

Если это какая-нибудь обработка и запускается на клиенте(у пользователя) то можно использовать обработчик ожиданий у встроенных функций:
Код 1C v 8.х
 //Самый простой и доступный способ - использовать диалог "Предупреждение"
// с заданным в качестве параметра необходимым таймаутом:
Предупреждение("Пауза!",60);
// или
Если Вопрос("Перепроведение?", РежимДиалогаВопрос.ОКОтмена, 60) = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;


Код 1C v 8.х
 // А если мы не хотим выводить пользователю ни каких сообщений
// Установим паузу в 5 минут, т.е. 300 секунд
сек = 300;
КонДата = ТекущаяДата() + сек;
Пока ТекущаяДата() < КонДата Цикл
// ждемссс....
КонецЦикла;


Для паузы можно использовать следующие примеры:
Код 1C v 8.х
 Процедура глПауза(Сек)
scr = Новый COMОбъект("WScript.Shell");
scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;


Код 1C v 7.x
 Процедура глПауза(Сек)
scr = СоздатьОбъект("WScript.Shell");
scr.Run("sleep "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 116944
 +13 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
Посмотреть все результаты поиска похожих
Комментарии
all4cf
06.03.2023 13:25Комментарий: 11
all4cf

Код из типовой:

Код 1C v 8.3
 // Процедура формирует задержку указанной длительности.
//
// Параметры:
//  Время - <Число>
//        - Длительность задержки в секундах.
//
&НаКлиенте
Процедура Пауза(Время) Экспорт


ВремяЗавершения = ТекущаяДата() + Время;
Пока ТекущаяДата() < ВремяЗавершения Цикл
КонецЦикла;


КонецПроцедуры
all4cf
27.01.2017 20:36Комментарий: 10
all4cf
ab
20.01.2017 15:33Комментарий: 9
ab

Если нужна просто пауза, а не точное время ожидания, то можно ещё так:

Код 1C v 8.х
 Пауза = 2;scr = Новый COMОбъект("WScript.Shell");scr.Run("ping 127.0.0.1 -n "+Пауза,0,1);   
eubr2
12.11.2015 09:54Комментарий: 8
eubr2

Вот тут чувак еще один способ предложил: "В итоге я понял, что нормальной реализации с помощью языка 1С нету, так как в большинстве случаев используется подключение Wscript.Wshell, и видимо не просто так. Но использовать первый вариант я совершенно не хотел, из за записи файла на диск.

У меня был небольшой опыт работы c VBScript, поэтому я знал, что в скрипт можно переадавать параметры. Этим я и воспользовался. Был написан простой скрипт ожидания, который принимал один параметр:

wscript.sleep wscript.arguments(0)

Сделать это очень просто: открываем блокнот, вставляем строчку , которая написана выше, жмем "Сохранить как...", и сохраням как sleep.vbs.

Этот файл необходимо положить на сервер(для вызова на сервере) и на клиент(для вызова на клиенте), в моём случае(сервер терминалов), я положил файл на оба сервера(терминальный и на сервер 1С).

Теперь у нас есть скрипт который будет ждать столько, сколько мы скажем, осталось его вызвать из программы.

Вызов происходит в две строчки кода:

Я положил процедуру в общий модуль на клиенте, и в общий модуль на сервере, так же в параметр задал ПутьХраненияФайла. Вот таким образом с помощью Wscript, без постоянного создания файлов скрипта можно реализовать паузу в работе кода с минимальным значением ~0,001 секунда.



Процедура ОбработкаОжидания(Секунда)

scr = Новый COMОбъект("WScript.Shell");

scr.Run("Wscript.exe ""C:\temp\sleep.vbs"" "+секунда*1000,0,1);

КонецПроцедуры[/pre]
p1l1gr1m
18.12.2013 02:12Комментарий: 7
p1l1gr1m
Для того чтобы реализовать паузу на Windows Server 2008/Windows 7 и т.д. выше необходимо использовать timeout вместо sleep:

Процедура глПауза(Сек)
scr = Новый COMОбъект("WScript.Shell");
scr.Run("timeout "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;
DJ_Serega
11.04.2012 17:17Комментарий: 6
DJ_Serega
Заинтересовала процедурка.
Программно формирую HTML-документ. В сформированном документе нужно найти некие данные. Для этого использую 2 кнопки (Сформировать, НайтиВТекстеHTML).
Если строк 30 то нужно 60 раз нажимать ) (что я и делаю ).

Данный код поможет "запихнуть" в одно нажатие? )
Dethmontt
08.04.2012 22:00Комментарий: 5
Dethmontt
А как это сделать на Windows 7 64bit ???
Нет такого метода sleep
E_Migachev
01.12.2011 16:12Комментарий: 4
E_Migachev
McCoy, обнови платформу
McCoy
01.12.2011 10:04Комментарий: 3
McCoy
Не работает 1С 8.2 (8.2.13.219).
Ошибка:
Код DOS Batch File
 {Форма.ФормаОтчета.Форма(6)}: Ошибка при вызове метода контекста (Run)
scr.Run("sleep "+СокрЛП(Число(Пауза)),0,1);
по причине:
Произошла исключительная ситуация (0x80070002)
McCoy
01.12.2011 09:40Комментарий: 2
McCoy
apolon, ай маладэээс!.. Внымательни поц! )
apolon
27.09.2010 09:53Комментарий: 1
apolon
Такое чувство, что в "КонецПроцедуры;" точка с запятой лишние...
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.