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

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

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

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

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

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

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

Где находятся регламентные и фоновые задания

Термины часто путают. Регламентное задание — это объект метаданных с расписанием: что и когда запускать. Фоновое задание — конкретный экземпляр выполнения, порождённый регламентным заданием или запущенный программно из кода. Одно регламентное задание за день может породить десятки фоновых.

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

Проверка блокировки заданий на уровне базы

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

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

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

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

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

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

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

В файловой базе нет сервера, который выполнял бы задания сам по себе. Фоновые задания исполняются только внутри запущенного клиентского сеанса. Если все пользователи закрыли программу — задания стоят. Это главная причина жалоб «задание настроено, но не работает».

Есть два рабочих решения. Первое — типовое: в разделе регламентных операций включить настройку «Выполнять регламентные задания в отдельном сеансе» и держать запущенным отдельный сеанс 1С под выделенным пользователем (например, на сервере или дежурном компьютере). Второе — запускать базу по расписанию планировщика Windows с параметрами командной строки /Execute с указанием обработки или через ВыполнитьОбработку, либо использовать параметр запуска отдельного сеанса для регламентных заданий.

Программный запуск фонового задания

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

Требования к процедуре: она должна быть экспортной, размещаться в общем модуле с признаком «Сервер» и принимать параметры строго в том порядке, в котором они переданы. Ключ задания позволяет избежать параллельных запусков: попытка запустить задание с уже активным ключом вызовет исключение.

bsl
ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(ПериодОтчета);
ФоновыеЗадания.Выполнить("ОбработкаДанных.СформироватьОтчет", ПараметрыЗадания, "Отчет_" + Формат(ПериодОтчета, "ДФ=yyyyMM"), "Формирование отчета");

Создание собственного регламентного задания в конфигураторе

Если типового задания нет, создайте его в конфигураторе: ветка «Общие → Регламентные задания», команда «Добавить». Заполните свойства: имя, метод (экспортная процедура серверного общего модуля без параметров), расписание, ключ, признак использования. Свойство «Количество повторов при аварийном завершении» и «Интервал повтора» определяют поведение при сбоях — для нестабильных обменов имеет смысл задать 2–3 повтора с паузой.

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

Диагностика: задание не выполняется или падает с ошибкой

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

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

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

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

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

«Завершено» с актуальным временем окончания

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

«Завершено аварийно» или зависшее «Выполняется»

Журнал регистрации за период запуска
Норма

События задания без ошибок

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

Исключения, ошибки доступа, таймауты

Прикладной результат
Норма

Курсы загружены, письма отправлены, отчёт сформирован

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

Данные не изменились, хотя задание «выполнено»

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

Часто задаваемые вопросы

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

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

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

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

Как запустить задание немедленно, не дожидаясь расписания?

В типовых конфигурациях в списке регламентных заданий есть команда «Выполнить сейчас» (или «Выполнить однократно»). Задание запустится в фоне с текущими настройками, расписание при этом не меняется.

Задание завершилось аварийно — где смотреть причину?

Откройте журнал регистрации («Администрирование → Обслуживание → Журнал регистрации»), установите отбор по уровню «Ошибка» за время выполнения задания. Текст исключения покажет процедуру и строку, в которой произошёл сбой.

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

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

Сколько заданий можно запускать одновременно?

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

Итог

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

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