Работа регламентных и фоновых заданий в файловом режиме 1С:Предприятия принципиально отличается от клиент-серверного варианта (SQL). Если в клиент-серверном режиме запуск заданий берет на себя кластер серверов 1С, то в файловой базе платформа не имеет отдельного серверного демона. Разберем по шагам, как устроена обработка заданий в файловых базах конфигурации «Управление торговлей 10.3», выясним причину, по которой запланированный обмен с сайтом может не стартовать, и рассмотрим способы решения проблемы.
Для того чтобы в файловой базе начали выполняться фоновые процессы по расписанию, должен быть постоянно запущен хотя бы один сеанс «1С:Предприятия». Однако простого входа пользователя в базу недостаточно: платформа должна регулярно инициировать метод ВыполнитьОбработкуЗаданий().
В типовой конфигурации УТ 10.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) регламентного задания предназначено для обеспечения контроля уникальности и предотвращения параллельного запуска одинаковых процессов.
Рассмотрим подробнее логику работы ключа:
Если речь идет о специализированном задании Б_ЗаданиеОбменССайтом, запуск может не происходить по следующим внутренним причинам модуля:
Б_НастройкиИнтеграцииСWEBСайтом). Если задание активировано вручную через стандартную «Консоль заданий» без заполнения массива параметров, процедура не поймет, какой каталог выгружать, и мгновенно завершит работу.obmen должен обладать полными правами, правами на внешнее соединение, а также специализированной ролью для работы с модулем сайта.Сеанс файловой 1С, постоянно висящий в памяти Windows ради выполнения регламентных заданий, подвержен утечкам памяти и зависаниям. Наиболее стабильным решением для файловых баз УТ 10.3 является запуск обмена через системный Планировщик задач (Windows Task Scheduler).
Разберем реализацию через внешнюю обработку:
AutoExchange.epf, в модуле которой в событии открытия формы прописываем вызов процедуры выгрузки и завершение работы:
Процедура ПриОткрытии()
Попытка
// Вызов экспортной процедуры обмена из модуля Битрикс
Б_ОбменССайтомСервер.ВыполнитьОбменПоНастройке(ВыбраннаяНастройка);
Исключение
ЗаписьЖурналаРегистрации("Обмен с сайтом", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
// Завершаем сеанс после окончания обмена
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
"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"
При таком подходе каждый сеанс запускается в чистом адресном пространстве, отрабатывает выгрузку и корректно освобождает память, гарантируя стабильность автоматического обмена.