Как перенести кэш и временные файлы 1С с системного диска на другой раздел?

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

Работа платформы 1С:Предприятие неизбежно сопровождается генерацией большого объема временных данных. Это и динамический кэш конфигурации, и временные файлы (TEMP), и данные пользователя. Если в системе работает робот или запущено множество фоновых процессов, системный диск (обычно диск C:) может быстро переполниться, что приведет к сбоям в работе всей ОС. Разберем подробно, как перенаправить эти потоки данных на другой диск или раздел.

Метод 1: Использование символьных ссылок (mklink)

Проанализируем самый эффективный способ, который позволяет обмануть систему, заставив её думать, что данные находятся в стандартной папке пользователя, хотя физически они будут располагаться на другом диске. Для этого воспользуемся встроенной утилитой Windows mklink.

Основной кэш 1С хранится в двух папках профиля пользователя:

  1. %LOCALAPPDATA%\1C\1cv8 — здесь находится динамический кэш (самый объемный мусор).
  2. %APPDATA%\1C\1cv8 — здесь хранятся настройки пользователя, список баз и файлы конфигурации.

Рассмотрим по шагам процесс переноса самой «тяжелой» папки на диск D::

  1. Полностью завершим все сеансы 1С и остановим службы, связанные с платформой.
  2. Создадим на целевом диске папку, например, D:\1C_Data\Local_Cache.
  3. Переместим всё содержимое из C:\Users\ИмяРобота\AppData\Local\1C\1cv8 в новую папку. Важно: саму папку 1cv8 на диске C: нужно удалить после перемещения содержимого.
  4. Запустим командную строку (cmd) от имени администратора.
  5. Выполним команду создания символьной ссылки:

mklink /D "C:\Users\ИмяРобота\AppData\Local\1C\1cv8" "D:\1C_Data\Local_Cache"

Теперь все данные, которые 1С пытается записать в локальный профиль, будут автоматически перенаправляться на диск D:. Этот метод универсален и не требует изменения настроек запуска самой 1С.

Метод 2: Переопределение переменных окружения TEMP и TMP

Выясним причину, по которой временные файлы обработки попадают на системный диск. По умолчанию 1С использует стандартные системные переменные TEMP и TMP. Мы можем изменить их глобально для пользователя-робота или локально для конкретного запуска.

Для создания изолированной среды запустим 1С через .bat файл. Проанализируем пример кода:


@echo off
SET TEMP=D:\1C_Temp
SET TMP=D:\1C_Temp
if not exist "D:\1C_Temp" mkdir "D:\1C_Temp"
start "" "C:\Program Files\1cv8\bin\1cv8.exe" ENTERPRISE /F "C:\Base1C" /N "Robot" /P "Password"

В этом сценарии мы временно подменяем пути к папкам временных файлов только для этого конкретного процесса. Как только робот закончит работу, системные переменные для остальных программ останутся прежними, а «мусор» сохранится в D:\1C_Temp.

Метод 3: Использование ключей запуска платформы

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

  1. Ключ /T — позволяет указать путь к директории временных файлов. Если запустить 1С с ключом /T "D:\MyTemp", то все промежуточные данные обработки будут создаваться именно там.
  2. Ключ /ClearCache — этот параметр полезен для роботов, так как он очищает кэш клиент-серверных вызовов при каждом запуске. Это предотвращает постепенное разрастание папок с непонятными именами-идентификаторами.

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /T "D:\1C_Temp" /ClearCache

Метод 4: Перенос серверных данных (srvinfo)

Если наш робот запускается как регламентное задание на стороне сервера, то основные данные накапливаются в каталоге описания кластера сервера 1С. По умолчанию это C:\Program Files\1cv8\srvinfo. Чтобы перенести этот объем данных (включая журналы регистрации и индексы), выполним следующие действия:

  1. Откроем редактор реестра (regedit).
  2. Перейдем к ветке службы: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.
  3. Найдем параметр ImagePath.
  4. Изменим путь в кавычках после ключа -d. Например: -d "D:\1C_Server_Info".
  5. Перенесем физически все данные из старой папки в новую и перезапустим службу сервера 1С.

Метод 5: Тонкая настройка через conf.cfg

В каталоге установленной платформы (например, C:\Program Files\1cv8\8.3.X.X\bin\conf) находится файл conf.cfg. Мы можем отредактировать его, чтобы изменить поведение системы. Параметр ConfLocation позволяет переопределить место хранения конфигурационных файлов, что также помогает структурировать данные вне системного диска.

Пример содержания файла conf.cfg:

ConfLocation=D:\1C_Config

Метод 6: Очистка «за собой»

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

Используйте функцию УдалитьФайлы() в блоке завершения работы робота. Проанализируем пример кода:


// Получаем путь к временному файлу
ПутьКФайлу = ПолучитьИмяВременногоФайла("xlsx");
// ... тут логика работы робота ...
// Очистка
Попытка
    УдалитьФайлы(ПутьКФайлу);
Исключение
    ЗаписьЖурналаРегистрации("ОчисткаТемпа", УровеньЖурналаРегистрации.Предупреждение, , , "Не удалось удалить: " + ПутьКФайлу);
КонецПопытки;

Сочетание этих методов — использование mklink для кэша и переменных TEMP для временных данных — позволит полностью обезопасить системный диск от переполнения и обеспечит стабильную работу автоматизированных процессов. Для дополнительного высвобождения места можно использовать инструмент для анализа и очистки рабочего каталога центрального сервера.

← На главную