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