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

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

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

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

Начиная с версии 8.3.3.641, фирма «1С» значительно изменила архитектуру работы с фоновыми процессами в файловом режиме. Рассмотрим подробнее, как это реализовано сейчас. Ранее для работы заданий требовался выделенный сеанс, в котором постоянно крутился цикл обработки. Теперь же всё работает иначе:

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

Причина №1: Зависание фонового процесса или «жирное» задание

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

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

Причина №2: «Фантомные» сеансы и блокировки

Иногда сеанс 1С завершается некорректно (например, при выключении компьютера «через кнопку» или сбое сети). В этом случае в каталоге информационной базы могут остаться файлы блокировок с расширением *.lck или записи в таблице сеансов, которые заставляют систему думать, что планировщик всё еще активен в том, старом сеансе.

Рассмотрим порядок действий для исправления этой ситуации:

  1. Попросим всех пользователей выйти из базы.
  2. Проверим диспетчер задач на всех компьютерах, где запускалась 1С, и принудительно завершим все процессы 1cv8.exe.
  3. Если база опубликована на веб-сервере, перезапустим службу веб-сервера (Apache или IIS).
  4. Удалим временные файлы в каталоге базы (файлы с расширениями .cfl, .lck).
  5. Выполним перезагрузку хоста — сервера или компьютера, на котором физически расположен файл базы данных 1Cv8.1CD.

Причина №3: Параметры запуска и блокировка заданий

Иногда выполнение заданий может быть запрещено на программном уровне или через параметры командной строки. Проанализируем два способа управления этим процессом.

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

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Base1C" /AllowExecuteScheduledJobs -Force

Использование этого ключа позволяет принудительно переназначить функцию исполнения регламентных заданий конкретному клиенту.

Причина №4: Монопольный режим и регламентные операции

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

Также стоит проверить наличие свободного места на диске, где лежит база. При дефиците места поток планировщика может просто не иметь возможности записать логи выполнения в таблицу JobScheduleData, что приведет к ошибке и остановке потока.

Диагностика с помощью Консоли заданий

Для детального анализа рекомендуем воспользоваться обработкой «Консоль заданий». Разберем по шагам, на что обратить внимание:

Если вы столкнулись с тем, что задания просто «висят», попробуйте программно проверить состояние блокировки информационной базы:


ПараметрыБлокировки = ПолучитьБлокировкуУстановкуРегламентныхЗаданий();
Если ПараметрыБлокировки.Установлена Тогда
    Сообщить("Выполнение заданий запрещено административно!");
КонецЕсли;

Рекомендации по профилактике

Чтобы в будущем избежать остановки регламентных заданий в файловом режиме, придерживайтесь следующих правил:

  1. Не допускайте «тяжелых» заданий: старайтесь разбивать длительные обработки на части или выносить их в часы минимальной активности.
  2. Регулярное обслуживание: проводите «Тестирование и исправление» (ТиИ) с пунктами «Реиндексация» и «Проверка логической целостности» хотя бы раз в неделю. Это чистит таблицы планировщика. При обслуживании нескольких баз эти регламентные процедуры можно настроить без участия пользователя через программу для автоматического тестирования и обслуживания баз 1С.
  3. Настройка веб-сервера: если работаете через веб-клиент, убедитесь, что пул приложений веб-сервера не настроен на слишком частую перезагрузку, которая может обрывать поток выполнения заданий.

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

← На главную