Почему не запускается регламентное задание в файловой базе 1С:Управление торговлей 10.3?

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

Работа регламентных и фоновых заданий в файловом режиме 1С:Предприятия принципиально отличается от клиент-серверного варианта (SQL). Если в клиент-серверном режиме запуск заданий берет на себя кластер серверов 1С, то в файловой базе платформа не имеет отдельного серверного демона. Разберем по шагам, как устроена обработка заданий в файловых базах конфигурации «Управление торговлей 10.3», выясним причину, по которой запланированный обмен с сайтом может не стартовать, и рассмотрим способы решения проблемы.

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

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

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

  1. Настройка константы пользователя: В настройках программы (меню «Сервис» — «Настройка учета» — «Настройка параметров учета») на вкладке фоновых заданий должен быть выбран «Пользователь для выполнения регламентных заданий в файловом режиме». Проверка выполняется по ссылке на справочник Пользователи. Если имя пользователя совпадает, но ссылка изменилась или запуск произведен под другим логином, системный обработчик ожидания не подключится.
  2. Подключение обработчика ожидания: При старте системы под указанным пользователем программный код конфигурации выполняет метод ПодключитьОбработчикОжидания("ВыполнитьРегламентныеЗадания", Интервал). Именно этот периодический вызов обращается к ВыполнитьОбработкуЗаданий(), который опрашивает планировщик и запускает задачи по расписанию.
  3. Разрешение на уровне запуска платформы: В свойствах ярлыка или скрипта запуска должен присутствовать параметр /AllowExecuteScheduledJobs -Force, разрешающий выполнение фоновых заданий в данном конкретном клиентском сеансе.

Параметры командной строки для запуска выделенного сеанса

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


"C:\Program Files (x86)\1cv8\8.3.10.2466\bin\1cv8.exe" ENTERPRISE /F"K:\Base\Trade_10_3" /N"obmen" /P"PassWord" /AllowExecuteScheduledJobs -Force

Обратите внимание на синтаксис: параметр /AllowExecuteScheduledJobs принудительно снимает блокировку выполнения регламентных процессов в сеансе.

Для чего используется свойство «Ключ» в регламентных заданиях?

Поле Ключ (Key) регламентного задания предназначено для обеспечения контроля уникальности и предотвращения параллельного запуска одинаковых процессов.

Рассмотрим подробнее логику работы ключа:

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

Специфика модуля обмена «1С-Битрикс»

Если речь идет о специализированном задании Б_ЗаданиеОбменССайтом, запуск может не происходить по следующим внутренним причинам модуля:

  1. Отсутствие параметров задания: Регламентное задание Битрикс не может выполняться «вслепую» — ему необходим параметр (ссылка на настройку обмена из справочника Б_НастройкиИнтеграцииСWEBСайтом). Если задание активировано вручную через стандартную «Консоль заданий» без заполнения массива параметров, процедура не поймет, какой каталог выгружать, и мгновенно завершит работу.
  2. Корректная активация через интерфейс: Настройку расписания следует производить непосредственно внутри формы узла обмена с сайтом на вкладке «Автоматический обмен». При сохранении настройки модуль сам сформирует регламентное задание с нужными параметрами и расписанием.
  3. Права доступа (роли): Пользователь obmen должен обладать полными правами, правами на внешнее соединение, а также специализированной ролью для работы с модулем сайта.

Альтернативный и более надежный вариант: запуск через Планировщик Windows

Сеанс файловой 1С, постоянно висящий в памяти Windows ради выполнения регламентных заданий, подвержен утечкам памяти и зависаниям. Наиболее стабильным решением для файловых баз УТ 10.3 является запуск обмена через системный Планировщик задач (Windows Task Scheduler).

Разберем реализацию через внешнюю обработку:

  1. Создаем внешнюю обработку AutoExchange.epf, в модуле которой в событии открытия формы прописываем вызов процедуры выгрузки и завершение работы:
    
    Процедура ПриОткрытии()
        Попытка
            // Вызов экспортной процедуры обмена из модуля Битрикс
            Б_ОбменССайтомСервер.ВыполнитьОбменПоНастройке(ВыбраннаяНастройка);
        Исключение
            ЗаписьЖурналаРегистрации("Обмен с сайтом", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
        КонецПопытки;
        
        // Завершаем сеанс после окончания обмена
        ЗавершитьРаботуСистемы(Ложь);
    КонецПроцедуры
    
  2. В Планировщике Windows создаем задачу с запуском команды:
    
    "C:\Program Files (x86)\1cv8\8.3.10.2466\bin\1cv8.exe" ENTERPRISE /F"K:\Base\Trade_10_3" /N"obmen" /P"PassWord" /Execute "C:\1C_Scripts\AutoExchange.epf"
    

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

← На главную