Чистка временных файлов 1С:Предприятия 8.3 вручную, скриптом и на сервере

· 9 мин

Содержание

Чтобы почистить темпы 1С, закройте программу и удалите папки с именами вида 5f1c2a7e-... в каталогах %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8. Второй способ без Проводника: добавьте параметр /ClearCache в дополнительные параметры запуска базы, и платформа сама сбросит кэш при следующем входе.

Чаще всего за чисткой приходят, когда после обновления конфигурации форма показывает старые поля, появляется Ошибка формата потока или 1С на ровном месте стала открываться по минуте. Почти всегда это лечится сбросом кэша за пару минут, без переустановки платформы и без риска для данных учёта.

Что 1С хранит во временных файлах и зачем их удалять

Под «темпами» администраторы обычно понимают кэш клиента. Платформа сохраняет на компьютере пользователя копию метаданных конфигурации, чтобы не тянуть её из базы при каждом запуске. На каждую информационную базу заводится своя папка с именем-идентификатором (GUID).

Где это лежит в Windows:

КаталогЧто внутриМожно удалять
%LOCALAPPDATA%\1C\1cv8\<GUID>кэш конфигурации базыда, при закрытой 1С
%APPDATA%\1C\1cv8\<GUID>локальные настройки клиента для базыда, но часть настроек окна сбросится
%APPDATA%\1C\1CEStart\ibases.v8iсписок баз в окне запусканет — пропадёт список баз
%APPDATA%\1C\1CEStart\1cestart.cfgнастройки стартеранет
%TEMP% (файлы v8_*.tmp и похожие)временные файлы сеансада, при закрытой 1С

Для 8.2 те же данные лежат в соседних папках 1cv82. В Linux кэш клиента находится в домашнем каталоге пользователя, в ~/.1cv8/1C/1cv8/.

Когда чистка реально помогает:

  • 🔄 после обновления конфигурации или платформы интерфейс ведёт себя как старый;
  • 💥 при запуске или открытии формы падает Ошибка формата потока;
  • 🐢 запуск базы заметно медленнее, чем у коллег на такой же машине;
  • 📂 кэш вырос до гигабайтов, потому что пользователь годами открывал десятки баз, многих из которых уже нет.

Если 1С тормозит при проведении документов или формировании отчётов, кэш клиента почти никогда не причина. Там смотрят базу, сервер и диск — об этом в разделе про диагностику.

Удаление кэша не трогает данные учёта. Документы, справочники и остатки живут в самой базе. Худшее, что случится, — первый запуск после чистки будет на 10–60 секунд дольше, пока кэш соберётся заново.

Сброс кэша при запуске: параметр /ClearCache и Конфигуратор

Самый аккуратный способ — поручить чистку самой платформе. Параметр командной строки /ClearCache очищает кэш клиент-серверных вызовов и метаданных для той базы, с которой идёт запуск. Остальные базы не задеваются.

Через окно запуска

  1. Откройте окно запуска 1С, выделите базу и нажмите Изменить.
  2. Пролистайте мастер кнопкой Далее до последней страницы.
  3. В поле Дополнительные параметры запуска впишите /ClearCache.
  4. Нажмите Готово и запустите базу.
  5. После успешного запуска уберите параметр, иначе кэш будет сбрасываться каждый раз и вход станет медленнее.

Параметр действует и на режим «1С:Предприятие», и на Конфигуратор. Если глючит именно Конфигуратор (например, дерево метаданных не совпадает с тем, что в базе), запустите его с этим же параметром.

Через ярлык

Для проблемной базы удобно сделать отдельный ярлык. Путь к 1cv8.exe зависит от версии платформы:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache

Для клиент-серверной базы вместо /F используется /S"server\base". Номер версии в пути подставьте свой — посмотреть его можно в папке C:\Program Files\1cv8.

Что ещё может Конфигуратор

Отдельной кнопки «очистить временные файлы » в Конфигураторе нет. Но там есть два инструмента, которые убирают лишний объём уже внутри базы:

  • 🗜️ Администрирование → Тестирование и исправление с флажком сжатия таблиц. Для файловой базы это уменьшает файл 1Cv8.1CD после массового удаления данных. Нужен монопольный доступ: все пользователи должны выйти.
  • 📜 Администрирование → Настройка журнала регистрации. Здесь можно сократить журнал, удалив записи старше выбранной даты, и выбрать, какие события писать.

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

Как почистить темпы 1С вручную через Проводник

Ручной способ нужен, когда 1С не запускается вовсе или надо сразу освободить место от всех баз.

  1. Закройте все окна 1С. Проверьте в диспетчере задач, что не осталось процессов 1cv8.exe и 1cv8c.exe.
  2. Нажмите Win+R, введите %LOCALAPPDATA%\1C\1cv8 и нажмите Enter.
  3. Выделите все папки с длинными именами из букв и цифр через дефисы и удалите их.
  4. Повторите для %APPDATA%\1C\1cv8, если проблема не ушла после первого шага.
  5. Запустите базу и дождитесь, пока кэш соберётся.

Файлы и папки с обычными именами не трогайте. В корне %APPDATA%\1C\1cv8 лежат общие настройки клиента, а в соседней папке 1CEStart — список баз.

Как понять, какая папка относится к какой базе

Если надо почистить кэш одной базы, а их у пользователя двадцать, сопоставить проще всего по дате изменения. Запустите проблемную базу, закройте её и отсортируйте папки по дате: верхняя — нужная. Второй вариант — открыть ibases.v8i блокнотом: у каждой базы там есть строка ID= с тем же GUID, что и у папки кэша.

Папки без соответствия в ibases.v8i — кэш баз, которые давно удалены из списка. Их можно удалять без раздумий, они только занимают место.

Массовая чистка из командной строки и PowerShell

Когда пользователей много, удобнее скрипт. Вариантов три: bat для одного пользователя, PowerShell со строгой проверкой и обход всех профилей на терминальном сервере.

Bat-файл для текущего пользователя

Маска *-*-*-*-* выбирает только папки с GUID в имени и не задевает служебные файлы:

@echo off
tasklist | find /i "1cv8" >nul && (
  echo Закройте 1С и запустите скрипт снова
  pause
  exit /b 1
)
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
echo Кэш 1С очищен

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

PowerShell с проверкой формата имени

Здесь имя папки сверяется со строгим шаблоном GUID:

$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
if (Get-Process -Name '1cv8*' -ErrorAction SilentlyContinue) {
    Write-Host 'Закройте 1С'; exit 1
}
foreach ($root in "$env:LOCALAPPDATA\1C\1cv8", "$env:APPDATA\1C\1cv8") {
    if (Test-Path $root) {
        Get-ChildItem $root -Directory |
            Where-Object { $_.Name -match $guid } |
            Remove-Item -Recurse -Force
    }
}

Терминальный сервер: все профили сразу

На RDS-сервере кэш лежит в профиле каждого пользователя. Скрипт запускают от администратора, когда все вышли из 1С, например ночью:

$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
Get-ChildItem 'C:\Users' -Directory | ForEach-Object {
    $root = Join-Path $_.FullName 'AppData\Local\1C\1cv8'
    if (Test-Path $root) {
        Get-ChildItem $root -Directory |
            Where-Object { $_.Name -match $guid } |
            Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
    }
}

Удалять кэш тех, кто сейчас в 1С, этот скрипт не сможет: занятые файлы Windows пропустит. Чтобы чистка была полной, перед ней завершите сеансы пользователей — предупредите людей заранее, несохранённые документы пропадут.

Кэш сервера 1С: папки snccntx

В клиент-серверном варианте временные данные копятся и на сервере 1С. В каталоге кластера, обычно C:\Program Files\1cv8\srvinfo\reg_1541, лежат папки snccntx<GUID> — кэш сеансовых данных. Если они разрослись или повреждены, пользователи получают странные ошибки при входе и зависания, которые не лечатся чисткой на клиенте.

Точный путь к srvinfo задан при установке службы. Его видно в свойствах службы «Агент сервера 1С:Предприятия 8.3»: в строке запуска после ключа -d. На Linux каталог обычно находится в домашней папке пользователя usr1cv8, в .1cv8/1C/1cv8/.

Порядок чистки:

  1. Предупредите пользователей: остановка службы обрывает все сеансы на этом сервере. Делайте это вне рабочего времени.
  2. Остановите службу агента сервера 1С в services.msc.
  3. Скопируйте каталог reg_1541 в резерв — это минута, а спасает от неприятных сюрпризов.
  4. Удалите внутри reg_1541 только папки snccntx*.
  5. Запустите службу и проверьте вход в базу.

Не удаляйте файлы 1CV8Clst.lst и 1CV8Reg.lst, а также папки с GUID баз в reg_1541. В первых хранится описание кластера и список баз, в папках баз — журнал регистрации. Если удалить реестр кластера, базы придётся регистрировать заново.

Чистка по расписанию: регламентные задания и планировщик Windows

Тут важно не перепутать два разных механизма.

Регламентные задания 1С работают внутри базы и чистят данные, а не кэш на дисках пользователей. В типовых конфигурациях на БСП они собраны в Администрирование → Обслуживание, в группе регламентных операций. Что там обычно полезно включить:

  • 🗑️ удаление помеченных объектов по расписанию — чтобы документы и элементы с пометкой не копились годами;
  • 🗂️ очистка устаревших версий объектов, если включено версионирование: версии быстро раздувают базу;
  • 📜 для журнала регистрации — сокращение в Конфигураторе раз в квартал или полгода, если журнал не нужен для разбора инцидентов.

Перед включением автоматического удаления помеченных объектов договоритесь с бухгалтерией. Бывает, что пометку ставят «на подумать», а через месяц документ ищут.

Планировщик заданий Windows подходит для кэша клиента. Сохраните PowerShell-скрипт из предыдущего раздела, например как C:\Scripts\clear1c.ps1, и создайте задание:

schtasks /create /tn "Clear1CCache" /tr "powershell -NoProfile -ExecutionPolicy Bypass -File C:\Scripts\clear1c.ps1" /sc weekly /d SUN /st 03:00 /ru SYSTEM

Для терминального сервера раз в неделю, ночью, обычно достаточно. Для личного компьютера бухгалтера расписание чаще всего не нужно — хватает разовой чистки после обновления.

Диагностика: диск, размер базы и скорость работы

Если после чистки кэша 1С не стала быстрее, причина в другом месте. Проверяйте по порядку, от простого к сложному.

Сколько места занимает 1С

Размер кэша текущего пользователя в мегабайтах:

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

Кэш в несколько сотен мегабайт — норма для пользователя с 3–5 базами. Гигабайты означают, что накопился мусор от старых баз.

Для файловой базы отдельно посмотрите размер 1Cv8.1CD и папки 1Cv8Log рядом с ним. Журнал регистрации иногда весит больше самой базы.

Свободное место и состояние диска

  • 💾 Свободного места на системном диске должно оставаться хотя бы 10–15%. При почти полном диске тормозит не только 1С.
  • 🧪 Проверку файловой системы запускайте командой chkdsk C: /scan от администратора. Этот режим работает без перезагрузки.
  • 🛡️ Добавьте в исключения антивируса каталог кэша 1С и каталог файловой базы. Проверка каждого обращения к 1Cv8.1CD — частая причина медленной работы в сети.
Диагностика: выберите симптом

Когда чистка не поможет

Если долго проводятся документы или формируются отчёты, а сервер и диск в порядке, проблема в базе: большие объёмы данных, нужно свёртывание, обновление статистики СУБД или анализ запросов через технологический журнал. Временные файлы на это не влияют, и чистить их в надежде на чудо бесполезно.

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

Пропадёт ли список баз после чистки кэша?
Нет, если не трогать папку %APPDATA%\1C\1CEStart. Список баз хранится там, в файле ibases.v8i.
Слетят ли пользовательские настройки отчётов и форм?
Основная часть настроек хранится в самой базе и сохранится. Сбросятся только локальные настройки клиента: размеры и положение окон.
Как часто нужно чистить кэш 1С?
Регулярно — только на терминальных серверах, например раз в неделю. На обычных компьютерах — по симптомам: после обновления или при ошибках интерфейса.
Почему после чистки 1С первый раз запускается дольше?
Платформа заново загружает метаданные конфигурации из базы и строит кэш. Второй запуск будет обычным по скорости.
Чистит ли /ClearCache кэш всех баз сразу?
Нет, только той базы, которая запускается с этим параметром. Для всех баз сразу удобнее удалить папки вручную или скриптом.