Кэш, temp и сеансовые данные 1С: что можно удалить без вреда для базы
Содержание
На компьютере пользователя 1С 8.3 хранит временные файлы в двух местах: кэш конфигурации лежит в папках с именами-GUID внутри %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, а рабочие временные файлы платформа пишет в системную папку %TEMP%. На сервере временные данные живут в каталоге кластера srvinfo (по умолчанию C:\Program Files\1cv8\srvinfo) и в папке TEMP учётной записи, под которой запущена служба, обычно USR1CV8.
Очищать их безопасно, если соблюдать порядок: сначала закрыть сеансы , потом удалять. Сама база данных при этом не страдает — кэш и временные файлы платформа создаёт заново при следующем запуске. Опасно другое: удалить вместе с кэшем реестр кластера, журнал регистрации или файл базы.
Какие временные файлы 1С бывают и что трогать нельзя
Прежде чем что-то удалять, разделите содержимое папок на три группы: мусор, кэш и служебные данные.
| Где лежит | Что внутри | Можно удалить? |
|---|---|---|
%APPDATA%\1C\1cv8\<GUID> | кэш конфигурации и метаданных базы | да, при закрытой 1С |
%LOCALAPPDATA%\1C\1cv8\<GUID> | кэш конфигурации, промежуточные данные клиента | да, при закрытой 1С |
%TEMP% пользователя | временные файлы отчётов, выгрузок, печати | да, кроме занятых процессом |
%APPDATA%\1C\1CEStart\ibases.v8i | список баз в окне запуска | нет — пропадёт список баз |
srvinfo\reg_1541\snccntx* | сеансовые данные кластера | да, только при остановленной службе |
srvinfo\reg_1541\1CV8Clst.lst | реестр кластера: базы, серверы, администраторы | нет, никогда |
srvinfo\reg_1541\<GUID базы>\1Cv8Log | журнал регистрации серверной базы | нет; сокращают средствами 1С |
1Cv8.1CD в папке файловой базы | сама база | нет — это ваши данные |
💡 GUID — это строка вида 3f2a9c1e-7b4d-4e8a-9c21-5d6e7f8a9b0c. У каждой базы из списка свой GUID, поэтому папок в кэше столько же, сколько баз вы когда-либо открывали. Папки давно удалённых из списка баз тоже остаются и занимают место.
Где лежат временные файлы 1С на компьютере пользователя
Кэш конфигурации
При первом входе платформа скачивает из базы описание конфигурации и складывает его локально. Так следующий запуск идёт быстрее. Если конфигурацию обновили, а кэш «застрял» на старой версии, появляются странности: формы не открываются, команды пропадают, выскакивают ошибки на ровном месте.
Чтобы попасть в папку, вставьте путь в адресную строку Проводника:
- 📁
%APPDATA%\1C\1cv8— раскрывается вC:\Users\<имя>\AppData\Roaming\1C\1cv8; - 📁
%LOCALAPPDATA%\1C\1cv8— раскрывается вC:\Users\<имя>\AppData\Local\1C\1cv8; - 🐧 на Linux кэш лежит в домашнем каталоге:
~/.1cv8/1C/1cv8.
Если на компьютере когда-то стояла 8.2, рядом будут папки 1cv82. Их можно удалить целиком, если 8.2 больше не используется.
Рабочая папка temp
Во время работы платформа создаёт временные файлы для формирования отчётов, печати, выгрузки в Excel и PDF, обмена с внешними компонентами. Они попадают в %TEMP% (обычно C:\Users\<имя>\AppData\Local\Temp). Файлы самой платформы часто начинаются с v8_ и имеют расширение .tmp.
После аварийного завершения 1С такие файлы не удаляются. За год активной работы бухгалтера в temp может скопиться несколько гигабайт.
Как очистить кэш вручную
- Закройте все окна 1С, включая Конфигуратор.
- Откройте Диспетчер задач и убедитесь, что нет процессов
1cv8.exeи1cv8c.exe. - Перейдите в
%APPDATA%\1C\1cv8и удалите папки с именами-GUID. Файлы с расширением.pflи прочие папки не трогайте. - Повторите то же для
%LOCALAPPDATA%\1C\1cv8. - Запустите 1С. Первый вход будет дольше обычного — кэш собирается заново.
Очистка кэша параметром /ClearCache
Если удалять папки неудобно, платформа почистит кэш сама. В окне запуска выделите базу, нажмите Изменить, пройдите до последней страницы и в поле дополнительных параметров запуска впишите /ClearCache. Один раз войдите в базу, затем уберите параметр — иначе кэш будет сбрасываться при каждом входе и запуск станет медленным.
Тот же параметр работает в ярлыке:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /ClearCache
Временные файлы на сервере 1С: srvinfo и temp службы
В клиент-серверном варианте основная часть временных данных живёт на сервере. Место определяет параметр -d в командной строке службы агента. Посмотреть его можно в свойствах службы Агент сервера 1С:Предприятия 8.3 в оснастке «Службы»: поле «Исполняемый файл» содержит строку вида:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Внутри srvinfo находится папка reg_1541 (номер совпадает с портом менеджера кластера). В ней:
- 🗂️
1CV8Clst.lst— реестр кластера; - 🗂️ папки с GUID информационных баз — серверный кэш конфигурации, журнал регистрации
1Cv8Log, индекс полнотекстового поиска; - 🗂️ папки
snccntx…— сеансовые данные.
Второе место — папка TEMP учётной записи службы. Для стандартной установки это C:\Users\USR1CV8\AppData\Local\Temp. Сюда рабочие процессы rphost.exe пишут файлы при формировании тяжёлых отчётов, выгрузках, загрузке и выгрузке .dt. На Linux каталог кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8.
Если служба запущена от имени системной учётной записи, её temp находится в C:\Windows\Temp. Проверьте вкладку «Вход в систему» в свойствах службы, прежде чем искать файлы в профиле USR1CV8.
Сеансовые данные и временные хранилища кластера
Когда код конфигурации вызывает ПоместитьВоВременноеХранилище(), данные попадают в сеансовые данные. Так передаются, например, файлы при загрузке из клиента, сформированные табличные документы, картинки. Кластер держит сеансовые данные в памяти рабочих процессов и сбрасывает их на диск в папки snccntx….
Обычно эти папки весят немного. Разрастаются они после сбоев: рабочий процесс упал, сеансы оборвались, а данные остались. Признаки — ошибки при открытии форм на сервере, долгий вход, сообщения о повреждённых сеансовых данных.
Как почистить сеансовые данные
Остановка службы разорвёт сеансы всех пользователей на этом сервере. Делайте это вне рабочего времени или после предупреждения, когда все вышли из баз.
- Остановите службу
Агент сервера 1С:Предприятия 8.3. Вместе с ней остановятсяrmngr.exeиrphost.exe. - В Диспетчере задач проверьте, что процессов
ragent,rmngr,rphostне осталось. - Сделайте копию папки
reg_1541— на случай, если удалите лишнее. - Удалите только папки, имена которых начинаются с
snccntx. - Запустите службу и войдите в любую базу для проверки.
💡 Серверный кэш конфигурации внутри папок баз тоже можно сбросить, но там же лежат журнал регистрации и индекс полнотекстового поиска. Удалите индекс — его придётся строить заново, а это часы на большой базе. Поэтому без необходимости папки баз не трогайте.
Как не допустить разрастания
В консоли администрирования серверов откройте свойства кластера. Там задаются интервал перезапуска рабочих процессов и допустимый объём памяти. Плановый перезапуск, например раз в сутки ночью, освобождает память и подчищает накопленные данные. Пороги памяти рабочих процессов задаются в свойствах рабочего сервера.
Если диск C: маленький, каталог кластера переносят на другой том. Для этого служба останавливается, папка srvinfo копируется на новый диск, а путь в параметре -d меняется в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath. После запуска убедитесь, что базы видны в консоли.
Файлы блокировок: когда их удаление помогает
Файловая база
Рядом с 1Cv8.1CD во время работы появляются служебные файлы, в том числе временный 1Cv8tmp.1CD. Платформа удаляет их сама, когда последний пользователь выходит. После аварийного выключения компьютера или обрыва сети они остаются, и следующий запуск может выдавать ошибки доступа к базе.
Порядок действий:
- Убедитесь, что базу не открыл никто — ни на этом компьютере, ни по сети.
- На компьютере, где лежит папка базы, проверьте через «Управление компьютером → Общие папки → Открытые файлы», не держит ли кто-то файлы базы.
- Скопируйте папку базы целиком.
- Удалите из неё всё, кроме
1Cv8.1CDи папки1Cv8Log.
Не удаляйте временный файл, пока база открыта хотя бы у одного пользователя. Сеанс завершится с ошибкой, а несохранённые документы пропадут.
Серверная база
У серверной базы файлов блокировок рядом с данными нет: данные лежат в СУБД, а блокировки объектов кластер держит в памяти. «Застрявшие» блокировки после сбоя снимаются завершением зависшего сеанса в консоли кластера или перезапуском рабочего процесса. Удалять ничего на диске для этого не нужно. Исключение — повреждённые сеансовые данные из предыдущего раздела.
Скрипты для автоматической очистки временных файлов
Очистка у пользователя
Этот .cmd удаляет только папки с именами-GUID и временные файлы платформы. Список баз и настройки запуска остаются.
@echo off
rem Запускать от имени пользователя, когда 1С закрыта
tasklist | find /i "1cv8" >nul && (
echo 1С запущена, очистка отменена
exit /b 1
)
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
del /q "%TEMP%\v8_*.tmp" 2>nul
echo Кэш 1С очищен
Шаблон *-*-*-*-* совпадает только с именами-GUID, поэтому служебные папки вроде каталога внешних компонент не задеваются. Подключите скрипт как сценарий входа через групповую политику или задачу Планировщика с триггером «При входе в систему». От имени SYSTEM его запускать бессмысленно: переменные %APPDATA% укажут на профиль системы.
Очистка на сервере
PowerShell-скрипт для ночного окна обслуживания. Он останавливает службу, чистит сеансовые данные и старые временные файлы, потом поднимает службу обратно.
# Точное имя службы проверьте командой: Get-Service *1C*
$svc = '1C:Enterprise 8.3 Server Agent (x86-64)'
$reg = 'C:\Program Files\1cv8\srvinfo\reg_1541'
$temp = 'C:\Users\USR1CV8\AppData\Local\Temp'
Stop-Service -Name $svc -Force
Start-Sleep -Seconds 20
Get-ChildItem $reg -Directory -Filter 'snccntx*' |
Remove-Item -Recurse -Force
Get-ChildItem $temp -File -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Start-Service -Name $svc
Регистрация в Планировщике на воскресенье в 03:00:
schtasks /Create /TN "1C cleanup" /TR "powershell -ExecutionPolicy Bypass -File C:\Scripts\clean1c.ps1" /SC WEEKLY /D SUN /ST 03:00 /RU SYSTEM
Скрипт останавливает сервер 1С. Перед включением сверьте время задачи с регламентными заданиями, ночными обменами и резервным копированием — иначе они упадут посреди работы.
Если остановка службы недопустима, ограничьтесь второй частью: удаление файлов старше 7 дней из temp можно запускать и без остановки, занятые файлы просто пропустятся.
Диск переполнен: как найти, что съело место
Временные файлы — частый, но не единственный виновник. Сначала измерьте, потом удаляйте. Размер крупных папок покажет PowerShell:
Get-ChildItem 'C:\Program Files\1cv8\srvinfo\reg_1541' -Directory |
ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
[pscustomobject]@{ Папка = $_.Name; ГБ = [math]::Round($size / 1GB, 2) }
} | Sort-Object ГБ -Descending
Что обычно находится:
- 📈 Журнал регистрации
1Cv8Log. При уровне «Регистрировать все события» он растёт на гигабайты в месяц. Его не удаляют руками, а сокращают: в КонфигуратореАдминистрирование → Настройка журнала регистрации, там же можно понизить уровень регистрации. - 📈 Технологический журнал. Включается файлом
logcfg.xmlв каталогеconfплатформы. Если в нём не задан атрибутhistory(срок хранения в часах), логи копятся бесконечно. Путь к логам указан в атрибутеlocation. - 📈 Дампы процессов. Если в
logcfg.xmlвключено создание дампов, каждый сбойrphostоставляет файл размером с занятую процессом память — сотни мегабайт и больше. - 📈 Temp службы. Остатки выгрузок
.dtи тяжёлых отчётов после обрыва сеанса. - 📈 Кэш удалённых баз. Папки с GUID баз, которые давно сняты с сервера, но остались в
reg_1541. Сверьте GUID со списком баз в консоли, прежде чем удалять.
На сервере с MS SQL проверьте ещё и файлы СУБД: tempdb и журнал транзакций базы при полной модели восстановления без резервного копирования журнала растут без ограничений. К временным файлам 1С это не относится, но место съедают на том же диске.