Сброс серверного кэша 1С:Предприятия без потери настроек кластера

· 10 мин

Содержание

Чтобы почистить кэш сервера 1С 8, остановите службу «Агент сервера 1С:Предприятия 8.3», удалите в каталоге кластера srvinfo\reg_1541 все папки, имя которых начинается с snccntx, и снова запустите службу. Файлы *.lst и папки с GUID информационных баз не трогайте: в них лежит реестр кластера и служебные данные баз.

Вся процедура занимает 5–10 минут, но на это время сервер недоступен для всех пользователей. Поэтому чистку делают вне рабочего времени или после предупреждения сотрудников. Ниже — где именно лежат файлы на Windows и Linux, готовые скрипты и разбор того, что идёт не так.

Когда серверный кэш действительно мешает

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

Признаки, при которых чистка кэша сервера оправдана:

  • 🔴 после обновления конфигурации у части пользователей открываются старые формы или старый код модулей, хотя конфигурация БД обновлена;
  • 🔴 сеансы «висят» в консоли кластера и не завершаются даже принудительно;
  • 🔴 после сбоя питания служба агента запускается, но пользователи получают ошибки соединения с рабочим процессом;
  • 🔴 папка srvinfo разрослась до десятков гигабайт, а диск сервера заканчивается;
  • 🔴 после перехода на новую версию платформы появились странные ошибки, которых не было на старой.

Когда чистить кэш сервера не нужно:

  • 🟢 ошибка воспроизводится только у одного пользователя — начните с клиентского кэша (запуск с параметром /ClearCache);
  • 🟢 база в файловом варианте — серверного кэша у неё нет, есть только клиентский;
  • 🟢 проблема в блокировках данных или долгих запросах — их чистка кэша не решает, нужен анализ в консоли кластера и технологическом журнале.

Сначала исключите клиентскую сторону. Если на соседнем компьютере та же база работает нормально, кэш сервера ни при чём.

Что лежит в каталоге srvinfo и что из этого кэш

Каталог кластера по умолчанию:

Платформа и ОСПуть по умолчанию
1С 8.3, Windows, 64 битC:\Program Files\1cv8\srvinfo
1С 8.3, Windows, 32 битC:\Program Files (x86)\1cv8\srvinfo
1С 8.2, WindowsC:\Program Files\1cv82\srvinfo
1С 8.3, Linux/home/usr1cv8/.1cv8/1C/1cv8

Путь может быть другим, если при установке его меняли. Точное место видно в параметрах запуска службы: ключ -d в строке ragent.exe указывает каталог кластера. На Windows эту строку показывает оснастка services.msc в свойствах службы, поле «Исполняемый файл».

Внутри каталога кластера есть подпапка reg_1541 (число — порт менеджера кластера; если кластер на другом порту, номер будет другим). В ней:

ОбъектЧто этоУдалять при чистке кэша
папки snccntx…сеансовые данные и кэш контекстов✅ да
папки с именами-GUIDслужебные данные информационных баз, в том числе полнотекстовый индекс❌ нет
1CV8Clst.lstреестр кластера: базы, рабочие серверы, настройки❌ никогда
1cv8wsrv.lst (уровнем выше)список кластеров центрального сервера❌ никогда
прочие *.lstслужебные реестры❌ нет

Удаление 1CV8Clst.lst стирает регистрацию всех информационных баз в кластере. Сами данные в СУБД останутся, но базы придётся заново добавлять в консоли, а настройки кластера (администраторы, профили безопасности, требования назначения функциональности) пропадут.

Перед первой чисткой скопируйте весь каталог srvinfo целиком в отдельное место. Это займёт минуту и позволит откатиться, если что-то удалили лишнее.

Ручная очистка кэша сервера в Windows

Шаг 1. Предупредите пользователей и завершите сеансы

Остановка службы обрывает все сеансы. Несохранённые документы пропадут, фоновые задания прервутся на середине.

  1. Откройте консоль администрирования серверов 1С.
  2. Разверните кластер → Информационные базы → нужная база → Сеансы.
  3. Убедитесь, что нет важных фоновых заданий (закрытие месяца , обмен, загрузка выписок).
  4. Попросите пользователей выйти. Оставшиеся сеансы завершите из консоли.

Если на сервере несколько баз, проверьте сеансы в каждой: служба одна на весь кластер.

Шаг 2. Остановите службу агента сервера

Откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» и нажмите «Остановить». Для 8.2 название аналогичное, с цифрами 8.2.

Дождитесь, пока в диспетчере задач исчезнут процессы ragent.exe, rmngr.exe и rphost.exe. Если rphost.exe висит больше минуты — завершите его вручную, иначе файлы в папке будут заблокированы.

Шаг 3. Удалите папки snccntx

  1. Перейдите в C:\Program Files\1cv8\srvinfo\reg_1541.
  2. Выделите все папки, имя которых начинается с snccntx.
  3. Удалите их.

Больше ничего в этой папке не трогайте.

Шаг 4. Запустите службу

Вернитесь в services.msc и запустите службу агента. Через 20–40 секунд в диспетчере задач появятся rmngr.exe и хотя бы один rphost.exe, а в reg_1541 — новая папка snccntx….

Первые входы пользователей будут медленнее обычного: сервер заново наполняет кэш. Это нормально и проходит за несколько минут работы.

Скрипты: bat и PowerShell для Windows

Ручной вариант удобен разово. Если чистка нужна регулярно, например после каждого обновления платформы, проще держать скрипт.

Сначала узнайте точное имя службы. Оно отличается от отображаемого и зависит от того, как ставили платформу:

sc query state= all | findstr /i "1C"

Пример bat-файла (запускать от имени администратора):

@echo off
set SRV="1C:Enterprise 8.3 Server Agent (x86-64)"
set REG=C:\Program Files\1cv8\srvinfo\reg_1541

net stop %SRV%
timeout /t 15 /nobreak
taskkill /f /im rphost.exe 2>nul
taskkill /f /im rmngr.exe 2>nul

for /d %%D in ("%REG%\snccntx*") do rd /s /q "%%D"

net start %SRV%

То же самое на PowerShell:

$svc = Get-Service | Where-Object { $_.Name -like "1C:Enterprise*Server Agent*" }
$reg = "C:\Program Files\1cv8\srvinfo\reg_1541"

Stop-Service -InputObject $svc -Force
Start-Sleep -Seconds 15
Get-Process rphost, rmngr -ErrorAction SilentlyContinue | Stop-Process -Force

Get-ChildItem -Path $reg -Directory -Filter "snccntx*" | Remove-Item -Recurse -Force

Start-Service -InputObject $svc

Если на сервере установлено несколько версий платформы с разными службами, фильтр по имени найдёт их все. В таком случае укажите службу явно, по имени из sc query.

Скрипт можно повесить в планировщик заданий Windows на ночь. Но регулярная автоматическая чистка — скорее симптом, чем лечение: если кэш приходится сбрасывать каждую неделю, ищите причину (нехватка памяти, диск, сбойная версия платформы).

Очистка кэша сервера 1С на Linux

Логика та же: остановить сервер , удалить snccntx*, запустить. Отличаются имена службы и пути.

Как называется служба

Зависит от способа установки и версии платформы:

  • старые сборки 8.3 ставили init-скрипт srv1cv83;
  • в новых сборках 8.3 сервер запускается юнитом systemd, в имени которого есть номер версии платформы.

Найти точное имя:

systemctl list-units --all | grep -i 1cv8

Последовательность команд

# 1. Остановить сервер (подставьте имя юнита из списка выше)
sudo systemctl stop <имя_юнита>

# 2. Убедиться, что процессов не осталось
ps aux | grep -E "ragent|rmngr|rphost" | grep -v grep

# 3. Удалить кэш сеансовых данных
sudo rm -rf /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/snccntx*

# 4. Запустить сервер
sudo systemctl start <имя_юнита>
sudo systemctl status <имя_юнита>

Если сервер запущен под другим пользователем или с другим каталогом кластера, путь будет иным. Каталог видно в параметре -d командной строки процесса ragent в выводе ps aux.

Перед rm -rf выполните ту же команду с ls вместо удаления и убедитесь, что под маску попали только папки snccntx. Опечатка в пути под sudo стоит дорого.

Разница между 1С 8.2 и 8.3

Принцип очистки кэша одинаковый для обеих версий. Отличия касаются путей, имён и инструментов.

Что1С 8.21С 8.3
Каталог платформы1cv821cv8
СлужбаАгент сервера 1С:Предприятия 8.2Агент сервера 1С:Предприятия 8.3 (x86-64)
Утилита командной строкинетrac вместе с сервером ras
Несколько версий на одном серверередкочасто, каждая со своей службой и портами

На 8.3 часто стоят две-три версии платформы одновременно, например старая для одной базы и новая для другой. У каждой своя служба и свой каталог кластера, обычно на разных портах (reg_1541, reg_2541 и так далее). Чистите кэш именно той службы, к которой подключена проблемная база: адрес сервера и порт видны в списке баз при запуске 1С.

Если после чистки что-то пошло не так

Диагностика: выберите симптом

Отдельный случай — полнотекстовый поиск. Если по ошибке удалили папку с GUID базы, после запуска поиск по данным перестанет находить документы. Индекс нужно перестроить: в БП 3.0 это делается в Администрирование → Обслуживание → Полнотекстовый поиск.

Как сделать, чтобы кэш реже засорялся

Большая часть проблем с кэшем сервера растёт из нескольких корней. Их проще убрать один раз, чем чистить папки каждую неделю.

Настройте перезапуск рабочих процессов

В консоли кластера откройте свойства кластера. Там есть параметры:

  • «Интервал перезапуска» — рабочие процессы будут плавно перезапускаться по расписанию, без обрыва сеансов;
  • «Допустимый объём памяти» — порог, после превышения которого процесс перезапускается;
  • «Интервал превышения допустимого объёма памяти» — сколько секунд процесс может держаться выше порога.

Типичная практика — интервал перезапуска раз в сутки (86 400 секунд). Порог памяти выбирайте от фактического потребления: посмотрите в диспетчере задач, сколько обычно занимает rphost.exe в рабочий день, и добавьте запас.

Следите за диском

Когда на диске с srvinfo заканчивается место, сервер не может записать сеансовые данные, и кэш портится первым. Держите на этом разделе свободными хотя бы 15–20% объёма. Если диск системный и маленький, каталог кластера лучше перенести на отдельный том при следующей переустановке службы.

Исключите srvinfo из антивирусной проверки

Антивирус, проверяющий каждый файл в srvinfo, блокирует запись и замедляет сервер. Добавьте каталог кластера в исключения. То же касается программ резервного копирования: сеансовые данные бэкапить не нужно.

Обновляйте платформу аккуратно

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

Как убедиться, что очистка помогла

После запуска службы пройдитесь по короткому списку:

Проверка после очистки кэша сервера
Выполнено: 0 / 7

Регламентные задания проверьте отдельно. После остановки службы задание, прерванное на середине, может не запуститься до следующего расписания. В БП 3.0 и ЗУП 3.1 их список и время последнего запуска смотрите в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

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

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

Можно ли почистить кэш сервера без остановки службы?
Нет. Пока работают rphost и rmngr, папки snccntx заняты, и удалить их корректно нельзя. Без остановки можно только завершить сеансы и перезапустить отдельный рабочий процесс из консоли кластера.
Удаляются ли при очистке данные информационной базы?
Нет. Данные хранятся в СУБД (MS SQL, PostgreSQL), а в srvinfo — только служебные файлы сервера. Удаление папок snccntx на документы и справочники не влияет.
Нужно ли после очистки кэша сервера чистить кэш у пользователей?
Если ошибка была в старых формах или модулях после обновления — да, на проблемных рабочих местах запустите 1С с параметром /ClearCache. В остальных случаях обычно достаточно серверной чистки.
Почему папка srvinfo занимает много места даже после очистки?
Основной объём часто приходится на полнотекстовый индекс и служебные данные баз в папках с GUID. Их нельзя удалять как кэш. Проверьте, нужен ли полнотекстовый поиск во всех базах, и отключите его там, где им не пользуются.
Как часто нужно чистить кэш сервера 1С?
По расписанию — не нужно. Чистка нужна по симптомам: после сбоя, при проблемах после обновления или при подозрении на испорченные сеансовые данные. Регулярные проблемы лечат настройкой перезапуска рабочих процессов и свободным местом на диске.