![]() |
![]() |
|
Запуск обработок в определенное время | ☑ | ||
---|---|---|---|---|
0
ko_elena
13.04.10
✎
14:20
|
Добрый день всем спецам!
Помогите пжл!!!!!!! Задача - запускать некоторые обработки в 1С в определенное время, например в 1.00, 6.00, 13.00 и 15.00 В какую сторону копать? Буду благодарна за все варианты! Спасибо всем! |
|||
1
YF
13.04.10
✎
14:22
|
(0) Сделать пользователя-робота в 1С, через шедулер запускать под ним нужную базу. Там обрабатывать ПриНачалеРаботыСистемы()
|
|||
2
Troodon
13.04.10
✎
14:22
|
ПриНачалеРаботыСистемы, ИмяПользователя(), Пакетный запуск
|
|||
3
villy
13.04.10
✎
14:24
|
ОбработкаОжидания,ИмяПользователя
|
|||
4
ДРАКОННИК-2
13.04.10
✎
14:26
|
дешевле посадить круглосуточного раба за машину...
|
|||
5
Troodon
13.04.10
✎
14:26
|
(3) ОбработкаОжидания... не вариант... постоянно кого-то держать в базе подключенным?
|
|||
6
ДРАКОННИК-2
13.04.10
✎
14:29
|
шедулер тоже не гут, если к серванту через RDP ходите... ежели сеанс отпадет, то шедулерные задачи от этого усера не вспорхнут...
|
|||
7
villy
13.04.10
✎
14:29
|
(5) как не вариант? - еще как вариант :)
|
|||
8
Troodon
13.04.10
✎
14:30
|
(6) крон как систем и все
|
|||
9
zak555
13.04.10
✎
14:31
|
(4) не факт
|
|||
10
YF
13.04.10
✎
14:32
|
(6) С чего это вдруг? От имени админа запускай и усе ...
|
|||
11
Troodon
13.04.10
✎
14:32
|
(7) сначала не понял, тут за все же варианты в (0) благодарят
|
|||
12
ko_elena
13.04.10
✎
14:34
|
(5) именно так - пользователь-робот будет постоянно в базе висеть - необходимо для других целей
(3) а чуть подробнее про обработку ожидания она вызывает какую-то процедуру с определенным интервалом - а мне надо в определенное время (интервал задать не могу) или мне интервал ставить минуту и все время проверять время? (как тогда это тормозит будет?) |
|||
13
zak555
13.04.10
✎
14:36
|
(12) зачем роботу висеть в базе ?
|
|||
14
Troodon
13.04.10
✎
14:36
|
(13) написано же: другие цели,
может интеграция с чем-нибудь, например кпк |
|||
15
Troodon
13.04.10
✎
14:37
|
+(14) т.е. как я понял, там уже "робот" висит постоянно в базе
|
|||
16
ko_elena
13.04.10
✎
14:38
|
(13) он будет осуществлять обмен с другой(внешней) программой
|
|||
17
ko_elena
13.04.10
✎
14:38
|
(15) именно так
|
|||
18
ko_elena
13.04.10
✎
14:39
|
и этот робот должен для обмена выгружать в определенное (!!!!!) время данные из 1с
|
|||
19
Troodon
13.04.10
✎
14:40
|
(18) тогда зачем постоянно запущенный сеанс в 1С?
|
|||
20
villy
13.04.10
✎
14:40
|
(12) интервал на свое усмотрение и все время проверять время ;) у мну так сейчас работает (интервал 15 мин + куча справочников для расписания выполнения обработок с параметрами и т.д.) и без "тормозов" :)
|
|||
21
Troodon
13.04.10
✎
14:40
|
делай как в (1)
|
|||
22
ko_elena
13.04.10
✎
14:47
|
(19) 1с всегда запущена потому, что она отслеживает появление новых файлов обмена для загрузки в систему
что мне каждые 15 минут запускать 1с как написано в (1)? обработкаожидания() вроде подходит - вопрос как сильно будет тормозить, если интервал поставить минут 15. |
|||
23
Troodon
13.04.10
✎
14:54
|
(22)не сильно тормозить будет, я бы сказал, даже слабо
|
|||
24
Гость2
13.04.10
✎
14:55
|
(22) Даже на Первом Пне не заметишь.
|
|||
25
villy
13.04.10
✎
14:56
|
(22) в базе для каждого юзера стоит обработкаОжидания для закрытия 1С на случай атомной войны :), никто на скорость работы 1С не жаловался, хотя может для юзверей 1С "порхает как бабочка" по сравнению с SAP )))
(23) +1 ))) |
|||
26
ko_elena
13.04.10
✎
15:06
|
а кто знает что лучше стандартная обработка ожидания или например таймер из внешней компоненты aiTimer.dll
|
|||
27
Марк_З
13.04.10
✎
16:26
|
(26) Зачам Ва таймер? Вам надо, чтобы 1с-ка от робота была ВСЕГДА запущена?
Почему нельзя написать в гл.модуле в ПриНачалеРаботыСистемы(): если (имяПользователя = "робот") и (ТекВремя() = нужному времени) (+- какой-то интервал) Тогда выполнять нужную обработку; ЗавершитьРаботуСистемы() конецЕсли; а в назначенных заданиях -- расписание запуска 1С. |
|||
28
dk
13.04.10
✎
16:28
|
ну или стандартный способ - запуск обработки по OLE
|
|||
29
Torquader
14.04.10
✎
00:56
|
Можно сделать ещё проще - написать сервис, который запускает 1С под определённым пользователем, а также кидает ему команды (через DDE или напрямую через KeySend), ну и перезапускает его, если он закрылся.
1С будет всегда висеть, но занимать процессорное время какими-то обработками не будет, если ничего делать не надо. Запуск 1С - достаточно длительная операция, требующая открытия всех файлов базы данных - зачем это делать часто. |
|||
30
VladZ
14.04.10
✎
05:51
|
(27) Тогда уж в справочнике пользователя сделать галочку "АвтоЗапуск". Код, соответственно будет таким:
Если глПользователь.АвтоЗапуск = 1 Тогда // выполняем нужную обработку ЗавершитьРаботуСистемы() конецЕсли; |
|||
31
VladZ
14.04.10
✎
05:52
|
+30 Привязываться к имени пользователя не есть хорошо. Ибо если добавится еще один робот, придется код править. Решение проблемы должно быть универсальным.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |