Имя: Пароль:
1C
 
Запуск обработок в определенное время
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 Привязываться к имени пользователя не есть хорошо. Ибо если добавится еще один робот, придется код править. Решение проблемы должно быть универсальным.