Кэш и Temp 1С:Предприятия: куда платформа пишет данные и как их чистить

· 9 мин

Содержание

Временные файлы 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\1cv8C:\Users\Имя\AppData\Local\1C\1cv8
Локальные пользовательские данные, часть настроек%APPDATA%\1C\1cv8C:\Users\Имя\AppData\Roaming\1C\1cv8
Список баз (ibases.v8i), настройки запуска%APPDATA%\1C\1CEStartC:\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

Для пользователя:

  1. Откройте Win+R → sysdm.cpl → вкладка «Дополнительно» → «Переменные среды».
  2. В верхнем блоке (переменные пользователя) измените TEMP и TMP, например на D:\Temp\Имя.
  3. Создайте эту папку заранее и выйдите из сеанса Windows — новые значения подхватятся при следующем входе.

Для сервера 1С меняют переменные той учётной записи, под которой работает служба, и перезапускают службу. Если служба работает как LocalSystem, меняются системные переменные, а это затронет все программы на сервере — лучше заведите для 1С отдельного пользователя.

Перезапуск службы агента сервера обрывает все сеансы пользователей. Делайте это вне рабочего времени и предупредите сотрудников заранее.

Какие ещё пути настраиваются отдельно

  • 📁 Каталог шаблонов конфигураций и обновлений — параметр ConfigurationTemplatesLocation в файле 1cestart.cfg (лежит в %APPDATA%\1C\1CEStart). Сюда ложатся распакованные обновления, и они могут занимать десятки гигабайт.
  • 📝 Технологический журнал — путь задаётся в logcfg.xml в атрибуте location. Если журнал включили «на время» и забыли, он забивает диск быстрее любого Temp.

Очистка кэша и временных файлов 1С: вручную и по расписанию

Способ 1. Параметр /ClearCache — для одной базы

Самый безопасный вариант. Кэш чистится только у выбранной базы, остальные не затрагиваются.

  1. В окне запуска выделите базу и нажмите «Изменить».
  2. Пройдите до последней страницы мастера.
  3. В поле «Дополнительные параметры запуска» впишите /ClearCache.
  4. Нажмите «Готово» и запустите базу.

После успешного входа параметр лучше убрать: иначе кэш будет пересоздаваться при каждом запуске, и база будет открываться медленнее.

Способ 2. Удаление папок кэша вручную

Подходит, когда /ClearCache не помог или база не открывается вовсе.

  1. Закройте все окна 1С. Проверьте в диспетчере задач, что не осталось процессов 1cv8.exe и 1cv8c.exe.
  2. Откройте %LOCALAPPDATA%\1C\1cv8 и удалите папку нужной базы (по ID из ibases.v8i) или все папки с GUID-именами.
  3. То же сделайте в %APPDATA%\1C\1cv8.
  4. Запустите базу — платформа заново скачает кэш. Первый запуск будет дольше обычного.

💡 Папку 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. Предупредите пользователей: все сеансы будут завершены.
  2. Остановите службу «Агент сервера 1С:Предприятия».
  3. Сделайте копию папки reg_1541.
  4. Удалите в ней папки snccntx... (сеансовые данные).
  5. Запустите службу.
СпособКогда применятьРиски
/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 целиком?
Можно, если 1С закрыта. Платформа пересоздаст кэш при запуске. Не трогайте только 1CEStart в Roaming — там список баз.
Почему после чистки кэша база открывается дольше?
Платформа заново загружает описание конфигурации с сервера или из файла базы. Со второго запуска скорость вернётся.
Сколько места обычно занимает кэш одной базы?
Для типовой конфигурации вроде Бухгалтерии — ориентировочно от нескольких сотен мегабайт до 1–2 ГБ. Крупные ERP-решения занимают больше.
Нужно ли чистить кэш после каждого обновления?
Нет. Платформа сама обновляет кэш при изменении конфигурации. Чистка нужна, только если после обновления появились сбои.
Удалится ли что-то из базы при чистке Temp?
Нет. В Temp лежат только промежуточные файлы. Данные учёта хранятся в базе и не зависят от этой папки.