К статье
Практический материал

Администрирование · 12 мин

Как перезапустить фоновое задание в 1С

Как перезапустить фоновое задание в 1С: через консоль заданий, конфигуратор и код. Причины зависаний, проверка результата, типичные ошибки и ограничения.

Фоновые задания в 1С выполняют обмены данными, расчёт итогов, загрузку курсов валют, отправку отчётов и десятки других операций без участия пользователя. Когда такое задание зависает, падает с ошибкой или не запускается по расписанию, цепочка смежных процессов останавливается: не уходят заказы, не обновляются остатки, не формируются регламентные отчёты.

Перезапуск фонового задания — штатная операция, которую администратор может выполнить тремя способами: через встроенную консоль заданий в режиме предприятия, через программный вызов во внешней обработке или через консоль кластера серверов, если задание зависло намертво. Выбор способа зависит от того, в каком состоянии находится задание и какой у вас есть доступ.

Прежде чем перезапускать задание, важно понять причину остановки. Слепой перезапуск зависшего обмена может привести к дублированию документов, а повторный запуск незавершённого расчёта — к блокировкам и порче промежуточных данных. Ниже разобраны все сценарии с проверкой результата и границами безопасных действий.

Как проверить состояние задания перед перезапуском

Откройте в режиме 1С:Предприятие раздел «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания» (в некоторых конфигурациях путь называется «Регламентные операции»). В списке видны все регламентные задания с датой последнего выполнения и состоянием: «Выполняется», «Завершено», «Ошибка» или «Задание не запускалось».

Двойной щелчок по строке открывает карточку задания, а переход по ссылке «Фоновые задания» показывает конкретные экземпляры с временем начала и окончания. Если фоновое задание висит в состоянии «Выполняется» заметно дольше своей обычной длительности — это признак зависания. Если состояние «Ошибка», сначала откройте сообщение об ошибке и журнал регистрации, чтобы понять причину.

Состояние «Выполняется» очень долгоВероятное зависание

Сравните длительность с типичным временем выполнения этого задания

Состояние «Ошибка»Задание упало с исключением

Откройте текст ошибки и журнал регистрации за время выполнения

Задание не запускалосьРасписание не срабатывает

Проверьте, включено ли задание и не заблокированы ли регламентные задания на сервере

Несколько активных экземпляровЗадание запущено параллельно

Проверьте блокировки и дубли расписания — возможен конфликт

Как перезапустить задание через консоль заданий

Это основной и самый безопасный способ, доступный пользователю с правами администратора прямо в режиме предприятия. Он подходит, когда задание завершилось с ошибкой или остановлено, но сеанс не завис.

Порядок действий
  1. 1
    Откройте Администрирование → Обслуживание → Регламентные и фоновые задания
  2. 2
    Найдите нужное задание и проверьте его состояние и текст последней ошибки
  3. 3
    Если задание выполняется и зависло — нажмите «Завершить» в списке фоновых заданий и дождитесь смены состояния
  4. 4
    Убедитесь, что причина сбоя устранена: доступен внешний сервис, есть свободное место, сняты блокировки
  5. 5
    Нажмите «Выполнить сейчас» (или «Выполнить») в карточке регламентного задания
  6. 6
    Проверьте результат: состояние должно смениться на «Выполняется», затем на «Завершено» без ошибок

Если кнопка «Выполнить сейчас» недоступна

Кнопка ручного запуска может быть неактивна, если задание уже выполняется, отключено или у пользователя нет права «Администрирование» / «Толстый клиент». Также в файловой базе ручной запуск работает только при запущенном отдельном сеансе-обработчике — в типовых конфигурациях он стартует автоматически при включённой константе выполнения заданий.

Как перезапустить задание программно

Когда нужно перезапустить задание из внешней обработки, расширения или по событию в коде, используется объектная модель фоновых заданий. Типовой сценарий — найти активное задание по ключу регламентного задания, прервать его и запустить новое.

bsl
// Найти активные фоновые задания регламентного задания
Отбор = Новый Структура("ИмяМетода", "МойМетодОбмена");
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
    Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
        Задание.Отменить(); // запрос на завершение
    КонецЕсли;
КонецЦикла;
// Запустить заново
НовоеЗадание = ФоновыеЗадания.Выполнить("МойМетодОбмена", , "КлючЗадания", "Перезапуск вручную");

Метод Отменить() — это не мгновенное уничтожение сеанса, а запрос на прерывание: задание завершится, когда дойдёт до точки, где платформа может безопасно выбросить исключение. Если код задания долго крутится внутри одного запроса или COM-вызова, отмена может занять минуты. Метод ОжидатьЗавершения() позволяет дождаться фактического окончания перед повторным запуском.

Учтите ограничение: у двух одновременно активных фоновых заданий не может быть одинакового ключа. Если вы запускаете задание с ключом, который уже занят активным сеансом, платформа выдаст ошибку. Поэтому сначала убедитесь, что предыдущий экземпляр реально завершён, а не просто отменён «на бумаге».

Что делать, если задание зависло и не завершается

Если кнопка «Завершить» и метод Отменить() не помогают в течение разумного времени (обычно несколько минут), сеанс завис на уровне платформы или СУБД. В клиент-серверном варианте такой сеанс снимают принудительно через консоль кластера серверов 1С.

Откройте консоль администрирования серверов 1С, найдите нужный кластер, раскройте ветку «Сеансы», отфильтруйте по типу «Фоновое задание» и найдите сеанс по времени начала и имени задания. Выделите его и выберите «Удалить» — рабочий процесс завершит сеанс принудительно. После этого задание можно запускать заново.

В файловой базе зависший фоновый сеанс завершается закрытием соответствующего процесса 1cv8.exe на компьютере, где он запущен, либо завершением сеанса через «Администрирование» → «Активные пользователи», если сеанс там виден.

Почему задание падает снова после перезапуска

Перезапуск решает проблему только если сбой был разовым — обрыв сети, временная недоступность веб-сервиса, перезагрузка сервера СУБД. Если причина постоянная, задание упадёт с той же ошибкой. Типичные постоянные причины: неверные логин и пароль внешнего сервиса, отсутствие прав у пользователя, от имени которого выполняется задание, нехватка места на диске, блокировка таблиц другим процессом, ошибка в коде после обновления конфигурации.

Диагностику ведите по журналу регистрации: отфильтруйте события по имени метода задания за период выполнения. Текст ошибки обычно указывает на источник — «Ошибка при вызове метода веб-сервиса», «Конфликт блокировок», «Поле объекта не обнаружено». Последнее почти всегда означает, что после обновления код задания не совместим с текущей конфигурацией, и перезапуском тут не помочь — нужна доработка.

Типичные ошибки
01
Перезапуск без анализа ошибки — задание падает снова, а в логах накапливаются дубли попыток
02
Повторный запуск обмена, не проверив, завершился ли предыдущий — дублирование документов и сообщений обмена
03
Принудительное снятие сеанса во время активной записи — неполные транзакции и повреждённые промежуточные данные
04
Запуск задания с тем же ключом, пока активен старый экземпляр — ошибка платформы и ложный вывод о неисправности
05
Игнорирование отключённого расписания — задание перезапускают вручную, но оно не работает штатно, потому что снят флаг «Использование»

Как проверить результат и настроить автоматический перезапуск

После перезапуска убедитесь, что задание не просто стартовало, а завершилось успешно: в списке фоновых заданий состояние должно быть «Завершено», время окончания заполнено, в журнале регистрации нет новых ошибок по этому методу. Дополнительно проверьте прикладной результат — появились ли ожидаемые документы, обновились ли курсы, ушло ли сообщение обмена.

Контрольные точки

Как проверить результат

Состояние фонового задания
Норма

«Завершено», заполнено время окончания

Тревожный признак

«Ошибка» или снова бесконечное «Выполняется»

Журнал регистрации
Норма

Нет новых ошибок по методу задания

Тревожный признак

Повторяющиеся исключения с тем же текстом

Прикладной результат
Норма

Данные появились или обновились

Тревожный признак

Задание завершено, но данных нет — логика отработала вхолостую

Следующий запуск по расписанию
Норма

Задание стартует само в назначенное время

Тревожный признак

Расписание не срабатывает — проверяйте блокировку регламентных заданий

Если задание периодически падает по объективным причинам (нестабильный внешний сервис), имеет смысл настроить автоматический перезапуск. В карточке регламентного задания есть параметры «Количество повторов при аварийном завершении» и «Интервал повтора при аварийном завершении» — платформа сама перезапустит задание указанное число раз с заданной паузой. Это не заменяет устранения причины, но сглаживает разовые сбои.

На уровне сервера проверьте, что в свойствах информационной базы в консоли кластера не установлен флаг «Блокировка регламентных заданий» — с ним ни одно задание не запустится ни по расписанию, ни принудительно через планировщик. Этот флаг часто забывают снять после восстановления базы из копии.

Маршрут решения

Как выбрать действие

Задание завершилось с ошибкой, причина разовая (сеть, перезагрузка сервера)Устраните причину и нажмите «Выполнить сейчас» в консоли заданий
Задание висит в состоянии «Выполняется» дольше обычногоНажмите «Завершить», при бездействии — снимите сеанс в консоли кластера
Задание не запускается по расписанию вообщеПроверьте флаг «Использование», расписание и блокировку регламентных заданий в свойствах базы
Задание падает с одной и той же ошибкой после каждого перезапускаНе перезапускайте повторно — анализируйте журнал регистрации и исправляйте причину
Нужен перезапуск из кода или внешней обработкиИспользуйте ФоновыеЗадания.ПолучитьФоновыеЗадания, Отменить и Выполнить с проверкой состояния

FAQ: частые вопросы о перезапуске фоновых заданий

Можно ли перезапустить фоновое задание без прав администратора?

Нет. Просмотр и управление регламентными и фоновыми заданиями требуют права «Администрирование» в конфигурации, а работа с консолью кластера — прав администратора кластера серверов. Обычный пользователь может только косвенно инициировать операции, предусмотренные прикладным интерфейсом (например, кнопку «Выполнить обмен» в рабочем месте).

Чем отличается «Завершить» от удаления сеанса в консоли кластера?

«Завершить» и метод Отменить() отправляют заданию штатный запрос на прерывание — код получает исключение в безопасной точке, транзакция откатывается корректно. Удаление сеанса в консоли кластера — принудительный обрыв процесса: транзакция откатывается СУБД, но прикладная логика не получает шанса завершиться чисто. Принудительный способ — крайняя мера для зависших сеансов.

Почему задание не запускается по расписанию после перезагрузки сервера?

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

Опасно ли перезапускать задание обмена данными?

Опасен не сам перезапуск, а перезапуск при незавершённом предыдущем экземпляре: два параллельных обмена могут создать дубли документов и конфликты сообщений. Сначала убедитесь, что старый экземпляр полностью завершён, и только потом запускайте новый. Штатные механизмы обмена (например, через БСП) обычно сами защищаются от параллельного запуска блокировками.

Как сделать, чтобы задание перезапускалось автоматически после сбоя?

В карточке регламентного задания заполните параметры «Количество повторов при аварийном завершении» и «Интервал повтора». Платформа сама перезапустит задание заданное число раз. Это помогает при разовых сбоях, но не заменяет устранения постоянной причины ошибок.

Где смотреть причину падения задания?

Основной источник — журнал регистрации (Администрирование → Обслуживание → Журнал регистрации): отфильтруйте события по времени выполнения задания и уровню «Ошибка». Дополнительно текст последней ошибки виден прямо в списке регламентных заданий в колонке состояния и в карточке фонового задания.

Итог

Что важно запомнить

Перезапуск выполняется через консоль заданий кнопкой «Выполнить сейчас» после проверки состояния и причины сбоя. Зависший сеанс сначала завершают штатно, и только при бездействии — принудительно через консоль кластера. Перед повторным запуском убедитесь, что предыдущий экземпляр завершён, а результат всегда подтверждайте по состоянию задания, журналу регистрации и прикладным данным.