|
Событие при запуске сервера 1С | ☑ | ||
---|---|---|---|---|
0
xavchik
07.09.17
✎
10:53
|
Всем доброго дня. Вопрос следующий:
Есть сервер 1С, на сервере выполняются регламентные задания. Сервер 1С или физический сервер могут быть перезагружены по разным причинам. Требуется сделать так, чтобы регламентные задания не выполнялись (или выполнялись, но в модуле процедуры все действия пропускались, например, по состоянию константы) после рестарта до тех пор, пока пользователь не зайдет в пользовательском режиме и не включит работы регламентных заданий вручную. Например, задаст нужное значение константы. Я предполагаю, что должно быть событие, которое возникаем при старте сервера 1С и в котором можно поставить константу в состояние "Выключено", но не могу найти где. Есть идеи? |
|||
1
rudnitskij
07.09.17
✎
10:59
|
(0) есть идея проверять при запуске регламента равно ли время текущее времени запуска задания, при несовпадении не запускать
|
|||
2
xavchik
07.09.17
✎
11:13
|
Не понял. А почему оно обязательно не должно быть равно текущему времени при перезагрузке? А если оно не исполнялось в момент перезапуска а просто стартануло новое срезу после запуска?
|
|||
3
rudnitskij
07.09.17
✎
11:15
|
(2) "А почему оно обязательно не должно быть равно текущему времени при перезагрузке?" - потому что это вытекает из постановки вопроса в (0). Вы ведь хотите, чтобы задание, намеченное на 2-00, не выполнялось при перезапуске в 6-00?
|
|||
4
rudnitskij
07.09.17
✎
11:15
|
(3) но чтоб стабильно выполнялось в 2-00
|
|||
5
xavchik
07.09.17
✎
11:17
|
Уточню тогда задачу: РЗ выполняются очень часто, через 5 секунд, например, и без даты начала и окончания. Т.е. постоянно запускаются через каждые 5 секунд.
|
|||
6
rudnitskij
07.09.17
✎
11:21
|
(5) юзайте консоль заданий, определяйте в ней расписание
|
|||
7
Черный маклер
07.09.17
✎
11:23
|
если у сервера 1С не стоит отложенный запуск, то регламентные задания и так не будут выполняться :)
|
|||
8
xavchik
07.09.17
✎
11:28
|
(6) Так я и так юзаю. Я к этой консоли установил расписание для заданий = каждые 5 секунд. Они активны и отлично работают. Вопрос в том, чтобы после ребута они стали не активными и ждали,пока я явно их не включу
|
|||
9
xavchik
07.09.17
✎
11:29
|
(7) Можно поподробнее, что это такое "Отложенный запуск"?
|
|||
10
Fedor-1971
07.09.17
✎
11:30
|
(8) сними галочку "Предопределённое" у регламентного задания и после рестарта сервера оно тупо не будет выполняться до пинка пользователя, например, из консоли заданий
|
|||
11
Fedor-1971
07.09.17
✎
11:33
|
(9) это свойство сервиса винды, стартовать сразу при запуске или погодить пока система выйдет в некую стабильную работу (если правильно помню это примерно после регистрации компа в домене, т.е. сеть полностью доступна и остановлены неиспользующиеся сервисы)
|
|||
12
Fedor-1971
07.09.17
✎
11:40
|
10+ а что будет если некому дать пинка на выполнение регламента? просто оцени что вызовет больше проблем автовыполнение регламента или его полное отсутствие. К стати можно попробовать изменить алгоритм работы регламентного задания на примерно такой устанавливаем блокировку на элемент некого справочника с кодом 001, если успешно - выполняем алгоритм (по завершении блокировку снимаем), если нет - ничего не делаем (уже работает другой экземпляр)
|
|||
13
xavchik
07.09.17
✎
11:41
|
(10) Галочка "Предопределенное" в РЗ в конфигураторе и так снята. А вот галочка "Использование" вызвала интерес. Проверил, но все равно, если задание использовалось перед рестартом, то оно и остается в этом состоянии посре растарты сервиса
|
|||
14
xavchik
07.09.17
✎
11:44
|
(12) Пусть лучше будет нЕкому дать пинка, чем что-то пойдет не так :-) И с блокировкой тоже не подходит, так как таких задач много и смысл в том, чтобы они могли выполняться параллельно.
|
|||
15
xavchik
07.09.17
✎
11:47
|
(10) + Честно говоря вообще не понятно, зачем галочка "Использование" есть в конфигураторе. Разве что только в случае первоначального заполнения РЗ в базе, чтобы расставить эти галочки при создании РЗ в БД по умолчанию.
|
|||
16
Fedor-1971
07.09.17
✎
11:51
|
(13) недавно ковырялся в регламентах на 8.2 регламентный задания без пинка после рестарта почему-то не заводились
(14) а что мешает выделить каждому типу заданий свой элемент справочника? как я понял алгоритм регламента рассчитан на параллельное выполнение нескольких экземпляров? тогда что может пойти не так? |
|||
17
Черный маклер
07.09.17
✎
11:55
|
(16) ...недавно ковырялся в регламентах на 8.2 регламентный задания без пинка после рестарта почему-то не заводились - см.(7)
|
|||
18
xavchik
07.09.17
✎
11:57
|
(16) Попробовал разные варианты в конфигураторе: Предопределенное = Да, Использование = Нет, все - нет и т.д. Все равно стартуют.
Я использую Ключ, чтобы не выполнялось два задания одновременно. Так что блокировка элементов справочника тут не требуется. А пойти может не так следующее: фоновое задание отправляет несколько документов во внешнюю систему. И они должны быть отправлены либо все, либо ни один не должен быть. Есть система падает на середине отправки, то надо вмешаться и удалить уже отправленные сообщения из внешней системы перед продолжением работы. |
|||
19
rudnitskij
07.09.17
✎
12:36
|
(18) нельзя проверять наличие доков на удаление и их удалять автоматически перед запуском следующего экземпляра?
|
|||
20
xavchik
07.09.17
✎
13:30
|
(19) Это решение опять же их серии блокировки элементов справочника. Оно сможет работать при аварийной остановке Фонового задания. А если задание не было завершено аварийно, а просто даже и не выполнялось в момент ребута, т.е. завершилось корректно последний раз, отметило где-то, что завершилось и потом произошел ребут. Да, отчасти это сможет решить проблему, но это не очень надежное решение.
|
|||
21
rudnitskij
07.09.17
✎
13:47
|
(20) заведите константу, в которую будете писать ИСТИНА или ЛОЖЬ в зависимости от успешности завершения выполнения регламента. Из нее при следующем запуске будете узнавать - надо или не надо удалять отправленные доки
|
|||
22
xavchik
07.09.17
✎
13:56
|
(21) Да, по всей видимости так и придется сделать. Пока решения лучше тоже не вижу. Спасибо!
|
|||
23
rudnitskij
07.09.17
✎
14:02
|
(22) не забудьте в начале выполнения задания писать в нее ЛОЖЬ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |