Кэш и Temp 1С:Предприятия: куда платформа пишет данные и как их чистить
Содержание
Временные файлы 1С 8.3 лежат в трёх местах: кэш баз — в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, рабочие временные файлы — в папке %TEMP% пользователя, а на сервере 1С — в %TEMP% учётной записи службы и в каталоге кластера srvinfo. Чистить их можно вручную, параметром запуска /ClearCache или скриптом по расписанию.
Какой способ выбрать, зависит от задачи. Если одна база «глючит» после обновления, хватает /ClearCache или удаления одной папки кэша. Если на диске C: закончилось место, нужна чистка Temp. Если ошибки идут у всех пользователей сразу — разбираться надо на сервере.
Где 1С хранит кэш и временные файлы на компьютере пользователя
Платформа раскладывает данные по стандартным папкам профиля Windows. Чтобы не искать путь вручную, вставьте переменную в адресную строку Проводника или в окно Win+R — Windows сама подставит имя пользователя.
| Что лежит | Путь (переменная) | Развёрнутый путь в Windows 10/11 |
|---|---|---|
| Кэш конфигурации и метаданных | %LOCALAPPDATA%\1C\1cv8 | C:\Users\Имя\AppData\Local\1C\1cv8 |
| Локальные пользовательские данные, часть настроек | %APPDATA%\1C\1cv8 | C:\Users\Имя\AppData\Roaming\1C\1cv8 |
| Список баз (ibases.v8i), настройки запуска | %APPDATA%\1C\1CEStart | C:\Users\Имя\AppData\Roaming\1C\1CEStart |
| Рабочие временные файлы | %TEMP% | C:\Users\Имя\AppData\Local\Temp |
Внутри 1cv8 вы увидите папки с длинными именами вида 3f1a2b7c-.... Это идентификаторы баз: на каждую базу из списка — своя папка. Тот же идентификатор записан в файле ibases.v8i в строке ID= у каждой базы. Так можно точно понять, какая папка относится к нужной базе, и не трогать остальные.
💡 Папка AppData скрытая. Если открываете её не через переменную, включите в Проводнике показ скрытых элементов.
Что именно пишет 1С в Temp
В %TEMP% платформа складывает:
- 📄 файлы вида
v8_XXXX_N.tmp— промежуточные данные при открытии отчётов, печати, выгрузке; - 📦 распакованные вложения и файлы, которые пользователь открывает из базы (сканы, прикреплённые документы);
- 🧩 файлы, которые создаёт прикладной код через
ПолучитьИмяВременногоФайла().
Большая часть удаляется при нормальном закрытии программы. При аварийном завершении — зависании, снятии процесса в диспетчере задач, отключении питания — файлы остаются навсегда.
Временные данные на сервере 1С:Предприятия
В клиент-серверном варианте основная работа идёт на сервере, и временные файлы копятся там. Сервер пишет их в %TEMP% той учётной записи, от которой запущена служба агента сервера.
| Под кем работает служба | Куда пишутся временные файлы |
|---|---|
Отдельный пользователь (обычно USR1CV8) | C:\Users\USR1CV8\AppData\Local\Temp |
| Локальная система (LocalSystem) | C:\Windows\Temp |
Узнать учётную запись можно в оснастке services.msc: свойства службы «Агент сервера 1С:Предприятия», вкладка «Вход в систему».
Каталог кластера srvinfo
Второе место — рабочий каталог кластера. Его путь задаётся при установке сервера и указан в параметре -d в командной строке службы. Чаще всего это C:\Program Files\1cv8\srvinfo.
Внутри есть папка reg_1541 (по номеру порта менеджера кластера). В ней:
- 🗂
1CV8Clst.lst— реестр кластера: список баз, рабочих серверов, администраторов; - 📁 папки с идентификаторами баз — серверный кэш конфигурации;
- 📁 папки
snccntx...— сеансовые данные.
Файл 1CV8Clst.lst не удаляйте никогда. Без него кластер «забудет» все зарегистрированные базы, и их придётся добавлять заново с настройками подключения к СУБД.
Временные таблицы в СУБД
Отдельная история — временные таблицы запросов. В клиент-серверном режиме они создаются не в файлах Windows, а в СУБД: в MS SQL Server — в системной базе tempdb, в PostgreSQL — во временном табличном пространстве. Если растёт именно этот объём, чистка Temp на диске не поможет — смотреть надо на СУБД.
В файловом варианте рядом с базой может появляться 1Cv8tmp.1CD. Это рабочий файл для временных данных, его создаёт и убирает сама платформа. Трогать его можно, только когда в базе никого нет.
Как перенести временные файлы и кэш на другой диск
Частый вопрос — можно ли указать 1С отдельную папку под временные файлы через conf.cfg. Разберём, что в этом файле на самом деле есть.
Что настраивается в conf.cfg
Файл лежит в C:\Program Files\1cv8\conf\conf.cfg (общий для всех версий платформы) и в bin\conf каждой конкретной версии. В нём задают, например:
ConfLocation=D:\1C\conf
SystemLanguage=RU
DisableUnsafeActionProtection=.*
ConfLocation— перенаправляет поиск файлов настроек в другой каталог (удобно для общей папки на нескольких машинах);SystemLanguage— язык интерфейса платформы;DisableUnsafeActionProtection— отключает предупреждения о небезопасных действиях для баз по маске (с ним осторожнее).
Отдельного параметра «папка для временных файлов» в conf.cfg нет. Платформа берёт системную папку Temp, поэтому переносят её средствами Windows.
Перенос через переменные TEMP и TMP
Для пользователя:
- Откройте
Win+R→sysdm.cpl→ вкладка «Дополнительно» → «Переменные среды». - В верхнем блоке (переменные пользователя) измените
TEMPиTMP, например наD:\Temp\Имя. - Создайте эту папку заранее и выйдите из сеанса Windows — новые значения подхватятся при следующем входе.
Для сервера 1С меняют переменные той учётной записи, под которой работает служба, и перезапускают службу. Если служба работает как LocalSystem, меняются системные переменные, а это затронет все программы на сервере — лучше заведите для 1С отдельного пользователя.
Перезапуск службы агента сервера обрывает все сеансы пользователей. Делайте это вне рабочего времени и предупредите сотрудников заранее.
Какие ещё пути настраиваются отдельно
- 📁 Каталог шаблонов конфигураций и обновлений — параметр
ConfigurationTemplatesLocationв файле1cestart.cfg(лежит в%APPDATA%\1C\1CEStart). Сюда ложатся распакованные обновления, и они могут занимать десятки гигабайт. - 📝 Технологический журнал — путь задаётся в
logcfg.xmlв атрибутеlocation. Если журнал включили «на время» и забыли, он забивает диск быстрее любого Temp.
Очистка кэша и временных файлов 1С: вручную и по расписанию
Способ 1. Параметр /ClearCache — для одной базы
Самый безопасный вариант. Кэш чистится только у выбранной базы, остальные не затрагиваются.
- В окне запуска выделите базу и нажмите «Изменить».
- Пройдите до последней страницы мастера.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Нажмите «Готово» и запустите базу.
После успешного входа параметр лучше убрать: иначе кэш будет пересоздаваться при каждом запуске, и база будет открываться медленнее.
Способ 2. Удаление папок кэша вручную
Подходит, когда /ClearCache не помог или база не открывается вовсе.
- Закройте все окна 1С. Проверьте в диспетчере задач, что не осталось процессов
1cv8.exeи1cv8c.exe. - Откройте
%LOCALAPPDATA%\1C\1cv8и удалите папку нужной базы (по ID изibases.v8i) или все папки с GUID-именами. - То же сделайте в
%APPDATA%\1C\1cv8. - Запустите базу — платформа заново скачает кэш. Первый запуск будет дольше обычного.
💡 Папку 1CEStart не удаляйте: в ней список баз. Если удалить её целиком, список придётся восстанавливать заново.
Настройки форм и отчётов в клиент-серверных базах хранятся в самой базе, поэтому чистка локального кэша их не сбрасывает.
Способ 3. Чистка Temp
Закройте 1С и удалите содержимое %TEMP%. Файлы, занятые другими программами, Windows удалить не даст — их пропустите, это нормально.
На сервере то же самое делается в Temp учётной записи службы. Старые файлы (старше суток) можно удалять и без остановки службы: занятые файлы просто не удалятся.
Способ 4. Скрипт по расписанию
Для сервера удобнее автоматизировать. Скрипт удаляет временные файлы 1С старше 7 дней:
@echo off
rem Чистка временных файлов 1С старше 7 дней
set T=C:\Users\USR1CV8\AppData\Local\Temp
forfiles /p "%T%" /m v8_*.* /d -7 /c "cmd /c del /q @path" 2>nul
Сохраните как clean_1c_temp.bat и добавьте в «Планировщик заданий» Windows с запуском раз в сутки ночью. Путь в переменной T замените на свой.
Очистка серверного кэша
Её делают, когда у всех пользователей одновременно сыпятся странные ошибки после обновления конфигурации, а клиентская чистка не помогла.
- Предупредите пользователей: все сеансы будут завершены.
- Остановите службу «Агент сервера 1С:Предприятия».
- Сделайте копию папки
reg_1541. - Удалите в ней папки
snccntx...(сеансовые данные). - Запустите службу.
| Способ | Когда применять | Риски |
|---|---|---|
/ClearCache | Сбои одной базы после обновления | Почти нет |
| Удаление папок кэша | База не открывается, /ClearCache не помог | Долгий первый запуск |
| Чистка Temp | Кончается место на диске | Нет, если 1С закрыта |
| Скрипт по расписанию | Сервер, терминальный сервер | Нет при фильтре по дате |
Чистка snccntx на сервере | Ошибки у всех после обновления | Обрыв всех сеансов |
Ошибки из-за переполненной папки Temp: как распознать
Переполненный Temp редко даёт понятное сообщение. Обычно это выглядит как случайный сбой в самом неожиданном месте. Подсказки ниже помогут связать симптом с причиной.
Как проверить, кто занимает место
Самый быстрый способ — посмотреть размер папок. В PowerShell:
Get-ChildItem $env:TEMP -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum |
Select-Object Count, @{n='ГБ';e={[math]::Round($_.Sum/1GB,2)}}
Команда покажет число файлов и общий объём Temp. Если файлов десятки тысяч — причина найдена.
Ускоряем 1С при работе с большими объёмами данных
Когда база большая, а отчёты тяжёлые, временные файлы становятся узким местом. Несколько приёмов помогают заметно.
Быстрый диск под Temp и tempdb
- 💽 Держите Temp сервера 1С на SSD. Медленный диск тормозит формирование больших отчётов и выгрузок.
- 🗄 Для MS SQL Server вынесите
tempdbна отдельный быстрый диск. Временные таблицы запросов 1С активно её используют. - 📏 Следите за свободным местом: оставляйте на диске с Temp хотя бы 10–15% свободными.
Исключения антивируса
Антивирус, проверяющий каждый временный файл, замедляет работу сильнее, чем кажется. Обычно в исключения добавляют:
- каталог кластера
srvinfo; - папки
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8; - каталог файловой базы (если она файловая);
- Temp учётной записи службы 1С.
Согласуйте это с тем, кто отвечает за безопасность в компании.
Код, который не мусорит
Если Temp растёт без аварий и сбоев, виновата часто доработка. Код получает имя через ПолучитьИмяВременногоФайла(), пишет туда файл и забывает удалить.
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
Попытка
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
// ... работа с файлом
Исключение
УдалитьФайлы(ИмяФайла);
ВызватьИсключение;
КонецПопытки;
УдалитьФайлы(ИмяФайла);
Попросите программиста проверить обработки выгрузки и обмена: каждый временный файл должен удаляться через УдалитьФайлы(), в том числе при ошибке.
Терминальный сервер
На терминальном сервере у каждого пользователя свой Temp и свой кэш. При 30 пользователях кэш одной большой конфигурации легко занимает десятки гигабайт. Включите чистку Temp при выходе из сеанса в групповых политиках Windows или запускайте скрипт для всех профилей по расписанию.
Частые вопросы
Можно ли удалить всю папку AppData\Local\1C целиком?
1CEStart в Roaming — там список баз.