Сброс кэша 1С на сервере, у пользователей и в файловой базе

· 9 мин

Содержание

Кэш 1С чистят в двух местах. На компьютере пользователя удаляют папки с именами-GUID из %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 или один раз запускают базу с параметром /ClearCache. На сервере 1С останавливают службу агента и удаляют папки snccntx* в каталоге кластера srvinfo\reg_1541.

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

Когда очистка кэша 1С действительно помогает

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

Типичные поводы почистить кэш :

  • 🔄 после обновления конфигурации у одного пользователя старые формы, а у остальных новые;
  • 🐢 запуск базы заметно дольше обычного, хотя сеть и сервер в порядке;
  • ⚠️ ошибки при открытии форм или отчётов, которые не воспроизводятся на другом компьютере под той же учётной записью 1С;
  • 💥 клиент аварийно закрывается на этапе загрузки конфигурации;
  • 🖥️ после смены версии платформы на сервере клиенты ведут себя нестабильно.

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

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

Ручная очистка кэша 1С на компьютере пользователя

Клиентский кэш лежит в профиле Windows. Для каждой информационной базы платформа создаёт папку с именем вида 3f2a5c1e-7b4d-4e8a-9c21-0d6e8b7a4f19 — это и есть кэш конкретной базы.

Порядок действий:

  1. Закройте все окна 1С на этом компьютере, включая Конфигуратор.
  2. Нажмите Win + R, введите %APPDATA%\1C\1cv8 и нажмите Enter.
  3. Удалите все папки, у которых имя в формате GUID (буквы и цифры, разделённые дефисами на 5 групп).
  4. Повторите то же для %LOCALAPPDATA%\1C\1cv8.
  5. Запустите базу. Первый вход будет дольше: платформа заново загрузит конфигурацию.

Что трогать нельзя:

ОбъектГдеЧто будет при удалении
Папки с именами-GUID%APPDATA%\1C\1cv8, %LOCALAPPDATA%\1C\1cv8Кэш создастся заново — это и нужно
ibases.v8i%APPDATA%\1C\1CEStartПропадёт список баз в окне запуска
Файлы *.pfl%APPDATA%\1C\1cv8Сбросятся настройки окна запуска и платформы на этом ПК
Папки старых версий 1Cv82%APPDATA%\1CОстатки 8.2, на работу 8.3 не влияют

Пользовательские настройки форм и отчётов в 8.3 хранятся в самой информационной базе, поэтому удаление папок-GUID их не сбрасывает.

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

На терминальном сервере (RDP) у каждого пользователя свой профиль. Значит, чистить нужно в профиле того, у кого проблема, — C:\Users\<имя>\AppData\Roaming\1C\1cv8 и C:\Users\<имя>\AppData\Local\1C\1cv8. Пользователь в этот момент должен выйти из 1С.

Параметр /ClearCache: сброс кэша 1С без поиска папок

Платформа умеет сама очистить кэш при запуске. Для этого служит параметр командной строки /ClearCache. Удобно, когда у пользователя нет доступа к скрытым папкам или вы помогаете ему по телефону.

Через окно запуска:

  1. Выделите базу в списке и нажмите «Изменить».
  2. Пройдите мастер до последней страницы.
  3. В поле «Дополнительные параметры запуска» впишите /ClearCache.
  4. Нажмите «Готово» и запустите базу.
  5. После успешного входа уберите параметр, иначе кэш будет сбрасываться при каждом запуске.

Через ярлык — например, для одной проблемной базы:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия предприятия" /ClearCache

/IBName — имя базы так, как оно записано в списке окна запуска. Параметр работает и для толстого, и для тонкого клиента .

/ClearCache в постоянных параметрах запуска — частая причина «1С вдруг стала медленно открываться». Если его оставили после разовой очистки, удалите.

Как очистить кэш сервера 1С: каталог srvinfo

На сервере 1С:Предприятия кэш живёт в каталоге кластера. По умолчанию для службы на Windows это C:\Program Files\1cv8\srvinfo\reg_1541, где 1541 — порт менеджера кластера. На Linux типовой путь — /home/usr1cv8/.1cv8/1C/1cv8/reg_1541. Если при установке каталог меняли, посмотрите путь в параметрах службы агента: он указан после ключа -d.

Внутри reg_1541 лежат:

  • 📁 папки snccntx<GUID> — кэш сеансовых данных. Именно их удаляют при «чистке кэша сервера»;
  • 📁 папки с GUID информационных баз — внутри журнал регистрации (1Cv8Log) и индекс полнотекстового поиска;
  • 📄 файл 1CV8Clst.lst — реестр кластера: список баз, рабочих серверов, администраторов.

Папки баз и файл 1CV8Clst.lst не удаляйте — вы потеряете журнал регистрации или регистрацию баз в кластере.

Пошагово для Windows:

  1. Выберите время, когда в базах никто не работает : при остановке службы все сеансы оборвутся, несохранённые документы пропадут.
  2. Предупредите пользователей и дождитесь выхода. Активные сеансы видно в консоли администрирования.
  3. Остановите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» в оснастке services.msc или командой ниже.
  4. Скопируйте srvinfo целиком в резервную папку — на случай, если удалите лишнее.
  5. Удалите в reg_1541 все папки snccntx*.
  6. Запустите службу и откройте базу с клиентского компьютера.
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
for /d %%D in ("C:\Program Files\1cv8\srvinfo\reg_1541\snccntx*") do rd /s /q "%%D"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

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

На Linux порядок тот же: остановить службу сервера 1С, удалить snccntx*, запустить. Имя юнита systemd зависит от версии платформы — найдите его командой systemctl list-units | grep 1C или systemctl list-units | grep srv1cv8.

Что даёт консоль администрирования серверов

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

Что доступно:

  • 👥 Завершение сеансов. В ветке «Сеансы» выделите зависшие сеансы и завершите их. Кэш, привязанный к сеансу, освободится.
  • 🔁 Перезапуск рабочих процессов. В свойствах кластера задаются «Интервал перезапуска» (в секундах) и «Допустимый объём памяти». Кластер сам перезапускает процессы по этим порогам, и их память очищается.
  • 🧹 Профилактика по памяти. Если процесс раз за разом упирается в порог памяти, лучше уменьшить интервал перезапуска, чем регулярно останавливать службу целиком.

Те же действия доступны из командной строки через утилиту rac, если запущен сервер администрирования ras:

rac cluster list
rac session list --cluster=<uuid кластера>
rac session terminate --cluster=<uuid кластера> --session=<uuid сеанса>

Остальные подкоманды смотрите в rac help.

Если консоль не открывается после переустановки платформы, перерегистрируйте библиотеку консоли: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора.

Перезапуск процессов не трогает папки snccntx. Если проблема в повреждённом сеансовом кэше на диске, без остановки службы не обойтись.

Существует ли утилита clean.exe

В поставке платформы 1С:Предприятие утилиты clean.exe для очистки кэша нет. Под таким именем по форумам ходят сторонние программы и самописные скрипты. Запускать неизвестный исполняемый файл на сервере с бухгалтерскими базами — плохая идея.

Тот же результат дают штатные средства:

СпособЧто чиститНужна остановка службыКогда выбирать
Удаление папок-GUID в профилеКэш клиентаНет, только выйти из 1СПроблема у одного-двух пользователей
/ClearCache при запускеКэш клиента для одной базыНетПомощь пользователю удалённо
Скрипт по GPO при входеКэш клиента у всехНетПосле крупного обновления конфигурации
Перезапуск рабочих процессовПамять сервераНетРост памяти, зависания
Удаление snccntx*Сеансовый кэш сервераДаОшибки у всех пользователей после сбоя сервера

Кэш в файловом варианте базы

В файловой базе сервера 1С нет, поэтому srvinfo и snccntx не существует. Чистится только кэш в профиле пользователя — так же, как описано выше, папками-GUID или /ClearCache.

В каталоге самой базы лежат:

  • 1Cv8.1CD — сама база, трогать нельзя;
  • 1Cv8tmp.1CD — временный файл, создаётся во время работы;
  • 1Cv8.1CL — файл блокировки, существует, пока база открыта;
  • 1Cv8Log — журнал регистрации;
  • 1Cv8FTxt — индекс полнотекстового поиска.

1Cv8tmp.1CD можно удалить, только когда в базе никого нет и файла 1Cv8.1CL не осталось. Если 1Cv8.1CL висит при закрытой 1С на всех компьютерах, сначала найдите, кто держит базу (на файловом сервере — через «Управление компьютером → Общие папки → Открытые файлы»). Удаление блокировки при работающем пользователе оборвёт его сеанс и может повредить данные.

При публикации файловой базы на веб-сервере к этому добавляется кэш браузера: обновите страницу с Ctrl + F5 или очистите кэш сайта в настройках браузера.

Скрипт и групповые политики для массовой очистки

Когда после обновления нужно сбросить кэш у 50 пользователей, руками это долго. Решение — скрипт входа в систему через групповую политику домена.

Вариант на PowerShell:

$paths = "$env:APPDATA\1C\1cv8", "$env:LOCALAPPDATA\1C\1cv8"
$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
foreach ($p in $paths) {
    if (Test-Path $p) {
        Get-ChildItem -Path $p -Directory |
            Where-Object { $_.Name -match $guid } |
            Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
    }
}

Тот же смысл в виде bat-файла:

@echo off
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"

Как подключить через GPO:

  1. Положите скрипт в общую папку, доступную на чтение всем пользователям домена, например в NETLOGON.
  2. В «Управлении групповой политикой» создайте политику и привяжите её к подразделению с пользователями.
  3. Откройте Конфигурация пользователя → Политики → Конфигурация Windows → Сценарии (вход/выход из системы).
  4. В «Вход в систему» добавьте bat-файл или на вкладке «Сценарии PowerShell» — ps1-файл.
  5. После обновления конфигурации включите политику на один день, затем отключите.

Скрипт срабатывает при входе в Windows, когда 1С ещё не запущена, — файлы кэша не заняты.

Не оставляйте политику включённой навсегда. Ежедневная очистка заставляет каждого пользователя утром заново скачивать конфигурацию, а при 100 сотрудниках это нагрузка на сеть и сервер в начале дня.

Для терминального сервера удобнее задание планировщика, которое ночью обходит профили C:\Users\*\AppData\... — но только когда пользователи вышли из сеансов.

Если после очистки кэша 1С появились проблемы

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

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

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

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

Удалятся ли мои настройки отчётов после очистки кэша?
Нет. В 1С 8.3 настройки отчётов, форм и списков хранятся в информационной базе. Сбросится только локальная копия конфигурации.
Нужно ли чистить кэш после каждого обновления конфигурации?
Нет. Платформа сама обнаруживает изменение конфигурации и обновляет кэш. Очистка нужна, только если после обновления у кого-то остались старые формы или появились ошибки.
Как понять, какая папка-GUID относится к нужной базе?
По имени это не определить без сверки с внутренними файлами. Проще удалить все папки-GUID: остальные базы при входе просто загрузятся чуть дольше.
Можно ли чистить кэш сервера, пока пользователи работают?
Нет. Папки snccntx удаляют только при остановленной службе агента, а остановка обрывает все сеансы. Делайте это вечером или в выходной.
Влияет ли очистка кэша на лицензии?
Нет. Программные лицензии хранятся в отдельном каталоге и папками кэша не затрагиваются.