Работа платформы 1С:Предприятие неизбежно сопровождается генерацией большого объема временных данных. Это и динамический кэш конфигурации, и временные файлы (TEMP), и данные пользователя. Если в системе работает робот или запущено множество фоновых процессов, системный диск (обычно диск C:) может быстро переполниться, что приведет к сбоям в работе всей ОС. Разберем подробно, как перенаправить эти потоки данных на другой диск или раздел.
Проанализируем самый эффективный способ, который позволяет обмануть систему, заставив её думать, что данные находятся в стандартной папке пользователя, хотя физически они будут располагаться на другом диске. Для этого воспользуемся встроенной утилитой Windows mklink.
Основной кэш 1С хранится в двух папках профиля пользователя:
%LOCALAPPDATA%\1C\1cv8 — здесь находится динамический кэш (самый объемный мусор).%APPDATA%\1C\1cv8 — здесь хранятся настройки пользователя, список баз и файлы конфигурации.Рассмотрим по шагам процесс переноса самой «тяжелой» папки на диск D::
D:\1C_Data\Local_Cache.C:\Users\ИмяРобота\AppData\Local\1C\1cv8 в новую папку. Важно: саму папку 1cv8 на диске C: нужно удалить после перемещения содержимого.
mklink /D "C:\Users\ИмяРобота\AppData\Local\1C\1cv8" "D:\1C_Data\Local_Cache"
Теперь все данные, которые 1С пытается записать в локальный профиль, будут автоматически перенаправляться на диск D:. Этот метод универсален и не требует изменения настроек запуска самой 1С.
Выясним причину, по которой временные файлы обработки попадают на системный диск. По умолчанию 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.
Платформа 1С:Предприятие поддерживает специальные параметры командной строки, которые позволяют управлять местоположением данных. Посмотрим на наиболее полезные из них:
/T "D:\MyTemp", то все промежуточные данные обработки будут создаваться именно там.Пример командной строки для запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /T "D:\1C_Temp" /ClearCache
Если наш робот запускается как регламентное задание на стороне сервера, то основные данные накапливаются в каталоге описания кластера сервера 1С. По умолчанию это C:\Program Files\1cv8\srvinfo. Чтобы перенести этот объем данных (включая журналы регистрации и индексы), выполним следующие действия:
regedit).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.ImagePath.-d. Например: -d "D:\1C_Server_Info".В каталоге установленной платформы (например, C:\Program Files\1cv8\8.3.X.X\bin\conf) находится файл conf.cfg. Мы можем отредактировать его, чтобы изменить поведение системы. Параметр ConfLocation позволяет переопределить место хранения конфигурационных файлов, что также помогает структурировать данные вне системного диска.
Пример содержания файла conf.cfg:
ConfLocation=D:\1C_Config
Наиболее правильным с точки зрения разработки решением будет добавление в саму обработку логики по удалению временных файлов. Рассмотрим, какие методы 1С нам в этом помогут:
Используйте функцию УдалитьФайлы() в блоке завершения работы робота. Проанализируем пример кода:
// Получаем путь к временному файлу
ПутьКФайлу = ПолучитьИмяВременногоФайла("xlsx");
// ... тут логика работы робота ...
// Очистка
Попытка
УдалитьФайлы(ПутьКФайлу);
Исключение
ЗаписьЖурналаРегистрации("ОчисткаТемпа", УровеньЖурналаРегистрации.Предупреждение, , , "Не удалось удалить: " + ПутьКФайлу);
КонецПопытки;
Сочетание этих методов — использование mklink для кэша и переменных TEMP для временных данных — позволит полностью обезопасить системный диск от переполнения и обеспечит стабильную работу автоматизированных процессов. Для дополнительного высвобождения места можно использовать инструмент для анализа и очистки рабочего каталога центрального сервера.