Кэш 1С 8.3 на клиенте, сервере и в терминале: где искать и как чистить

· 10 мин

Содержание

Кэш 1С 8.3 хранится в профиле пользователя: в Windows это C:\Users\<имя>\AppData\Local\1C\1cv8 и C:\Users\<имя>\AppData\Roaming\1C\1cv8, в Linux — скрытая папка ~/.1cv8/1C/1cv8. В клиент-серверном варианте есть второй уровень кэша — на сервере 1С, в каталоге кластера srvinfo\reg_1541.

Где именно искать, зависит от схемы работы. В файловом режиме хватает чистки папок профиля. В клиент-серверном иногда нужно чистить и клиента, и сервер. На терминальном сервере кэш лежит в профиле каждого сотрудника отдельно, и временные файлы 1С там копятся быстрее всего.

Где лежит кэш 1С 8.3 в Windows при работе с файловой базой

Временные файлы 1С никогда не хранятся рядом с самой базой (файлом 1Cv8.1CD) и в Program Files. Они всегда привязаны к учётной записи Windows. Папок две:

ПапкаПуть через переменнуюПолный путь
Локальная (Local)%LOCALAPPDATA%\1C\1cv8C:\Users\<имя>\AppData\Local\1C\1cv8
Перемещаемая (Roaming)%APPDATA%\1C\1cv8C:\Users\<имя>\AppData\Roaming\1C\1cv8

В локальной папке платформа держит кэш метаданных конфигурации. Именно он разрастается до сотен мегабайт и чаще всего «залипает» после обновления. В перемещаемой лежат локальные настройки клиента для каждой базы.

Внутри обеих папок — подкаталоги с именами вида a3c5e1f2-7b4d-4e19-9f2a-0c6d8e1b5a77. Каждый соответствует одной базе из списка запуска.

Папка AppData скрыта, поэтому проще открыть её так:

  1. Нажмите Win+R.
  2. Вставьте %LOCALAPPDATA%\1C\1cv8 и нажмите Enter.
  3. Повторите для %APPDATA%\1C\1cv8.

Как понять, какая папка относится к нужной базе

Имя папки кэша совпадает с идентификатором базы в списке запуска. Список хранится в файле %APPDATA%\1C\1CEStart\ibases.v8i.

  1. Откройте ibases.v8i в Блокноте.
  2. Найдите блок с названием базы в квадратных скобках, например [Бухгалтерия ООО Ромашка].
  3. Строка ID= в этом блоке и есть имя папки кэша.

Так можно почистить кэш одной проблемной базы, не трогая остальные.

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

Что лежит рядом и чего трогать нельзя

  • 📄 ibases.v8i и папка 1CEStart — список ваших баз. Удалите — список придётся собирать заново.
  • 📄 Файлы *.pfl в корне 1cv8 — общие настройки клиента. Удалять их ради «чистки кэша» не нужно.
  • 🔑 C:\ProgramData\1C\licenses — файлы программных лицензий. Эту папку не трогайте ни при какой чистке: без лицензии платформа просто не запустит базу.

Кэш в клиент-серверном варианте: клиент и сервер 1С

В клиент-серверной схеме база живёт в СУБД (MS SQL Server или PostgreSQL), но кэш хранится не в СУБД. Он есть в двух местах.

Кэш на компьютере пользователя

Те же папки %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8, что и в файловом режиме. Тонкий клиент кэширует там метаданные и формы, чтобы не тянуть их с сервера при каждом запуске.

Кэш на сервере 1С

Сервер хранит данные кластера в каталоге srvinfo. Где он лежит, задаёт параметр -d в строке запуска службы «Агент сервера 1С:Предприятия 8.3». Типичные варианты:

  • 🗂 C:\Program Files\1cv8\srvinfo — установка службы по умолчанию;
  • 🗂 C:\Users\USR1CV8\AppData\Local\1C\1cv8 — встречается на старых установках, где каталог не задавали явно.

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

Внутри srvinfo есть папка reg_1541 (по номеру порта менеджера кластера). Что в ней:

ОбъектЧто этоМожно ли чистить
Папки snccntx…Сеансовые данные и кэш контекстаДа, при остановленной службе
Папки с GUID базСлужебные данные базы на сервереТолько выборочно, см. ниже
Папка 1Cv8Log внутри папки базыЖурнал регистрации базыНет — это журнал регистрации
Файлы *.lstРеестр кластера: список баз, серверов, администраторовНет

Удаление 1CV8Clst.lst стирает регистрацию всех баз в кластере. Восстанавливать его придётся из резервной копии или регистрировать базы заново.

Кэш 1С 8.3 на терминальном сервере (RDP)

На терминальном сервере каждый сотрудник входит под своей учётной записью. Значит, у каждого свой кэш в C:\Users\<имя>\AppData\.... При 30 пользователях и пяти базах на каждого это 150 папок кэша. Если каждая весит по 200–300 МБ, набегает 30–45 ГБ на системном диске.

Особенности терминальной схемы:

  • 👥 Чистить кэш нужно в профиле конкретного пользователя, у которого проблема, а не у администратора.
  • 🔄 Если включены перемещаемые профили или перенаправление папок, Roaming может лежать на файловом сервере. Тогда перемещаемая часть кэша путешествует по сети при каждом входе — это замедляет вход в систему.
  • 💾 Локальная часть (Local) в перемещаемый профиль не входит. Поэтому разросшийся кэш метаданных обычно сидит прямо на диске терминального сервера.
  • 🧹 Временные файлы v8_*.tmp копятся в %TEMP% каждого пользователя. Это остатки выгрузок, печатных форм и обменов, которые не удалились после аварийного закрытия.

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

Где хранится кэш 1С в Linux и macOS

Клиент в Linux

У Linux-клиента кэш лежит в домашнем каталоге пользователя:

  • 🐧 ~/.1cv8/1C/1cv8/ — кэш баз, те же GUID-папки, что и в Windows;
  • 🐧 ~/.1C/1cestart/ibases.v8i — список баз (там же ищите ID= для сопоставления).

Обе папки начинаются с точки, поэтому скрыты. В терминале их видно командой ls -la ~.

Сервер 1С в Linux

Сервер по умолчанию работает от пользователя usr1cv8. Каталог кластера при стандартной установке:

/home/usr1cv8/.1cv8/1C/1cv8/reg_1541

Если каталог переопределён, смотрите параметр -d в unit-файле службы. Имя службы зависит от версии платформы, найти его можно так:

systemctl list-units --type=service | grep -i 1cv8

macOS

Клиент для macOS тоже кладёт кэш в домашний каталог пользователя, в скрытые папки ~/.1cv8 и ~/.1C. В Finder их показывает сочетание Cmd+Shift+.. Структура внутри та же: по папке на базу с GUID в имени.

Как очистить кэш 1С 8.3: вручную, параметром запуска и скриптом

Перед любым способом закройте 1С у этого пользователя полностью, включая Конфигуратор. Файлы кэша открытого сеанса заблокированы, и чистка пройдёт частично.

СпособКогда выбиратьЧто затрагивает
Удалить папки вручнуюРазовая проблема у одного пользователяКэш выбранных баз в профиле
Параметр /ClearCacheПользователь сам не может зайти в AppDataКэш одной базы при запуске
Скрипт BAT или PowerShellТерминальный сервер, много пользователейВсе профили разом
Чистка snccntx на сервереОшибки у всех пользователей одной базыСеансовый кэш сервера

Способ 1. Вручную

  1. Закройте все окна 1С.
  2. Откройте %LOCALAPPDATA%\1C\1cv8.
  3. Удалите папки с GUID в имени — все или только нужную, найденную по ID= в ibases.v8i.
  4. То же сделайте в %APPDATA%\1C\1cv8.
  5. Запустите базу. Первый вход будет дольше обычного: платформа заново скачает метаданные.

Способ 2. Параметр /ClearCache

Платформа умеет сбросить кэш сама при старте:

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

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

Тот же ключ работает в командной строке:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия ООО Ромашка" /ClearCache

Способ 3. Скрипт для текущего пользователя (BAT)

@echo off
rem Перед запуском закройте все окна 1С
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\????????-????-????-????-????????????") do rd /s /q "%%D"
for /d %%D in ("%APPDATA%\1C\1cv8\????????-????-????-????-????????????") do rd /s /q "%%D"
del /q "%TEMP%\v8_*.tmp" 2>nul
echo Кэш 1С очищен

Маска из вопросительных знаков совпадает только с папками формата GUID. Файлы ibases.v8i, *.pfl и лицензии скрипт не задевает.

Способ 4. Все профили терминального сервера (PowerShell)

Запускайте от администратора в окно обслуживания, когда пользователи вышли из системы:

$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
Get-ChildItem 'C:\Users' -Directory | ForEach-Object {
    foreach ($sub in 'AppData\Local\1C\1cv8', 'AppData\Roaming\1C\1cv8') {
        $path = Join-Path $_.FullName $sub
        if (Test-Path $path) {
            Get-ChildItem $path -Directory |
                Where-Object { $_.Name -match $guid } |
                Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
        }
    }
}

Способ 5. Linux-клиент

find ~/.1cv8/1C/1cv8 -maxdepth 1 -type d \
  -regextype posix-extended -regex '.*/[0-9a-f-]{36}' -exec rm -rf {} +

Способ 6. Сеансовый кэш сервера 1С

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

  1. Остановите службу агента сервера: в Windows через services.msc, в Linux через systemctl stop <имя службы>.
  2. Откройте srvinfo\reg_1541.
  3. Удалите папки snccntx…. Файлы *.lst и папки 1Cv8Log не трогайте.
  4. Запустите службу и проверьте вход в базу.

Признаки «больного» кэша и диагностика

Кэш виноват не всегда. Прежде чем чистить, сопоставьте симптом с причиной:

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

Как быстро измерить объём кэша

Размер кэша по всем профилям терминального сервера показывает PowerShell:

Get-ChildItem 'C:\Users' -Directory | ForEach-Object {
    $p = Join-Path $_.FullName 'AppData\Local\1C\1cv8'
    if (Test-Path $p) {
        $mb = (Get-ChildItem $p -Recurse -File -ErrorAction SilentlyContinue |
               Measure-Object Length -Sum).Sum / 1MB
        '{0,-20} {1,8:N0} МБ' -f $_.Name, $mb
    }
} 

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

На сервере 1С проверьте размер папок snccntx…. Нормально, когда они занимают мегабайты. Гигабайты — сигнал, что сеансовые данные не освобождаются и нужен перезапуск в окно обслуживания.

Профилактика: чтобы кэш не мешал работать

  • 🗓 Чистите после обновлений. Обновили конфигурацию — сбросьте кэш у пользователей терминального сервера скриптом в ту же ночь. Это снимает большинство жалоб «у меня старая форма».
  • ⏰ Поставьте задачу в планировщик. Скрипт PowerShell из способа 4 раз в неделю ночью в Планировщике заданий Windows. Условие — пользователи вышли из системы.
  • 🧾 Не держите /ClearCache постоянно. Параметр в настройках базы навсегда делает вход медленным, а пользу даёт только разово.
  • 🧹 Чистите %TEMP% вместе с кэшем. Файлы v8_*.tmp занимают место не меньше, чем кэш метаданных.
  • 📏 Следите за диском C на терминальном сервере. Заложите на кэш 1С по 0,5–1 ГБ на пользователя и настройте оповещение при заполнении диска на 85%.
  • 🖥 Перезапускайте рабочие процессы, а не весь сервер. В консоли кластера можно задать перезапуск рабочих процессов по интервалу в свойствах рабочего сервера — сеансовые данные будут освобождаться регулярно без ручной чистки snccntx.
Перед чисткой кэша
Выполнено: 0 / 5

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

Пропадут ли мои настройки отчётов после очистки кэша?
Нет. Варианты отчётов, настройки форм и избранное хранятся в самой информационной базе. После чистки кэша они подтянутся при первом входе.
Нужно ли чистить кэш при работе через веб-клиент?
Папок платформы в профиле у веб-клиента нет, он хранит данные в кэше браузера. При старых формах в браузере очистите кэш сайта базы или откройте её в окне инкогнито.
Почему после очистки кэша 1С долго запускается?
Платформа заново получает метаданные конфигурации и строит кэш. Медленным будет только первый вход, следующие пойдут в обычном темпе.
Можно ли перенести кэш 1С на другой диск?
Штатной настройки для этого нет: кэш следует за профилем пользователя. На терминальном сервере место освобождают регулярной чисткой или переносом профилей на другой диск средствами Windows.
Удалит ли чистка кэша саму базу?
Нет. Файловая база — это файл 1Cv8.1CD в каталоге базы, серверная — данные в СУБД. В папках кэша их нет.