Администрирование · 11 мин
Как очистить кэш базы 1С на сервере
Разбираем, как очистить кэш базы 1С на сервере: где хранятся файлы srvinfo, как правильно остановить службу агента, что удалять и как проверить результат.
Кэш сервера 1С — это служебные файлы, которые кластер серверов создаёт для ускорения работы: скомпилированные модули, метаданные, временные данные сеансов. Со временем в этих файлах накапливаются устаревшие версии, и пользователи начинают сталкиваться со странными ошибками: «Обнаружено нарушение целостности системы», «Ошибка формата потока», конфликт блокировок после обновления конфигурации или расхождение поведения программы у разных пользователей одной базы.
В клиент-серверном варианте работы кэш существует на двух уровнях: локальный кэш клиента (папки с GUID в профиле пользователя) и серверный кэш в каталоге srvinfo. Очистка только клиентского кэша часто не решает проблему — если повреждены серверные файлы, ошибка вернётся у всех пользователей сразу после перезапуска. Поэтому важно понимать, где именно лежит серверный кэш и как его безопасно удалить.
Ниже — практическая инструкция по очистке кэша на сервере 1С для Windows и Linux, с указанием рисков, порядка остановки служб и способов проверки результата. Инструкция применима к типовым установкам платформы 1С:Предприятие 8.3.
Что такое серверный кэш 1С и когда его нужно чистить
Сервер 1С кэширует метаданные конфигураций, скомпилированный программный код и служебную информацию рабочих процессов. Эти данные лежат в рабочем каталоге кластера — папке srvinfo. Внутри неё для каждого кластера создаётся подпапка вида reg_1541 (номер зависит от порта кластера), где и накапливаются файлы кэша: snccntx, файлы сессий, журналы и временные данные.
Очистка серверного кэша оправдана в типичных ситуациях: после обновления конфигурации у части пользователей появляются ошибки, которых нет у других; база выдаёт «Ошибку формата потока» при открытии; серверное сообщение об ошибке ссылается на нарушение целостности; рабочие процессы rphost потребляют аномально много памяти без видимой нагрузки. Также кэш чистят при переносе базы на другой сервер и при подозрении на рассинхронизацию между узлами кластера.
Очистите локальный кэш в профиле пользователя, сервер трогать не нужно
Проверьте каталог srvinfo и запланируйте очистку
Сначала очистите кэш, если не помогло — тестирование и исправление базы
Где находится кэш сервера 1С
Расположение каталога srvinfo зависит от операционной системы и параметров установки. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo (для 64-разрядной версии) или C:\Program Files (x86)\1cv8\srvinfo. Если при установке агента сервера был указан другой рабочий каталог, путь можно посмотреть в параметрах запуска службы «Агент сервера 1С:Предприятия» — он передаётся ключом -d.
На Linux рабочий каталог обычно находится в /home/usr1cv8/.1cv8/1C/1cv8/ или в каталоге, заданном при запуске агента. Точный путь виден в командной строке процесса ragent: выполните ps aux | grep ragent и найдите параметр -d.
Внутри srvinfo находятся подпапки reg_1541, reg_1540 и подобные — по одной на каждый кластер. Именно их содержимое и является серверным кэшем. Удалять саму папку srvinfo целиком без понимания структуры не стоит: в reg_1541 также лежат файлы реестра кластера со списком информационных баз.
Подготовка: что сделать до очистки
Очистка серверного кэша требует остановки службы агента сервера, а значит — все пользователи будут отключены от баз. Заранее завершите сеансы: через консоль кластера серверов 1С проверьте список активных сеансов и попросите пользователей выйти. Принудительно завершить оставшиеся сеансы можно в той же консоли или через администрирование в конфигураторе.
Сделайте резервную копию папки srvinfo или хотя бы файлов реестра кластера (1CV8Clst.lst). Это занимает пару минут, но позволяет быстро вернуть список баз, если что-то пойдёт не так. Полный бэкап самих баз данных перед очисткой кэша не обязателен — кэш не содержит данных, но регламентное копирование по расписанию должно быть настроено в любом случае.
Убедитесь, что у вас есть права администратора на сервере и что никакие регламентные задания не запланированы на время работ. Фоновые задания, запущенные в момент остановки службы, прервутся — для большинства это некритично, но обмены данными лучше завершить штатно.
Пошаговая очистка кэша на Windows
Стандартная процедура на сервере Windows выглядит так. Откройте оснастку «Службы» (services.msc), найдите службу «Агент сервера 1С:Предприятия 8.3» и остановите её. Дождитесь завершения всех процессов rphost — проверить можно в диспетчере задач. Если процессы «зависли», завершите их вручную, иначе файлы кэша останутся заблокированными.
Перейдите в каталог srvinfo, затем в папку reg_1541 (или с другим номером порта). Сохраните копию файла 1CV8Clst.lst, после чего удалите всё содержимое папки reg_1541. Если кластеров несколько, повторите для каждой папки reg_*. Саму папку srvinfo и папки reg_* удалять не нужно — только их содержимое.
Запустите службу агента сервера обратно. При старте кластер создаст чистые файлы кэша. Если вы удаляли реестр кластера вместе с кэшем, откройте консоль серверов 1С и убедитесь, что информационные базы на месте; при необходимости верните сохранённый файл 1CV8Clst.lst (при остановленной службе) или зарегистрируйте базы заново.
- 1Завершите сеансы пользователей через консоль кластера
- 2Остановите службу «Агент сервера 1С:Предприятия» в services.msc
- 3Проверьте в диспетчере задач, что процессы ragent, rmngr, rphost завершены
- 4Сохраните копию файла 1CV8Clst.lst из папки srvinfo\reg_1541
- 5Удалите содержимое папок reg_* внутри srvinfo
- 6Запустите службу агента сервера
- 7Проверьте список баз в консоли кластера и запуск базы у пользователя
Очистка кэша на Linux
На Linux логика та же, отличаются команды. Остановите агент сервера: systemctl stop srv1cv8 (имя юнита может отличаться в зависимости от способа установки). Убедитесь, что процессы завершены: ps aux | grep -E "ragent|rphost|rmngr".
Найдите рабочий каталог кластера и удалите содержимое папок reg_*, предварительно сохранив реестр кластера:
systemctl stop srv1cv8
cp /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst /root/1CV8Clst.lst.bak
rm -rf /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/*
systemctl start srv1cv8После запуска службы проверьте, что агент поднялся (systemctl status srv1cv8), и подключитесь к кластеру через консоль с любой рабочей станции. Права на вновь созданные файлы должны принадлежать пользователю, под которым работает агент (обычно usr1cv8), — при запуске службы это выставляется автоматически.
Альтернативы полной очистке
Полное удаление содержимого reg_* — радикальный метод. В ряде случаев достаточно более мягких действий. Если проблема появилась после обновления конфигурации, иногда помогает перезапуск службы агента сервера без удаления файлов: рабочие процессы пересоздаются, а часть кэша обновляется. Это быстрее и безопаснее, хотя и менее надёжно.
Если ошибки наблюдаются только у отдельных пользователей, чистить нужно не серверный, а клиентский кэш: папки с GUID в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 на компьютере пользователя. Серверная очистка в этом случае лишь создаст простой для всех остальных.
Для баз с подозрением на повреждение данных (а не кэша) правильный инструмент — «Тестирование и исправление» в конфигураторе или утилита chdbfl для файловых баз. Очистка кэша такие проблемы не решит, а время будет потеряно.
Как выбрать действие
Проверка результата и частые ошибки
После очистки и запуска службы выполните контрольные проверки. Откройте консоль кластера: базы должны отображаться, рабочие процессы — запущены. Запустите базу в режиме предприятия под тестовой учётной записью и повторите действие, которое раньше вызывало ошибку. Проверьте работу у нескольких пользователей, особенно тех, у кого проблема проявлялась чаще всего.
Обратите внимание на первый запуск после очистки: он может быть заметно медленнее обычного, потому что сервер заново компилирует модули и строит кэш. Это нормально и не является признаком проблемы. Тревожный признак — повторение исходной ошибки на «чистом» кэше: значит, причина не в кэше, а в данных или конфигурации.
Как проверить результат
Все базы на месте, свойства соответствуют настройкам
Список пуст — восстановите 1CV8Clst.lst или зарегистрируйте базы заново
База открывается, ранее возникавшая ошибка не повторяется
Ошибка сохраняется — причина не в кэше, нужна диагностика данных
ragent, rmngr и rphost запущены, потребление памяти в обычных пределах
Процессы падают или служба не стартует — смотрите журнал событий и технологический журнал
FAQ
Как часто нужно чистить серверный кэш 1С?
Регламентной периодичности нет: кэш очищают по ситуации — при ошибках после обновлений, «ошибке формата потока», рассинхронизации поведения у пользователей. Плановая очистка «для профилактики» не требуется, если система работает стабильно.
Удалятся ли данные из базы при очистке кэша?
Нет. Кэш содержит только служебные и временные файлы: скомпилированные модули, метаданные, данные сеансов. Сами данные хранятся в СУБД (MS SQL, PostgreSQL и др.) или в файле 1Cv8.1CD и при очистке srvinfo не затрагиваются.
Можно ли очистить кэш без остановки работы пользователей?
Корректно — нет. Файлы кэша заняты процессами кластера, поэтому службу агента нужно остановить, а это отключит всех пользователей. Альтернатива — перезапуск службы без удаления файлов, но это менее надёжный способ.
Что делать, если после очистки кэша базы пропали из консоли кластера?
Остановите службу агента, верните сохранённый файл 1CV8Clst.lst в папку reg_1541 и запустите службу. Если копии нет, зарегистрируйте базы заново через консоль кластера: понадобятся параметры подключения к СУБД.
Чем серверный кэш отличается от клиентского?
Клиентский кэш лежит в профиле пользователя (папки с GUID в %APPDATA%\1C) и влияет только на этого пользователя. Серверный — в каталоге srvinfo на сервере и общий для всех подключений. Ошибки у одного пользователя лечатся клиентской очисткой, массовые ошибки — серверной.
Очистка кэша не помогла, ошибка осталась. Что дальше?
Проведите тестирование и исправление информационной базы из конфигуратора, проверьте журнал регистрации и технологический журнал на сервере. Если база на СУБД — проверьте целостность данных средствами самой СУБД и убедитесь, что версии платформы на сервере и клиентах совместимы.
Что важно запомнить
Серверный кэш 1С лежит в папках reg_* внутри каталога srvinfo. Очищайте его только при остановленной службе агента и завершённых сеансах, предварительно сохранив файл реестра кластера 1CV8Clst.lst. Если ошибка была локальной — начинайте с клиентского кэша, а при сохранении проблемы после очистки переходите к тестированию и исправлению базы.