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

· 9 мин

Содержание

Самый быстрый способ сбросить кэш 1С — запустить базу с параметром /ClearCache. Откройте окно запуска, выделите базу, нажмите «Изменить», дойдите до последней страницы и впишите /ClearCache в поле «Дополнительные параметры запуска». При следующем входе платформа выбросит локальный кэш этой базы и соберёт его заново.

Если параметр не помог, кэш чистят вручную: закрывают 1С и удаляют папки с именами вида 1a2b3c4d-... в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. В Linux те же папки лежат в ~/.1cv8/1C/1cv8. Для клиент-серверной базы бывает нужен ещё и сброс сеансового кэша на сервере — это отдельная операция с остановкой службы.

Когда нужна очистка кэша 1С

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

Типичные симптомы, после которых имеет смысл чистить кэш :

  • 🔄 после обновления конфигурации у одного пользователя старые формы, а у коллег — новые;
  • 🐢 база долго висит на заставке или «думает» при открытии любой формы;
  • ❌ ошибка появляется только на одном компьютере, а в той же базе на соседнем её нет;
  • 🧩 после восстановления базы из копии в тот же каталог программа показывает «чужие» данные интерфейса;
  • 🖥 командный интерфейс или панель разделов отрисовываются криво, пропадают команды;
  • 📦 после смены платформы или переустановки клиента появляются странные ошибки при запуске.

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

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

Сброс кэша 1С в Windows: три способа

Начинайте с самого мягкого способа и переходите к следующему, только если предыдущий не помог.

СпособЧто очищаетсяКогда подходитРиски
Параметр /ClearCacheКэш одной базыПервое, что стоит сделатьПочти нет
Удаление папки одной базыКэш и локальные данные одной базыПараметр не помогМинимальные
Удаление всех папок кэшаКэш всех баз пользователяСбоят несколько баз сразуПервый запуск каждой базы дольше

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

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

Тот же параметр можно передать из ярлыка или командной строки:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache

Для серверной базы вместо /F указывают /S"server\base".

Способ 2. Удалить папку кэша одной базы

У каждой базы в списке есть свой идентификатор. Он записан в файле списка баз %APPDATA%\1C\1CEStart\ibases.v8i в строке ID= под названием базы. Папка кэша этой базы называется так же.

  1. Закройте 1С.
  2. Откройте ibases.v8i Блокнотом и найдите блок с нужной базой.
  3. Скопируйте значение после ID=.
  4. Нажмите Win+R, введите %LOCALAPPDATA%\1C\1cv8 и удалите папку с этим именем.
  5. Повторите в %APPDATA%\1C\1cv8.
  6. Запустите базу.

Способ 3. Удалить весь кэш пользователя

Если сбоят несколько баз или разбираться с идентификаторами некогда, удалите все папки с именами в формате GUID (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) в обоих каталогах:

  • %APPDATA%\1C\1cv8
  • %LOCALAPPDATA%\1C\1cv8

Не удаляйте каталог %APPDATA%\1C\1CEStart и файл ibases.v8i — в нём список баз пользователя. Без него окно запуска откроется пустым, и все базы придётся добавлять заново.

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

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

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

Клиент 1С для Linux хранит кэш в домашнем каталоге пользователя, в скрытой папке. Список баз лежит отдельно, в ~/.1C/1cestart/ibases.v8i.

  1. Закройте клиент и убедитесь, что процессов не осталось:
pgrep -a -u "$USER" 1cv8
  1. Посмотрите, что лежит в каталоге кэша:
ls -la ~/.1cv8/1C/1cv8/
  1. Удалите только папки с именами-идентификаторами:
find ~/.1cv8/1C/1cv8 -mindepth 1 -maxdepth 1 -type d \
  -regextype posix-extended \
  -regex '.*/[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' \
  -exec rm -rf {} +
  1. Запустите базу.

Чтобы удалить кэш одной базы, найдите её ID= в ~/.1C/1cestart/ibases.v8i и удалите папку с этим именем вручную. Параметр /ClearCache в Linux работает так же, как в Windows, его можно дописать в свойства базы.

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

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

Сеансовый кэш сервера

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

  • Windows: по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\
  • Linux: по умолчанию /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/

Каталог srvinfo могли перенести при установке. Точный путь видно в параметрах службы агента сервера (ключ -d).

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

  1. Предупредите пользователей и дождитесь, пока они выйдут из баз.
  2. Остановите службу «Агент сервера 1С:Предприятия 8.3» (в Linux — службу srv1cv8, имя зависит от версии платформы).
  3. Удалите папки snccntx* в каталоге reg_1541. Остальные файлы и папки не трогайте: там хранятся настройки кластера и список баз.
  4. Запустите службу и проверьте вход в базу.

Веб-клиент

В веб-клиенте 1С работает через браузер, поэтому кэш здесь браузерный:

  • для одной вкладки — жёсткое обновление Ctrl+F5;
  • для полной очистки — Ctrl+Shift+Delete, период «За всё время», отметить кэшированные изображения и файлы;
  • если не помогло — откройте базу в режиме инкогнито: там кэша нет, и сразу видно, в нём ли дело.

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

Кэш и Конфигуратор: когда без него не обойтись

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

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F"D:\Bases\Buh" /ClearCache

Сбросить кэш при работе с Конфигуратором полезно в трёх случаях:

  • 🛠 после обновления конфигурации базы данных кто-то из пользователей продолжает видеть старые объекты, хотя у остальных всё новое;
  • 🔁 Конфигуратор открывает дерево метаданных с ошибкой или зависает на загрузке конфигурации, а с другого компьютера та же база открывается нормально;
  • 🧪 разработчик переключается между копиями одной базы, восстановленными в один и тот же каталог, и видит устаревшее состояние.

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

Что изменится после очистки кэша

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

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

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

Автоматическая очистка: скрипт и планировщик

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

# clear1c.ps1 — очистка локального кэша 1С текущего пользователя
$running = Get-Process -Name 1cv8, 1cv8c -ErrorAction SilentlyContinue |
    Where-Object { $_.SessionId -eq (Get-Process -Id $PID).SessionId }
if ($running) { Write-Output "1С запущена, очистка пропущена"; exit 0 }

$roots = "$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 ($r in $roots) {
    if (Test-Path $r) {
        Get-ChildItem -Path $r -Directory |
            Where-Object { $_.Name -match $guid } |
            Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
    }
}
Write-Output "Кэш 1С очищен"

Задание в планировщике на запуск при входе (команду выполняют в консоли от имени администратора):

schtasks /Create /TN "1C ClearCache" /SC ONLOGON /RL LIMITED ^
  /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Scripts\clear1c.ps1"

Тот же скрипт можно назначить через групповую политику как сценарий входа — тогда он сработает у всех пользователей сервера.

В Linux аналог — строка в crontab -e пользователя:

@reboot find ~/.1cv8/1C/1cv8 -mindepth 1 -maxdepth 1 -type d -regextype posix-extended -regex '.*/[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' -exec rm -rf {} +

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

Кэш сервера (snccntx) автоматизировать по расписанию не стоит: остановка службы — это обрыв работы для всех, такое решение принимают вручную.

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

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

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

Нужны ли права администратора, чтобы почистить кэш 1С?
Нет. Локальный кэш лежит в профиле пользователя, и удалить его может сам пользователь. Права администратора нужны только для сброса кэша сервера и создания задания в планировщике.
Можно ли удалить всю папку %APPDATA%\1C целиком?
Не стоит. Вместе с ней пропадёт список баз в ibases.v8i и локальные настройки окна запуска. Удаляйте только папки с именами-идентификаторами внутри 1cv8.
Помогает ли сброс кэша при ошибках лицензии?
Нет. Файлы лицензий хранятся отдельно от кэша конфигурации, и его очистка на них не влияет. Ошибки лицензирования решают через проверку ключа или программной лицензии.
Сколько места занимает кэш 1С?
Обычно от десятков до сотен мегабайт на базу. У пользователя с десятком баз папки кэша вместе могут занимать несколько гигабайт, поэтому на терминальных серверах их периодически чистят.
Нужно ли чистить кэш после обновления платформы?
Не обязательно. Новая версия платформы обычно сама пересобирает кэш при первом запуске. Чистить стоит, только если после перехода появились ошибки, которых не было на прежней версии.