Почему перестали работать внешние обработки по расписанию и как это исправить?

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

В процессе эксплуатации крупных систем на базе 1С:Предприятие 8.3 администраторы часто сталкиваются с ситуацией, когда внешние обработки, подключенные через механизм дополнительных отчетов и обработок, внезапно перестают выполняться по расписанию. При этом в Журнале регистрации фиксируются ошибки вида «Файл не найден» в папке Temp, хотя при ручном запуске всё работает корректно. Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам методы её решения.

Проанализируем суть проблемы

Когда мы запускаем внешнюю обработку интерактивно, она выполняется в контексте нашего текущего сеанса. Однако при запуске по расписанию 1С создает фоновое задание, которое выполняется на сервере под учетной записью, от имени которой запущена служба 1C:Enterprise 8.3 Server Agent. В этот момент платформа извлекает двоичные данные обработки из базы данных и сохраняет их во временный файл в профиле пользователя службы (обычно это путь вида C:\Users\ИмяПользователя\AppData\Local\Temp\).

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

Шаг 1: Настройка переменных окружения и путей к временным файлам

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

  1. Создадим в корне диска C: отдельную папку с коротким названием, например C:\1C_Temp.
  2. Дадим пользователю, под которым работает сервер 1С, полные права на эту папку.
  3. В настройках системы (Свойства системы -> Дополнительно -> Переменные окружения) изменим значения переменных TEMP и TMP для пользователя службы на созданный нами путь C:\1C_Temp.

Это исключит ошибки, связанные с лимитом длины пути в Windows (260 символов) и возможные блокировки доступа к папке AppData.

Шаг 2: Решение проблемы выгрузки профиля пользователя (User Profile Service)

В современных версиях Windows Server (начиная с 2008 R2) существует механизм, который автоматически выгружает реестр и временные файлы пользователя, если система считает, что сеанс завершен. Это часто происходит с учетной записью службы 1С, если под ней не залогинены интерактивно. Проанализируем настройки групповых политик:

  1. Откроем редактор локальной групповой политики (команда gpedit.msc).
  2. Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Система -> Профили пользователей.
  3. Найдем параметр «Не выгружать принудительно реестр пользователя при его выходе из системы» (Do not forcefully unload the user registry at user logoff) и установим значение «Включено».

Это гарантирует, что Windows не «подчистит» временную папку процесса rphost в самый неподходящий момент.

Шаг 3: Проверка настроек Безопасного режима в БСП

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

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


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

Шаг 4: Исключение конфликтов с антивирусным ПО

Выясним причину возможной блокировки файлов антивирусом. Регламентные задания создают исполняемые файлы (обработки) в папке Temp динамически. Антивирус может воспринимать это как подозрительную активность. Чтобы это предотвратить, необходимо добавить в исключения антивируса:

Шаг 5: Глубокая очистка серверного кэша

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

  1. Остановите службу 1C:Enterprise 8.3 Server Agent.
  2. Перейдите в папку с данными кластера (по умолчанию C:\Program Files\1cv8\srvinfo\).
  3. Найдите папки с именами snccntxt... (сеансовые данные) и reg_XXXX....
  4. Внимание: Удаляйте только содержимое папок кэша, не трогая файлы конфигурации кластера (1cv8wsrv.lst).
  5. Запустите службу снова.

Рассмотренные шаги позволяют комплексно подойти к решению проблемы. В большинстве случаев сочетание Шага 1 (вынос Temp в короткий путь) и Шага 2 (запрет выгрузки профиля) полностью устраняет ошибки «Файл не найден» при работе внешних обработок по расписанию.

← На главную