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

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

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

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

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

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

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

Где в типовой 1С находится список фоновых заданий

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

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

Если пункта меню нет — проверьте права. Просмотр консоли заданий обычно требует роли «Администратор системы» или полных прав. Пользователю без этих прав раздел будет недоступен, и это нормальное ограничение безопасности, а не неисправность.

Как настроить отбор и найти нужное задание

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

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

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

Просмотр фоновых заданий программно

Если типовой консоли нет (самописная конфигурация без БСП) или нужна автоматическая проверка, список получают методом ФоновыеЗадания.ПолучитьФоновыеЗадания(). Метод принимает структуру отбора и возвращает массив объектов с информацией о каждом задании.

bsl
Отбор = Новый Структура;
Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);

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

Для Каждого Задание Из МассивЗаданий Цикл
    Сообщить(Задание.Наименование + " | "
        + Задание.Состояние + " | "
        + Задание.Начало);
КонецЦикла;

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

У каждого объекта задания доступны свойства: УникальныйИдентификатор, Состояние, Наименование, Начало, Конец, ИнформацияОбОшибке, РегламентноеЗадание. Через ИнформацияОбОшибке.Описание программно получают текст ошибки — это используют в мониторингах, которые уведомляют администратора о сбоях.

Просмотр заданий в консоли кластера серверов

В клиент-серверном варианте активные фоновые задания видны также в консоли администрирования серверов 1С. Откройте ветку кластера, выберите нужную информационную базу и перейдите на вкладку «Фоновые задания» — там отображаются задания, выполняющиеся на сервере в текущий момент.

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

Регламентные задания: как связать расписание с запусками

На вкладке «Регламентные задания» консоли видны все настроенные расписания: наименование, расписание, состояние последнего выполнения, дата последнего запуска. Колонка «Состояние» покажет «Ошибка», если последний запуск завершился неудачно, — это первое место, куда стоит смотреть при жалобах «что-то не обновляется».

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

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

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

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

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

«Выполнено», дата последнего запуска свежая

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

«Ошибка» или дата запуска сильно устарела

Количество заданий в состоянии «Выполняется»
Норма

Задания появляются и завершаются за разумное время

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

Задание висит в состоянии «Выполняется» часами

Блокировка регламентных заданий в копии базы
Норма

В рабочей базе блокировки нет

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

Задания не запускаются, хотя расписание активно

Типичные проблемы и их признаки

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

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

Третья проблема — ошибки прав доступа. Фоновое задание выполняется от имени пользователя, указанного в регламентном задании (или системного пользователя). Если у этого пользователя нет прав на объекты, задание падает с ошибкой доступа — текст ошибки в карточке задания это покажет.

Типичные ошибки
01
Смотреть список без снятия отбора по периоду — старые задания просто не видны, и создаётся ложное впечатление, что заданий нет
02
Отменять зависшее задание, не выяснив его назначение — можно оборвать обмен или расчёт на середине
03
Искать историю запусков в консоли кластера — там видны только активные задания, история доступна в консоли заданий внутри базы
04
Забыть про блокировку регламентных заданий в копии базы и искать причину незапуска в расписании

Когда стандартных средств недостаточно

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

Для глубокой диагностики производительности заданий используют технологический журнал сервера 1С и инструменты вроде Центра управления производительностью. Они показывают, какие запросы выполняет задание и где оно «застревает», — этого не даст ни консоль заданий, ни консоль кластера.

Итог

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

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

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

Почему список фоновых заданий пуст, хотя задания точно запускались?

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

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

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

Как узнать, кто запустил фоновое задание?

В карточке задания в консоли БСП видно связанное регламентное задание и пользователь, от имени которого оно выполняется. Для заданий, запущенных вручную из кода, пользователь определяется сеансом, создавшим задание, — его можно отследить по списку активных сеансов в консоли кластера.

Что делать, если фоновое задание завершилось с ошибкой?

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

Видны ли в списке задания, запущенные вручную через ФоновыеЗадания.Выполнить()?

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

Как отменить зависшее фоновое задание?

В консоли заданий выделите задание в состоянии «Выполняется» и нажмите «Отменить». В клиент-серверном режиме то же можно сделать из консоли кластера. Учтите, что отмена прерывает выполнение кода без отката уже сделанных изменений, поэтому перед отменой убедитесь, что задание действительно зависло, а не выполняет длительную операцию.