|
v8: Периодически не выполняется регламентное задание | ☑ | ||
---|---|---|---|---|
0
Lancer666
11.12.13
✎
07:19
|
Здравствуйте, подскажите, пожалуйста, есть регламентное задание, запускаемое раз в сутки, проблема в том, что переодически оно не выполняется, при этом если открыть его в консоли заданий, затем просто нажать ОК, оно немедленно выполнится. Непонятно, что иногда мешает ему выполняться. Само регламентное задание собирает помеченные на удаление документы одного вида и удаляет их. Документы никуда движений не делают. В конфигураторе для регламентного задания стоит флажок Использовать, для модуля, содержащего функцию, вызываемую регламентным заданием, стоят флажки: Сервер, Внешнее соединение, Клиент (Обычное приложение), Вызов сервера. Подскажите, в чем может быть проблема.
|
|||
1
Wobland
11.12.13
✎
07:25
|
а оно правда не выполняется?
|
|||
2
Lancer666
11.12.13
✎
07:40
|
(1) Помеченные на удаление документы, так и висят.
|
|||
3
Wobland
11.12.13
✎
07:41
|
(2) из этого делаем вывод, что у тебя документы не удаляются
|
|||
4
Lancer666
11.12.13
✎
07:47
|
(3) Да, но стоит только подпинуть регламентное задание (открыв в консоли и закрыв, нажав ОК), как тут же помеченные на удаление элементы исчезают, успешно удаленные.
|
|||
5
Wobland
11.12.13
✎
07:48
|
меня это не убеждает в том, что регзадание без пинка не выполняется
|
|||
6
craxx
11.12.13
✎
07:54
|
(0) журнал работы смотри там ошибка видать что-то клиентское пытаешься на сервере выполнить
|
|||
7
Wobland
11.12.13
✎
08:01
|
(6) есть волшебное слово "иногда". где-то в коде ГСЧ зарыт ;)
|
|||
8
Lancer666
11.12.13
✎
08:08
|
(6) Как же тогда оно время от времени выполняется, по настроению системы?
|
|||
9
Lancer666
11.12.13
✎
08:09
|
(7) ))) там такой простой код, что хоть убейся не запрячешь никаких рэндомов...
|
|||
10
Wobland
11.12.13
✎
08:11
|
ну доставай, показывай. потыкаем палочкой
|
|||
11
Lancer666
11.12.13
✎
08:16
|
Запрос=Новый Запрос();
Запрос.Текст= "ВЫБРАТЬ | ЗаявкаНаВводНоменклатуры.Ссылка |ИЗ | Документ.ЗаявкаНаВводНоменклатуры КАК ЗаявкаНаВводНоменклатуры |ГДЕ | ЗаявкаНаВводНоменклатуры.ПометкаУдаления | И ЗаявкаНаВводНоменклатуры.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗаявки.Утвержден)"; Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Ссылка = Выборка.Ссылка; Объект = Ссылка.ПолучитьОбъект(); Объект.Удалить(); КонецЦикла; |
|||
12
MiniMuk
11.12.13
✎
09:04
|
что будет
Объект = Ссылка.ПолучитьОбъект(); когда документ открыт? |
|||
13
Lancer666
11.12.13
✎
09:30
|
(12) Может ничего хорошего и не получится, но кто бы ночью открывал помеченный на удаление документ? Может поместить всё в Попытку Исключение, и в случае срабатывания исключения, помещать информацию в журнал регистрации, либо еще куда-то, может удасться что-то отловить...
|
|||
14
Wobland
11.12.13
✎
09:32
|
и ещё уведомление "оно стартовало!"
|
|||
15
Lancer666
11.12.13
✎
10:18
|
Хорошо, спасибо всем за помощь, о результатах отпишусь.
|
|||
16
MiniMuk
11.12.13
✎
13:56
|
(13) я бы две попытки включил, одну на выполнение запроса, вторую
|
|||
17
Lancer666
15.12.13
✎
22:51
|
Ну в общем поместил в процедуру регламентного задания конструкцию попытка исключение, несколько раз регламентное задание успешно выполнилось, о чем были записи в журнале изменений, затем один документ помеченный на удаление, не удалился и соответствующих записей даже о запуске регламентного задания в журнале регистраций на оказалось. Не понятно, как так происходит... Получается просто со временем регламентное задание перестает выполняться.
Текст процедуры регламентного задания выглядит следующим образом: Процедура УдалениеПомеченныхЗаявокНаВводНоменклатуры() Экспорт ЗаписьЖурналаРегистрации("РегламентноеЗаданиеУдалениеПомеченныхОбъектов",УровеньЖурналаРегистрации.Информация,,,"Запуск регламентного задания"); Попытка Запрос=Новый Запрос(); Запрос.Текст= "ВЫБРАТЬ | ЗаявкаНаВводНоменклатуры.Ссылка |ИЗ | Документ.ЗаявкаНаВводНоменклатуры КАК ЗаявкаНаВводНоменклатуры |ГДЕ | ЗаявкаНаВводНоменклатуры.ПометкаУдаления | И ЗаявкаНаВводНоменклатуры.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗаявки.Утвержден)"; Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Ссылка = Выборка.Ссылка; Объект = Ссылка.ПолучитьОбъект(); Объект.Удалить(); КонецЦикла; ЗаписьЖурналаРегистрации("РегламентноеЗаданиеУдалениеПомеченныхОбъектов",УровеньЖурналаРегистрации.Информация,,,"Выполнение успешно завершено"); Исключение ЗаписьЖурналаРегистрации("РегламентноеЗаданиеУдалениеПомеченныхОбъектов",УровеньЖурналаРегистрации.Ошибка,,,ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
|||
18
hhhh
16.12.13
✎
02:19
|
ну в процедурах при записи, перед записью какую-нибудь фигню пишете. Они же все вызываются. Попробуйте
Ссылка = Выборка.Ссылка; Объект = Ссылка.ПолучитьОбъект(); Объект.ОбменДанными.Загрузка = Истина; Объект.Удалить(); |
|||
19
Анютик
16.12.13
✎
02:23
|
может, выполняется какое-то другое задание, которое работает дольше положенного. А у этого в расписании стоит прекратить выполнение после определенного времени? Я бы туда еще заглянула
|
|||
20
Анютик
16.12.13
✎
02:23
|
например, быкап дольше делался. Или сервер предприятия перегружали.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |