Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=1241)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как периодически выполнять действие?

Автор: 911Oleg 18.12.09, 17:52

Мне нужно периодически вызывать внешнюю обработку (по времени), каждый день. При старте 1с понятно как вызвать, но на ночь компы могут и не выключать. Как это сделать? Подскажите пожалуйста.

Автор: danie 18.12.09, 17:59

http://pro1c.org.ua/redirect.php?http://1c.proclub.ru/modules/mydownloads/personal.php?lid=5728&cid=5
попробуй что это такое

Автор: suhar 18.12.09, 19:06

Цитата(911Oleg @ 18.12.09, 18:52) *
Мне нужно периодически вызывать внешнюю обработку (по времени), каждый день. При старте 1с понятно как вызвать, но на ночь компы могут и не выключать. Как это сделать? Подскажите пожалуйста.

просмотри функции работы с датой и временем....

Автор: MATEVI 18.12.09, 19:13

Цитата(911Oleg @ 18.12.09, 18:52) *
Мне нужно периодически вызывать внешнюю обработку (по времени), каждый день. При старте 1с понятно как вызвать, но на ночь компы могут и не выключать. Как это сделать? Подскажите пожалуйста.

ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени.
Возвращает имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. Тело процедуры <ИмяПроцедуры> должно быть написано разработчиком конфигурации в глобальном программном модуле. Если в качестве параметра передается 'пустая строка', то ранее запущенный процесс прекращается.
<ИнтервалВызова> - необязательный параметр. Числовое выражение - интервал времени в секундах, с которым периодически будет вызываться процедура глобального модуля <ИмяПроцедуры>. Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.

Процедура глПроцОпределенияПоОплатам()  Экспорт
........................
         ОткрытьФорму("Обработка.ОпределениеОплат", Контекст);
.......................    
КонецПроцедуры //ГлПроцОпределенияПоОплатам
//=============================================
Процедура глОбработкаОжиданияМенеджерам() Экспорт
.....................
        ОбработкаОжидания("глПроцОпределенияПоОплатам",3600);
.....................    
КонецПроцедуры //глОбработкаОжиданияМенеджерам

Процедура ПриНачалеРаботыСистемы()
..........
    глОбработкаОжиданияМенеджерам();

Автор: zetovich 21.12.09, 8:43

батник + Планировщик задач + чуть подправить глобальный модуль.
все просто есле не моноплльно....
монопльно всех выгнать скриптом.....полно на просторах интернета.

Автор: 911Oleg 21.12.09, 10:02

Спасибо всем, буду пробовать

Автор: -=VJ=- 17.05.11, 14:15

Цитата(MATEVI @ 18.12.09, 19:13) *
ОбработкаОжидания(<?>,)


а с тем, что эта команда не работает ещё никто не сталкивался? smile.gif

Автор: dmiter 17.05.11, 19:28

Цитата(-=VJ=- @ 17.05.11, 15:15) *
а с тем, что эта команда не работает ещё никто не сталкивался? smile.gif

Я нет, при чем активно пользуюсь...

Автор: -=VJ=- 17.05.11, 20:58

Цитата(dmiter @ 17.05.11, 19:28) *
Я нет, при чем активно пользуюсь...


А я вот сегодня столкнулся. Причину так выяснить и не смог, пришлось обходить другими методами.
Крутил и так, и сяк - не вызывается процедура через положенное время и всё тут.

Автор: dmiter 20.05.11, 22:38

х

Автор: -=VJ=- 20.05.11, 23:01

Цитата(dmiter @ 20.05.11, 22:38) *
Опиши ситуацию чем смогу помогу...


Спасибо, уже сам нашел.
Глюк был в интервале - одна ОбработкаОжидания вела на процедуру, где была ещё одна ОбработкаОжидания и один из программистов поставил там интервал 600.
В результате первая обработка не отрабатывала, пока не заканчивался десятиминутный период для второй.
А если не закапываться глубоко, то можно было принять за то, что команда просто перестала работать вообще smile.gif

Автор: dmiter 21.05.11, 21:21

Цитата(-=VJ=- @ 21.05.11, 0:01) *
Спасибо, уже сам нашел.
Глюк был в интервале - одна ОбработкаОжидания вела на процедуру, где была ещё одна ОбработкаОжидания и один из программистов поставил там интервал 600.
В результате первая обработка не отрабатывала, пока не заканчивался десятиминутный период для второй.
А если не закапываться глубоко, то можно было принять за то, что команда просто перестала работать вообще smile.gif

Если использовать документированную возможность ОбработкаОжидания - то процедура, которая будет выполняться через ожидание может быть только одна (список или стек процедур выполняемых через определенный интервал необходимо организовывать вручную). То есть если второй раз вызывается ОбработкаОжидания то свое первое действие она отменяет (насколько мне не изменяет память smile.gif)

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua