|
|
|
Как запустить выполнение Процедуры в определенное время? | ☑ | ||
|---|---|---|---|---|
|
0
gr13
13.05.04
✎
11:36
|
Интересный вопрос, собственно.
К примеру мне надо запустить завершение работы системы, для всех пользователей в 12.00? ОбработкаОжидания запускает данную процедуру с заданным интервалом, а как не с интервалом, а на заданное время? |
|||
|
1
Львенок
13.05.04
✎
11:40
|
Проверить в обработке ожидания текущее время.
___ Искренне Ваш, Львенок. |
|||
|
2
gr13
13.05.04
✎
11:51
|
ОбработкаОжидания во втором параметре стоит время в секундах, а не проверка, хотя может что нить недокументированного?
|
|||
|
3
Львенок
13.05.04
✎
13:07
|
//-------ГлобальныйМодуль начало
Перем глСделано; //-------ГлобальныйМодуль серидина, где все процедуры Процедура глСделатьТогдаТо() Ч=0;М=0;С=0; ТекущееВремя(Ч,М,С); Время=Ч+М*60+С*3600; Если (Время>=Константа.ВремяХ) И (Время<=Константа.ВремяХ+300) И (Сделано=0) Тогда Сделано=1; глСделатоТоТо();//Здесь делаем то, что нужно сделать КонецЕсли; КонецПроцедуры //-------ГлобальныйМодуль самый конец, после всех процедур ОбработкаОжидания("глСделатьТогдаТо()",5); глСделано=0;//Еще ничего не сделано Есть константа ВремяХ, которая задает то значение времени (в секундах прошедших с начала суток) в которое надо что-то сделать. Процедура глСделатьТогдаТо() выполняется каждые пять секунд и проверяет не настало ли ВремяХ, если время уже настало то делает то, что нужно. Если в течении пяти минут после наступления времени "Х" 1С будет сильно занята (формировать какой-то сложный отчет), то "Что-то" может и не выполнится. Если в течении пяти минут после наступления времени "Х" пользователь выйдет из 1С и снова зайдет в нее "Что-то" может выполниться более одного раза. Примерно так. ___ Искренне Ваш, Львенок. |
|||
|
4
Львенок
13.05.04
✎
13:08
|
Ошибочка: "Если (Время>=Константа.ВремяХ) И (Время<=Константа.ВремяХ+300) И (Сделано=0) Тогда
Сделано=1; " Заменить Сделано на глСделано; ___ Искренне ваш, Львенок. |
|||
|
5
Gavrila
13.05.04
✎
13:25
|
если (0) то только ВК
|
|||
|
6
gr13
13.05.04
✎
13:31
|
Все понятно, спасибо. Интересный выход из положения
|
|||
|
7
gr13
13.05.04
✎
13:33
|
(5) почему, я так понимаю, что данная процедура в глобальном, будет работать со всеми пользователями?
|
|||
|
8
Frol
13.05.04
✎
13:35
|
Можно сделать проще.
В предопределенной процедуре "ПриНачалеРаботыСистемы" необходимо просто вычислить, сколько секунд осталось до нужного времени и поместить в какуюнибудь глобальную переменную, например глКолСекунд. А потом вызвать ОбработкаОжидания("глНужнаяПроцедура",глКолСекунд); // глНужнаяПроцедура - процедера в которой и запустите всё что хотите. Естесственно, переменную глКолСекунд нужно определить. |
|||
|
9
Gavrila
13.05.04
✎
13:39
|
(7) "ОбработкаОжидания запускает данную процедуру с заданным интервалом, а как не с интервалом, а на заданное время?" - вот на этот вопрос и ответ (5) :))
|
|||
|
10
gr13
13.05.04
✎
13:41
|
(9) Естессно, а в процедуре стоит контроль на время работы ее(процедуры)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |