Сеансовые данные кластера 1С:Предприятия: как найти их на диске и безопасно удалить
Содержание
Серверный кэш 1С:Предприятия хранится в рабочем каталоге кластера srvinfo. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541, на Linux — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541. Сам кэш — это папки с именами snccntx…: в них сервер держит сеансовые данные. Чтобы очистить кэш
, останавливают службу агента сервера, удаляют эти папки и запускают службу снова.
Типичная ситуация: после обновления конфигурации у части пользователей формы открываются со старыми реквизитами, а очистка клиентского кэша на рабочих местах не помогает. Или администратор видит, что диск на сервере 1С заполнен, хотя базы лежат на отдельном сервере СУБД. В обоих случаях путь ведёт в srvinfo.
Как сервер 1С кэширует данные и чем это отличается от кэша клиента
В 1С есть два независимых кэша, и их часто путают.
- 💻 Клиентский кэш живёт на компьютере пользователя, в профиле Windows:
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8. Там лежат метаданные конфигурации, настройки форм, служебные файлы. Чистится параметром запуска/ClearCacheили удалением папок с GUID-именами. - 🖥️ Серверный кэш живёт на машине, где работает кластер. Это файлы рабочих процессов
rphost: сеансовые данные, временные хранилища, контексты сеансов. Пользователь к ним доступа не имеет.
Кроме кэша, в том же каталоге кластера хранятся вещи, которые кэшем не являются и удалять их нельзя без понимания последствий:
Объект в reg_1541 | Что это | Можно удалять? |
|---|---|---|
1CV8Clst.lst | Реестр кластера: список баз, рабочих серверов, администраторов | Нет. Без него кластер «забудет» все базы |
| Папки с GUID баз | Служебные данные конкретной информационной базы | Целиком — нет |
1Cv8Log внутри папки базы | Журнал регистрации | Нет, только сокращать штатно |
1Cv8FTxt внутри папки базы | Индекс полнотекстового поиска | Можно, но индекс придётся строить заново |
snccntx… | Сеансовые данные (тот самый серверный кэш) | Да, при остановленной службе |
Сами базы данных в srvinfo не хранятся: таблицы лежат в СУБД (MS SQL, PostgreSQL). Поэтому очистка серверного кэша не трогает документы и справочники.
Номер 1541 в имени папки reg_1541 — это порт менеджера кластера. Если кластер поднят на другом порту, папка будет называться иначе, например reg_2541.
Где лежит серверный кэш 1С на Windows
При стандартной установке сервера 1С:Предприятия 8.3 x64 рабочий каталог такой:
C:\Program Files\1cv8\srvinfo\
1cv8wsrv.lst — реестр центрального сервера
reg_1541\
1CV8Clst.lst — реестр кластера
snccntx<GUID>\ — сеансовые данные
<GUID базы>\
1Cv8Log\ — журнал регистрации
1Cv8FTxt\ — полнотекстовый индекс
Для 32-разрядного сервера путь начинается с C:\Program Files (x86)\1cv8\srvinfo. Но на это значение полагаться нельзя: администратор мог при установке указать другой каталог, например на отдельный диск D:\srvinfo.
Как узнать точный путь на своём сервере
Путь к каталогу кластера передаётся службе агента параметром -d. Проверить его можно так:
- Откройте
services.msc. - Найдите службу «Агент сервера 1С:Предприятия 8.3» (в названии будет разрядность, иногда номер версии).
- Откройте её свойства и посмотрите поле «Исполняемый файл».
- В строке будет фрагмент вида
-d "C:\Program Files\1cv8\srvinfo"— это и есть корень.
То же самое из командной строки:
sc query state= all | findstr /i "1C"
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"
Первая команда покажет точное системное имя службы, вторая — её параметры, включая путь с -d. Имя во второй команде подставьте из вывода первой.
Если на сервере стоят несколько версий платформы и несколько служб агента, у каждой свой каталог srvinfo. Ищите тот, к которому привязан нужный кластер.
Где хранится серверный кэш 1С на Linux
На Linux сервер 1С работает от пользователя usr1cv8. Каталог кластера по умолчанию лежит в его домашней папке:
/home/usr1cv8/.1cv8/1C/1cv8/
1cv8wsrv.lst
reg_1541/
1CV8Clst.lst
snccntx<GUID>/
<GUID базы>/
Каталог скрытый (начинается с точки), поэтому ls без ключа -a его не покажет.
Как проверить путь и имя службы
Способ запуска зависит от версии платформы:
- 🐧 Новые версии (8.3.21 и выше) ставят службу systemd вида
srv1cv8-8.3.xx.yyyy@default. Каталог данных задаётся в параметрах юнита. - 🐧 Старые версии использовали init-скрипт
srv1cv83, а путь к данным брали из переменнойSRV1CV8_DATAв файле/etc/sysconfig/srv1cv83.
Найти службу и путь помогут команды:
systemctl list-units --all | grep -i srv1cv8
ps -ef | grep ragent
Во второй команде в строке процесса ragent виден параметр -d с реальным каталогом. Это самый надёжный способ, потому что он показывает то, с чем сервер работает прямо сейчас.
Права на каталог должны оставаться за usr1cv8. Если чистить кэш
от root и случайно создать там файлы с владельцем root, служба после запуска может не получить к ним доступ.
Очистка серверного кэша 1С вручную
Остановка службы агента сервера обрывает все сеансы всех баз кластера. Несохранённые данные у пользователей пропадут, фоновые и регламентные задания прервутся. Делайте это вечером или в выходной, заранее предупредив людей.
Перед удалением скопируйте reg_1541 целиком в резервную папку. Если что-то пойдёт не так, копия вернёт кластер в исходное состояние за минуту.
Порядок действий на Windows
- Завершите работу пользователей и дождитесь окончания регламентных заданий (обмены, загрузки из банка).
- Остановите службу «Агент сервера 1С:Предприятия 8.3».
- Откройте
Диспетчер задачи убедитесь, что процессовragent,rmngr,rphostне осталось. Если висят — дождитесь или завершите их. - Скопируйте папку
reg_1541в резервное место. - В
reg_1541удалите все папки, имя которых начинается сsnccntx. Удобно найти их поиском Проводника по маскеsnccntx*— на некоторых версиях они лежат и внутри папок баз. - Запустите службу агента.
- Зайдите в одну базу и проверьте, что вход проходит штатно.
Порядок действий на Linux
sudo systemctl stop srv1cv8-8.3.xx.yyyy@default
sudo cp -a /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 /root/reg_1541_backup
sudo find /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 -maxdepth 2 -type d -name 'snccntx*' -exec rm -rf {} +
sudo systemctl start srv1cv8-8.3.xx.yyyy@default
Имя службы замените на своё из вывода systemctl list-units. На старых версиях вместо systemctl используйте service srv1cv83 stop и service srv1cv83 start.
Как проверить результат
После запуска службы откройте консоль «Администрирование серверов 1С Предприятия» и убедитесь, что кластер на месте, а в списке информационных баз видны все базы. Затем:
- Зайдите в каждую рабочую базу хотя бы одним пользователем.
- Проверьте, что регламентные задания снова выполняются: в консоли кластера появятся фоновые сеансы.
- Если ошибка касалась форм после обновления, попросите пользователей запустить 1С с параметром
/ClearCache— клиентский кэш серверная очистка не затрагивает.
Когда всё работает пару дней без сбоев, резервную копию reg_1541 можно удалить.
Чего не делать
- ❌ Не удаляйте
1CV8Clst.lstи1cv8wsrv.lst. Совет «удалите всё в srvinfo» встречается на форумах, но после него придётся заново регистрировать в кластере каждую базу. - ❌ Не удаляйте папки при работающей службе: часть файлов занята, а остальное сервер сразу пересоздаст в непредсказуемом состоянии.
- ❌ Не трогайте
1Cv8Log, если журнал регистрации нужен бухгалтерии или аудиторам: это история действий пользователей.
Автоматическая очистка: скрипты и планировщик
Чистить кэш по расписанию имеет смысл, если он регулярно разрастается или после обновлений повторяются «призрачные» ошибки. Для большинства серверов хватает ручной чистки после обновления платформы или конфигурации.
PowerShell и Планировщик заданий Windows
Скрипт останавливает службу, удаляет сеансовые данные и запускает службу обратно. Перед использованием поменяйте имя службы и путь на свои.
$service = "1C:Enterprise 8.3 Server Agent (x86-64)"
$cluster = "C:\Program Files\1cv8\srvinfo\reg_1541"
$log = "C:\Scripts\clear1c.log"
Stop-Service -Name $service -Force
Start-Sleep -Seconds 30
Get-ChildItem -Path $cluster -Directory -Recurse -Filter "snccntx*" |
Remove-Item -Recurse -Force
Start-Service -Name $service
Add-Content -Path $log -Value "$(Get-Date -Format 'yyyy-MM-dd HH:mm') кэш очищен"
Пауза в 30 секунд нужна, чтобы рабочие процессы успели завершиться после остановки агента.
Чтобы запускать скрипт ночью:
- Откройте
taskschd.mscи создайте простую задачу. - Триггер — например, еженедельно в воскресенье в 03:00.
- Действие — запуск программы
powershell.exeс аргументами-ExecutionPolicy Bypass -File C:\Scripts\clear1c.ps1. - В свойствах задачи отметьте запуск с наивысшими правами и от учётной записи администратора, иначе служба не остановится.
bash и cron на Linux
#!/bin/bash
SRV="srv1cv8-8.3.xx.yyyy@default"
DIR="/home/usr1cv8/.1cv8/1C/1cv8/reg_1541"
systemctl stop "$SRV"
sleep 30
find "$DIR" -maxdepth 2 -type d -name 'snccntx*' -exec rm -rf {} +
systemctl start "$SRV"
echo "$(date '+%F %R') кэш очищен" >> /var/log/clear1c.log
Сохраните как /usr/local/bin/clear1c.sh, дайте права chmod +x и добавьте в crontab пользователя root строку:
0 3 * * 0 /usr/local/bin/clear1c.sh
Это запуск каждое воскресенье в 03:00.
Сверьте расписание с регламентными заданиями баз. Если ночью идёт выгрузка в бухгалтерию или обмен с сайтом, сдвиньте очистку, чтобы не оборвать их посередине.
Альтернатива без остановки службы
Часть проблем, ради которых чистят кэш, решает плановый перезапуск рабочих процессов. В консоли «Администрирование серверов 1С Предприятия» откройте свойства кластера: там есть параметры «Интервал перезапуска» и «Допустимый объём памяти». Кластер сам поднимает новый rphost и переводит на него соединения, не обрывая работу так резко, как остановка службы.
Почему растёт каталог srvinfo и как это диагностировать
Жалоба «серверный кэш 1С занял весь диск» обычно означает, что вырос каталог srvinfo целиком. Сами папки snccntx редко бывают главным виновником.
Сначала измерьте
На Windows размер подпапок покажет PowerShell:
Get-ChildItem "C:\Program Files\1cv8\srvinfo\reg_1541" -Directory |
ForEach-Object {
$s = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
"{0,10:N0} МБ {1}" -f ($s/1MB), $_.Name
} | Sort-Object -Descending
На Linux:
sudo du -sh /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/* | sort -h
Чтобы понять, какой базе принадлежит папка с GUID, откройте свойства базы в консоли кластера: там указан её идентификатор.
Кто обычно занимает место
Признаки, что пора чистить
- 🐢 После обновления платформы или конфигурации вход в базу занимает заметно дольше, чем до него.
- 🔁 Ошибка воспроизводится на всех рабочих местах, и
/ClearCacheна клиентах её не убирает. - 💾 Каталог
reg_1541за месяц вырос в разы без роста числа баз и пользователей. - ⚠️ В журнале событий Windows или в системном логе Linux появляются сообщения об аварийном завершении
rphost.
Если после очистки проблема вернулась через день-два, кэш — следствие, а не причина. Ищите сбой рабочих процессов: нехватку памяти, ошибки СУБД, конфликт версий платформы на клиенте и сервере.