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

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

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

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

Выясним причину: почему кэш 1С стал занимать так много места?

С развитием платформы 1С:Предприятие и переходом прикладных решений на новые версии Библиотеки стандартных подсистем (БСП) механизмы взаимодействия программы с дисковой подсистемой существенно изменились. Рассмотрим ключевые факторы, которые вызывают лавинообразный рост папок AppData\Local\1C\1Cv8 и AppData\Roaming\1C\1Cv8:

  1. Активное кэширование внешних компонент. Современная 1С динамически подгружает во временные каталоги пользователя множество библиотек (файлы формата .dll). Это компоненты для склонения фио, штрихкодирования, работы с торговым оборудованием, модули криптографии и электронного документооборота (ЭДО). Эти компоненты могут дублироваться для каждого сеанса работы, занимая сотни мегабайт.
  2. Глубокое кэширование метаданных и интерфейса. Для обеспечения высокой скорости работы интерфейса «Такси» платформа локально кэширует структуру конфигурации, настройки динамических списков, расположение элементов форм и историю выбора. При работе с тяжелыми базами данных (такими как 1С:ERP или 1С:Комплексная автоматизация) размер кэша одной базы может легко превысить несколько гигабайт.
  3. Динамические обновления. При частом применении динамических обновлений в клиент-серверном режиме старый кэш метаданных не удаляется автоматически. Вместо этого платформа создает новые папки с уникальными идентификаторами (GUID), превращая временные каталоги в склад «мусорных» файлов.

Ниже мы подробно разберем четыре практических метода решения этой проблемы.

Способ 1. Создание символьной ссылки через утилиту mklink (Рекомендуемый способ)

Использование символьных ссылок (симлинков) — это наиболее надежный и прозрачный для операционной системы способ перенаправления данных. Мы заставим Windows думать, что файлы по-прежнему записываются в профиль пользователя на диске C:, хотя фактически они будут сохраняться на диске D:.

Рассмотрим по шагам правильный алгоритм переноса кэша с помощью команды mklink /j:

  1. Полностью закройте программу 1С:Предприятие. Откройте Диспетчер задач и убедитесь, что в системе нет активных процессов 1cv8.exe, 1cv8c.exe или 1cestart.exe.
  2. Перейдите в папку локального профиля пользователя. По умолчанию кэш 1С находится по пути:
    C:\Users\Имя_Пользователя\AppData\Local\1C\1Cv8
    Примечание: папка AppData является скрытой. Чтобы ее увидеть, включите отображение скрытых элементов в проводнике Windows.
  3. Переместите (именно вырежьте и вставьте, а не просто скопируйте) каталог 1Cv8 в новое место на диске D:, например, в D:\1C_Cache\Local\1Cv8.
  4. Убедитесь, что на диске C: в исходном каталоге C:\Users\Имя_Пользователя\AppData\Local\1C больше нет папки с именем 1Cv8. Если она осталась пустой — удалите ее вручную. Это критически важно, иначе команда создания ссылки выдаст ошибку.
  5. Запустите командную строку Windows (cmd) обязательно от имени Администратора.
  6. Выполните команду создания связи каталогов (Junction point):
    
    mklink /j "C:\Users\Имя_Пользователя\AppData\Local\1C\1Cv8" "D:\1C_Cache\Local\1Cv8"
    
  7. В случае успеха командная строка выдаст сообщение: Соединение создано для.... Теперь на диске C: появится папка со значком ярлыка. При обращении к ней запись будет физически производиться на диск D:.
  8. Повторите аналогичную операцию для роуминг-профиля (где хранятся настройки пользователя), если это необходимо:
    Исходный путь: C:\Users\Имя_Пользователя\AppData\Roaming\1C\1Cv8
    Новый путь: D:\1C_Cache\Roaming\1Cv8

Способ 2. Перенаправление кэша через BAT-файл (без прав администратора)

Метод с использованием символьных ссылок требует прав локального администратора на компьютере, что далеко не всегда возможно в корпоративной среде. В этом случае мы можем прибегнуть к альтернативному решению — переопределению системных переменных окружения для конкретного процесса 1С с помощью командного файла запуска.

Мы создадим простой скрипт, который временно (только на время работы запущенной из него копии 1С) подменяет пути к папкам TEMP, TMP и профилю пользователя USERPROFILE.

Разберем пример создания такого файла:

  1. Создайте на диске D: целевую папку, например, D:\1C_WorkDir.
  2. Внутри этой папки создайте пустой текстовый файл и переименуйте его, изменив расширение с .txt на .cmd или .bat (например, run_1c.cmd).
  3. Откройте этот файл в Блокноте и вставьте следующий код:
    
    @echo off
    set TEMP=D:\1C_WorkDir\Temp
    set TMP=D:\1C_WorkDir\Temp
    set USERPROFILE=D:\1C_WorkDir\Profile
        
    if not exist "D:\1C_WorkDir\Temp" mkdir "D:\1C_WorkDir\Temp"
    if not exist "D:\1C_WorkDir\Profile" mkdir "D:\1C_WorkDir\Profile"
        
    start "" "C:\Program Files\1cv8\common\1cestart.exe"
    
  4. Сохраните изменения и запустите созданный файл.

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

Способ 3. Перенос настроек с помощью файла location.cfg

В некоторых обсуждениях (например, в Сообщении 2 темы) упоминается использование конфигурационного файла location.cfg. Давайте проанализируем этот метод и разберем его ограничения.

Файл location.cfg позволяет указать платформе альтернативное место для хранения некоторых данных пользователя. Этот файл обычно размещается в каталоге установки платформы (в папке conf) и содержит параметр location, указывающий на целевой каталог.

Важное ограничение: Использование location.cfg решает проблему лишь частично. Этот параметр переопределяет расположение файлов индивидуальных настроек пользователя (таких как файлы интерфейса .pfl) и файлов программных лицензий 1С (.lic). Однако он не переносит временные файлы из системного каталога Temp, куда пишется основной объем «тяжелых» данных во время сеанса. Таким образом, использовать этот файл как единственное средство спасения диска C: нецелесообразно.

Способ 4. Использование RAM-диска для максимального быстродействия

Если ваша рабочая станция или терминальный сервер обладают большим объемом оперативной памяти (от 16-32 ГБ и выше), вы можете совместить перенос кэша с колоссальным увеличением скорости работы 1С. Для этого применяется технология RAM-диска (создание виртуального диска прямо в оперативной памяти компьютера).

Проанализируем алгоритм реализации этого метода:

  1. С помощью специализированного бесплатного программного обеспечения (например, ImDisk Virtual Disk Driver или аналогов) создаем в оперативной памяти виртуальный диск небольшого объема (например, 4 ГБ) под свободной литерой, допустим, R:.
  2. Настраиваем автоматическое форматирование этого диска в файловую систему NTFS при старте операционной системы.
  3. Используя Метод №1 (символьные ссылки) или Метод №2 (командный файл), перенаправляем папки временных файлов Temp и кэш 1С на созданный диск R:.

В чем преимущество данного подхода?
Во-первых, скорость чтения и записи в оперативную память в десятки раз превосходит показатели даже самых быстрых твердотельных накопителей (SSD NVMe), что дает огромный прирост к отзывчивости интерфейса 1С. Во-вторых, полностью исключается износ SSD-накопителя от постоянных циклов перезаписи временных файлов программы. В-третьих, при выключении или перезагрузке компьютера виртуальный RAM-диск полностью очищается, что навсегда решает проблему накопления «мусорного» кэша 1С.

Рекомендации по безопасной и регулярной очистке кэша

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

При ручной или автоматизированной очистке категорически нельзя удалять папку 1C целиком. В ней хранятся важные конфигурационные файлы, список баз данных (файл ibases.v8i) и индивидуальные пользовательские настройки окон, таблиц и отчетов.

Безопасная очистка подразумевает удаление только тех подкаталогов в папках Local\1C\1Cv8 и Roaming\1C\1Cv8, имена которых представляют собой длинную шестнадцатеричную последовательность символов, разделенную дефисами — так называемые GUID-идентификаторы (например, 3b52d4e8-8a21-4f90-b18c-7c5ef93da012). Именно в этих папках с непонятными именами платформа хранит кэш метаданных конкретных баз, который можно безболезненно удалять — при следующем запуске базы 1С автоматически воссоздаст их заново.

← На главную