Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прервать регламентное задание
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Batchir
1С предприятие 8.2. Обычный режим.

Необходимо прервать регламентное задание и что бы оно вернуло ошибку.
например есть код в регламентной процедуре.
НачатьТранзакцию();
Попытка
      // здесь например формируется какой-то документ и возникает ошибка блокировки данных
      // выполнение перейдет в исключение
      ЗафиксироватьТранзакцию();
Исключение
      ОтменитьТранзакцию();
      // и вот тут нужно прервать регламентное задание таким образом,  что бы оно было выполнено с ошибкой,
      // что бы если для регл задания настроен перезапуск по ошибке то заново стартовало.
КонецПопытки;

Прерывание должно отрабатывать и в файловом и в серверном режиме.
Может кто подскажет, а то я чего-то сразу не соображу, а нужно срочно решить эту задачку.
Почему именно так - подразумевается что не любая ошибка должна завершать регламентное задание с ошибкой, есть ряд неважных ошибок (блокировок), которые можно игнорировать и не обращать на них внимания.
Vofka
Может функция
ВызватьИсключение()

поможет?

Т.е. как-то так:

НачатьТранзакцию();
Попытка
      // здесь например формируется какой-то документ и возникает ошибка блокировки данных
      // выполнение перейдет в исключение
      ЗафиксироватьТранзакцию();
Исключение
      ОтменитьТранзакцию();
      ВызватьИсключение();
КонецПопытки;
Fynjy
Цитата(Vofka @ 11.07.11, 17:02) необходимо зарегистрироваться для просмотра ссылки
Может функция
ВызватьИсключение()

поможет?

Т.е. как-то так:

НачатьТранзакцию();
Попытка
      // здесь например формируется какой-то документ и возникает ошибка блокировки данных
      // выполнение перейдет в исключение
      ЗафиксироватьТранзакцию();
Исключение
      ОтменитьТранзакцию();
      ВызватьИсключение();
КонецПопытки;

Зачем ВызватьИсключение() - если оно уже произошло?
Батчир - я бы сделал через флаг (переменную или параметр системы) и вставил бы в нескольких местах вызов проверки флага.
Batchir
Если через флаг, то как прервать задание что бы оно вернуло ошибку?
Сама суть вопроса - нужно прервать задание так что бы оно считалось аварийно завершенным
Конструкция
Попытка
Исключение
      ВызватьИсключение;
КонецПопытки;


из описания вроде подходит , дома уже проверю.
Batchir
Да, ВызватьИсключение, отрабатывает как раз так как надо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.