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