Настройка автоматического обмена данными между 1С:Управление торговлей 10.3 и сайтом часто вызывает затруднения, особенно если информационная база работает в файловом режиме. Пользователи сталкиваются с ситуацией, когда ручной запуск обмена проходит успешно, а автоматический либо не срабатывает вовсе, либо выполняется один раз в сутки вместо заданного ежечасного интервала. В этой статье мы подробно разберем причины такого поведения и рассмотрим несколько способов решения проблемы, включая настройку планировщика Windows и использование внешних скриптов.
Для начала проанализируем ситуацию с точки зрения архитектуры платформы 1С. В клиент-серверном варианте за выполнение расписания отвечает Менеджер кластера, который запускает фоновые задания автоматически. В файловом же режиме такого механизма нет. Чтобы регламентное задание (которым и является обмен с сайтом) выполнилось, должен быть запущен хотя бы один активный сеанс пользователя.
Рассмотрим важные условия для файловой базы:
Интервал проверки регламентных заданий. Если он равен нулю, автоматического запуска не произойдет. Обычно рекомендуется устанавливать значение от 60 до 300 секунд.Многие администраторы пытаются обойти ограничение «постоянно запущенной 1С», настраивая запуск программы через Планировщик задач Windows (Task Scheduler). Однако здесь часто кроется подвох: задание срабатывает один раз (например, ночью) и больше не повторяется в течение дня. Разберем, как правильно настроить триггер в Windows Server 2019 и других версиях ОС.
Посмотрим на ключевые настройки триггера планировщика:
Для того чтобы 1С при запуске из планировщика не просто открывала главное окно, а сразу приступала к обмену, нам необходимо использовать специальные параметры. Разберем пример командной строки для запуска:
"C:\Program Files\1cv8\bin\1cv8.exe" ENTERPRISE /F "D:\Bases\Trade" /N "RobotExchange" /P "Pass123" /C "ЗапуститьОбмен"
Рассмотрим подробнее эти ключи:
/F — путь к файловой базе данных./N и /P — имя пользователя и пароль (у пользователя должны быть права на выполнение обмена)./C — передача параметра в конфигурацию. В процедуре ПриНачалеРаботыСистемы модуля управляемого (или обычного) приложения должен быть прописан код, который считывает этот параметр и запускает нужную обработку./DisableStartupMessages — крайне важный ключ для автоматических систем. Он подавляет всплывающие окна (например, о подтверждении обновления или советы дня), которые могут «подвесить» сеанс.Если штатный планировщик Windows ведет себя нестабильно (что иногда случается на Windows Server 2019 из-за политик безопасности), можно воспользоваться простым VBScript. Этот скрипт будет висеть в памяти и самостоятельно контролировать интервалы запуска 1С.
Проанализируем пример такого скрипта:
cmd = "C:\Launch1C.cmd" ' Путь к вашему bat-файлу с командой запуска 1С
deltaTime = 60 ' Интервал в минутах между запусками
sleepTime = 1 ' Частота проверки времени в минутах
Set WshShell = WScript.CreateObject("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
logName = "exchange_log.txt"
RunCmd = True
While True
If RunCmd Then
RunCmd = False
Set txtLog = FSO.OpenTextFile(logName, 8, True)
txtLog.WriteLine Now & " — Инициирован запуск обмена"
WshShell.Run cmd, 0, True ' Запуск в скрытом режиме, ожидание завершения
nextTime = DateAdd("n", deltaTime, Now)
txtLog.WriteLine "Следующий запуск запланирован на " & nextTime
txtLog.Close
End If
WScript.Sleep sleepTime * 60000
RunCmd = (Now >= nextTime)
WEnd
Этот подход позволяет избежать проблем с «невидимыми» сессиями планировщика и дает возможность вести собственный лог запусков. Скрипт запускает 1С, дожидается завершения обмена (если в 1С прописано ЗавершитьРаботуСистемы() после окончания процесса) и засыпает на указанный интервал.
Если все настройки верны, но обмен так и не стартует, проверим, не заблокированы ли регламентные задания на уровне самой базы. В УТ 10.3 (обычные формы) это можно сделать через меню «Операции» — «Константы» или через специализированную обработку «Консоль регламентных заданий».
Проанализируем ситуацию в интерфейсе:
Использование в свойствах самого задания, если вы планируете запускать его только внешними средствами (планировщиком).Состояние. Если там написано «Блокировка регламентных заданий установлена», то никакие автоматические действия не выполнятся до снятия этого флага.Выясним также, нет ли в журнале регистрации ошибок с типом «Фоновое задание. Ошибка выполнения». Часто бывает, что задание стартует, но падает из-за нехватки прав доступа к временным папкам или из-за ошибки в самом коде обработки обмена при работе в неинтерактивном режиме.
Подводя итог, можно сказать: наиболее стабильный вариант для УТ 10.3 в файловом режиме — это либо выделенный компьютер (сервер), где сеанс 1С запущен круглосуточно под специальным пользователем-роботом, либо грамотно настроенный планировщик задач с использованием ключа /C и автоматическим завершением работы программы после завершения обмена. Помните о важности параметра «Бесконечно» в триггерах Windows и всегда проверяйте права доступа пользователя, от имени которого запускается служба планировщика.