Кэш 1С на сервере: srvinfo, профили пользователей и временные файлы
Содержание
Кэш 1С на сервере хранится в двух местах. Сервер 1С:Предприятия держит служебные данные кластера в каталоге srvinfo (по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541, на Linux — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541), а кэш конфигурации каждого пользователя лежит в его профиле: C:\Users\<пользователь>\AppData\Local\1C\1cv8\<GUID базы>. На терминальном сервере таких профилей десятки, и именно они чаще всего «съедают» диск.
Всё, что описано ниже, относится к платформе 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ хранят кэш одинаково. Отличаются только вариант работы (файловый или клиент-серверный) и способ подключения (тонкий клиент, веб-клиент, терминал).
Карта папок: где 1С хранит кэш и временные файлы на сервере
Начнём со сводной таблицы. Пути даны для Windows Server 2016 и новее с установкой по умолчанию.
| Что хранится | Путь | Можно чистить? |
|---|---|---|
| Кэш конфигурации пользователя | %LOCALAPPDATA%\1C\1cv8\<GUID базы> | Да, при закрытой 1С у этого пользователя |
| Настройки и часть кэша пользователя | %APPDATA%\1C\1cv8\<GUID базы> | Осторожно: там пользовательские настройки |
| Список баз | %APPDATA%\1C\1CEStart\ibases.v8i | Нет, это не кэш |
| Настройки запуска | %APPDATA%\1C\1CEStart\1cestart.cfg | Нет, это не кэш |
| Реестр кластера | C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst | Никогда |
| Сеансовые данные сервера | srvinfo\reg_1541\snccntx* | Да, при остановленной службе |
| Журнал регистрации серверных баз | srvinfo\reg_1541\<GUID базы>\1Cv8Log | Нет, это журнал |
| Индекс полнотекстового поиска | srvinfo\reg_1541\<GUID базы>\1Cv8FTxt | Можно, но индекс придётся перестроить |
| Временные файлы рабочих процессов | Temp пользователя, от имени которого запущена служба | Да, файлы v8_*.tmp старше суток |
💡 %LOCALAPPDATA% раскрывается в C:\Users\<пользователь>\AppData\Local, а %APPDATA% — в C:\Users\<пользователь>\AppData\Roaming. Вставьте переменную в адресную строку Проводника, и он сам откроет нужную папку текущего пользователя.
Номер 1541 в имени reg_1541 — это порт менеджера кластера. Если кластер создан на другом порту, папка будет называться иначе, например reg_2541.
Если служба агента запущена с параметром -d, каталог srvinfo может лежать где угодно. Точный путь виден в свойствах службы «Агент сервера 1С:Предприятия 8.3» в строке «Исполняемый файл»: после ключа -d указан каталог данных кластера.
На Linux пользовательский кэш лежит в домашнем каталоге: ~/.1cv8/1C/1cv8/<GUID базы>. Временные файлы сервера по умолчанию пишутся в /tmp.
Кэш конфигураций и расширений в профиле пользователя
Когда пользователь открывает базу, платформа скачивает с сервера описание конфигурации, формы, модули и расширения. Чтобы не тянуть их при каждом входе, она складывает всё в папку с GUID базы внутри %LOCALAPPDATA%\1C\1cv8. При следующем запуске сравнивается версия, и загружаются только изменения.
Как найти папку конкретной базы
Имена папок — это не названия баз, а их идентификаторы. Связь хранится в файле ibases.v8i:
- Откройте
%APPDATA%\1C\1CEStart\ibases.v8iБлокнотом. - Найдите секцию с названием базы в квадратных скобках, например
[Бухгалтерия предприятия]. - Скопируйте значение строки
ID=— это GUID. - В
%LOCALAPPDATA%\1C\1cv8и%APPDATA%\1C\1cv8папка с таким именем относится к этой базе.
Если базу добавили в список заново, у неё появится новый ID и новая папка кэша. Старая останется лежать мёртвым грузом, пока её не удалят.
Что внутри папки базы
- 📦 файлы описания конфигурации и расширений, в том числе тех, что подключены в режиме «Предприятие»;
- 🧩 скомпилированные модули и формы;
- ⚙️ в
Roaming— сохранённые настройки форм, отчётов и списков, если они хранятся на клиенте.
Ориентировочно одна папка для типовой Бухгалтерии занимает сотни мегабайт, для ERP может переходить за гигабайт. Умножьте на число пользователей терминала и баз в списке — и станет понятно, откуда на диске C: пропадают десятки гигабайт.
Папку из Roaming целиком не удаляйте. Вместе с кэшем уйдут настройки отчётов и колонок списков, которые пользователь собирал месяцами. Для сброса кэша достаточно папки из Local.
Файловая база и кластер серверов: что кэширует каждая сторона
Вопрос «где кэш на сервере» звучит одинаково, а ответ зависит от варианта работы.
Файловый вариант
На «сервере» здесь лежит только папка базы: 1Cv8.1CD, журнал регистрации 1Cv8Log, индекс поиска 1Cv8FTxt и файл блокировки 1Cv8.1CL. Своего кэша у файловой базы на сервере нет.
Весь кэш конфигурации создаётся на компьютерах пользователей. Если файловую базу открывают через терминальный сервер , кэш будет в профилях на этом терминальном сервере.
Клиент-серверный вариант
Здесь кэш живёт на двух уровнях:
- 🖥️ сервер 1С — каталог
srvinfo: реестр кластера, папки баз с журналом и индексом поиска, служебные папкиsnccntx*с данными сеансов; - 👤 клиент — тот же
%LOCALAPPDATA%\1C\1cv8\<GUID>в профиле пользователя, будь то его ноутбук или терминальный сервер.
Сам код конфигурации рабочие процессы держат в памяти и собирают заново после перезапуска. Поэтому «тяжёлого» кэша конфигурации в srvinfo нет, и чистить там приходится в основном snccntx*.
Папка базы в reg_1541 названа по идентификатору базы в кластере, а не по ID из ibases.v8i. Сопоставить их можно в консоли администрирования или командой rac infobase summary list --cluster=<id кластера>: в выводе есть поля infobase (GUID) и name. Идентификатор кластера возвращает rac cluster list.
Сводно
| Файловая база | Клиент-сервер | |
|---|---|---|
| Кэш конфигурации | на клиенте | на клиенте |
| Данные сеансов | на клиенте | srvinfo\reg_1541\snccntx* |
| Журнал регистрации | в папке базы | в srvinfo\reg_1541\<GUID> |
| Временные файлы | Temp клиента | Temp службы 1С |
Веб-клиент, публикация на веб-сервере и HTTP-сервисы
Веб-клиент в браузере
Веб-клиент не создаёт папку в AppData\Local\1C. Модули и формы кэширует браузер, как обычные файлы сайта. Если после обновления конфигурации веб-клиент показывает старые формы:
- Закройте все вкладки с базой.
- Очистите кэш браузера для адреса публикации (в Chrome и Edge —
Ctrl+Shift+Delete, пункт «Изображения и другие файлы, сохранённые в кэше»). - Откройте базу заново.
Тонкий клиент через веб-сервер
Тонкий клиент, подключённый по адресу http://сервер/база, ведёт себя как обычный: кэш конфигурации лежит в %LOCALAPPDATA%\1C\1cv8 на компьютере пользователя. Веб-сервер лишь передаёт запросы в кластер.
Модуль расширения веб-сервера и HTTP-сервисы
Модуль wsisapi.dll (IIS) или wsap24.dll (Apache) работает внутри процесса веб-сервера. Он сам является клиентом кластера и пишет временные файлы в Temp учётной записи, под которой работает веб-сервер: для IIS это обычно удостоверение пула приложений.
У HTTP-сервисов клиентского кэша нет. Данные сеансов хранятся на стороне кластера. Если в default.vrd включено повторное использование сеансов, сеанс сохраняется между вызовами — и вместе с ним сохраняются значения повторно используемых модулей. После обновления конфигурации такие сеансы стоит завершить, иначе сервис может отдавать результат по старой логике до истечения времени жизни сеанса.
Как очистить кэш 1С на сервере: вручную и по расписанию
Кэш одного пользователя
Самый мягкий способ — параметр запуска /ClearCache:
- В окне запуска выделите базу и нажмите «Изменить».
- Пройдите мастер до последней страницы.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Запустите базу один раз и уберите параметр, иначе кэш будет сбрасываться при каждом входе.
Вручную: попросите пользователя выйти из 1С, затем удалите папку с нужным GUID из %LOCALAPPDATA%\1C\1cv8. Первый запуск после этого будет заметно дольше обычного: платформа заново скачает конфигурацию.
Профили на терминальном сервере скриптом
Скрипт PowerShell удаляет папки кэша из Local у всех пользователей, у которых сейчас не запущена 1С. Настройки в Roaming не трогает.
# Пользователи, у которых сейчас открыт клиент 1С
$busy = Get-Process 1cv8, 1cv8c -IncludeUserName -ErrorAction SilentlyContinue |
ForEach-Object { ($_.UserName -split '\\')[-1] } | Sort-Object -Unique
Get-ChildItem 'C:\Users' -Directory | ForEach-Object {
if ($busy -contains $_.Name) { return }
$cache = Join-Path $_.FullName 'AppData\Local\1C\1cv8'
if (Test-Path $cache) {
Get-ChildItem $cache -Directory |
Where-Object { $_.Name -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}
}
Запускайте его от администратора через «Планировщик заданий», например ночью раз в неделю. Фильтр по шаблону GUID защищает от удаления посторонних папок.
Данные сеансов на сервере 1С
Для очистки snccntx* службу агента нужно остановить. Все сеансы пользователей оборвутся, несохранённые документы пропадут. Делайте это вне рабочего времени, после выхода пользователей, и предварительно скопируйте каталог srvinfo.
Перед запуском узнайте точное имя службы командой sc query state= all | findstr /i 1C и подставьте его в скрипт.
@echo off
set "SVC=1C:Enterprise 8.3 Server Agent (x86-64)"
set "REG=C:\Program Files\1cv8\srvinfo\reg_1541"
net stop "%SVC%"
for /f "delims=" %%D in ('dir /b /s /ad "%REG%\snccntx*"') do rd /s /q "%%D"
net start "%SVC%"
Скрипт удаляет только папки snccntx* на любом уровне вложенности. Файл 1CV8Clst.lst, папки 1Cv8Log и 1Cv8FTxt остаются на месте.
На Linux порядок тот же: найдите юнит командой systemctl list-units | grep -i 1c, остановите его через systemctl stop, удалите snccntx* в /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 и запустите службу снова.
Временные файлы службы
Рабочие процессы создают файлы вида v8_XXXX_NN.tmp в Temp учётной записи службы, обычно C:\Users\USR1CV8\AppData\Local\Temp. При аварийном завершении процесса они остаются. Чистить безопасно только файлы старше суток:
Get-ChildItem 'C:\Users\USR1CV8\AppData\Local\Temp' -Filter 'v8_*.tmp' |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-1) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Признаки, что кэш переполнен или испорчен
Испорченный кэш редко выдаёт понятное сообщение. Обычно о нём говорят косвенные симптомы:
Быстро оценить, сколько места занимает кэш 1С на терминальном сервере, поможет такая команда:
Get-Item 'C:\Users\*\AppData\Local\1C\1cv8' -ErrorAction SilentlyContinue |
ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
[pscustomobject]@{ Profile = $_.Parent.Parent.Parent.Parent.Name
SizeGB = [math]::Round($size / 1GB, 2) }
} | Sort-Object SizeGB -Descending
Если папка snccntx* на сервере разрослась до гигабайтов при небольшом числе пользователей, это повод проверить, не висят ли зависшие сеансы, а уже потом чистить.
Что происходит с кэшем после обновления платформы и конфигурации
Обновление платформы
Каждая версия платформы ставится в свой каталог, например C:\Program Files\1cv8\8.3.24.1691. Каталог srvinfo при этом общий для всех версий 8.3: новый агент подхватывает реестр кластера, и базы заново регистрировать не нужно.
Клиентский кэш после смены версии платформы пересоздаётся при первом запуске. Старые файлы в папке с GUID база перезаписывает сама. Поэтому первый вход после обновления всегда медленнее.
💡 Если после обновления платформы на сервере у части пользователей появились странные ошибки, проверьте, совпадает ли версия клиента с версией сервера. Несовпадение версий — частая причина проблем, которые ошибочно списывают на кэш.
Обновление конфигурации
После обновления конфигурации базы сервер перестраивает свои данные сам. Клиенты при входе сравнивают версию и докачивают изменения. Сбой бывает, если пользователь не выходил из 1С во время обновления или сеанс оборвался посередине загрузки. Тогда помогает сброс кэша именно у этого пользователя, а не у всех.
Расширения конфигурации кэшируются так же, как основная конфигурация. После загрузки новой версии расширения пользователю достаточно перезайти в базу.
Удалённые базы
Платформа не удаляет кэш баз, которые убрали из списка. Если базу сняли с публикации или перенесли, её папки в профилях останутся навсегда. Раз в квартал сверяйте GUID в %LOCALAPPDATA%\1C\1cv8 с актуальным ibases.v8i и удаляйте лишнее.
Частые вопросы
Можно ли удалить всю папку srvinfo, чтобы очистить кэш сервера?
1CV8Clst.lst со списком баз, рабочих серверов и администраторов. Без него кластер придётся настраивать заново. Удаляют только папки snccntx*.Повлияет ли очистка кэша на данные в базе?
1Cv8.1CD. Кэш содержит только копию конфигурации и служебные данные, которые платформа восстановит сама.Почему кэш снова вырос через неделю после очистки?
Как перенести кэш 1С с диска C: на другой диск?
AppData\Local\1C. Ссылку создают при закрытой 1С у этого пользователя, иначе часть файлов будет занята.Где кэш, если 1С запускается через RemoteApp?
C:\Users\<пользователь>\AppData\Local\1C\1cv8.