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

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

Если это какая-нибудь обработка и запускается на клиенте(у пользователя) то можно использовать обработчик ожиданий у встроенных функций:
Код 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 |  Дата:   Прочитано: 30591
 +3 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1C медленно работает по сети с базой на SQL Server 8
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Посмотреть все результаты поиска похожих
Комментарии
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
Такое чувство, что в "КонецПроцедуры;" точка с запятой лишние...
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.