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

Системный администратор 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

Работа с регламентными заданиями в файловом варианте информационной базы 1С существенно отличается от работы в клиент-серверном режиме. Если в серверном варианте за запуск заданий отвечает менеджер кластера 1С:Предприятия, то в файловой базе этот механизм требует наличия активного клиентского сеанса. Давайте подробно разберем, почему задания могут «застывать», как на это влияют права пользователей и как именно платформа рассчитывает время следующего запуска при сложных настройках расписания.

Особенности выполнения регламентных заданий в файловом режиме

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

  1. Наличие активного пользователя: Хотя бы один экземпляр программы должен быть запущен. Если все пользователи вышли из базы, регламентные задания выполняться не будут.
  2. Интервал проверки: Платформа проверяет необходимость запуска заданий примерно раз в минуту. Поэтому не стоит ожидать секундной точности от расписания в файловом режиме.
  3. Отсутствие блокировок: В параметрах информационной базы не должна стоять галочка БлокировкаРегламентныхЗаданийУстановлена.

Выясним причину, по которой смена прав или создание нового администратора может «сломать» привычную работу обменов. В конфигурациях на базе БСП (Библиотеки стандартных подсистем), таких как 1С:Розница 2.x, настройки регламентного задания часто привязаны к конкретному пользователю информационной базы.

Разбор ситуации: Пользователь для выполнения задания

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

Если это поле пустое, платформа пытается запустить задание от имени первого попавшегося пользователя, у которого достаточно прав. Однако в типовых решениях (Розница, УТ 11, ERP) для процессов обмена данными часто требуется строго определенный пользователь с полными правами. Если вы создали нового администратора, выполните следующие шаги:

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

Логика расписания: Интервал против Паузы

Теперь разберем важный теоретический и практический вопрос: как взаимодействуют параметры Повторять через (интервал) и Пауза. Это часто вызывает путаницу у администраторов.

Рассмотрим пример из практики: В настройках указано: «Повторять через 600 секунд (10 минут)» и «Пауза 540 секунд (9 минут)». Задание запустилось в 00:00:00 и выполнялось 6 минут (завершилось в 00:06:00).

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

  1. По интервалу: Время начала (00:00) + Интервал (10 мин) = 00:10.
  2. По паузе: Время завершения (00:06) + Пауза (9 мин) = 00:15.

Правило платформы: Следующий запуск произойдет в наиболее позднее из этих двух значений. В нашем примере задание запустится в 00:15. Зачем это нужно? Параметр Пауза является «страховкой». Он гарантирует, что между тяжелыми операциями (например, загрузкой огромного прайс-листа) система всегда будет иметь перерыв для отдыха и выполнения других задач, даже если само выполнение задания затянулось и «съело» весь интервал.

Как гарантировать работу заданий в файловой базе

Чтобы не зависеть от того, зашел ли админ в базу, проанализируем лучший способ организации работы — выделенный сеанс. Для этого можно выделить отдельный компьютер (или сервер) и запустить на нем 1С с определенными параметрами.

Используем ключ запуска командной строки: /DoScheduledJobs

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\Retail" /N "RobotAdmin" /P "Pass123" /DoScheduledJobs

В этом случае под пользователем RobotAdmin постоянно будет висеть активное окно 1С, которое раз в минуту будет инициировать все запланированные обмены. Это наиболее стабильный вариант для файловых баз 1С:Розница в магазинах.

Чек-лист для исправления проблемы, если задания не ходят

Если вы столкнулись с тем, что регламентные операции прекратились, пройдем по шагам:

  1. Проверка зависших процессов: Убедитесь, что в диспетчере задач нет «зомби-процессов» 1cv8.exe. Иногда завершение сеанса пользователем не убивает фоновый поток обмена.
  2. Файл блокировки: Проверьте папку с базой данных. Если там присутствует файл 1Cv8.cdn, а активных пользователей нет — удалите его. Этот файл отвечает за блокировку регламентных заданий.
  3. Интерактивные действия: Проверьте код задания. Если внутри кода есть попытка вывести Предупреждение() или открыть форму, в фоновом режиме это вызовет ошибку, и задание «упадет». В регламентных заданиях допустим только серверный код без обращения к интерфейсу.
  4. Лицензирование: Помните, что каждое фоновое задание в файловой базе — это фактически отдельный поток. Если у вас программные лицензии «на сеанс», убедитесь, что их достаточно для запуска фонового процесса.

Таким образом, для стабильной работы регламентных заданий в 1С:Розница (файловая версия) мы рекомендуем всегда жестко прописывать служебного пользователя в настройках задания и использовать выделенный сеанс с ключом /DoScheduledJobs. Это исключит влияние человеческого фактора при смене паролей или прав доступа администраторов.

← На главную