Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

1с 8 Регламентное задание

1с 8 Регламентное задание
Я
   Sereja
 
10.12.18 - 15:17
Добрый день.
Мне нужно выполнять Регламентное задание раз в 10 минут. Но, это же задание я выполняю и программно время от времени. Я хочу что б если был программный вызов, то задание выполнилось через 10 минут после моего программного вызова. Прочитал про свойство "ПаузаПовтора" в рег.задании. Выставил это значение тоже 10 минут. Но задание не видит, что я его вызывал программно. Подскажите, как сделать так, что б задание видело, что оно вызывалось программно?

Вызываю рег задание следующим образом: ФоновыеЗадания.Выполнить("МойМодуль.МоеЗадание");
 
 
   Sereja
 
1 - 10.12.18 - 15:30
ап?
   palsergeich
 
2 - 10.12.18 - 15:34
(0) Дело в том что регламентное задание ничего не знает о том, что вы там что то самостоятельно запускали.
ТЗ некорректно и исправить можно только костылями.
   Sereja
 
3 - 10.12.18 - 15:35
(2) Это я понял, что рег.задание не знает что я его выполнил. В этом и стоит вопрос, как сделать так, что б сообщить заданию, что я его выполнил
   palsergeich
 
4 - 10.12.18 - 15:42
Данный функционал не реализован
   Sereja
 
5 - 10.12.18 - 15:49
(4) Спасибо
   Mr_Best
 
6 - 10.12.18 - 16:22
(3) у фонового задания есть куча параметров, например в методе Выполнить() можно передать в качестве параметра переменную типа Булево или установить разные Ключи.
   Mr_Best
 
7 - 10.12.18 - 16:24
(3)
Параметры = Новый Массив;
Параметры.Добавить(Ложь);// Истина);

Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>)
   Очевидно
 
8 - 10.12.18 - 16:25
(3) ну как вариант хранить дату последнего выполнения где-нибудь в хранилище настроек ... и при начале выполнения её читать и проверять на факт "Прошло 10 минут" или нет ...
   Mr_Best
 
9 - 10.12.18 - 16:26
(3) а в модуле оформляешь свою процедуру:

Процедура имяПроцедуры(ПрограммныйВызов = Ложь) Экспорт
   palsergeich
 
10 - 10.12.18 - 16:26
(6) Это не то.
Ключ - он нужен для контроля уникальности - одновременно может быть запущено только 1 задание с уникальным УИД.
На сколько я помню - последний запуск, завершение регламентного задания пишется в служебную таблицу. и на ее данных и работают параметры ПаузаПовтора и им подобные.
Фоновое задание - туда не пишет.
(8) (9) А это уже пошли резные костыли
   Mr_Best
 
11 - 10.12.18 - 16:26
(3) такм образом, когда рег.задание запустит фоновое задание, будет ложь. А когда будешь запускать программно, просто передовай истину в параметрах и все
   Mr_Best
 
12 - 10.12.18 - 16:27
(10) да, но в нутри фонового задания можно проверить ключь и что то сделать. Но лучше параметры
   Artk
 
13 - 10.12.18 - 16:27
(0) журнал не подойдёт?
   Mr_Best
 
14 - 10.12.18 - 16:28
(13) медленный
   Mr_Best
 
15 - 10.12.18 - 16:28
(13) но как костыль на случай, когда совсем плохо ... )))))) но лучше так не делать
   Artk
 
16 - 10.12.18 - 16:29
(14) в таком случае делайте регистр и ведите быстрый
   palsergeich
 
17 - 10.12.18 - 16:30
(11) Ему надо что бы если 10 минут интервал был после последнего запуска даже если это было в ручном режиме.
То есть что бы регламентное задание "знало" о том что кто то запускал ранее в ручном режиме.
Без служебных данных которые надо хранить - не выйдет.
Как самый простой вариант - попробовать использовать Хранилище настроек - костылище, но хотя бы не придется создавать новые объекты метаданных.
И сделать запуск разв минуту исмотреть в хранилищенастроек, прошло 10 мин или еще нет
   Очевидно
 
18 - 10.12.18 - 16:31
(10) ну как бы да, тут без костыля, желаемого эффекта не достигнуть ИМХО.
(13) создавать таблицу для этой цели ? или одну переменную в хранилище настроек ... по моему лучше одну переменную, чем целую таблицу ...
   Mr_Best
 
19 - 10.12.18 - 16:31
тогда нужен планировщик
   Artk
 
20 - 10.12.18 - 16:31
(17) журнал, такой же костыль , но там есть уже данные о старте
   Mr_Best
 
21 - 10.12.18 - 16:32
что то должно планировать время следующего запуска после каждого последнегозапуска
   Mr_Best
 
22 - 10.12.18 - 16:32
и меня время старта регламентного задания на нужное спланированное
   Mr_Best
 
23 - 10.12.18 - 16:33
точность будет хорошая))))
   Artk
 
24 - 10.12.18 - 16:34
(22) регламентные задание для чтения последнего запуска и запуска обработки из этого регламентного задания, если интервал с последнего запуска > сколько нужно.
   Mr_Best
 
25 - 10.12.18 - 16:37
(24) точность будет меньше, если это приемлемо, то хороший вариант
   Artk
 
26 - 10.12.18 - 16:41
(25) если создать таблицу, то скорость чтения позволит точность до секунды, если писать в хранилище, т.е существует гипотетическая вероятность одновременных записи чтения и как вариант лишнего запуска. Опять же что важно.
Можно журнал, хранилище, регистр и считывать с учётом скорости получения данных
   Ник080808
 
27 - 10.12.18 - 16:47
(0) При программном выполнении анализируешь последнее выполненное фоновое задание и после выполнения корректируешь расписание.
   palsergeich
 
28 - 10.12.18 - 19:55
Вы серьезно предлагаете человеку читать ТЖ:(
А если этот уровень предупреждений выключат на боевой?
А если ТЖ вообще выключат на боевой?
А если ТЖ переведут на другой формат?
А если ТЖ весит 100гб и его никто не чистит пока место на диске не кончится?
Поиметь проблем просто на ровном месте....
   catena
 
29 - 11.12.18 - 05:27
(28)Э... Зачем ТЖ?
Получить РЗ по наименованию:

МенеджерРегламентныхЗаданий (ScheduledJobsManager)
ПолучитьРегламентныеЗадания (GetScheduledJobs)
Синтаксис:
ПолучитьРегламентныеЗадания(<Отбор>)

Последнее ФЗ:

РегламентноеЗадание (ScheduledJob)
ПоследнееЗадание (LastJob)
Описание:
Тип: ФоновоеЗадание.
Последнее выполнившееся фоновое задание.

Параметры последнего ФЗ:

ФоновоеЗадание (BackgroundJob)
Начало (Begin)
Описание:
Дата запуска задания.

ФоновоеЗадание (BackgroundJob)
Конец (End)
Описание:
Дата завершения задания (только для завершенных заданий).


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.