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

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

Как остановить фоновые задания в 1С 8.3

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

Фоновые задания в 1С 8.3 выполняют обмены данными, расчёт итогов, загрузку курсов валют, полнотекстовое индексирование и другие регламентные операции. Когда такое задание зависает, оно блокирует регистры, держит соединение с сервером СУБД и мешает пользователям работать. Остановить его можно несколькими способами — через стандартную консоль заданий, консоль кластера серверов или программно.

Выбор способа зависит от режима работы базы (файловый или клиент-серверный), наличия прав администратора и того, отвечает ли ещё сеанс задания. Ниже разобраны все рабочие методы, их ограничения и способы проверить, что задание действительно завершилось, а не «повисло» в статусе.

Как понять, что фоновое задание зависло и его нужно останавливать

Прежде чем что-то прерывать, убедитесь, что задание действительно зависло, а не просто долго выполняется. Тяжёлые операции — перепроведение документов за год, обновление полнотекстового индекса, свёртка базы — могут идти часами, и это норма.

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

Статус «Выполняется» часамиВозможно зависание

Сравните с типичной длительностью этого задания и проверьте активность сеанса в кластере

Ошибки блокировок у пользователейЗадание держит блокировку

Найдите сеанс задания в консоли кластера и посмотрите, какие соединения оно удерживает

Нет записей в журнале регистрацииЗадание неактивно

Проверьте, жив ли сеанс: если соединения нет, задание уже фактически завершено

Остановка через «Консоль заданий» в режиме 1С:Предприятие

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

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

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

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

Завершение сеанса задания в консоли кластера серверов

Если база работает в клиент-серверном режиме, самый надёжный способ — консоль администрирования серверов 1С. Каждое фоновое задание выполняется в отдельном сеансе, и этот сеанс можно завершить принудительно.

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

Через ветку «Соединения» можно дополнительно проверить, какой рабочий процесс rphost обслуживает задание и какие блокировки оно держит на уровне СУБД. Это полезно, когда пользователи массово получают ошибки «Конфликт блокировок».

Программная отмена задания на встроенном языке

Когда интерактивные средства недоступны или нужно автоматизировать остановку, используют код на встроенном языке. Метод Отменить() отправляет заданию сигнал завершения:

Отбор = Новый Структура("ИмяМетода", "ОбменДанными.ВыполнитьОбмен");

Найденные = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);

Для Каждого Задание Из Найденные Цикл

Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда

Задание.Отменить();

КонецЕсли;

КонецЦикла;

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

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

Особенности файлового режима работы

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

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

Если база опубликована на веб-сервере, фоновые задания обслуживаются рабочими процессами веб-сервера (w3wp для IIS, процессы Apache). Перезапуск пула приложений или службы веб-сервера остановит все задания сразу — делайте это только при согласовании с пользователями.

Проверка результата и предотвращение повторного запуска

После остановки обязательно убедитесь, что задание действительно завершилось. Обновите список в консоли заданий: состояние должно быть «Завершено», «Ошибка» или «Отменено». В консоли кластера сеанс задания должен исчезнуть из списка активных.

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

Чтобы задание не запустилось снова по расписанию и не повторило проблему, временно отключите соответствующее регламентное задание, разберитесь с причиной зависания (блокировки, ошибки в коде, недоступность внешнего ресурса) и только потом включайте его обратно.

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

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

Состояние в консоли заданий
Норма

«Завершено», «Ошибка» или «Отменено»

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

По-прежнему «Выполняется» спустя несколько минут

Список сеансов в кластере
Норма

Сеанс фонового задания отсутствует

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

Сеанс активен, растёт время работы

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

Есть запись о завершении или ошибке задания

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

Последняя запись задания датирована давно, новых нет

Блокировки у пользователей
Норма

Ошибки конфликта блокировок прекратились

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

Пользователи по-прежнему не могут записывать документы

Типичные ошибки при остановке фоновых заданий

Самая частая ошибка — ожидание мгновенного эффекта от кнопки «Отменить». Администратор жмёт её несколько раз, не видит реакции и начинает завершать процессы наугад. На деле отмена срабатывает только в точках, где код возвращает управление платформе.

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

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

Типичные ошибки
01
Многократное нажатие «Отменить» без ожидания — отмена не мгновенная, дайте заданию 1–2 минуты на завершение
02
Завершение чужого сеанса в кластере — сверяйте время начала и имя базы перед удалением сеанса
03
Остановка фонового задания без отключения регламентного — планировщик тут же запустит его заново
04
Завершение rphost с пользовательскими сеансами — несохранённые данные пользователей будут потеряны

Частые вопросы

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

Отменить задание через консоль заданий или программно может только пользователь с правами администрирования (роль «Администратор системы» / «Полные права»). Обычный пользователь может лишь сообщить администратору о проблеме.

Почему задание не останавливается даже после завершения сеанса?

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

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

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

Как остановить все фоновые задания сразу?

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

Задание зависло в файловой базе, а второй сеанс открыть не получается. Что делать?

Если база монопольно занята зависшим сеансом, завершите процесс 1cv8.exe этого сеанса через диспетчер задач. Файловая база при этом не повреждается — журнал транзакций обеспечивает целостность, но при следующем входе возможна короткая проверка.

Итог

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

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