При активной работе сервера 1С:Предприятие системный диск C: часто переполняется временными файлами. Основным источником "мусора" является папка Temp пользователя, под которым запущена служба сервера (обычно это USR1CV8). Стандартные средства очистки не всегда справляются, а нехватка места приводит к аварийному завершению рабочих процессов rphost. В этой статье мы разберем несколько эффективных способов переноса этой папки на другой диск, проанализируем нюансы прав доступа и выясним, как правильно настроить окружение без интерактивного входа в систему.
Это один из самых надежных и прозрачных для системы способов. Мы создаем в файловой системе NTFS специальную метку, которая перенаправляет все запросы к папке на другой физический диск. Разберем этот процесс по шагам.
Важное замечание: Для работы с системными папками крайне рекомендуется использовать "соединение для директорий" (Junction), которое создается ключом /J. Это гарантирует, что ссылка будет доступна всем процессам без дополнительных настроек политик безопасности.
C:\Users\USR1CV8\AppData\Local\.Temp на новый диск (например, в D:\1C_Temp).Temp на диске C:.
mklink /J "C:\Users\USR1CV8\AppData\Local\Temp" "D:\1C_Temp"
Проанализируем результат: теперь при обращении к старому пути Windows будет автоматически перенаправлять запись на диск D:. Это решение не требует правки реестра и сохраняется после перезагрузки сервера.
Если вы предпочитаете "чистую" настройку без использования ссылок, можно указать операционной системе, что для пользователя USR1CV8 переменные TEMP и TMP указывают на другой путь. Сложность заключается в том, что обычно под этой учетной записью нельзя войти в систему интерактивно.
Для решения этой задачи воспользуемся редактированием реестра через идентификатор безопасности (SID). Выполним следующие действия:
USR1CV8. Для этого в командной строке введем:
wmic useraccount where name='USR1CV8' get sid
regedit и перейдем в ветку:
HKEY_USERS\%ВАШ_SID%\Environment
Где %ВАШ_SID% — это строка, полученная на предыдущем шаге. В этом разделе мы увидим два строковых параметра: TEMP и TMP. Изменим их значения на нужный путь, например, D:\1C_Temp. Рассмотрим ситуацию, когда записи в реестре вступят в силу: для того чтобы служба 1С подхватила новые переменные, потребуется перезагрузка сервера или как минимум полный перезапуск службы агента 1С.
Малоизвестный, но крайне эффективный метод заключается в использовании внутренней переменной самой платформы 1С. Платформа 1C:Предприятие при поиске пути для временных файлов сначала проверяет наличие переменной V8_TMPDIR.
Если мы установим эту переменную в системных свойствах сервера, 1С будет игнорировать системные настройки TEMP и использовать указанный нами путь. Это позволяет избежать конфликтов с другими приложениями, которым может быть необходим Temp именно на диске C:.
Для настройки выполним:
Имя переменной: V8_TMPDIR
Значение переменной: D:\1C_Temp
После этого перезагрузим службу 1С. Теперь все временные файлы, создаваемые именно платформой, будут аккумулироваться в указанном месте.
Важно различать системный Temp и внутренний кеш сервера 1С (папку srvinfo). Если ваша цель — перенести вообще все данные сервера 1С с диска C:, необходимо отредактировать строку запуска службы в реестре.
Найдем ветку реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (название может отличаться в зависимости от версии).
В параметре ImagePath добавим ключ -d, указывающий на новый путь к данным сервера:
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\1C_Data"
Это перенесет журналы регистрации, дампы и кеш конфигураций, но не перенесет системную папку Temp. Поэтому данный метод рекомендуется использовать совместно с методом mklink.
Часто после переноса папки пользователи сталкиваются с ошибками вида "Ошибка при создании временного файла" или проблемами в работе внешних модулей (например, модуля обмена с Битрикс). Разберем причину.
При создании новой папки на диске D: она не наследует права доступа, которые были у пользователя USR1CV8 в его профиле на диске C:. Выясним, какие права необходимо установить:
USR1CV8 должен обладать правом Полный контроль (Full Control) на целевую папку.IIS_IUSRS или IUSR.Перенося Temp на другой диск, проанализируйте тип этого носителя. 1С крайне чувствительна к скорости дисковых операций (latency). Если вы перенесете Temp на медленный сетевой диск или старый HDD, производительность сервера может значительно упасть. Идеальный вариант — выделенный раздел на быстром SSD или NVMe накопителе.
Также не забудьте исключить новую папку D:\1C_Temp из проверки антивирусом. Постоянное сканирование временных файлов 1С антивирусным ПО — одна из главных причин "тормозов" и блокировок файлов в многопользовательском режиме.