К статье
Практический материал

Администрирование · 9 мин

Как программно очистить кэш 1С: скрипты, команды и автоматизация

Программная очистка кэша 1С: bat-скрипты, удаление папок с GUID, параметры запуска ClearCache, очистка кэша на сервере 1С и типичные ошибки администраторов.

Самый быстрый способ очистить кэш 1С программно — удалить содержимое папок %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 с помощью bat-скрипта или PowerShell. Именно в этих каталогах платформа хранит метаданные конфигураций, шаблоны и временные файлы в папках с именами вида GUID (например, 5f8a2c3e-…).

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

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

Где 1С хранит кэш и что именно удалять

Кэш тонкого и толстого клиента 1С расположен в профиле пользователя. Основные каталоги:

  • %APPDATA%\1C\1cv8 — кэш метаданных конфигураций, папки с GUID для каждой базы;
  • %LOCALAPPDATA%\1C\1cv8 — дополнительные временные файлы, кэш веб-клиента и компонентов;
  • %APPDATA%\1C\1cv82 — аналог для платформы 8.2, если она ещё используется.

Внутри этих каталогов находятся папки с длинными шестнадцатеричными именами — это и есть кэш конкретных информационных баз. Удалять можно как все GUID-папки сразу, так и только одну, соответствующую проблемной базе. Файлы 1Cv8.1cl, def.1cl и журналы обычно трогать не требуется.

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

Очистка кэша bat-файлом

Простейший вариант автоматизации — командный файл, который завершает процессы 1С и удаляет кэш. Создайте файл clear_1c_cache.bat со следующим содержимым:

@echo off

taskkill /f /im 1cv8.exe 2>nul

taskkill /f /im 1cv8c.exe 2>nul

timeout /t 3 /nobreak >nul

for /d %%i in ("%APPDATA%\1C\1cv8\*") do rd /s /q "%%i"

for /d %%i in ("%LOCALAPPDATA%\1C\1cv8\*") do rd /s /q "%%i"

echo Cache cleared

pause

Команда taskkill принудительно завершает толстый и тонкий клиенты, пауза в 3 секунды даёт системе освободить файловые дескрипторы, а цикл for /d удаляет все подпапки в каталогах кэша, не трогая файлы верхнего уровня.

Если нужно очистить кэш только одной базы, замените маску на конкретный GUID. Узнать GUID можно в списке баз стартера 1С: наведите курсор на базу или откройте файл ibases.v8i в папке %APPDATA%\1C\1CEStart — там указан идентификатор каждой базы.

Очистка через PowerShell

PowerShell удобнее, когда нужна гибкость: логирование, выборочное удаление, запуск на удалённых компьютерах. Базовый скрипт:

Get-Process 1cv8,1cv8c -ErrorAction SilentlyContinue | Stop-Process -Force

Start-Sleep -Seconds 3

$paths = @("$env:APPDATA\1C\1cv8", "$env:LOCALAPPDATA\1C\1cv8")

foreach ($p in $paths) {

if (Test-Path $p) {

Get-ChildItem $p -Directory | Remove-Item -Recurse -Force

}

}

Write-Host "Кэш 1С очищен"

Скрипт сохраняют в файл clear-cache.ps1. Для запуска может потребоваться разрешить выполнение скриптов: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. При массовом развёртывании через групповые политики скрипт назначают на выключение компьютера или вход пользователя.

Порядок программной очистки
  1. 1
    Завершите все процессы 1cv8.exe и 1cv8c.exe
  2. 2
    Подождите 2–3 секунды для освобождения файлов
  3. 3
    Удалите подпапки в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8
  4. 4
    Запустите базу — платформа создаст кэш заново
  5. 5
    Проверьте, что ошибка, из-за которой чистили кэш, исчезла

Штатные параметры запуска платформы

Удалять файлы — не единственный способ. Платформа 1С поддерживает параметр командной строки /ClearCache, который очищает кэш клиентского приложения при запуске. Пример строки запуска:

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /F"путь_к_базе" /ClearCache

Дополнительно полезен параметр /DisableStartupDialogs и, наоборот, диагностический /Out для записи лога запуска. Для веб-клиента кэш браузера очищается отдельно — средствами самого браузера или его командной строкой.

Ещё один штатный приём — удалить базу из списка в стартовом окне и добавить её заново: при повторном добавлении платформа создаёт новую папку кэша с новым GUID. Это не совсем «программный» способ, но его можно автоматизировать, подменив файл ibases.v8i заранее подготовленной копией.

Очистка кэша на сервере 1С:Предприятия

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

net stop "Агент сервера 1С:Предприятия 8.3"

timeout /t 5

rd /s /q "C:\Program Files\1cv8\srvinfo\reg_1541\snccntx*"

net start "Агент сервера 1С:Предприятия 8.3"

Точное имя службы зависит от версии платформы — проверьте его в оснастке services.msc. Удалять весь каталог srvinfo нельзя: там лежит реестр кластера (1CV8Clst.lst), список баз и настройки. Очищают только подкаталоги с кэшем сеансовых данных и GUID-папки баз внутри reg_1541.

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

Типичные ошибки
01
Удаление кэша при работающей 1С — файлы заблокированы, очистка неполная, база падает с ошибкой
02
Удаление всего каталога srvinfo на сервере — теряется реестр кластера и список баз
03
Очистка только клиентского кэша при серверной проблеме — ошибка возвращается
04
Скрипт с неправильным путём — удаляются чужие данные из %APPDATA%

Проверка результата и автоматизация по расписанию

Признак успешной очистки — при следующем запуске базы платформа заново создаёт GUID-папку в каталоге кэша, а запуск занимает чуть больше времени, чем обычно. Если ошибка, из-за которой чистили кэш (например, «Ошибка формата потока» или «Объект не найден»), исчезла — цель достигнута.

Контрольные точки

Как проверить результат

Папка кэша базы
Норма

GUID-папка создана заново после запуска

Тревожный признак

Папка не появилась — база не запускалась или путь неверный

Запуск базы
Норма

База открывается без ошибок потока и метаданных

Тревожный признак

Ошибка повторяется — чистите серверный кэш или тестируйте конфигурацию

Размер каталога 1cv8
Норма

Уменьшился после очистки, растёт постепенно

Тревожный признак

Быстро разрастается снова — возможен сбой обновления конфигурации

Для регулярной очистки настройте Планировщик заданий Windows: триггер — раз в неделю ночью, действие — запуск bat- или ps1-файла от имени пользователя или системы. В домене удобнее распространять задачу через Group Policy Preferences, чтобы не настраивать каждый компьютер вручную.

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

Итог

Что важно запомнить

Программная очистка кэша 1С — это удаление GUID-папок в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой платформе. Автоматизируйте через bat, PowerShell или планировщик, на сервере очищайте только кэш-каталоги внутри srvinfo при остановленном агенте, и всегда проверяйте результат повторным запуском базы.

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

Удалится ли база данных при очистке кэша?

Нет. В кэше хранятся только временные копии метаданных и служебные файлы платформы. Сами данные находятся в файле 1Cv8.1CD (файловый режим) или в СУБД (клиент-серверный режим) и при очистке кэша не затрагиваются.

Как очистить кэш только одной базы из нескольких?

Найдите GUID базы в файле ibases.v8i в папке %APPDATA%\1C\1CEStart, затем удалите только папку с этим именем в каталогах кэша. В скрипте замените цикл по всем подпапкам на удаление конкретного каталога.

Поможет ли очистка кэша при ошибке «Ошибка формата потока»?

Часто да — эта ошибка типична для повреждённого клиентского кэша. Если после очистки на клиенте ошибка осталась, очистите серверный кэш, а затем проверьте базу утилитой chdbfl.exe или тестированием и исправлением в конфигураторе.

Можно ли очищать кэш, не завершая сеансы пользователей?

Технически скрипт выполнится, но часть файлов окажется заблокированной, очистка будет неполной, а у работающих пользователей 1С может аварийно закрыться. Корректный порядок — сначала завершить процессы, потом удалять папки.

Нужно ли чистить кэш после каждого обновления конфигурации?

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

Как очистить кэш веб-клиента 1С?

Кэш веб-клиента — это кэш браузера. Очистите его программно средствами браузера (например, запуск Chrome с параметром --disk-cache-size=1) или настройте политику очистки. Серверную часть веб-клиента обслуживает очистка кэша на сервере 1С.