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

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

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

Понимание проблемы: почему не работают задания?

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

Вариант №1: Использование планировщика Windows и внешней обработки

Это самый популярный метод для автоматического выполнения задач по расписанию, например, каждое утро. Мы можем создать внешнюю обработку, которая выполнит все необходимые действия, а затем корректно завершит работу системы.

  1. Создайте внешнюю обработку, в коде которой прописаны необходимые действия.
  2. В модуле объекта или формы обработки добавьте команду для завершения сеанса 1С.
  3. Настройте Планировщик заданий Windows для запуска 1С с параметрами /Execute.

Разберем пример реализации кода для корректного выхода:


Процедура ПриОткрытии()
    // Выполняем полезные действия
    ВыполнитьНеобходимуюЛогику();
    
    // Корректное завершение работы
    ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры

Важно отметить: если вы используете команду ЗавершитьРаботуСистемы(Ложь), программа завершается корректно. Она успевает закрыть все транзакции, освободить файлы блокировок и записать данные в журнал регистрации. Аргумент Ложь означает, что система не будет спрашивать подтверждение у пользователя. Таким образом, аргумент администратора об «аварийном завершении» является ошибочным, так как это штатный инструмент платформы.

Вариант №2: Постоянно запущенный технический сеанс

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

Преимущества данного подхода:

Важные рекомендации для администрирования

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

  1. Блокировки файлов: Основная проблема файловых баз — блокировки на уровне ОС. Убедитесь, что время запуска регламентных заданий не пересекается с временем создания резервных копий (бэкапов).
  2. Лицензирование: Помните, что каждый дополнительный сеанс 1С потребляет клиентскую лицензию. Если в организации дефицит лицензий, метод с постоянно запущенным сеансом может быть невыгоден.
  3. Безопасность: При запуске задач через планировщик Windows используйте учетную запись, обладающую минимально необходимыми правами доступа к файловой системе, где лежит база данных.

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

← На главную