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

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

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

Особенности работы планировщика в файловом режиме

Для начала проанализируем, как вообще запускаются регламентные задания (РЗ) в файловой базе 1Cv8.1CD. Поскольку отдельного серверного процесса нет, платформа инициирует выполнение РЗ в контексте одного из запущенных клиентских приложений. В современных конфигурациях на базе Библиотеки стандартных подсистем (БСП), к которым относится и 1С:Бухгалтерия 3.0, этот механизм автоматизирован, но он крайне чувствителен к состоянию сеанса пользователя.

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

Влияние модальных окон и состояния интерфейса

Рассмотрим ситуацию: пользователь работает в базе, но в какой-то момент на экране появляется модальное окно. Это может быть вопрос системы "Завершить работу?", предупреждение об ошибке или окно выбора файла. В файловом режиме, если у пользователя, чей сеанс выбран системой в качестве "исполнителя", открыто модальное окно, выполнение любых фоновых процессов в этом сеансе полностью приостанавливается.

Проанализируем этот момент подробнее. Программа видит, что время запуска подошло, и пытается инициировать ФоновоеЗадание. Если поток интерфейса занят ожиданием реакции пользователя на модальное окно, задание не сможет стартовать. При этом в консоли заданий иногда может отобразиться статус "Выполнено", если менеджер заданий успел создать запись о намерении запуска, но сам программный код внутри задания так и не был исполнен из-за блокировки потока.

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

Настройка выделенного сеанса в 1С:Бухгалтерии 3.0

В конфигурациях на управляемых формах предусмотрены специальные настройки для управления регламентными операциями. Разберем, как проверить и настроить "дежурный" сеанс:

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Развернем подраздел Регламентные операции.
  3. Проверим состояние флага "Блокировка выполнения регламентных заданий". Если он установлен (например, после восстановления базы из резервной копии), задания запускаться не будут.
  4. Посмотрим на гиперссылку настройки интервала проверки заданий. Для файловых баз важно, чтобы интервал был адекватным (обычно это 60 секунд).

Если мы используем выделенный сеанс, полезно убедиться, что в коде конфигурации или через настройки БСП не задан конкретный идентификатор сеанса, которому разрешено выполнять задания. По умолчанию БСП пытается распределить нагрузку, но в файловом режиме лучше "привязать" выполнение к стабильному источнику.

Блокировки на уровне файловой системы и антивирусы

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

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

Диагностика через Журнал регистрации

Если в консоли заданий мы видим успешное выполнение, а в ЖурналеРегистрации записей нет, значит, ошибка происходит на этапе инициализации задания. Посмотрим на пример того, как можно программно добавить запись в журнал в самом начале выполнения кода задания, чтобы понять, доходит ли управление до вашего модуля:


Процедура ВыполнитьМоеЗадание() Экспорт
    // Записываем событие начала для диагностики
    ЗаписьЖурналаРегистрации("РегламентноеЗадание.МоеЗадание",
        УровеньЖурналаРегистрации.Информация, , ,
        "Старт выполнения задания в " + ТекущаяДата());
    
    Попытка
        // Основная логика задания
        ВыполнитьПолезнуюРаботу();
    Исключение
        ЗаписьЖурналаРегистрации("РегламентноеЗадание.МоеЗадание",
            УровеньЖурналаРегистрации.Ошибка, , ,
            ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

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

Проблема "фантомных" сеансов и кэша

Иногда файловая 1С "считает", что задание уже выполняется, хотя сеанс был аварийно завершен. В папке с базой могут оставаться файлы блокировок (*.lcl, *.lck). Проанализируем ситуацию: если база "думает", что предыдущая итерация задания еще активна, новая не запустится.

Для решения этой проблемы выполним следующие действия:

  1. Выгоним всех пользователей из базы.
  2. Убедимся, что в диспетчере задач нет зависших процессов 1cv8.exe.
  3. Удалим файлы блокировок в каталоге базы (если они остались).
  4. Очистим локальный кэш конфигурации на том компьютере, где запускаются задания. Кэш часто становится причиной странного поведения ФоновыхЗаданий.

Итоги и финальный алгоритм действий

Подводя итог, разберем краткий чек-лист для исправления ситуации:

1. Выделенный сеанс: Запустите отдельный экземпляр 1С на сервере или постоянно включенном ПК под специальным пользователем.
2. Режим "Анти-сон": Настройте электропитание так, чтобы компьютер никогда не уходил в спящий режим и не отключал сетевую карту.
3. Отсутствие диалогов: Убедитесь, что в коде регламентного задания и при запуске системы для этого пользователя нет вызовов Предупреждение() или иных интерактивных методов.
4. Контроль Журнала регистрации: Ориентируйтесь только на записи в журнале, а не на статус в консоли заданий. Статус в консоли в файловом режиме может быть ложноположительным.
5. Исключения безопасности: Настройте антивирус и проверьте права доступа к файлу базы.

Соблюдение этих правил позволит превратить нестабильный механизм файловых регламентных заданий в надежный инструмент автоматизации вашего учета.

← На главную