Расписание регламентных заданий в 1С 8.3: от настройки до проверки запуска
Содержание
Расписание в 1С настраивают в форме регламентных заданий: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Открываете нужное задание, ставите флажок «Включено», по ссылке расписания задаёте время и периодичность, сохраняете. Этот путь одинаков в 1С:Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях на БСП.
Типичная ситуация: курсы валют утром не загрузились, полнотекстовый поиск не находит вчерашние документы, обмен с сайтом встал. Почти всегда причина одна — задание выключено, расписание задано неудачно или базу некому выполнять по расписанию. Ниже — как автоматизировать задачи через планировщик 1С и как убедиться, что он реально работает.
Как работает планировщик 1С: регламентные и фоновые задания
В платформе 1С:Предприятие 8.3 два вида автоматических задач:
- 🕒 Регламентное задание — объект конфигурации с расписанием. Платформа сама запускает его в нужное время. Примеры: загрузка курсов валют, обновление полнотекстового индекса, синхронизация данных, удаление устаревших версий объектов.
- ⚙️ Фоновое задание — разовое выполнение процедуры на сервере. Каждый запуск регламентного задания тоже порождает фоновое задание. Кроме того, программа запускает фоновые задания по команде пользователя: формирование тяжёлого отчёта, закрытие месяца в БП, проведение документов в длительной операции.
Регламентные задания бывают двух типов:
| Тип | Откуда берётся | Что можно менять |
|---|---|---|
| Предопределённое | Создаётся из описания в конфигурации, одно на базу | Расписание, включение, пользователя, повторы |
| Непредопределённое | Создаётся программно, может быть несколько экземпляров (например, по одному на каждую настройку обмена) | То же, плюс можно удалить |
У каждого задания есть метод — процедура общего модуля, которую оно вызывает. Расписание хранится не в конфигурации, а в самой информационной базе. Поэтому обновление конфигурации обычно не сбрасывает ваши настройки времени запуска.
Одно правило платформы снимает много вопросов: новый экземпляр регламентного задания не стартует, пока не завершился предыдущий запуск этого же задания. Если обмен идёт 15 минут, а расписание «каждые 5 минут», задания не наложатся — пропущенные запуски просто не выполнятся.
Настройка расписания в пользовательском режиме и в Конфигураторе
Через форму «Регламентные и фоновые задания»
Это основной способ. Права нужны административные (роль «Полные права» или «Администратор системы»).
- Откройте
Администрирование → Обслуживание. - В группе «Регламентные операции» нажмите ссылку «Регламентные и фоновые задания».
- На вкладке «Регламентные задания» найдите задание по наименованию. Список можно отфильтровать строкой поиска.
- Откройте задание двойным щелчком.
- Поставьте флажок «Включено».
- Нажмите ссылку с текстом расписания (например, «Не выполнять» или «Каждый день; каждые 3600 секунд»). Откроется стандартный диалог расписания.
- Задайте периодичность (подробно — в следующем разделе) и нажмите «ОК».
- При необходимости укажите пользователя, от имени которого выполняется задание, и параметры повтора при аварийном завершении.
- Нажмите «Записать и закрыть».
Чтобы проверить задание сразу, не дожидаясь расписания, выделите его в списке и нажмите «Выполнить сейчас». Результат появится на вкладке «Фоновые задания»: состояние, время начала и окончания, текст ошибки.
Поле «Пользователь» критично. Если там стоит сотрудник, который уволился и чью учётную запись отключили или удалили, задание будет падать с ошибкой авторизации. Лучше завести отдельного служебного пользователя с нужными правами и указать его.
Где задания с собственным расписанием
Часть заданий удобнее настраивать не в общем списке, а в своих формах. Там же меняется их расписание:
| Задача | Где настраивается |
|---|---|
| Синхронизация данных (обмен с другой базой) | Администрирование → Синхронизация данных → настройка синхронизации, расписание в её параметрах |
| Полнотекстовый поиск | Администрирование → Настройки программы → Общие настройки → управление полнотекстовым поиском |
| Резервное копирование файловой базы | Администрирование → Обслуживание → «Резервное копирование и восстановление» |
| Загрузка курсов валют | Список валют → команда загрузки курсов; автоматическая загрузка — через регламентное задание |
Если меняете расписание обмена в общем списке заданий, программа может перезаписать его при следующем сохранении настройки синхронизации. Правьте там, где задание «живёт».
В Конфигураторе
В Конфигураторе регламентные задания лежат в ветке Общие → Регламентные задания. В свойствах объекта видны метод, флажки «Предопределенное» и «Использование», расписание, количество повторов и интервал повтора при аварийном завершении.
Расписание в Конфигураторе — это значение по умолчанию для новой базы. На уже работающей базе действует то, что сохранено в данных. Меняйте расписание в пользовательском режиме, а не в конфигурации: правка типовой конфигурации снимает её с полной поддержки и усложняет обновления.
Параметры расписания: что задаёт каждая вкладка
Диалог расписания одинаков для всех заданий. В нём четыре вкладки.
| Вкладка | Что задаёт | Пример |
|---|---|---|
| Общее | Дата начала и окончания действия, повтор каждые N дней | Каждый день с 01.11, без даты окончания |
| Дневное | Время начала и окончания, повтор в течение дня через N секунд, пауза, завершение после | С 08:00 до 20:00 каждые 900 секунд |
| Недельное | Дни недели | Только понедельник–пятница |
| Месячное | Месяцы, день месяца, день недели в месяце | 1-е число каждого квартала |
Повтор в течение дня задаётся в секундах. Перевод частых значений:
- 5 минут —
300 - 15 минут —
900 - 1 час —
3600 - 4 часа —
14400
Несколько рабочих примеров:
- 📥 Загрузка курсов валют — каждый день, время начала 06:00, без повтора в течение дня. К началу рабочего дня курсы уже в базе.
- 🔄 Обмен с интернет-магазином — каждый день с 08:00 до 21:00, повтор каждые 600 секунд, на недельной вкладке отмечены все дни.
- 🔍 Обновление полнотекстового индекса — каждый день, повтор каждые 3600 секунд. Слияние индекса — раз в сутки ночью, например в 02:00.
- 🧹 Удаление устаревших данных — раз в неделю, воскресенье, 03:00.
Текстовая строка над вкладками сразу показывает итог: «Каждый день; с 8:00:00 по 21:00:00; каждые 600 секунд». Сверяйте по ней, правильно ли вы поняли галочки.
Программная установка расписания
Если расписание нужно менять из обработки или при начальном заполнении базы, используйте объект РасписаниеРегламентногоЗадания. Код выполняется на сервере под пользователем с административными правами:
// ИмяЗадания — имя регламентного задания в ветке метаданных
Задание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ИмяЗадания);
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ПериодПовтораДней = 1; // каждый день
Расписание.ВремяНачала = Дата(1, 1, 1, 8, 0, 0); // с 08:00
Расписание.ВремяКонца = Дата(1, 1, 1, 21, 0, 0); // до 21:00
Расписание.ПериодПовтораВТечениеДня = 600; // каждые 10 минут
Задание.Расписание = Расписание;
Задание.Использование = Истина;
Задание.Записать();
Для собственных доработок вместо прямого кода лучше делать расширение конфигурации : так типовая конфигурация остаётся на поддержке.
Файловая база, тонкий клиент и веб-клиент
Здесь ломается больше всего ожиданий. В клиент-серверной базе регламентные задания выполняет сервер 1С, пользователям ничего держать открытым не нужно. В файловой базе отдельного сервера нет.
В файловом варианте задания выполняются внутри одного из клиентских сеансов. Пока никто не запустил 1С, ни одно расписание не сработает. Сотрудники ушли в 18:00 — ночная загрузка в 02:00 не выполнится.
Что с этим делать:
- 💻 Оставить открытым сеанс тонкого или толстого клиента на компьютере, где лежит база или который не выключают на ночь. Простое решение для небольшой фирмы.
- 🎛️ Управлять параметром запуска
/AllowExecuteScheduledJobs. Значение-Offзапрещает выполнять задания в этом сеансе,-Force— разрешает. Удобно, чтобы задания крутились только на одном выделенном компьютере, а не на ноутбуке бухгалтера. - 🖥️ Перейти на клиент-серверный вариант, если автоматизации много: обмены, загрузка банковских выписок, частые синхронизации.
Пример ярлыка для «рабочей лошадки» в файловой базе:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /N"Регламент" /P"пароль" /AllowExecuteScheduledJobs -Force /DisableStartupMessages
На остальных компьютерах в ярлыки можно добавить /AllowExecuteScheduledJobs -Off, чтобы задания не тормозили работу пользователей.
Пароль в ярлыке виден любому, у кого есть доступ к компьютеру. Для служебного пользователя дайте только те права, которые нужны заданиям, или используйте аутентификацию операционной системы.
Сама настройка расписания в тонком клиенте и веб-клиенте ничем не отличается: та же форма, те же вкладки. Разница только в том, кто выполняет задание. Для серверной базы способ подключения пользователей роли не играет.
Сервер 1С:Предприятия: что проверить в кластере
В клиент-серверной базе задания выполняет рабочий процесс кластера. Если расписание настроено, а задания стоят, смотрите консоль администрирования серверов 1С.
Блокировка регламентных заданий
- Откройте консоль администрирования серверов 1С.
- Разверните кластер → «Информационные базы» → нужная база.
- Откройте свойства базы (правая кнопка → «Свойства»).
- Проверьте флажок «Блокировка регламентных заданий включена».
Если флажок стоит, сервер не запустит ни одного задания этой базы. Блокировку часто ставят на тестовых копиях и забывают снять после переноса. Или наоборот: развернули копию рабочей базы для тестов, не заблокировали — и копия начала выгружать данные в банк или на сайт вместе с рабочей.
На тестовой копии рабочей базы блокировку регламентных заданий включайте до первого запуска. Иначе копия отправит обмены и письма от имени рабочей системы.
БСП дополнительно защищает от этого сценария: если программа замечает, что база переехала на другой адрес, она блокирует работу с внешними ресурсами и показывает об этом предупреждение администратору. Снимайте эту блокировку только в той базе, которая действительно рабочая.
Рабочие процессы и назначение функциональности
На сервере с несколькими базами задания конкурируют с пользователями за ресурсы рабочих процессов. Если тяжёлые задания мешают работе:
- 📌 в свойствах рабочего сервера настройте требования назначения функциональности: фоновые задания можно направить на отдельный рабочий сервер кластера;
- 📈 проверьте, хватает ли памяти и не перезапускаются ли рабочие процессы по превышению лимита — при перезапуске выполняемое задание обрывается.
Изменения в настройках кластера и перезапуск рабочих процессов обрывают сеансы пользователей и выполняемые задания. Делайте это вне рабочего времени и предупредите людей.
Права пользователя службы
Если задание обращается к файлам (выгрузка в каталог, загрузка выписок из папки), оно работает от имени учётной записи службы сервера 1С, а не от имени пользователя 1С. Сетевой каталог, доступный бухгалтеру, может быть недоступен службе. Проверьте права этой учётной записи Windows на каталог.
Задание не выполняется: журнал регистрации и диагностика
Начните с формы «Регламентные и фоновые задания». В списке видно состояние последнего запуска, время и, при ошибке, её текст. Двойной щелчок по строке на вкладке «Фоновые задания» открывает подробности.
Если в форме мало сведений, откройте журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Установите отбор по событиям фоновых заданий:
- «Фоновое задание. Запуск»
- «Фоновое задание. Успешное завершение»
- «Фоновое задание. Ошибка выполнения»
- «Фоновое задание. Отмена»
Отбор по пользователю, указанному в задании, и интервалу времени вокруг запуска быстро показывает, стартовало ли задание вообще. Нет даже события «Запуск» — проблема в планировщике или блокировке. Есть «Запуск», затем ошибка — проблема внутри метода: права, данные, внешний ресурс.
Если не помогло
Запустите задание вручную через «Выполнить сейчас» под тем же пользователем и посмотрите полный текст ошибки на вкладке «Фоновые задания». Если вручную проходит, а по расписанию нет, разница почти всегда в окружении: другой компьютер (файловая база), другая учётная запись службы (серверная), блокировка в кластере.
Для серверной базы можно временно включить технологический журнал по событиям исключений (EXCP) и сеансов фоновых заданий. Он покажет ошибку, которая не попала в журнал регистрации. Включайте его на ограниченное время: журнал быстро занимает место на диске.
Как не перегрузить базу расписаниями
Каждое задание — это нагрузка на рабочий процесс и блокировки данных. Неудачное расписание тормозит пользователей не меньше, чем тяжёлый отчёт.
- ⏱️ Не ставьте повтор чаще, чем нужно бизнесу. Обмен с сайтом каждые 30 секунд почти никогда не нужен; 5–10 минут обычно хватает.
- 🌙 Тяжёлое — на ночь. Слияние полнотекстового индекса, удаление устаревших версий, пересчёт итогов — на время, когда никто не работает .
- 🧩 Разносите старты. Пять заданий на 02:00 мешают друг другу. Ставьте 02:00, 02:20, 02:40.
- 🚫 Отключите ненужное. Если не пользуетесь, например, интеграцией с определённым сервисом, выключите связанные задания — они всё равно стартуют и тратят ресурсы.
- 📏 Ограничьте дневное окно. На вкладке «Дневное» задайте время окончания, чтобы задание не работало в часы, когда идёт резервное копирование .
- 🔁 Задайте повтор при аварии. 2–3 повтора с интервалом 300–600 секунд спасают от разовых сбоев сети, но не маскируют постоянную ошибку.
Раз в месяц открывайте вкладку «Фоновые задания» и сортируйте по длительности. Задание, которое за полгода выросло с одной минуты до двадцати, — сигнал проверить данные или настройки до того, как оно начнёт мешать.