Выносим кэш платформы 1С с системного диска: три рабочих способа
Содержание
Перенести кэш 1С 8.3 на другой диск надёжнее всего через точку соединения (junction): закрываете 1С, переносите папку %LOCALAPPDATA%\1C\1cv8 на диск D: и создаёте на старом месте ссылку командой mklink /J. Платформа продолжает писать «к себе», а данные физически лежат на другом диске. Отдельного параметра «каталог кэша» в настройках платформы нет, поэтому все способы работают на уровне Windows.
Перенос освобождает место на системном диске и ускоряет работу, если новый диск быстрее старого, например кэш уезжает с HDD на SSD или NVMe. Если же переносить с SSD на медленный HDD, запуск баз станет заметно дольше.
Что лежит в кэше 1С 8.3 и почему он столько весит
У каждого пользователя Windows есть два каталога 1С. В них платформа хранит данные отдельно по каждой информационной базе, в подпапках с именами вида a1b2c3d4-... (GUID базы).
| Каталог | Что внутри | Можно переносить |
|---|---|---|
%LOCALAPPDATA%\1C\1cv8 | кэш конфигурации: метаданные, модули, формы каждой базы | да, это основная цель |
%APPDATA%\1C\1cv8 | локальные настройки пользователя по базам, каталог шаблонов tmplts | да, но аккуратнее |
%APPDATA%\1C\1CEStart | список баз ibases.v8i, настройки стартера 1cestart.cfg | не трогать |
%LOCALAPPDATA% обычно раскрывается в C:\Users\Имя\AppData\Local, %APPDATA% — в C:\Users\Имя\AppData\Roaming. Вставьте любую из этих строк в адресную строку Проводника, и он откроет нужную папку.
Почему кэш разрастается:
- 📦 на каждую базу из списка заводится своя папка, а у бухгалтера их бывает 10–20: рабочие, копии, демо;
- 🔄 после обновления конфигурации платформа кэширует новую версию, а старые папки баз, удалённых из списка, остаются навсегда;
- 👥 на терминальном сервере всё это умножается на число пользователей;
- 🧩 в
tmpltsкопятся шаблоны и обновления конфигураций, каждый релиз — сотни мегабайт.
На одну типовую базу вроде БП 3.0 кэш занимает от сотен мегабайт до нескольких гигабайт. Проверить точный размер просто: откройте свойства папки %LOCALAPPDATA%\1C\1cv8.
Подготовка к переносу каталога кэша
Перед переносом соберите четыре вещи.
- Целевой диск. Локальный, с файловой системой NTFS. Сетевая папка не подойдёт: точки соединения работают только с локальными томами, а кэш по сети замедлит каждый запуск.
- Свободное место. Не меньше текущего объёма кэша плюс запас в 2–3 раза на рост.
- Окно без пользователей. Все сеансы 1С на компьютере должны быть закрыты. Проверьте в диспетчере задач, что нет процессов
1cv8.exe,1cv8c.exeи1cv8s.exe. - Список баз. Скопируйте файл
%APPDATA%\1C\1CEStart\ibases.v8iв надёжное место. Перенос его не затрагивает, но копия пригодится, если что-то пойдёт не так.
Кэш — это не данные базы. Проводки, документы и справочники хранятся в самой информационной базе (файл 1Cv8.1CD или SQL-сервер). Даже если кэш потеряется, платформа соберёт его заново при следующем входе. Первый запуск займёт чуть больше времени, и только.
Создайте на новом диске папку, например D:\1CCache. Короткий путь без пробелов и кириллицы избавит от проблем в командах.
Способ 1. Перенос кэша через переменные среды
Платформа строит путь к кэшу от пользовательских каталогов Windows: %LOCALAPPDATA% и %APPDATA%. Отсюда соблазн поменять значения этих переменных в окне «Переменные среды».
Делать это глобально не стоит:
- ❌ папки
AppDataиспользуют все программы: браузеры, почта, мессенджеры. Сменив переменную, вы переселите их все или сломаете часть из них; - ❌ Windows берёт расположение этих папок из профиля пользователя, а не только из переменной окружения. Правка в окне «Переменные среды» может вообще не дать эффекта для программ, которые спрашивают путь у системы.
Рабочий вариант — переопределить переменную только для процесса 1С. Тогда остальные программы ничего не заметят. Делается это через командный файл, о нём в следующем способе.
Если вы всё же правили системные переменные APPDATA или LOCALAPPDATA и после этого перестали запускаться программы, верните исходные значения и перезайдите в Windows.
Способ 2. Ярлык запуска 1С через bat-файл
У 1cv8.exe и стартера 1cestart.exe нет ключа командной строки, который задаёт каталог кэша. Ярлык помогает иначе: он запускает командный файл, а тот меняет переменную только для 1С.
- Создайте файл
D:\1CCache\start1c.batс таким содержимым:
@echo off
set "LOCALAPPDATA=D:\1CCache\%USERNAME%\Local"
if not exist "%LOCALAPPDATA%" mkdir "%LOCALAPPDATA%"
start "" "C:\Program Files\1cv8\common\1cestart.exe"
- Проверьте путь к
1cestart.exe. Для 32-разрядной платформы он обычно лежит вC:\Program Files (x86)\1cv8\common. - Создайте на рабочем столе ярлык на этот bat-файл. В свойствах ярлыка задайте
Окно: Свёрнутое в значок, чтобы чёрное окно не мелькало. - Запустите 1С через новый ярлык и войдите в любую базу.
- Загляните в
D:\1CCache\%USERNAME%\Local\1C\1cv8.
Проверка обязательна. Если в шаге 5 появились папки с GUID, платформа взяла новый путь. Если папка пуста, а кэш продолжает расти на C:, ваша сборка платформы берёт путь у системы мимо переменной. В этом случае переходите к способу 3, он не зависит от того, как программа ищет каталог.
Минусы способа:
- 🔗 пользователь должен запускать 1С только этим ярлыком. Открыл базу из меню «Пуск» — кэш снова пишется на
C:; - 🔁 при автообновлении платформы путь в bat-файле может устареть, если вы указали конкретную версию вместо
1cestart.exe.
Тот же ярлык удобно использовать для принудительной очистки. Ключ /ClearCache при запуске конкретной базы сбрасывает её кэш:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Base\Buh" /ClearCache
Способ 3. Перенос кэша 1С на другой диск через точку соединения
Это основной способ. Точка соединения (junction) — служебная папка NTFS, которая ведёт в другой каталог. Платформа видит обычный путь %LOCALAPPDATA%\1C\1cv8 и не знает, что данные лежат на D:. Права администратора для mklink /J не нужны, если пользователь владеет обеими папками.
- Закройте все сеансы 1С (см. подготовку).
- Откройте командную строку от имени текущего пользователя:
Win+R→cmd. - Перенесите содержимое кэша на новый диск:
robocopy "%LOCALAPPDATA%\1C\1cv8" "D:\1CCache\%USERNAME%\1cv8" /E /MOVE /R:1 /W:1
- Убедитесь, что исходная папка исчезла. Если она осталась, значит, какой-то файл был занят: закройте процесс и повторите команду.
- Создайте ссылку на старом месте:
mklink /J "%LOCALAPPDATA%\1C\1cv8" "D:\1CCache\%USERNAME%\1cv8"
- Запустите 1С, войдите в базу и проверьте, что в
D:\1CCache\%USERNAME%\1cv8меняется дата изменения папок.
В Проводнике папка-ссылка на C: отображается со стрелкой на значке. Её «размер» на диске C: нулевой.
Не создавайте ссылку, пока исходная папка существует: mklink откажется с сообщением «Невозможно создать файл, так как он уже существует». И не удаляйте папку-ссылку через Shift+Delete с подтверждением «удалить содержимое» — удаляйте её командой rmdir "%LOCALAPPDATA%\1C\1cv8", тогда данные на D: останутся целы.
Каталог шаблонов конфигураций
Папку tmplts переносить ссылкой не нужно: у стартера для неё есть штатная настройка. В окне запуска 1С нажмите Настройка... и в поле каталогов шаблонов конфигураций и обновлений укажите, например, D:\1CTemplates. Значение сохраняется в 1cestart.cfg строкой вида:
ConfigurationTemplatesLocation=D:\1CTemplates
Старые шаблоны скопируйте в новую папку вручную или удалите, если обновления больше не нужны.
Сравнение способов
| Способ | Когда подходит | Риски |
|---|---|---|
| Глобальная переменная среды | почти никогда | ломает другие программы, может не сработать |
| bat-ярлык | один пользователь, быстрая проверка | кэш снова на C:, если запустить 1С мимо ярлыка |
| Точка соединения | рабочий вариант для любых ПК и серверов | нужно закрыть 1С на время переноса |
| Настройка шаблонов в стартере | только для tmplts | минимальные |
Очистка и обслуживание кэша после переноса
Перенос не уменьшает кэш, а только переселяет его. Мусор лучше убрать сразу, до копирования, чтобы не тащить лишние гигабайты.
Что можно удалять без последствий:
- 🗑️ папки с GUID в
%LOCALAPPDATA%\1C\1cv8— при входе в базу платформа создаст их заново; - 🗑️ старые шаблоны в
tmplts, если вы не собираетесь создавать базы из них или обновлять конфигурации этими релизами.
Что удалять не нужно:
- 🚫
%APPDATA%\1C\1CEStart— пропадёт список баз; - 🚫 папки в
%APPDATA%\1C\1cv8без особой причины: там локальные настройки пользователя по базам, после удаления часть настроек форм и окон придётся выставлять заново.
Как найти папку конкретной базы среди GUID: откройте ibases.v8i в Блокноте. У каждой базы есть строка ID=... — это и есть имя её папки кэша.
Регламент на практике:
- Раз в квартал, а также после крупного обновления конфигурации, удаляйте папки кэша при закрытой 1С.
- После удаления базы из списка сразу удаляйте её папку — сама она не исчезнет.
- Если после обновления в базе странно ведут себя формы или «не видно» новых реквизитов, сначала запустите её с ключом
/ClearCache.
Кэш 1С на терминальном сервере и в RDP
На терминальном сервере проблема острее: 30 пользователей с 10 базами каждый легко занимают десятки гигабайт на системном диске. Логика та же, но действовать нужно для каждого профиля.
Ссылка для каждого пользователя при входе
Сценарий входа (через групповую политику или задачу планировщика при входе пользователя) создаёт ссылку, если её ещё нет:
@echo off
set "TARGET=D:\1CCache\%USERNAME%\1cv8"
if not exist "%TARGET%" mkdir "%TARGET%"
if not exist "%LOCALAPPDATA%\1C" mkdir "%LOCALAPPDATA%\1C"
if not exist "%LOCALAPPDATA%\1C\1cv8" mklink /J "%LOCALAPPDATA%\1C\1cv8" "%TARGET%"
Сценарий не трогает пользователей, у которых папка 1cv8 уже есть. Для них кэш придётся перенести вручную, как в способе 3, в часы без работы. Предупредите их заранее: открытые сеансы 1С на время переноса нужно закрыть.
Права на D:\1CCache настройте так, чтобы пользователь видел только свою подпапку. Иначе один сотрудник сможет удалить кэш другого.
Перемещаемые профили и диски профилей
%APPDATA%(Roaming) копируется вместе с перемещаемым профилем,%LOCALAPPDATA%— нет. Поэтому основной кэш в Local не раздувает профиль, аtmpltsв Roaming раздувает. Вынесите шаблоны через настройку стартера в общую локальную папку.- Не перенаправляйте
AppDataв сетевую папку ради 1С. Каждый запуск базы станет медленнее.
Кэш сервера 1С (srvinfo)
В клиент-серверном варианте есть и серверный каталог srvinfo: реестр кластера, служебные файлы и сеансовые данные. Его тоже выносят на быстрый диск.
- Предупредите пользователей: остановка службы обрывает все сеансы всех баз кластера. Делайте это вне рабочего времени.
- Остановите службу агента сервера 1С в
services.msc. - Скопируйте папку
srvinfoна новый диск целиком, например вD:\srvinfo. - В редакторе реестра откройте
HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>. В параметреImagePathзамените путь после ключа-dна новый. - Дайте учётной записи, от которой работает служба, полный доступ к
D:\srvinfo. - Запустите службу и проверьте в консоли администрирования, что кластер и базы на месте.
Старую папку srvinfo удаляйте только после нескольких дней спокойной работы.
Частые ошибки при переносе и как их избежать
- Копирование вместо переноса. Скопировали папку на
D:, а оригинал оставили. Ссылка не создаётся, место не освободилось. Используйтеrobocopy /MOVE. - Перенос при открытой 1С. Часть файлов занята,
robocopyих пропускает, папка остаётся. Закрывайте все процессы платформы, в том числе фоновые1cv8c.exeу других сеансов того же пользователя. - Символическая ссылка
mklink /Dвместо/J. Для неё нужны права администратора или режим разработчика, а на серверах её поведение зависит от политик. Для локальных дисков достаточно/J. - Перенос
1CEStart. Список баз и настройки стартера весят килобайты. Выигрыша нет, а риск потерять список баз есть. - Кэш на съёмном диске. Флешку или внешний диск отключили — ссылка ведёт в никуда, 1С не может создать кэш. Только постоянный внутренний диск.