Имя: Пароль:
1C
1С v8
не запускаются рег. задания
0 vde69
 
14.04.22
13:14
програмно создаю рег задание, но оно не запускается автоматом. если я в него захожу и в нем интерактивно нажимаю "сохранить" - то оно само запускается.

куда копнуть?


Код:

            мЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание("ПроверкаРазделенияПрав");
            мЗадание.Использование = Истина;
            мЗадание.Наименование = "Сессия проверки разделения прав для " + мИмяПользователя;
            мЗадание.Ключ = мИмяПользователя;
            мЗадание.ИмяПользователя = мИмяПользователя;
            мЗадание.Записать();
1 Галахад
 
гуру
14.04.22
13:37
Хм. А где рассписание?
2 hhhh
 
14.04.22
13:38
(0) вроде расписание должно быть там. Не должно же просто так запускаться?
3 vde69
 
14.04.22
13:41
(1) (2) расписание там тянется из метаданных "ПроверкаРазделенияПрав"

в созданном мЗадание расписание заполнено.
4 vde69
 
14.04.22
13:44
не может влиять факт, что до этого уже было выполнено такое-же задание (с другим идентификатором но с тем-же ключом)?
5 vde69
 
14.04.22
14:00
нашел.... не разу не очевидно :)

не хватает 1 строчки

мЗадание.РазделениеДанных.Очистить();
6 vde69
 
15.04.22
10:26
(5) все равно не работает...

расписание - однократный запуск
7 rudnitskij
 
15.04.22
10:36
Тут наверное надо отмотать назад и спросить "зачем создавать регламентное задание программно"?
Если вам нужен процесс, который будет выполняться независимо от действий юзера - есть фоновые задания, есть подключаемые обработчики ожидания.
А в регламентном задании надо интерактивно указать расписание, иначе не поедет
8 vde69
 
15.04.22
10:40
(7) нужно для выполнения под правами указаного юзера, другого пути нет.

После отработки рег задание удаляется...

тут проблема в том, что иногда работает, а иногда нет. думаю тут дело в том, что где-то есть какой-то кеш новые рег задания считаются уже ранее выполненными.
9 vde69
 
15.04.22
10:44
может проблема в том, что ключ одинаковый с тем, что было удалено ранее....
10 eklmn
 
гуру
15.04.22
10:51
Только администратор может создавать регламентные задания.
11 rudnitskij
 
15.04.22
10:52
(8) вам фоновое задание тогда нужно, а не регламентное. А еще проще вызывать процедуру на выполнение с помощью обработчика ожидания...
Стоп. Если процедура выполняется в регламенте один раз, а потом регламент удаляется - может лучше просто вызвать эту процедуру напрямую?
12 arsik
 
гуру
15.04.22
10:53
(11) Ему нужно что бы задание выполнилось от другого пользователя.
13 arsik
 
гуру
15.04.22
10:57
(8) Можно сделать через очередь заданий.
Регистр. В нем очередь заданий с нужным пользователем.
Ну и придется создать по регзаданию на тех пользователей, которые будут в этом регистре. Например раз в минуту из очереди читаются задания и выполняются.
14 rudnitskij
 
15.04.22
11:03
(12) а удалять его (регламент) зачем потом? Чтоб потом создавать новое такое же и упираться в эту же проблему?
15 vde69
 
15.04.22
16:34
Короче так и не победил, там какой-то кеш создается на сервере (видимо по метаданным). Так, что идея удалять а потом заново создавать рег задания это плохая идея :)


сделал всю логику на одном рег задании, вышло запутано, но работает.