Временные файлы и кэш 1С 8.3: пути в Windows и Linux, очистка и перенос

· 9 мин

Содержание

Временные файлы 1С 8.3 лежат в папке %TEMP% пользователя Windows, а кэш конфигурации и списков баз — в %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8. На Linux это /tmp и каталог ~/.1cv8 в домашней папке. У сервера 1С свои каталоги: кластер хранится в srvinfo.

Где хранится временный файл 1С, зависит от того, кто его создал: клиентское приложение, сервер или код конфигурации. Ниже — адрес каждой папки, безопасный порядок очистки, перенос на другой диск и готовые скрипты для автоматизации.

Какие временные файлы создаёт 1С и зачем

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

Что этоГде лежит (клиент, Windows)Можно удалять
Временные файлы платформы (v8_*.tmp)%TEMP%Да, когда 1С закрыта
Кэш конфигурации и форм%LOCALAPPDATA%\1C\1cv8\<GUID>Да, перестроится при запуске
Список баз, настройки окон%APPDATA%\1C\1cv8Осторожно: потеряете список баз
Файлы, созданные кодом конфигурации%TEMP% или своя папкаЗависит от процесса

Откуда берётся мусор:

  • 📄 выгрузка отчёта в Excel или PDF перед открытием;
  • 🖨 подготовка печатной формы;
  • 📎 вложения и присоединённые файлы, открытые «на просмотр»;
  • 🔄 обмены, загрузка банковских выписок, работа с XML;
  • 💥 аварийное закрытие 1С — тогда временный файл не удаляется.

Пока 1С не закрыта, часть файлов занята процессом. Если удалять «вслепую» при работающем клиенте, Windows выдаст отказ в доступе — это нормально, такие файлы пропустите.

Пути к временным файлам 1С в Windows

Клиент и толстый клиент

Точный адрес папки для вашего пользователя покажет командная строка:

echo %TEMP%
echo %LOCALAPPDATA%
echo %APPDATA%

Типичный результат на Windows 10 и 11:

  • C:\Users\Иванов\AppData\Local\Temp — временные файлы;
  • C:\Users\Иванов\AppData\Local\1C\1cv8 — кэш, внутри папки с именами-GUID;
  • C:\Users\Иванов\AppData\Roaming\1C\1cv8 — список баз ibases.v8i и настройки.

Папка AppData скрыта. Откройте проводник, введите в адресную строку %LOCALAPPDATA%\1C\1cv8 и нажмите Enter — скрытые папки включать не нужно.

Файл ibases.v8i в %APPDATA%\1C\1cv8 хранит список баз из окна запуска. Его не чистят. Если удалили случайно, список придётся собирать заново.

Сервер 1С на Windows

У серверного процесса два адреса, которые важно не путать:

  • 🗂 каталог кластера (srvinfo) — по умолчанию внутри папки установки платформы, например C:\Program Files\1cv8\srvinfo. Там лежат реестр кластера, служебные данные сеансов и журналы регистрации. Это не временные файлы, вручную в нём ничего не удаляют;
  • 🗑 TEMP пользователя, под которым запущена служба. Обычно это USR1CV8. Файлы серверных вызовов оседают в его временной папке.

Проверить, под кем работает служба: services.msc → служба «Агент сервера 1С:Предприятия 8.3» → вкладка «Вход в систему».

Какие файлы создаёт сам код

Разработчик получает путь командой КаталогВременныхФайлов(), а новое имя — функцией ПолучитьИмяВременногоФайла(). Оба обращаются к тому же %TEMP%. Поэтому «лишние» файлы бывают не только v8_*.tmp, но и документы с понятными названиями, которые оставил обработчик обмена.

Где искать временные файлы 1С на Linux

На Linux всё проще и строже по правам. Сначала посмотрите, что лежит в системной временной папке:

ls -lh /tmp | grep -i v8
echo $TMPDIR

Основные адреса:

КомпонентПуть
Клиент, кэш и настройки~/.1cv8/1C/1cv8
Клиент, список баз~/.1C/1cv8/ibases.v8i
Временные файлы/tmp или значение $TMPDIR
Кластер сервера (пользователь usr1cv8)/home/usr1cv8/.1cv8/1C/1cv8

Для серверных процессов домашняя папка — /home/usr1cv8. Если запускали под другим пользователем, смотрите его ~. Путь кластера задан параметром запуска ragent (ключ -d), в штатной установке он лежит в домашней папке usr1cv8.

На сервере не чистите каталог кластера руками «на всякий случай». Потеря служебных файлов реестра кластера означает пересоздание кластера и перерегистрацию баз.

Как понять, что пора чистить

Не всякий тормоз лечится очисткой. Три признака, что причина именно в кэше и временных файлах:

  • 🐢 после обновления конфигурации форма открывается по-старому: нет новых полей, кнопки на прежних местах;
  • 💽 свободного места на диске C: меньше 5 ГБ, а сама база лежит на другом диске;
  • 📂 папка %TEMP% весит несколько гигабайт, в ней сотни файлов v8_*.tmp.

Быстрая проверка размера в PowerShell:

"{0:N0} МБ" -f ((Get-ChildItem $env:TEMP -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB)
"{0:N0} МБ" -f ((Get-ChildItem "$env:LOCALAPPDATA\1C\1cv8" -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB)

Первая строка покажет объём временной папки, вторая — кэша 1С. Если оба числа в пределах нескольких сотен мегабайт, ищите причину торможения в другом месте: в блокировках, индексах СУБД или нехватке памяти на сервере.

Для обычного рабочего места нормальный размер кэша 1С — от 100 МБ до 1–2 ГБ. Сильно больше бывает у тех, кто часто открывает много разных баз.

Как удалить временные файлы 1С безопасно

Порядок от самого мягкого способа к самому жёсткому.

Способ 1. Параметр /ClearCache

Самый безопасный вариант: платформа сама сбросит кэш при запуске.

  1. Закройте все окна 1С.
  2. Откройте командную строку.
  3. Запустите клиент с ключом:
"C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe" ENTERPRISE /ClearCache

Номер версии в пути подставьте свой — посмотрите в папке C:\Program Files\1cv8.

То же самое можно сделать без командной строки. В окне запуска выберите базу → «Изменить» → «Далее» → в поле «Дополнительные параметры запуска» впишите /ClearCache → один раз запустите → ключ удалите.

Способ 2. Ручная очистка кэша

  1. Закройте 1С полностью (проверьте диспетчер задач: нет процессов 1cv8.exe, 1cv8c.exe).
  2. Откройте %LOCALAPPDATA%\1C\1cv8.
  3. Удалите вложенные папки с именами вида a1b2c3d4-0000-1111-2222-333344445555.
  4. Файлы и ibases.v8i не трогайте.
  5. Запустите 1С — кэш построится заново, первый вход будет чуть дольше.

Способ 3. Очистка %TEMP%

Удалять нужно только то, что оставила 1С:

del /q /f "%TEMP%\v8_*.tmp"

Остальные файлы в %TEMP% принадлежат другим программам. Чистить всю папку можно, но только при закрытых приложениях.

Какой способ выбрать

Что у вас происходит?

Перенос временных файлов на другой диск

Если системный диск маленький, а данных много, временные файлы удобнее вынести на отдельный раздел. Платформа берёт путь из переменной окружения, поэтому переносить нужно именно её.

Клиент в Windows

  1. Создайте папку, например D:\Temp1C.
  2. Win + R → sysdm.cpl → «Дополнительно» → «Переменные среды».
  3. В блоке «Переменные среды пользователя» измените TEMP и TMP на D:\Temp1C.
  4. Перезайдите в Windows.

Из командной строки то же самое делает:

setx TEMP "D:\Temp1C"
setx TMP "D:\Temp1C"

Изменится путь для всех программ этого пользователя, а не только для 1С. Если нужно только для одной базы, запускайте клиент через .bat-файл с set TEMP=D:\Temp1C перед командой запуска.

Служба сервера 1С

Переменная должна относиться к пользователю, под которым запущена служба (USR1CV8) — либо быть системной. После изменения перезапустите службу:

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Точное имя службы смотрите в services.msc: оно зависит от версии платформы.

Linux

Для сессии:

export TMPDIR=/data/tmp1c
mkdir -p "$TMPDIR"

Для серверного агента строку TMPDIR добавляют в окружение службы (файл юнита systemd или файл настроек запуска) и перезапускают агент.

Новый каталог должен существовать и быть доступен на запись пользователю, под которым работает 1С. Иначе клиент не сможет открыть даже отчёт.

Проверка после переноса
Выполнено: 0 / 5

Автоматическая очистка по расписанию

Раз в неделю чистить руками никто не будет. Проще задать задачу один раз.

Windows: bat-файл и планировщик

Сохраните как clear1c.bat:

@echo off
tasklist | find /i "1cv8" >nul
if %errorlevel%==0 exit /b

del /q /f "%TEMP%\v8_*.tmp" 2>nul
for /d %%i in ("%LOCALAPPDATA%\1C\1cv8\????????-????-????-????-????????????") do rd /s /q "%%i"

Первые две строки пропускают очистку, если 1С запущена. Шаблон ????????-????-… отбирает только папки-GUID, а ibases.v8i остаётся на месте.

Регистрация задачи на запуск при входе пользователя:

schtasks /create /tn "Clear1C" /tr "C:\Scripts\clear1c.bat" /sc onlogon

Запуск именно при входе удобен: в этот момент 1С точно закрыта.

Linux: cron

Удаляем файлы платформы старше трёх суток:

find /tmp -maxdepth 1 -name 'v8_*' -mtime +3 -delete

Строка для crontab -e, запуск каждую ночь в 03:20:

20 3 * * * find /tmp -maxdepth 1 -name 'v8_*' -mtime +3 -delete

Сначала прогоните команду без -delete и посмотрите список. Лишние совпадения лучше увидеть до удаления.

Чистка средствами самой платформы

Для файлов, которые создаёт ваш код (выгрузки, обмены), правильнее удалять их в том же обработчике: УдалитьФайлы(ИмяФайла) после использования. Тогда мусор не копится ни при каких настройках планировщика.

Типичные ошибки при чистке временных файлов

Здесь собраны ошибки, которые встречаются чаще всего. Описание совпадает с тем, что видит пользователь.

Диагностика: выберите симптом

Как не допускать накопления

  • 🗓 включите автоочистку один раз и забудьте про неё;
  • 💾 держите на системном диске запас от 15–20 ГБ;
  • ❌ не выключайте компьютер кнопкой питания при открытой 1С — аварийный выход оставляет «хвосты»;
  • 👥 на терминальном сервере чистите %TEMP% каждого пользователя или включите политику очистки временных папок при выходе из сеанса;
  • 🧪 после обновления платформы сбрасывайте кэш клиента, чтобы не тянуть старые формы.
Как часто у вас на диске заканчивается место из-за 1С?

Частые вопросы

Можно ли удалить папку Temp целиком?
Да, если закрыты все программы. Файлы, занятые процессами, Windows не даст удалить — их просто пропустите.
Что будет, если удалить кэш 1С?
Ничего страшного. Кэш конфигурации построится заново при следующем запуске, вход будет дольше на несколько секунд или минут. Данные базы кэш не хранит.
Где хранятся временные файлы 1С на терминальном сервере?
У каждого пользователя в своём профиле: %TEMP% и %LOCALAPPDATA%\1C\1cv8. Размер умножается на число пользователей, поэтому очистку настраивают на уровне сервера.
Влияет ли очистка кэша на файловую базу?
Нет. Файловая база — это файл 1Cv8.1CD в своей папке. Кэш и временные файлы лежат отдельно и к самой базе отношения не имеют.
Как узнать, сколько места занимает кэш 1С?
Откройте свойства папки %LOCALAPPDATA%\1C\1cv8 и посмотрите размер. В Linux — du -sh ~/.1cv8.
Что делать, если файлы `v8_*.tmp` появляются снова сразу после удаления?
Это нормальная работа платформы: файлы создаются при выгрузке и печати. Если число растёт без остановки, ищите обработчик, который не удаляет за собой выгрузки.