Сброс кэша сервера 1С: что чистить на сервере, а что на клиенте

· 9 мин

Содержание

Кэш 1С лежит в двух местах: на рабочем месте пользователя и на сервере. Чаще всего помогает очистка клиентского кэша: это безопасно и занимает минуту. Серверный кэш чистят реже и только с остановкой службы, поэтому начинайте с лёгкого варианта и идите к тяжёлому.

Если база «глючит» только у одного человека, дело почти всегда в его локальных файлах. Если странности у всех сразу, после обновления или смены конфигурации, смотрите серверную часть: служебные папки кластера, сессии и временные таблицы в СУБД.

Всё, что описано ниже, делайте вне рабочего времени. Перед удалением файлов на сервере сохраните резервную копию базы и согласуйте окно с руководителем.

Где 1С хранит временные данные

Сначала разберёмся, что именно называют «кэшем». Это не одно место, а четыре слоя.

СлойГде лежитЧто хранит
Клиентский кэшпрофиль пользователя Windows, каталог 1C\1cv8копия конфигурации, настройки окон, список баз
Кэш кластеракаталог данных кластера (reg_1541 и вложенные папки)серверные контексты сеансов, служебные файлы
Кэш СУБДпамять и временные объекты PostgreSQL или MS SQLпланы запросов, временные таблицы
Кэш браузерапрофиль браузераскрипты и стили веб-клиента

Что чистить, зависит от симптома:

  • 🧩 Не видна новая форма или кнопка после обновления: клиентский кэш.
  • 🐌 Сервер тормозит после долгой работы без перезапуска: серверные контексты и сессии.
  • 💾 Растёт диск с временными данными: каталог кластера и СУБД.
  • 🌐 Странности только в веб-клиенте: кэш браузера.

Сбросить кэш на клиентском рабочем месте

Это первое, что стоит попробовать. Данные пользователя не пострадают: хранятся они в базе, а не в кэше.

Способ 1. Удаление каталогов вручную

  1. Закройте все окна 1С у пользователя. Проверьте диспетчер задач: процесс 1cv8 или 1cv8c не должен висеть.
  2. Откройте проводник и введите в адресной строке %APPDATA%\1C\1cv8.
  3. Внутри вы увидите папки с длинными именами из букв и цифр. Это идентификаторы баз. Удалите их.
  4. Повторите то же для %LOCALAPPDATA%\1C\1cv8.
  5. Запустите 1С. Первый вход будет чуть медленнее: клиент заново получит конфигурацию.

Файл со списком баз ibases.v8i в %APPDATA%\1C\1CEStart не удаляйте, иначе придётся добавлять информационные базы заново. Удаляйте только папки с идентификаторами внутри 1cv8.

Способ 2. Параметр запуска

Для тонкого клиента и конфигуратора есть ключ командной строки /ClearCache. Создайте ярлык или запустите из командной строки:

"C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe" ENTERPRISE /ClearCache

Номер версии в пути подставьте свой. Ключ очищает кэш клиент-серверных вызовов при запуске, вручную ничего удалять не нужно.

Для массового сброса у десятка пользователей проще раздать им готовый .bat-файл с удалением папок, чем обходить рабочие места.

Способ 3. Веб-клиент

Если база открыта в браузере, очистите кэш и cookie сайта (Ctrl+Shift+Delete), затем перезагрузите страницу через Ctrl+F5. Серверную часть при этом трогать не нужно.

Очистить кэш и временные файлы на сервере 1С

Здесь порядок важен. Папки кластера нельзя удалять, пока служба работает: сервер держит их открытыми, а часть файлов может испортиться.

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

Откройте консоль администрирования серверов 1С, выберите кластер, раздел «Сеансы». Отправьте сообщение и завершите работу пользователей. Если нужно сделать это из командной строки, используйте утилиту rac:

rac session list --cluster=<идентификатор_кластера>
rac session terminate --cluster=<идентификатор_кластера> --session=<идентификатор_сеанса>

Идентификатор кластера покажет команда rac cluster list.

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

В оснастке «Службы» Windows найдите «Агент сервера 1С:Предприятия 8.3» и остановите её. На Linux это делается через systemctl stop для соответствующего юнита. Убедитесь, что процессы ragent, rmngr и rphost исчезли из диспетчера задач. Если висит rphost, завершите его вручную.

Шаг 3. Очистите служебный каталог

Перейдите в каталог данных кластера. Его путь вы задавали при установке: он указан в параметрах службы после ключа -d. Внутри лежит папка вида reg_1541 (число совпадает с портом основного менеджера кластера). В ней есть вложенные папки:

  • 🗂 snccntx… с номером: контексты сеансов. Их можно удалять, сервер создаст заново.
  • 📄 Папки с GUID баз: содержат служебные файлы конкретной базы.

Файлы 1CV8Clst.lst и 1CV8Reg.lst не удаляйте: это реестр кластера. Потеряете его, придётся создавать кластер заново, со всеми базами и настройками.

Практичное правило: удаляйте только папки snccntx* и временные файлы *.tmp, остальное оставьте.

Шаг 4. Запустите службу и проверьте

Запустите агент сервера, откройте базу, проведите один-два документа, откройте тяжёлый отчёт. Первые минуты сервер «прогревается»: кэш собирается заново, поэтому отчёты могут работать медленнее обычного.

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

Временные таблицы в СУБД: что с ними делать

Временные таблицы 1С создаёт в СУБД на время сеанса или транзакции. Руками их удалять не нужно: при завершении сеанса сервер сбрасывает их сам.

Проблемы начинаются, когда сеансы «зависают» и не закрываются. Тогда временные объекты остаются и занимают место.

  • 🐘 PostgreSQL. Временные таблицы хранятся в схеме pg_temp_N и исчезают при закрытии соединения. Если соединение висит, завершите сеанс в консоли кластера, а не убивайте процесс СУБД.
  • 🗄 MS SQL Server. Временные таблицы лежат в базе tempdb. Если она раздулась, помогает перезапуск службы SQL Server: tempdb пересоздаётся при старте.

Не удаляйте таблицы СУБД вручную из рабочей базы. Для расчёта места смотрите размер tempdb и число открытых соединений, а чистку делайте через завершение сеансов.

Если нужно только освободить память сервера, а не чистить диск, достаточно перезапуска рабочих процессов. В консоли кластера у рабочего сервера есть параметры, которые заставляют rphost перезапускаться по расписанию или по превышению объёма памяти. Это мягче, чем остановка всей службы.

Диагностика: как понять, что виноват именно кэш

Не чистите «на всякий случай». Сначала убедитесь, что симптомы похожи на кэшевые.

  1. Проверьте, воспроизводится ли проблема на другом компьютере. Если нет, чистите клиентский кэш на проблемном.
  2. Запустите ту же базу с новым профилем Windows или от другого пользователя. Исчезла проблема, значит дело в профиле.
  3. Сравните версии платформы на клиенте и сервере. Расхождение даёт похожие симптомы: долгий запуск, сообщения о несовпадении версий.
  4. Посмотрите размер каталога кластера. Если он вырос до десятков гигабайт, причина в накопленных контекстах и журналах.
  5. Откройте счётчики сервера: загрузка процессора, свободная память, очередь диска. Кэш редко бывает причиной, когда диск забит на 100% другими процессами.

Типичные признаки того, что очистка поможет:

  • 🔄 После обновления конфигурации пользователь видит старый интерфейс.
  • ⏳ Запуск клиента занимает заметно дольше, чем у коллег на таком же компьютере.
  • 🧱 Появляются сообщения об ошибках формы, которые уходят после перезапуска сеанса.
  • 📈 Память рабочих процессов растёт день за днём и не возвращается.

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

Автоматическая очистка по расписанию

Если сброс нужен регулярно (скажем, раз в неделю ночью в воскресенье), оформите скрипт и поставьте в планировщик Windows.

@echo off
net stop "1C:Enterprise 8.3 Server Agent"
timeout /t 20 /nobreak >nul
for /d %%D in ("D:\1c_cluster\reg_1541\snccntx*") do rd /s /q "%%D"
net start "1C:Enterprise 8.3 Server Agent"

Что нужно подставить:

  1. Имя службы: оно может отличаться, проверьте в оснастке «Службы».
  2. Путь к каталогу кластера и номер порта в имени reg_….
  3. Запуск от имени учётной записи с правами на остановку службы.

Создайте задачу в «Планировщике заданий»: триггер раз в неделю, действие «Запуск программы», путь к .bat. Первый запуск проведите вручную и посмотрите результат.

Не путайте с регламентными заданиями самой 1С. Они работают внутри базы (например, сверка контрагентов, обновление индексов поиска) и системные папки кластера не чистят. Для папок нужен именно внешний скрипт.

Для 1С в режиме файловой базы серверного кэша нет вовсе, там достаточно клиентской очистки.

Как выбрать способ: короткая сводка

Когда под рукой несколько вариантов, ориентируйтесь на масштаб проблемы и допустимый простой.

СпособКогда подходитРиски
Удаление каталогов клиентапроблема у одного пользователяпочти нет, нужно закрыть 1С
Ключ /ClearCacheбыстрый сброс без ручного удалениянет, запуск чуть дольше обычного
Завершение сеансов в консолизависшие сеансы, лишняя памятьпользователи теряют несохранённые данные
Перезапуск rphost по расписаниюпостоянный рост памяти рабочих процессовкороткий разрыв сеансов
Остановка службы и очистка snccntxпроблема у всех, после обновленийпростой всей базы, риск удалить лишнее
Перезапуск SQL Serverраздутая tempdbостановка всех баз на этом сервере СУБД

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

Пример расчёта окна работ

Допустим, в базе работают 25 человек, служба стартует около 2 минут, ночной регламент занимает 40 минут. Остановка с завершением сеансов (5 минут), очистка (3 минуты), запуск (2 минуты) и прогрев с проверкой (15 минут) дают около 25 минут простоя. Окно в полчаса между 22:00 и 22:30 укладывается, если регламентное задание закончилось раньше. Запускать очистку одновременно с ночным закрытием месяца не стоит: сеансы с долгими операциями придётся обрывать.

Что не стоит делать

  • 🚫 Удалять каталог кластера целиком: пропадёт реестр баз и настройки.
  • 🚫 Чистить папки при запущенной службе: часть файлов занята, остальные получат повреждения.
  • 🚫 Убивать процесс СУБД в диспетчере задач: рискуете получить восстановление базы при следующем старте.
  • 🚫 Запускать очистку, пока идёт резервное копирование : копия получится неполной.

Что проверить, если после сброса кэша стало хуже

Часть проблем после очистки ожидаема, часть говорит о реальной неисправности.

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

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

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

Можно ли просто перезагрузить сервер вместо очистки?
Перезагрузка пересоздаёт процессы и освобождает память, но папки snccntx остаются на диске. Для проблем с памятью хватит, для «залежавшихся» служебных файлов нет.
Потеряю ли я данные при сбросе кэша?
Нет. Данные хранятся в самой базе. Кэш содержит только копии и служебные структуры.
Как часто чистить кэш на сервере?
Регулярно это обычно не нужно. Раз в неделю-месяц имеет смысл только при заметном росте каталога или после крупных обновлений платформы.
Нужно ли чистить кэш после обновления конфигурации?
Клиентский кэш обычно обновляется сам. Если пользователь не видит новых форм, удалите его кэш вручную.
Чем отличается кэш клиента от кэша сервера?
Клиентский лежит на компьютере пользователя и влияет на одного человека. Серверный общий для всех сеансов, поэтому его очистка требует остановки службы.