Сброс кэша 1С на сервере, у пользователей и в файловой базе
Содержание
Кэш 1С чистят в двух местах. На компьютере пользователя удаляют папки с именами-GUID из %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 или один раз запускают базу с параметром /ClearCache. На сервере 1С останавливают службу агента и удаляют папки snccntx* в каталоге кластера srvinfo\reg_1541.
Обычно к этому приходят, когда после обновления конфигурации у части сотрудников остаются старые формы, база открывается по пять минут или сыплет ошибками, которых нет у коллег. Ниже — порядок действий для клиентских компьютеров, сервера и файловых баз, плюс готовый скрипт для массовой очистки.
Когда очистка кэша 1С действительно помогает
Платформа хранит локально копию конфигурации и служебные данные, чтобы не тянуть их с сервера при каждом запуске. Пока копия совпадает с базой, всё работает быстрее. Проблемы начинаются, когда копия устаревает или повреждается.
Типичные поводы почистить кэш :
- 🔄 после обновления конфигурации у одного пользователя старые формы, а у остальных новые;
- 🐢 запуск базы заметно дольше обычного, хотя сеть и сервер в порядке;
- ⚠️ ошибки при открытии форм или отчётов, которые не воспроизводятся на другом компьютере под той же учётной записью 1С;
- 💥 клиент аварийно закрывается на этапе загрузки конфигурации;
- 🖥️ после смены версии платформы на сервере клиенты ведут себя нестабильно.
Если ошибка повторяется у всех пользователей и на всех компьютерах, клиентский кэш почти наверняка ни при чём. Тогда смотрите в сторону сервера, конфигурации или данных.
Сначала проверьте на одном рабочем месте. Если очистка кэша у одного пользователя сняла проблему, только тогда раскатывайте её на всех.
Ручная очистка кэша 1С на компьютере пользователя
Клиентский кэш лежит в профиле Windows. Для каждой информационной базы платформа создаёт папку с именем вида 3f2a5c1e-7b4d-4e8a-9c21-0d6e8b7a4f19 — это и есть кэш конкретной базы.
Порядок действий:
- Закройте все окна 1С на этом компьютере, включая Конфигуратор.
- Нажмите
Win + R, введите%APPDATA%\1C\1cv8и нажмите Enter. - Удалите все папки, у которых имя в формате GUID (буквы и цифры, разделённые дефисами на 5 групп).
- Повторите то же для
%LOCALAPPDATA%\1C\1cv8. - Запустите базу. Первый вход будет дольше: платформа заново загрузит конфигурацию.
Что трогать нельзя:
| Объект | Где | Что будет при удалении |
|---|---|---|
| Папки с именами-GUID | %APPDATA%\1C\1cv8, %LOCALAPPDATA%\1C\1cv8 | Кэш создастся заново — это и нужно |
ibases.v8i | %APPDATA%\1C\1CEStart | Пропадёт список баз в окне запуска |
Файлы *.pfl | %APPDATA%\1C\1cv8 | Сбросятся настройки окна запуска и платформы на этом ПК |
Папки старых версий 1Cv82 | %APPDATA%\1C | Остатки 8.2, на работу 8.3 не влияют |
Пользовательские настройки форм и отчётов в 8.3 хранятся в самой информационной базе, поэтому удаление папок-GUID их не сбрасывает.
Если вы не знаете, какая папка относится к нужной базе, удаляйте все папки-GUID разом. Это безопасно: на каждую базу при следующем входе просто уйдёт чуть больше времени.
На терминальном сервере (RDP) у каждого пользователя свой профиль. Значит, чистить нужно в профиле того, у кого проблема, — C:\Users\<имя>\AppData\Roaming\1C\1cv8 и C:\Users\<имя>\AppData\Local\1C\1cv8. Пользователь в этот момент должен выйти из 1С.
Параметр /ClearCache: сброс кэша 1С без поиска папок
Платформа умеет сама очистить кэш
при запуске. Для этого служит параметр командной строки /ClearCache. Удобно, когда у пользователя нет доступа к скрытым папкам или вы помогаете ему по телефону.
Через окно запуска:
- Выделите базу в списке и нажмите «Изменить».
- Пройдите мастер до последней страницы.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Нажмите «Готово» и запустите базу.
- После успешного входа уберите параметр, иначе кэш будет сбрасываться при каждом запуске.
Через ярлык — например, для одной проблемной базы:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия предприятия" /ClearCache
/IBName — имя базы так, как оно записано в списке окна запуска. Параметр работает и для толстого, и для тонкого клиента
.
/ClearCache в постоянных параметрах запуска — частая причина «1С вдруг стала медленно открываться». Если его оставили после разовой очистки, удалите.
Как очистить кэш сервера 1С: каталог srvinfo
На сервере 1С:Предприятия кэш живёт в каталоге кластера. По умолчанию для службы на Windows это C:\Program Files\1cv8\srvinfo\reg_1541, где 1541 — порт менеджера кластера. На Linux типовой путь — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541. Если при установке каталог меняли, посмотрите путь в параметрах службы агента: он указан после ключа -d.
Внутри reg_1541 лежат:
- 📁 папки
snccntx<GUID>— кэш сеансовых данных. Именно их удаляют при «чистке кэша сервера»; - 📁 папки с GUID информационных баз — внутри журнал регистрации (
1Cv8Log) и индекс полнотекстового поиска; - 📄 файл
1CV8Clst.lst— реестр кластера: список баз, рабочих серверов, администраторов.
Папки баз и файл 1CV8Clst.lst не удаляйте — вы потеряете журнал регистрации или регистрацию баз в кластере.
Пошагово для Windows:
- Выберите время, когда в базах никто не работает : при остановке службы все сеансы оборвутся, несохранённые документы пропадут.
- Предупредите пользователей и дождитесь выхода. Активные сеансы видно в консоли администрирования.
- Остановите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» в оснастке
services.mscили командой ниже. - Скопируйте
srvinfoцеликом в резервную папку — на случай, если удалите лишнее. - Удалите в
reg_1541все папкиsnccntx*. - Запустите службу и откройте базу с клиентского компьютера.
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
for /d %%D in ("C:\Program Files\1cv8\srvinfo\reg_1541\snccntx*") do rd /s /q "%%D"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Имя службы проверьте в её свойствах: при установке нескольких версий платформы или нестандартном порте оно может отличаться.
На Linux порядок тот же: остановить службу сервера 1С, удалить snccntx*, запустить. Имя юнита systemd зависит от версии платформы — найдите его командой systemctl list-units | grep 1C или systemctl list-units | grep srv1cv8.
Что даёт консоль администрирования серверов
Отдельной кнопки «Очистить кэш» в консоли кластера нет. Но через неё можно сбросить то, что держат в памяти рабочие процессы, без остановки всей службы.
Что доступно:
- 👥 Завершение сеансов. В ветке «Сеансы» выделите зависшие сеансы и завершите их. Кэш, привязанный к сеансу, освободится.
- 🔁 Перезапуск рабочих процессов. В свойствах кластера задаются «Интервал перезапуска» (в секундах) и «Допустимый объём памяти». Кластер сам перезапускает процессы по этим порогам, и их память очищается.
- 🧹 Профилактика по памяти. Если процесс раз за разом упирается в порог памяти, лучше уменьшить интервал перезапуска, чем регулярно останавливать службу целиком.
Те же действия доступны из командной строки через утилиту rac, если запущен сервер администрирования ras:
rac cluster list
rac session list --cluster=<uuid кластера>
rac session terminate --cluster=<uuid кластера> --session=<uuid сеанса>
Остальные подкоманды смотрите в rac help.
Если консоль не открывается после переустановки платформы, перерегистрируйте библиотеку консоли: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора.
Перезапуск процессов не трогает папки snccntx. Если проблема в повреждённом сеансовом кэше на диске, без остановки службы не обойтись.
Существует ли утилита clean.exe
В поставке платформы 1С:Предприятие утилиты clean.exe для очистки кэша нет. Под таким именем по форумам ходят сторонние программы и самописные скрипты. Запускать неизвестный исполняемый файл на сервере с бухгалтерскими базами — плохая идея.
Тот же результат дают штатные средства:
| Способ | Что чистит | Нужна остановка службы | Когда выбирать |
|---|---|---|---|
| Удаление папок-GUID в профиле | Кэш клиента | Нет, только выйти из 1С | Проблема у одного-двух пользователей |
/ClearCache при запуске | Кэш клиента для одной базы | Нет | Помощь пользователю удалённо |
| Скрипт по GPO при входе | Кэш клиента у всех | Нет | После крупного обновления конфигурации |
| Перезапуск рабочих процессов | Память сервера | Нет | Рост памяти, зависания |
Удаление snccntx* | Сеансовый кэш сервера | Да | Ошибки у всех пользователей после сбоя сервера |
Кэш в файловом варианте базы
В файловой базе сервера 1С нет, поэтому srvinfo и snccntx не существует. Чистится только кэш в профиле пользователя — так же, как описано выше, папками-GUID или /ClearCache.
В каталоге самой базы лежат:
1Cv8.1CD— сама база, трогать нельзя;1Cv8tmp.1CD— временный файл, создаётся во время работы;1Cv8.1CL— файл блокировки, существует, пока база открыта;1Cv8Log— журнал регистрации;1Cv8FTxt— индекс полнотекстового поиска.
1Cv8tmp.1CD можно удалить, только когда в базе никого нет и файла 1Cv8.1CL не осталось. Если 1Cv8.1CL висит при закрытой 1С на всех компьютерах, сначала найдите, кто держит базу (на файловом сервере — через «Управление компьютером → Общие папки → Открытые файлы»). Удаление блокировки при работающем пользователе оборвёт его сеанс и может повредить данные.
При публикации файловой базы на веб-сервере к этому добавляется кэш браузера: обновите страницу с Ctrl + F5 или очистите кэш сайта в настройках браузера.
Скрипт и групповые политики для массовой очистки
Когда после обновления нужно сбросить кэш у 50 пользователей, руками это долго. Решение — скрипт входа в систему через групповую политику домена.
Вариант на PowerShell:
$paths = "$env:APPDATA\1C\1cv8", "$env:LOCALAPPDATA\1C\1cv8"
$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
foreach ($p in $paths) {
if (Test-Path $p) {
Get-ChildItem -Path $p -Directory |
Where-Object { $_.Name -match $guid } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}
}
Тот же смысл в виде bat-файла:
@echo off
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
Как подключить через GPO:
- Положите скрипт в общую папку, доступную на чтение всем пользователям домена, например в
NETLOGON. - В «Управлении групповой политикой» создайте политику и привяжите её к подразделению с пользователями.
- Откройте
Конфигурация пользователя → Политики → Конфигурация Windows → Сценарии (вход/выход из системы). - В «Вход в систему» добавьте bat-файл или на вкладке «Сценарии PowerShell» — ps1-файл.
- После обновления конфигурации включите политику на один день, затем отключите.
Скрипт срабатывает при входе в Windows, когда 1С ещё не запущена, — файлы кэша не заняты.
Не оставляйте политику включённой навсегда. Ежедневная очистка заставляет каждого пользователя утром заново скачивать конфигурацию, а при 100 сотрудниках это нагрузка на сеть и сервер в начале дня.
Для терминального сервера удобнее задание планировщика, которое ночью обходит профили C:\Users\*\AppData\... — но только когда пользователи вышли из сеансов.
Если после очистки кэша 1С появились проблемы
Первый запуск после сброса всегда дольше — это нормально. Для типовой конфигурации по локальной сети это обычно до нескольких минут. Если дольше или появились ошибки, разберите симптом:
Если очистка не помогла ни на клиенте, ни на сервере, соберите данные для следующего шага: текст ошибки целиком, версию платформы на клиенте и сервере, время сбоя и записи журнала регистрации за это время.