Пауза в выполнении кода #623812


#0 by Arxangel06
Доброго времени суток. Подскажите, кто знает, можно ли в коде 1с установить паузу в выполнении кода? Можно конечно вставить пустой цикл с проверкой времени выполнения, но исполнение этого цикла нагружает проц под завязку, да и вообще решение колхозное. В некоторых случаях можно использовать ПодключитьОбработчкиОжидания(<ИмяПроцедуры>,<Таймаут>), но в данном контексте не канает - нужно делать паузу внутри цикла. Например как в VBS команда Sleep(<Таймаут>). Или vbs-вставка и есть самое корректное решение? Заранее спасибо.
#1 by DrShad
а для чего это нужно?
#2 by aleks-id
+1
#3 by Нуф-Нуф
+1
#4 by Ksandr
+ 1
#5 by aleks-id
нет, ну а чо? понапишут копрокода а потом удивляются - а чё это у нас тормозит так? йёёёё... да тут запрос в цикле со слипом в цикле!
#6 by Timon1405
#7 by Arxangel06
Это вывод таблицы значений на экран-табло. Задача сводится к следующему: Показать на экране ровно 12 строк текста, подождать 30 секунд, показать следующие 12 строк. Количество строк фиксировано и =60. Т.е. нужно показать 5 страниц, затем после 5ой вернуться к первой. p.s. Нечего сказать - лучше промолчать.
#8 by Arxangel06
Ну собственно это и есть vbs-вставка.
#9 by Stepa86
и чем ПодключитьОбработчкиОжидания( не нравится?
#10 by ZanderZ
подключи обработчик ожидания
#11 by Arxangel06
а внутри обработчика прописать холостой цикл... Замечательная идея от которой я в самом начале отказался.
#12 by Serginio1
Например при подключении к чему либо пока это устройство занято (почта, порты, файлы итд)
#13 by Широкий
Делай вставку на vbs. ИМХО самое оптимальное
#14 by aleks-id
где хоть выполняется то? на клиенте? на сервере?
#15 by aleks-id
и что мешает повесить регламентное задание?
#16 by aleks-id
нафига внутри обработчика холостой цикл? он у тебя будет вызываться 1 раз в 12 секунд и выводить нужную порцию инфы. никаких циклов
#17 by Arxangel06
В итоге vbs рулит. Хотя для какого-нибудь автопилота в следующий раз буду использовать предупреждение с таймаутом.
#18 by Ахиллес
За пустые циклы и предупреждение с тайм-аутом (в целях задержки выполнения кода) прогам нужно руки тупой пилой отпиливать. В клюшках приходилось извращатся, а в восьмёрке для этих целей существует ПодключитьОбработчикОжидания (AttachIdleHandler)
#20 by Fragster
я таки не понял, нафига в временный файл? почему не использовать MSScriptControl.ScriptControl сразу?
#21 by Fragster
юзай обработку ожидания
#22 by smaharbA
ты погорячился что бы получить объект WScript нужно несколько иное
#23 by Rebelx
его можно и без файла получить, но гемор. вообще есть еще такой вариант:
#24 by smaharbA
его можно получить без файла и без гемора
#25 by Arxangel06
Ты внимательно читал условие? ПодключитьОбработчикОжидания НЕ работает в данном контексте.
#26 by D_Pavel
я делала паузу через вызов системной команды ping, там можно указать сколько раз пинговать с паузой между пингами в 1 секунду.
#27 by vde69
достоинство - видно что делается и можно прервать паузу недостаток - требуется висение окошка делал так для 7.7 при востановлении последовательности, что-бы другие пошльзователи могли работать
#28 by боксер
#29 by Heckfy
Ага, и в модуль проведения документа это запихать. :):)
#30 by vde69
реально на прошлой работе выгребал тонны вопросов и предупреждений вставленых в проведение :), а еще хранение таблиц и списков (со ссылками) в реквизите документа и справочника, и еще много чего... человек который это написал к тому времени возомнил себя мего 1с ником и ушел внедрять УПП
#31 by Arxangel06
Ну утрировать-то зачем? Хотя да, если есть желание делать работу ради работы, то паузы в проведении - самое оно. Но если работа все-таки на результат и платят не за время, потраченное на доработку, а за эффективность, то паузы нужны только там, где они действительно нужны.
#32 by pumbaEO
мне кажись попалась его УПП :). Хранение таблиц и списков в реквизите - это точно он.
#33 by боксер
нафига в проведнии пауза? тоже выгребал, но тем не менее использую конечно не на сервере, не COM. а на клиенте где есть необходимость и естественно не в модуле проведения :-)
#34 by smaharbA
свернуть и "эта музыка будет вечной, если я не сменю ..."
#35 by Serginio1
Особенно при реализации на сервере.
#36 by aleks-id
интересно, а чем не угодили ПодключитьОбработчикОжидания или Регламентное задание?
#37 by Lex_Liven
господи, 35 сообщений в ветке - и нельзя почитать? Тем, что задержка нужна В ЦИКЛЕ!
#38 by aleks-id
это тебе так кажется. на самом деле там МОЖНО и НУЖНО обойтись БЕЗ ЦИКЛА!
#39 by aleks-id
+ и ПодключитьОбработчикОжидания в этом случае самое то! в идеале - наваять ВК, которая будет генерить ВнешнееСобытие каждый раз в заданном интервале и обрабатывать его через ОбработкаВнешнегоСобытия
#40 by Fragster
еще пару вещей типа службы для виндуса и назначенных заданий забыл... просто обработчик ожидания спасет...
#41 by misha122062
к = Текущаядата + задержка Ставишь проверку - пока текущая дата меньше к цикл
#42 by misha122062
я такое ставил стремным контрагентам - которые обновлятся не хотели и на обслугу не брали - через полгода запускалась динамичноизменяемая задержка. Базы тормозили Они в крик - меня звать Рубил бабло - ПРОФИТ
#43 by Reset
Использовать обработчик ожидания, с вызовом каждые 30 секунд. p.s. - читал, не тыкайте. Там фуйня.
#44 by misha122062
НАФИГА! Подключать его...анализировать... Это Задача 1 класа на 2 строчки!
#45 by Reset
Изыди
#46 by misha122062
да ты в степь уводишь чела. Обработчик ожидания не для этого. и задача решается в 2 строки!
#47 by aleks-id
/*пишет в блокнотик*/ - копрокодер
#48 by Fragster
да не, у него просто комп с таким процессором:
#49 by Lex_Liven
А скажи мне, друг, в чет отличие такой задержки от пустого цикла на 100000 итераций? Пожалуй, я сам отвечу: В том, что ты регулируешь длину задержки. И все. Загрузка CPU 100% никуда не девается, прикинь?
#50 by Сергей Д
Мы так и не узнали, ДЛЯ ЧЕГО это нужно. Иначе может оказаться, как в Саге про X,Y,Z
#51 by Lex_Liven
узнали, читай тему. Недалеко, в частности
#52 by sergei123654
#53 by aleks-id
фееричный киздец
#54 by Arxangel06
Ну флудеры... Я себя почувствовал ТСом из ветки про уничтожение инфы на хардах... Одинесеры разделились на два лагеря: 1) копрокодеров, которым положить, что проц загружается на 100% и нифига при этом не делает 2) Vbs, который делает все необходимое, не нагружает проц и реализовать в нем можно хоть лилового черта в малиновую крапинку(это я про ping, sleep, что_еще_такое_предлагали?) p.s. Очень надеюсь вырваться в пятницу на миста-встречу в Москве на Бауманской, заодно и посмотрим друг на друга :)
#55 by Fragster
про обработчик ожидания забил?
#56 by Arxangel06
Не, есть еще третий лагерь - ОбработчикиОжидания... Правда непонятно, ожидания чего и кем...
#57 by Arxangel06
Все, я уже не адекватен, это истерика... Модеры, закройте эту флудильню уже.... Или потянем до пятницы и выставим в юмор?
#58 by Fragster
не дождешься. эта ветка будет пятном позора в репутации одинесников, отметившихся в ней
#59 by aleks-id
обработчики ожидания - самое правильное решение задержек в выполнении кода +1
#60 by sergei123654
Ну не долюбливают они обработчикиОжидания как я понял из не внимательного чтения ветки!
#61 by smaharbA
есть еще метод
#62 by Arxangel06
+ Ну попробуйте в обработчик ожидания параметры передавать... циклически меняющиеся. Очень занимательное занятие, могу сказать...
#63 by Fragster
переменная формы решит все твои проблемы...
#64 by Arxangel06
Сменить профессию и род занятий, как bizon2008? Да, это решение всех проблем, однозначно...
#65 by smaharbA
это еще на 77 делалось массой способов
#66 by Arxangel06
Вот теперь я точно согласен с формулировкой других слов уже не осталось...
#67 by smaharbA
вьюноша займитесь делом и не ходите по росе босиком
#68 by misha122062
Обработчики ожидания не ужны. Вы скажите - где их здесь применять?
#69 by Fragster
судя по - в обработке ожидания менять текст на форме
#70 by Ksandr
Сначала нужно вызвать: ПодключитьСинтаксисПомощник потом: ПодключитьОбработчикРазума ПодключитьПрямыеРуки и только потом ПодключитьОбработчикОжидания
#71 by Arxangel06
Не-не-не, Дэвид Блэйн. ОбработчикОжидания - штука полезная и нужная, для некоторых вещей незаменимая. Но есть случаи, когда эта штука не работает или работает не так, как надо. Не так там все просто.
#72 by Ksandr
Правда, не понимаю, имеем интервал 12 секунд, нужно выполнить конкретное действие. Исходя из видения задачи по сообщениям в этой теме Допустим данных много и на клиент их тащить нет смысла - делаем так: 1. Получаем и кладем данные во временное хранилище, адрес в реквизит формы. 2. На клиенте подключаем обработчик ожидания в котором определяем процедуру 3. В процедуре вызываем серверную процедуру где берем из временного хранилища нужные данные и выводим на форму.
#73 by Lex_Liven
А чем, собственно, VBS-вставка не устраивает? По-моему, для вашей задачи как раз подходит.
#74 by Ksandr
тьфу блин, инфы 60 строк, 5 страниц, 12 строк на каждой, 30 секунд. ПриСозданииНаСервере создаем страницы программно, таблицы на них тоже программно, вызываем процедуру, которая получит данные и заполнит таблицы. Более сервер не дергаем, пока в этом нет необходимости. ПриОткрытии Подключаем обработчик ожидания, который будет переключать страницы. Второй обработчик с таким интервалом с каким нужно обновлять данные (брать из базы) Профит! Никаких лишних серверных вызовов :)
#75 by Stepa86
вот это ннннада?
#76 by Arxangel06
Да задача уже 2 дня как решена через vbs :)
#77 by Lex_Liven
Тогда такой вопрос, предложенный в вариант не работает - спотыкается на СоздатьОбъект("Текст"). Чем это можно заменить в 8.2.15.310?
#78 by Arxangel06
хорошо, хорошо, убедил. "СоздатьОбъект" - это из клюшек. В снеговике это выглядит как "Новый <ТипОбъекта>". клюшки - 7.7, снеговик - 8.х
#79 by aleks-id
>>хорошо, хорошо, убедил. не убедительно. давай код как сделал!
#80 by Arxangel06
Как решил конкретно эту задачу в работе, или как сидя дома с котом и пивом вчера перепилил?
#81 by aleks-id
как перепилил и как перепилишь теперь на работе
#82 by smaharbA
задача решается без вбс
#83 by Arxangel06
И не подумаю даже перепиливать, поскольку дома сделано на типовой, а на работе -на самодельной, и очень многое на эту самодельность завязано. А "для себя" решилось так: ПриОткрытии Конец ВывестиСтраницу(НомерСтраницы) Конец Вполне универсальный механизм, при условии, что есть возможность хранить информацию.
#84 by SalavatUlaev
Я думал речь идет о том, кодишь - кодишь и бац паузу сдела - отдохнул
#85 by Lex_Liven
А теперь такой вопрос. В пресловутый VBS можно впихнуть обработку Ctrl+Break?
#86 by Fragster
если делать х пауз по одной секунде - то почему бы и нет
#87 by smaharbA
да
#88 by smaharbA
Можно сделать (иначе) с точностью до 100 наносекунд
#89 by Fragster
все равно меньше 15.7 паузу не сделаешь
#90 by Fragster
миллисекунд
#91 by smaharbA
сделаешь тики не имеют прямого отношения к таймерам
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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