Таймер #5911


#0 by Press
Не могу сообразить как грамотно организвать таймер через ОбработкаОжидания КонецПроцедуры
#1 by 427
чего хочешь то получить?
#2 by Матрейя
Сделай обработкой, вызывай с параметрами - вот тебе и таймер. На форме кнопка Пауза с формулой Управление, кнопка Закрыть и функция Таймер. Подробный пример можно посмотреть в моей конфигурации Trade, там вызов таймера производится для управления скоростью печати этикеток.
#3 by Press
Процедура Сформировать   Чего-то там делаю   Жду заданное время секунадах   Опять чего-то делаю   Жду заданное время секунадах   И опять чего-то делаю   .................... КонецПроцедуры
#4 by Матрейя
3. Если делать через обработку ожидания, то имей ввиду, она бездействует, если какой-либо процесс более приоритетный. То есть если вызванная процедура будет работать 10 сек, а обработка ожидания каждые 3 сек, то она будет бездействовать, пока процедура в 10 сек не прекратит исполняться.
#5 by Press
Спасибо, Матрея, хороший ты человек :). ОбработкаОжидания - здесь... совсем не нужна, и чего я за нее уцепился?. Вот на что меня натолкнуло: КонецПроцедуры PS.Усе я свое получил...
#6 by 427
вот это собачка пернула в лужу.... иди поучись... не зря тебя за такие знания гонят отовсюду ... в 1С у обработки ожидания есть исключение... она не работает, если потом открыто модальное окно.. Второе свинство - потеря фокуса ввода, если интерактивно работает юзер еще в одном окне.... Млядство, но такова 1С.... примерно так условия - весь механизм заработает после первого запуска Сформировать вручную, но это можно разрулить в ПриОткрытии грамотно и корректно будет еще рулить флагом, предотвращающим многократный перезапуск ОбработкиОжидания  установить время старта  установить длину интервала до повторного запуска(допустим, через 5 минут)  сброс флага РАБОТАЮ  сброс времени старта, если повторные перезапуски нужно остановить КонецПроцедуры обработка ожидания  флаг РАБОТАЕТ = да тогда возврат  если время старта = 0 тогда возврат (предотвратить ненужный запуск)  если время старта+интервал меньше заданного ожидания тогда возврат  обнулить время старта  запустить Сформировать конец Флаг РАБОТАЮ предотвращает перезапуск Сформировать, если время интервала истекло, а Сформировать - не закончило.... Грабли - если будет сбой в Сформировать, механизм остановится - флаг не сброшен, перезапуск блокирован... Эта же ситуация, если Сформировать оборвали по Esc Впрочем, это можно разрулить еще через один флаг Итого получаем запуск Сформировать, повторный запуск через указанный интервал
#7 by 427
однако безграмотно.... За такие вещи принято обрывать то, что мешает плохому танцору... Это называется цикл по счетчику.... И этот цикл ТАК придавит машину... что мама не горюй... Если этот код будет работать под терминалом - задача будет нехило отжирать время проца и нехило тормозить других юзеров своим холостым ходом... Работа через таймер сделана по другому ...
#8 by Press
Да, ты прав..., но отрывать ничего не дам, особенно танцорумешательство. На своей ХР глянул - проц грузится на 100%, а куда деваться цикл я ему что надо втюхал. Такой код нам не нужен... Думаю щас над , и еще разочек над ...
#9 by Матрейя
8. Пример из 2 не грузит процессор.
#10 by Матрейя
6. Неплохо для ламера. Некоторый прогресс есть.
#11 by Gavrila
мда... и полетели ножи :)
#12 by Матрейя
11. :) Не, я ножи в мушек не кидаю. Только шлепаю, если сильно назойливая.
#13 by 427
И еще... Пример собачки тоже грузит процессор, но не на 100%. Ибо он дергает контексты окон, что вызывает выполнение нехилого куска кода... и потерю времени проца... Ну да что с незнайки взять... на локальной машине - как говорится, нас рать, но в том же терминале будет Ж.... и на локальной машинке, если проц слабоват, будет заметно... Проще сразу написать грамотно, чем потом заниматься оптимизацией... но учти, что в 1С таймер кривоват... Я в свое время позанимался написанием драйверов для разных ОСей, так что работу с таймером покопал... Чуть ошибся - и можно так положить процессор... А в драйверах при работе на уровне системы - это особенно чувствительно... Там вообще очень жесткие требования...
#14 by Матрейя
427. Неужели понял что написано в 2?? Сомневаюсь...да ладно. :) Докажи что ты понял хотя бы 4. Расскажи нам, как будет работать обработка ожидания, если запустить проведение дока, к примеру... И где твои драйвера для разных осей? И что за оси?? МК47?
#15 by 427
таким казлам, как .... сабачки, чего то доказывать бесполезно... они видят только то, что хотят увидеть...
#16 by Матрейя
15. Однако поговорим о грустном... У тебя нет признания в реале? Расскажи нам о своих проблемах, возможно мы могли бы помочь. Только не отрицай, что проблем нет... Если человек  в виртуальном мире агрессивен, значит в реальной жизни ему приходится слишком много страдать, унижаться, пресмыкаться... Но проблем нет извне, они всегда внутри... Изменись, и изменится мир.
#17 by Demiurg
Она вроде умная, но дура...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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