Чистка серверного кэша 1С: что удалять, а что трогать нельзя
Содержание
Кэш 1С на сервере не лежит в одной папке, и «удалить кэш» одной кнопкой нельзя. Это три разных набора файлов: серверный кэш кластера, временные файлы рабочих процессов и клиентский кэш пользователей, которые подключаются к серверу. Чистят их по-разному, а ошибка в выборе папки стоит дороже, чем лишняя медленная работа.
Самая частая ошибка: админ сносит содержимое каталога кластера целиком, чтобы «почистить кэш », и теряет список информационных баз. Ниже — что удалять безопасно, в каком порядке и как превратить чистку в регламентную задачу.
Как понять, что кэш пора чистить
Чистка помогает не всегда. Если база тормозит из-за блокировок или тяжёлых запросов, кэш ни при чём. Проверьте признаки.
Кэш под подозрением, когда:
- 🐌 после обновления конфигурации или платформы появились странные ошибки интерфейса: пропавшие кнопки, старые формы, «битые» команды;
- 🧩 у одного пользователя всё работает, у другого на той же базе нет, а после входа с чужого компьютера проблема уходит;
- 📁 диск с кластером заполнен: каталог кластера или временная папка выросли до десятков гигабайт;
- ⚠️ в журнале регистрации и в логах сервера видны ошибки доступа к файлам, которые «были и пропали»;
- 🔄 после восстановления базы из копии поведение отличается от прежнего.
Быстрая проверка размера на Windows в PowerShell:
Get-ChildItem "C:\Program Files\1cv8\srvinfo" -Directory |
ForEach-Object {
$s = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
"{0}`t{1:N1} ГБ" -f $_.Name, ($s/1GB)
}
Если путь у вас другой, подставьте свой каталог кластера (он задаётся при установке службы сервера 1С).
Подготовка: что перед чисткой
Любая чистка на рабочем сервере — это перезапуск части сервисов или отключение пользователей. Не делайте её в середине дня.
- Предупредите пользователей и назначьте окно. Для небольшой базы хватит 15–20 минут.
- Сделайте копию каталога кластера. Если в нём лежит реестр кластера (список баз и настройки), потеря файла обойдётся в часы восстановления.
- Убедитесь, что известны учётные данные администратора кластера, если они заданы.
- Проверьте, что у вас есть выгрузка или копия самой информационной базы. Кэш чистить безопаснее, чем базу, но привычка нужна.
Не удаляйте служебные файлы реестра кластера и папки с данными информационных баз. Кэш — это только временные и производные файлы. Если вы не уверены в назначении папки, переименуйте её, а не удаляйте: так можно откатиться.
Очистка через консоль администрирования кластера
Это самый безопасный способ: вы не лезете в файловую систему, а работаете средствами самого сервера 1С.
В консоли администрирования серверов 1С найдите нужный кластер, раскройте его и перейдите к рабочим серверам и информационным базам. Порядок такой.
Шаг 1. Отключите сеансы
- Откройте список сеансов нужной базы.
- Завершите сеансы пользователей (кроме своего).
- Для базы включите блокировку начала сеансов, чтобы никто не зашёл обратно во время чистки.
То же можно сделать из командной строки через утилиту rac (она ставится вместе с сервером 1С):
rac cluster list
rac session list --cluster=<идентификатор_кластера>
rac session terminate --cluster=<идентификатор_кластера> --session=<идентификатор_сеанса>
Шаг 2. Перезапустите рабочие процессы
Рабочие процессы rphost держат в памяти кэш метаданных и запросов. Если их остановить, кэш в памяти пропадёт, а новые процессы загрузят данные заново.
В консоли это делается на уровне рабочих процессов: завершите процессы или перезапустите службу сервера 1С. Второй вариант надёжнее, но затрагивает все базы кластера.
Если на сервере несколько баз и нужно «встряхнуть» только одну, завершайте процессы, в которых нет сеансов других баз. Если сомневаетесь, перезапускайте службу в нерабочее время.
Шаг 3. Снимите блокировку и проверьте вход
Верните разрешение на начало сеансов, зайдите в базу сами и откройте пару тяжёлых форм. Первые открытия будут медленнее обычного: кэш строится заново. Это нормально.
Ручное удаление временных файлов на сервере
Когда консоль не помогла или диск уже забит, чистят файлы руками. Здесь важно различать каталоги.
| Что | Где обычно лежит | Можно удалять |
|---|---|---|
| Данные сеансов кластера | Папки snccntx* внутри каталога кластера | Да, при остановленной службе |
| Временные файлы процессов | Папка TEMP пользователя, под которым работает служба | Да, файлы старше нескольких дней |
| Реестр кластера | Папка вида reg_1541 | Нет |
| Данные информационных баз | Папки с GUID внутри каталога кластера | Нет |
| Журнал регистрации | Подкаталоги 1Cv8Log в папках баз | Только по регламенту, архивировать |
Порядок работы на Windows:
- Остановите службу «Агент сервера 1С:Предприятия».
- Откройте каталог кластера (по умолчанию внутри
srvinfo). - Удалите папки
snccntx*: это данные сеансов, они создаются заново. - Откройте временный каталог учётной записи службы и удалите файлы, которые не заняты.
- Запустите службу.
На Linux логика та же, меняются пути: каталог кластера по умолчанию находится в домашней папке пользователя usr1cv8, а временные файлы — в /tmp и в каталоге этого пользователя.
Если папка не удаляется, потому что занята, значит, служба или процесс ещё работают. Не убивайте процессы вслепую, остановите службу штатно.
Реестр, параметры запуска и клиентский кэш
Про реестр сразу: в нём лежат настройки клиентских программ, а не сам кэш. Чистить реестр ради кэша 1С не нужно. Кэш — это файлы.
Клиентский кэш лежит в профиле пользователя. Папки вида 1cv8 и 1cv8c с названиями из длинных идентификаторов находятся в каталогах AppData\Local\1C и AppData\Roaming\1C. Там хранятся кэш метаданных, настройки форм и кэш конфигуратора.
Есть два способа сбросить клиентский кэш.
Через ключ запуска
Запустите 1С с ключом очистки:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "сервер\база" /ClearCache
Ключ /ClearCache сбрасывает кэш клиента для этой базы при запуске. Он удобен, когда проблема у одного пользователя. Путь к 1cestart.exe может отличаться, уточните его у себя.
Через удаление папок
Закройте 1С полностью, перейдите в профиль пользователя и переименуйте папки 1C в AppData\Local и AppData\Roaming. Следующий запуск создаст новые. Если после этого всё заработало, старые можно удалить.
Переименование вместо удаления сохранит список баз и настройки окон. Список баз при необходимости переносится файлом ibases.v8i.
Файловая и клиент-серверная база: разница в чистке
В клиент-серверном варианте кэш делится на серверную и клиентскую части, и главную работу делает сервер: рабочие процессы и каталог кластера. Чистка идёт по плану из предыдущих разделов.
В файловом варианте сервера нет. Базу открывают прямо клиенты, а кэш лежит только на клиентских машинах. Здесь работает только клиентская чистка. Если база файловая и лежит на сетевом ресурсе, дополнительно проверьте, не остались ли рядом блокировочные файлы после аварийного завершения. Файл блокировки базы (с расширением .1CL) остаётся при падении клиента и может мешать входу.
Если в организации терминальный сервер , клиентские кэши живут в профилях терминальных пользователей. Тогда «клиентский кэш» тоже хранится на сервере, и чистить его придётся централизованно, по всем профилям.
Автоматизация: PowerShell и BAT
Один раз почистить не сложно. Регулярно чистить руками никто не будет. Вот базовый скрипт для клиентских профилей на терминальном сервере.
# Удаляет кэш 1С в профилях, где файлы не менялись более 30 дней
$limit = (Get-Date).AddDays(-30)
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
foreach ($sub in "AppData\Local\1C\1cv8","AppData\Roaming\1C\1cv8") {
$p = Join-Path $_.FullName $sub
if (Test-Path $p) {
Get-ChildItem $p -Directory |
Where-Object { $_.LastWriteTime -lt $limit } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}
}
}
Скрипт трогает только папки, в которые давно не писали. Пользователь, который сидит в 1С прямо сейчас, не пострадает: его папки изменены сегодня.
Для серверной части безопаснее BAT-файл, который останавливает службу, чистит временную папку и запускает службу снова:
@echo off
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
for /d %%D in ("C:\Program Files\1cv8\srvinfo\reg_*\snccntx*") do rd /s /q "%%D"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Название службы и путь к каталогу проверьте у себя: они зависят от версии платформы и места установки. Проверить имя службы можно командой sc query или в оснастке служб.
Регламент: как не чистить кэш в панике
Если кэш приходится чистить часто, причина глубже. Профилактика обычно складывается из нескольких пунктов.
- 📅 Плановый перезапуск рабочих процессов. Многие админы настраивают в кластере периодическое пересоздание процессов: оно сбрасывает накопленную память и «залипший» кэш без вмешательства.
- 🗂 Ротация журналов. Журнал регистрации и технологический журнал разрастаются быстрее кэша. Настройте архивацию и удаление старых файлов.
- 🧹 Задача планировщика Windows. Запускайте клиентский скрипт ночью, серверный — раз в месяц или после обновления платформы.
- 🔖 Чистка после обновлений. После перехода на новую версию платформы или большого релиза конфигурации сбрасывайте кэш на всех клиентах. Для массового случая удобно положить ключ
/ClearCacheв ярлык запуска на один раз. - 📈 Мониторинг диска. Алерт на заполнение выше 80% даёт время подготовиться заранее.
Пример расписания для базы средней нагрузки (примерно 30–50 пользователей):
| Задача | Периодичность |
|---|---|
| Перезапуск рабочих процессов кластера | Раз в неделю, ночью |
| Чистка временных файлов службы | Раз в месяц |
| Клиентские кэши на терминальном сервере | Раз в месяц, по давности изменения |
| Архивация журнала регистрации | Раз в квартал |
Отдельно про терминальные серверы и большие базы: на них кэш копится быстрее, потому что одни и те же профили используют десятки людей. Если пользователи жалуются на «долгий первый запуск» по утрам, проверьте, не стоит ли в скриптах входа очистка профиля при каждом выходе. Такая настройка убивает кэш ежедневно и заставляет 1С строить его заново на каждом входе, а это лишние минуты ожидания на человека.
Частые ошибки при чистке
- 🚫 Удаление каталога кластера целиком. Потеряете список баз и настройки, придётся регистрировать базы заново.
- 🚫 Чистка при работающей службе: файлы заняты, часть удаляется, часть нет, возникают рассинхронизации.
- 🚫 Попытка «чистить реестр». На скорость 1С это не влияет.
- 🚫 Чистка кэша как лекарство от медленных запросов. Если тормозит СУБД, нужны индексы и обслуживание базы, а не удаление файлов.
Частые вопросы
Сколько занимает первое открытие после чистки?
Можно ли чистить кэш, пока пользователи работают?
Удалится ли что-то из базы данных?
Нужно ли чистить кэш после каждого обновления конфигурации?
Подойдёт ли способ для Linux?
usr1cv8. Меняются только пути и команды управления службой.