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

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

Фоновые задания в 1С 8.3: где найти и как с ними работать

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

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

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

Что такое фоновые и регламентные задания и чем они отличаются

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

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

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

Где найти фоновые задания в типовой конфигурации

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

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

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

Порядок действий в типовой конфигурации
  1. 1
    Откройте раздел «Администрирование» (или «НСИ и администрирование» в УТ/ERP).
  2. 2
    Перейдите в «Поддержка и обслуживание» → «Регламентные операции».
  3. 3
    Найдите нужное задание по наименованию, проверьте колонку «Состояние».
  4. 4
    Откройте карточку задания и посмотрите текст ошибки на закладке с информацией о выполнении.
  5. 5
    При необходимости нажмите «Выполнить сейчас» и убедитесь, что задание завершилось успешно.

Универсальный способ: консоль заданий (обработка)

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

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

Запускается обработка через «Файл → Открыть» в толстом или тонком клиенте. В клиент-серверной базе открывать её нужно под пользователем с полными правами, иначе часть операций (отмена задания, изменение расписания) будет недоступна.

Как найти фоновые задания программно

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

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

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

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

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

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

Сообщить(Задание.Наименование + " | " + Задание.Ключ + " | старт: " + Задание.Начало);

КонецЦикла;

bsl
Отбор = Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно);
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
    Сообщить(Задание.Наименование + " | " + Задание.Начало);
КонецЦикла;

Особенности файловой и клиент-серверной базы

В клиент-серверном варианте фоновые задания выполняются на сервере 1С:Предприятия, и их видно также в консоли кластера: ветка «Сеансы» покажет сеансы с типом «Фоновое задание», а ветка «Соединения» — соответствующие соединения с СУБД. Это главный способ понять, какое задание держит ресурсы сервера, и при необходимости принудительно завершить сеанс.

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

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

Сравнение вариантов

Список в типовой конфигурации

Подходит для быстрой проверки регламентных заданий в УТ, ERP, БП, ЗУП. Ограничение: видны не все фоновые задания и не всегда есть полный текст ошибки.

Консоль заданий (ИР)

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

Консоль кластера

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

Программный запрос

Подходит для автоматического мониторинга и уведомлений об ошибках. Требует написания кода и места для вывода результата.

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

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

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

Отдельная ситуация — задание «висит» в состоянии «Активно» часами. Чаще всего это бесконечный цикл в коде, ожидание заблокированного ресурса или оборванное соединение с СУБД. Такое задание нужно отменить (кнопка «Отменить» в консоли заданий или завершение сеанса в консоли кластера), а затем искать причину в коде и в журнале регистрации.

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

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

Состояние задания после ручного запуска
Норма

«Завершено» без записей об ошибке

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

«Ошибка» или задание осталось «Активно» дольше обычного времени выполнения

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

Соответствует расписанию (например, ежечасное задание выполнялось в последний час)

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

Дата устарела — задание не запускается по расписанию

Журнал регистрации по событию задания
Норма

Только информационные записи о начале и завершении

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

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

Частые ошибки при работе с фоновыми заданиями

Чаще всего проблемы возникают не из-за самих заданий, а из-за неверных действий администратора или разработчика. Ниже — то, что встречается в практике регулярно.

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

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

FAQ: частые вопросы о фоновых заданиях в 1С 8.3

Где посмотреть все активные фоновые задания прямо сейчас?

Быстрее всего — в консоли кластера сервера 1С (ветка «Сеансы», тип сеанса «Фоновое задание») в клиент-серверной базе. Универсальный вариант для любой базы — консоль заданий с фильтром по состоянию «Активно» или код с отбором по СостояниеФоновогоЗадания.Активно.

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

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

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

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

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

Да. В типовом списке «Регламентные операции» есть команда «Выполнить сейчас», в консоли заданий — аналогичная кнопка. Программно регламентное задание запускают методом ФоновыеЗадания.Выполнить с указанием метода задания.

Задание завершилось с ошибкой, но текста ошибки нет. Где искать?

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

Чем фоновое задание отличается от сеанса пользователя в консоли кластера?

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

Итог

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

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