Администрирование · 10 мин
Как запустить регламентное задание в 1С
Как запустить регламентное задание в 1С: включение в консоли заданий, запуск через код, настройка расписания, диагностика ошибок и типичные проблемы с фоновыми заданиями.
Регламентные задания в 1С выполняют фоновую работу по расписанию: обмен данными, расчёт итогов, рассылку отчётов, обновление курсов валют. Когда задание не отрабатывает или его нужно запустить вне расписания, администратору приходится вмешиваться вручную — через консоль заданий, конфигуратор или код встроенного языка.
Способ запуска зависит от режима работы базы. В файловом варианте регламентные задания выполняет отдельный сеанс, который нужно явно запустить; в клиент-серверном варианте за выполнение отвечает кластер серверов 1С. Ниже разобраны оба сценария, а также программный запуск и диагностика типичных сбоев.
Что нужно проверить перед запуском
Прежде чем запускать задание вручную, убедитесь, что оно вообще может выполняться. Откройте список регламентных заданий и проверьте три вещи: установлен ли флаг «Использование», корректно ли задано расписание и не отключены ли регламентные задания на уровне всей информационной базы.
В клиент-серверном варианте блокировка регламентных заданий часто включается при восстановлении копии базы или при переносе — это защита от случайного выполнения обменов в тестовой среде. Проверить и снять блокировку можно в консоли кластера (свойства информационной базы, параметр «Блокировка регламентных заданий») или через обработку «Блокировка работы с внешними ресурсами» в типовых конфигурациях на БСП.
Также убедитесь, что у пользователя, от имени которого выполняется задание (обычно это пользователь, указанный в свойствах задания, или служебная учётная запись), есть все необходимые права. Если поле «Имя пользователя» в задании пустое, оно выполняется от имени пользователя по умолчанию, и нехватка прав — частая причина ошибок.
Как проверить готовность задания к запуску
Флаг установлен
Флаг снят — задание не будет выполняться ни по расписанию, ни вручную в некоторых сценариях
Блокировка отсутствует
В свойствах ИБ в кластере стоит блокировка — задания молча не запускаются
Расписание заполнено и содержит будущие даты выполнения
Расписание пустое или даты в прошлом
Запуск через интерфейс типовой конфигурации
В конфигурациях на базе Библиотеки стандартных подсистем (УТ, ERP, БП, ЗУП и других) есть встроенный раздел «Администрирование → Обслуживание → Регламентные и фоновые задания». Здесь отображается список всех заданий с состоянием последнего выполнения: дата, результат, текст ошибки.
Чтобы запустить задание немедленно, выделите его в списке и нажмите «Выполнить сейчас». Задание будет поставлено в очередь и выполнено фоновым заданием в ближайшие секунды. Статус можно обновить кнопкой обновления списка — при успехе в колонке состояния появится дата выполнения без пометки об ошибке.
- 1Откройте «Администрирование → Обслуживание → Регламентные и фоновые задания»
- 2Найдите нужное задание в списке и проверьте, что оно включено
- 3Нажмите «Выполнить сейчас»
- 4Обновите список через 10–30 секунд и проверьте колонку «Состояние»
- 5При ошибке откройте журнал регистрации и найдите событие с именем задания
Запуск через консоль заданий
Если типового раздела нет (самописная конфигурация) или нужен расширенный контроль, используется внешняя обработка «Консоль заданий» — она входит в состав диска ИТС и доступна в открытых репозиториях инструментов разработчика. Консоль показывает и регламентные, и фоновые задания, позволяет менять расписание, запускать задания и смотреть ошибки.
В консоли выберите задание и нажмите «Выполнить сейчас» — обработка программно вызовет метод задания или создаст фоновое задание по шаблону. Дополнительное преимущество: консоль показывает активные фоновые задания в реальном времени, что помогает понять, не зависло ли задание, и при необходимости отменить его.
Запуск программно из кода
Когда запуск нужно автоматизировать — например, из другого фонового задания, из внешней системы через HTTP-сервис или из планировщика Windows, — используют методы встроенного языка. Классический способ: получить объект задания по уникальному идентификатору или найти его по имени метода, затем создать фоновое задание.
// Поиск регламентного задания по имени метода
Отбор = Новый Структура("ИмяМетода", "ОбновлениеКурсовВалют");
Задания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
Если Задания.Количество() > 0 Тогда
ФоновыеЗадания.Выполнить(Задания[0].ИмяМетода, , Задания[0].УникальныйИдентификатор);
КонецЕсли;Альтернатива — вызвать метод задания напрямую как обычную процедуру общего модуля. Это проще, но выполнение пойдёт в текущем сеансе и заблокирует пользователя на время работы. Такой вариант допустим только для быстрых операций или в отладочных целях.
В файловом варианте для автономного выполнения заданий часто настраивают отдельный сеанс, запущенный с параметром /ExecuteScheduledJobs (в старых версиях — через РегламентныеЗадания.ВыполнитьРегламентныеЗадания() в цикле). Без такого сеанса-«исполнителя» регламентные задания в файловой базе по расписанию не выполняются вовсе.
Особенности файлового и клиент-серверного режимов
Сравнение режимов работы
Задания выполняет отдельно запущенный сеанс 1С с ключом /ExecuteScheduledJobs. Если сеанс закрыт — задания не работают. Подходит для небольших баз, но требует постоянно запущенного компьютера.
Задания выполняет рабочий процесс кластера автоматически. Управление — через консоль кластера и свойства ИБ. Надёжнее, но требует контроля блокировок и нагрузки на сервер.
Расписания и запуск управляются менеджером сервиса. Ручной запуск доступен через «Регламентные и фоновые задания», внешние обработки и прямой доступ к кластеру недоступны.
В клиент-серверном варианте дополнительно можно ограничить количество одновременно выполняемых фоновых заданий и настроить приоритеты рабочих процессов. Если сервер перегружен, задание может долго стоять в очереди — это нормально, но при систематических задержках стоит разносить тяжёлые задания по времени.
Диагностика: задание запущено, но не работает
Главный инструмент диагностики — журнал регистрации. Отфильтруйте события по имени метода задания или по виду события «Фоновое задание» и посмотрите текст ошибки. Типовые причины: нехватка прав у пользователя задания, обращение к недоступному внешнему ресурсу (сайт, FTP, почтовый сервер), взаимоблокировки при одновременной работе пользователей.
Отдельный случай — задание завершается «успешно», но результата нет. Это бывает, когда метод задания перехватывает исключения и пишет их только в свой лог, либо когда задание работает с областью данных, отличной от ожидаемой (актуально для разделённых баз). Проверяйте не только факт выполнения, но и прикладной результат: появились ли записи, обновились ли данные.
Проверка результата после запуска
После ручного запуска зафиксируйте три контрольные точки: в списке заданий появилась новая дата последнего выполнения, в журнале регистрации нет ошибок по этому заданию, прикладной результат достигнут (курсы обновлены, документы выгружены, письма отправлены). Только совокупность всех трёх признаков подтверждает успех.
Если задание выполняется долго, проверьте список активных фоновых заданий — там видно, работает оно или зависло. Зависшее задание можно отменить из консоли заданий или консоли кластера, после чего разобраться с причиной: чаще всего это ожидание блокировки или недоступный внешний ресурс.
Что важно запомнить
Ручной запуск делается через «Регламентные и фоновые задания» кнопкой «Выполнить сейчас» или через консоль заданий. Перед запуском проверьте флаг «Использование», блокировку заданий в базе и права пользователя задания. В файловом режиме нужен отдельный сеанс-исполнитель. Результат всегда подтверждайте журналом регистрации и прикладными данными.
Частые вопросы
Почему регламентное задание не выполняется по расписанию, хотя включено?
Чаще всего причина в одном из трёх: в файловой базе не запущен сеанс, выполняющий фоновые задания; в клиент-серверной базе включена блокировка регламентных заданий в свойствах ИБ в кластере; расписание задания не содержит актуальных дат (например, задан период, который уже истёк). Проверяйте в указанном порядке.
Можно ли запустить регламентное задание из командной строки?
Напрямую — нет, но можно запустить толстый или тонкий клиент с параметром /Execute и указанием внешней обработки, которая программно запускает нужное задание. В клиент-серверном варианте также доступен запуск через RAC или через HTTP-сервис, если он предусмотрен конфигурацией.
От имени какого пользователя выполняется задание?
Если в свойствах задания указано имя пользователя — от него. Если поле пустое, задание выполняется от имени пользователя по умолчанию с полными правами в пределах сеанса фонового задания. Задать конкретного служебного пользователя с минимально необходимыми правами — хорошая практика безопасности.
Что делать, если задание зависло в состоянии «Выполняется»?
Найдите соответствующее фоновое задание в консоли заданий или в консоли кластера и отмените его. Затем проверьте журнал регистрации на предмет ошибок и блокировок. Если задание зависает регулярно, вероятна проблема с доступностью внешнего ресурса или взаимоблокировка — тогда нужен анализ кода метода и технологического журнала.
Можно ли запустить задание чаще, чем раз в минуту?
Минимальный интервал регламентного задания ограничен: повторное выполнение возможно не чаще одного раза в минуту. Если нужна более частая реакция на события, используйте другие механизмы — подписки на события, очереди сообщений или внешние компоненты интеграции.
Опасно ли менять расписание типовых заданий?
Само по себе изменение расписания безопасно и не относится к изменению конфигурации. Риск в другом: некоторые задания связаны между собой (например, загрузка данных должна завершиться до расчёта), поэтому при сдвиге времени одного задания проверьте зависимые. Также учитывайте нагрузку: тяжёлые задания лучше разносить на нерабочие часы.