Как сделать программно задержку на определенное время #29628


#0 by fes
В процедуре нужно дождаться пока фискальный регистратор закончит операцию печати, а затем двигаться дальше (подавать ему очередные команды). Для этого нужно периодически опрашивать его состояние и ждать до тех пор, пока он вернет нужное. Я использую функцию предупреждение, но сделать задержку на время меньше секунды нельзя, и вид мелькающего окна иногда тоже не к чему. Кто-нибудь подскажет более правильный и красивый вариант ? Спасибо.
#1 by zzzzz
Цикл с прерыванием по условию
#2 by Asmody
"периодически опрашивать его состояние и ждать до тех пор, пока он вернет нужное." - цикл с условием совсем никак?
#3 by fes
Хотелось бы именно "холостого" ожидания, т.е. без загрузки системы.
#4 by fes
Еще раз уточню. Естественно сделан цикл с выходом по условию, задержка нужна внутри цикла.
#5 by zzzzz
ну так получай текущее время и анализируй с предыдущим.
#6 by Rovan
А не пытался через ОбработкаОжидания(<?>,) Синтаксис: ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>) ?
#7 by NS
Форма.ОбработкаОжидания; Либо текст на форме.
#8 by fes
Опять же всякие ненужные действия внутри цикла типа складывания 1 с 1 или ПОСТОЯННОГО опрашивания состояния устройства, или ПОСТОЯННОГО опрашивания текущего времени грузят систему ненужными действиями. Насколько я понял это не совсем то, после выполнения функции ОбработкаОжидания программа пойдет выполняться дальше, а е будет ждать пока ОбработкаОжидания вернет ей какое-то значение. (всем) В языках программирования существуют операторы типа delay или wait которые освобождают процессор, передавая управление другим процессам. Это правильно и красиво. Вопрос в том, можно ли сделать аналогично в 1С?
#9 by fes
А что такое Форма.ОбработкаОжидания; это то же самое что и просто ОбработкаОжидания? - тогда это не подходит. см. Про текст на форме не понял. Sorry.
#10 by Rovan
Есть глобальная ОбработкаОжидания, а есть внутри конкретной формы - Форма.ОбработкаОжидания; А про "программа пойдет выполняться дальше" - да пойдет, но выход есть: разбить алгоритм на 2 процедуры: 1-я до события, 2-я после, параметры передавать через переменные модуля формы. (я делал именно так).
#11 by NS
Можно без разбития.... Как раз вопрос о GoTo Процедура висящая на обработке ожидания, либо на тексте на форме - может запускать прерванную процедуру с параметром, либо параметр может хранится в переменной формы. И при запуске процедуры, в зависимости от параметра (переменной) идет переход в нужное место вызываемой процедуры. Ес-но переменные процедуры - должны быть переменными модуля формы. Какое постоянное опрашивание? Как только устройство готово - опрашивание прекращаешь, да и всех делов.
#12 by Rovan
Логично - как раз так работает алгоритм расшифровки некоторых отчетов.
#13 by fes
Да ... Все же есть варианты и с ОбработкойОжидания, хотя красивыми их не назовешь, хотя систему грузить вроде не должны. Попробую реализовать. Спасибо.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

В этой группе 1С