Администрирование · 12 мин
Фоновые задания в 1С 8.3: где найти и как с ними работать
Где найти фоновые задания в 1С 8.3: консоль заданий, регламентные операции, просмотр ошибок и отладка. Практическая инструкция для администратора и разработчика.
Фоновые задания в 1С 8.3 — это механизм выполнения кода без блокировки интерфейса пользователя: обмены данными, расчёт итогов, отправка отчётов, загрузка курсов валют выполняются асинхронно. Когда что-то «не сработало» — письмо не ушло, курсы не обновились, синхронизация остановилась — первым делом нужно найти само задание и посмотреть его состояние и ошибки.
Проблема в том, что «единой кнопки» для фоновых заданий в типовом интерфейсе нет: часть заданий видна в разделе администрирования, часть — только через специальные обработки или консоль кластера. Ниже разобраны все рабочие способы найти фоновые задания в файловой и клиент-серверной базе, посмотреть их ошибки и понять, почему задание не выполняется.
Что такое фоновые и регламентные задания и чем они отличаются
Прежде чем искать, важно различать два родственных механизма, потому что находятся они в разных местах. Регламентное задание — это объект метаданных конфигурации: у него есть расписание, метод (общий модуль и процедура) и признак использования. Платформа сама запускает его по расписанию. Примеры: «Загрузка курсов валют», «Обновление индекса полнотекстового поиска», «Отправка и получение почты».
Фоновое задание — это конкретный экземпляр выполнения кода в фоне. Оно появляется либо при срабатывании регламентного задания, либо когда код явно вызывает ФоновыеЗадания.Выполнить() — например, при длительной проводке документа или формировании тяжёлого отчёта кнопкой «Сформировать в фоне».
Практический вывод: регламентные задания вы настраиваете и включаете, а фоновые задания наблюдаете и диагностируете. В консоли заданий видны оба типа, но у фонового задания, порождённого регламентным, заполнено поле «Регламентное задание» — по нему удобно понять, кто породил процесс.
Где найти фоновые задания в типовой конфигурации
В конфигурациях на Библиотеке стандартных подсистем (УТ 11, ERP, Бухгалтерия 3.0, ЗУП 3.1) список заданий встроен в интерфейс. Путь зависит от конфигурации, но логика одинаковая: раздел «Администрирование» → «Поддержка и обслуживание» → «Регламентные операции» (в некоторых версиях — «Регламентные и фоновые задания»).
Откроется список регламентных заданий с колонками: наименование, состояние последнего выполнения, дата последнего запуска, расписание. Двойной щелчок по строке открывает карточку задания, а команда «Выполнить сейчас» позволяет запустить задание вручную, не дожидаясь расписания. Если задание завершилось с ошибкой, в колонке состояния будет красный индикатор, а текст ошибки доступен по ссылке.
Если пункта «Регламентные операции» нет в меню, проверьте права: список заданий виден только пользователям с правами администратора или ролью «Администратор системы». Также в некоторых конфигурациях список скрыт, пока не включён режим отображения «Все функции» (команда доступна через кнопку с тремя полосками в правом верхнем углу, если её разрешил администратор).
- 1Откройте раздел «Администрирование» (или «НСИ и администрирование» в УТ/ERP).
- 2Перейдите в «Поддержка и обслуживание» → «Регламентные операции».
- 3Найдите нужное задание по наименованию, проверьте колонку «Состояние».
- 4Откройте карточку задания и посмотрите текст ошибки на закладке с информацией о выполнении.
- 5При необходимости нажмите «Выполнить сейчас» и убедитесь, что задание завершилось успешно.
Универсальный способ: консоль заданий (обработка)
Когда типового списка недостаточно — задание самописное, конфигурация не на БСП, или нужно видеть все фоновые задания, а не только регламентные, — используют внешнюю обработку «Консоль заданий». Она входит в состав Инструментов разработчика (ИР) и распространяется как отдельная обработка для управляемого приложения.
Консоль показывает два списка: регламентные задания (с расписанием, признаком использования и последним выполнением) и фоновые задания (с фильтрами по состоянию, периоду, ключу). Здесь можно отменить зависшее активное задание, посмотреть полный стек ошибки, изменить расписание и вручную запустить регламентное задание.
Запускается обработка через «Файл → Открыть» в толстом или тонком клиенте. В клиент-серверной базе открывать её нужно под пользователем с полными правами, иначе часть операций (отмена задания, изменение расписания) будет недоступна.
Как найти фоновые задания программно
Для разработчика и при автоматизации диагностики список фоновых заданий получают методом ФоновыеЗадания.ПолучитьФоновыеЗадания(). Метод принимает структуру отбора: по состоянию, ключу, наименованию, регламентному заданию. Результат — массив объектов с полями «Состояние», «Начало», «Конец», «ИнформацияОбОшибке».
Типовой сценарий — найти зависшие или упавшие задания за последние сутки и вывести их ошибки в журнал регистрации или на форму мониторинга. Отбор по состоянию СостояниеФоновогоЗадания.Активно покажет всё, что выполняется прямо сейчас, — это удобно, когда пользователи жалуются, что «база тормозит», и нужно понять, какие фоновые процессы грузят сервер.
Пример кода для быстрой диагностики через «Выполнить произвольное выражение» в консоли кода или внешнюю обработку:
Отбор = Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно);
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
Сообщить(Задание.Наименование + " | " + Задание.Ключ + " | старт: " + Задание.Начало);
КонецЦикла;
Отбор = Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно);
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Для Каждого Задание Из Задания Цикл
Сообщить(Задание.Наименование + " | " + Задание.Начало);
КонецЦикла;Особенности файловой и клиент-серверной базы
В клиент-серверном варианте фоновые задания выполняются на сервере 1С:Предприятия, и их видно также в консоли кластера: ветка «Сеансы» покажет сеансы с типом «Фоновое задание», а ветка «Соединения» — соответствующие соединения с СУБД. Это главный способ понять, какое задание держит ресурсы сервера, и при необходимости принудительно завершить сеанс.
В файловой базе кластера нет, и задания выполняются в отдельных потоках процесса клиентского приложения или вспомогательного процесса. Важное ограничение: в файловой базе регламентные задания выполняются только пока запущен сеанс, в котором платформа их планирует (обычно это сеанс, запущенный с ключом /ExecuteScheduledJobs или любой пользовательский сеанс, если не настроено иначе). Если все пользователи вышли — задания по расписанию не выполнятся.
Поэтому жалоба «в файловой базе ночные задания не отрабатывают» почти всегда означает, что ночью нет ни одного активного сеанса. Решение — настроить запуск отдельного сеанса планировщиком Windows с параметром выполнения регламентных заданий или перейти на клиент-серверный вариант, где заданиями управляет сервер независимо от пользователей.
Сравнение вариантов
Подходит для быстрой проверки регламентных заданий в УТ, ERP, БП, ЗУП. Ограничение: видны не все фоновые задания и не всегда есть полный текст ошибки.
Универсальный вариант для любой конфигурации: фильтры, отмена заданий, полный стек ошибок. Требует полных прав и отдельного файла обработки.
Незаменима в клиент-серверной базе для поиска зависших сеансов и принудительного завершения. Не показывает расписания и историю выполнения.
Подходит для автоматического мониторинга и уведомлений об ошибках. Требует написания кода и места для вывода результата.
Как посмотреть ошибки и понять, почему задание не выполняется
Основные источники информации об ошибках: поле «Информация об ошибке» в консоли заданий, журнал регистрации (отбор по событию с именем задания или по пользователю, от имени которого оно выполняется) и технологический журнал на сервере при глубокой диагностике. Начинать стоит с консоли заданий — там ошибка видна сразу после завершения задания с состоянием «Ошибка».
Типовые причины, по которым задание не выполняется или падает: задание заблокировано в консоли кластера (свойство «Блокировка регламентных заданий» у информационной базы), отсутствуют права у пользователя, от имени которого оно работает, ошибка в коде метода, превышен допустимый объём памяти рабочего процесса, либо предыдущий экземпляр задания ещё активен и новый не стартует.
Отдельная ситуация — задание «висит» в состоянии «Активно» часами. Чаще всего это бесконечный цикл в коде, ожидание заблокированного ресурса или оборванное соединение с СУБД. Такое задание нужно отменить (кнопка «Отменить» в консоли заданий или завершение сеанса в консоли кластера), а затем искать причину в коде и в журнале регистрации.
Как проверить результат
«Завершено» без записей об ошибке
«Ошибка» или задание осталось «Активно» дольше обычного времени выполнения
Соответствует расписанию (например, ежечасное задание выполнялось в последний час)
Дата устарела — задание не запускается по расписанию
Только информационные записи о начале и завершении
Записи с уровнем «Ошибка» и текстом исключения
Частые ошибки при работе с фоновыми заданиями
Чаще всего проблемы возникают не из-за самих заданий, а из-за неверных действий администратора или разработчика. Ниже — то, что встречается в практике регулярно.
Ещё одна распространённая ситуация: после обновления конфигурации задание начинает падать, потому что изменилось имя общего модуля или экспортной процедуры, указанной в методе задания. Платформа в этом случае пишет ошибку «Метод не обнаружен». Лечится корректировкой имени метода в свойствах регламентного задания в конфигураторе.
FAQ: частые вопросы о фоновых заданиях в 1С 8.3
Где посмотреть все активные фоновые задания прямо сейчас?
Быстрее всего — в консоли кластера сервера 1С (ветка «Сеансы», тип сеанса «Фоновое задание») в клиент-серверной базе. Универсальный вариант для любой базы — консоль заданий с фильтром по состоянию «Активно» или код с отбором по СостояниеФоновогоЗадания.Активно.
Почему регламентное задание включено, но не выполняется?
Проверьте три вещи: не установлена ли блокировка регламентных заданий в свойствах базы в консоли кластера; есть ли активный сеанс, выполняющий задания (критично для файловой базы); не завис ли предыдущий экземпляр задания в состоянии «Активно» — новый запуск при этом пропускается.
Как узнать, от имени какого пользователя выполняется задание?
В свойствах регламентного задания в конфигураторе есть поле «Имя пользователя» — если оно пустое, задание выполняется от имени пользователя по умолчанию (в клиент-серверном варианте — служебного). Фактического исполнителя видно в журнале регистрации и в консоли кластера по имени пользователя сеанса.
Можно ли запустить фоновое задание вручную, минуя расписание?
Да. В типовом списке «Регламентные операции» есть команда «Выполнить сейчас», в консоли заданий — аналогичная кнопка. Программно регламентное задание запускают методом ФоновыеЗадания.Выполнить с указанием метода задания.
Задание завершилось с ошибкой, но текста ошибки нет. Где искать?
Откройте журнал регистрации с отбором по периоду выполнения и пользователю задания — там обычно есть полный текст исключения. Если и этого мало, на сервере включают технологический журнал с событием EXCP для детальной диагностики.
Чем фоновое задание отличается от сеанса пользователя в консоли кластера?
Фоновое задание — это тоже сеанс, но без пользовательского интерфейса: в списке сеансов у него тип «Фоновое задание» и нет активного клиентского приложения. Завершить его можно так же, как обычный сеанс, но с осторожностью при выполнении транзакционных операций.
Что важно запомнить
В типовых конфигурациях задания ищут в «Администрирование → Поддержка и обслуживание → Регламентные операции», универсальный инструмент — консоль заданий, а в клиент-серверной базе активные процессы видны в консоли кластера. Ошибки смотрят в карточке задания и журнале регистрации, а перед принудительной отменой задания убеждаются, что оно действительно зависло.