Имя: Пароль:
1C
1С v8
Регламентные задания. Как правильно использовать?
0 hobbo
 
28.03.16
22:26
Всем привет!
В порядке тестового примера хочу чтобы каждые 10 секунд в текстовый файл на диске записывалось значение текущего времени. Система 8.3.6.

Для этого:

- создал новую базу;

- добавил модуль типа "Общие модули" с текстом процедуры
Процедура ЗаписатьВФайл() Экспорт
    Текст = Новый ТекстовыйДокумент;
    Текст.ДобавитьСтроку(ТекущаяДата());
    Текст.Записать("c:\temp\file.txt");
КонецПроцедуры

- добавил регламентное задание, в котором указал в качестве метода Модуль.ЗаписатьВФайл (выбрал в диалоговом окне);

- указал расписание задания: каждый день, каждые 10 секунд;

- установил параметр запуска системы AllowExecuteScheduledJobs;

Запускаю. Например, запуск отладки в 22:22:28. Жду.
Файл c:\temp\file.txt появляется только в 22:23:49
Жду дальше...
Файл c:\temp\file.txt обновляется в 22:23:49
Далее в 22:24:49 и так далее...

Почему установленное расписание не совпадает с фактическим?
1 anatoly
 
28.03.16
22:35
я бы смотрел не на время файла, а в консоли заданий - там все правильнее отражается - когда задания срабатывали.
и вообще, лучше "для теста" не в файл писать - а в ЖР.
2 hobbo
 
28.03.16
22:46
Запустил еще раз. В Журнале Регистраций вижу следующее:
22:38:18 Сеанс. Аутентификация (Тонкий клиент)
22:38:18 Сеанс. Начало (Тонкий клиент)
22:39:39 Сеанс. Начало (Фоновое задание)
22:39:39 Сеанс. Завершение (Фоновое задание)
22:39:39 Сеанс. Начало (Фоновое задание)
22:39:39 Сеанс. Фоновое задание. Запуск (Фоновое задание)
22:39:39 Сеанс. Фоновое задание. Успешное завершение (Фоновое задание)
22:39:39 Сеанс. Завершение (Фоновое задание)
22:40:39 Сеанс. Начало (Фоновое задание)
Дальше по кругу...
То есть первый запуск фонового задания происходит через 80 секунд после старта. Последующие запуски - через 60 секунд.

А как воспользоваться Консолью заданий? Я скачал ее, открыл в конфигураторе... А что дальше?
Извините, я третий день вижу 1С...
3 anatoly
 
28.03.16
22:55
в предприятии ее надо запускать.
база файловая?
4 hobbo
 
28.03.16
22:55
Забыл сказать...
Если не поставить галку "Предопределенное" в свойствах задания, то оно вроде как совсем не выполняется.
5 hobbo
 
28.03.16
22:55
Да, база файловая.
6 hobbo
 
28.03.16
22:58
Попробовал запустить в предприятии. То же самое, первый запуск через 80 секунд...
7 hobbo
 
28.03.16
23:01
Так же попробовал изменить расписание. Вместо "каждый день, каждые 10 секунд" установил "...каждые 20 секунд". Ничего не изменилось. То есть расписание похоже просто не используется.
8 anatoly
 
28.03.16
23:05
(5) попробуй на серверной.
регл.задания в файловой это вообще не айс.
9 Fragster
 
гуру
28.03.16
23:36
(0) в файловой фоновые задания выполняются в один поток, не чаще, чем раз в минуту, не ранее одной минуты после запуска (сейчас в новых не ранее двух)
10 Armando
 
28.03.16
23:50
(4) не выполняется потому что его нет. Регламентные задания это типа как справочник. То есть его ещё создать надо, можно несколько раз. Когда ставишь флаг Предопределённое, то оно сразу создаётся.
11 hobbo
 
29.03.16
22:27
Действительно, ответ нашелся в ИТС.
Русским по белому в главе 19 руководства разработчика сказано, что особенностью работы регламентных заданий в файловой базе является в том числе фиксированное (60 секунд) расписание выполнения. Так что это не бага, но фича. Небольшим введением в заблуждение программера, наверное, можно считать наличие в файловой базе в интерфейсе конфигуратора кнопки "расписание". Было бы меньше вопросов, если бы этой кнопки не было.
12 mehfk
 
29.03.16
22:31
(11) Теперь еще прочитай то место, где написано про эту кнопку, чтобы не делать в будущем неверных выводов.