Когда пора чистить кэш 1С и как не удалить лишнего

· 9 мин

Содержание

Очистку кэша 1С по расписанию обычному пользователю делать не нужно: чистят по факту — после обновления конфигурации, если программа ведёт себя странно, или когда кэш разросся на терминальном сервере. Самый мягкий способ — один раз запустить базу с ключом /ClearCache. Радикальный — удалить папки с GUID-именами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой 1С.

Администратору терминального сервера разумно добавить плановую очистку. Например, раз в 1–3 месяца ночным заданием: так удаление временных файлов не мешает работе, а профили на сервере не разрастаются до гигабайт.

Что хранит кэш 1С и откуда он берётся

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

Что туда попадает:

  • 📦 описание метаданных конфигурации — справочники, документы, формы;
  • ⚙️ клиентские модули и описания форм, которые нужны для открытия окон;
  • 🖼 картинки, макеты и прочие ресурсы интерфейса;
  • 🔤 служебные данные запуска и сведения о версии конфигурации.

На каждую информационную базу платформа заводит отдельную папку. Её имя — это GUID, строка вида 3f2a1c7e-91b4-4d2a-8e3f-0c5b6a7d8e9f. Если пользователь работает с пятью базами, папок будет минимум пять.

Где лежит кэш в Windows:

ПапкаЧто там
%APPDATA%\1C\1cv8\часть кэша и файлы общих настроек запуска (*.pfl)
%LOCALAPPDATA%\1C\1cv8\основной объём кэша метаданных
%APPDATA%\1C\1CEStart\список баз ibases.v8i и настройки стартера
%APPDATA%\1C\1Cv82\, %LOCALAPPDATA%\1C\1Cv82\остатки платформы 8.2, если она когда-то стояла

В Linux кэш лежит в домашнем каталоге пользователя, в скрытой папке ~/.1cv8/1C/1cv8/. Принцип тот же: отдельная подпапка с GUID на каждую базу.

Быстро открыть нужную папку: нажмите Win + R, вставьте %LOCALAPPDATA%\1C\1cv8 и нажмите Enter.

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

От чего зависит, как часто очищать кэш

Единого графика нет. Частота зависит от того, кто работает с базой и как часто её меняют.

СценарийРекомендуемая частотаПочему
Бухгалтер, 1–3 базы, обновления раз в месяцтолько при сбояхкэш сам обновляется при изменении конфигурации
Базу часто дорабатывает программистпосле каждого крупного изменения конфигурации, если появились странностичастые изменения повышают шанс рассинхронизации
Терминальный сервер, 20+ пользователейплановая очистка раз в 1–3 месяцакэш копится в профиле каждого пользователя
Много учебных и тестовых базраз в квартал или при нехватке местаостаются папки удалённых баз
Отдельный ноутбук с малым дискомпо мере роста объёмакэш может занимать гигабайты

Факторы, которые ускоряют засорение:

  • 🔄 частые обновления конфигурации и платформы;
  • 🧪 подключение и удаление тестовых копий — папки от них не исчезают сами;
  • 💥 аварийные завершения 1С, зависания, сбои питания;
  • 🌐 работа по нестабильной сети или через VPN — обновление кэша может прерываться;
  • 👥 перемещаемые профили Windows, где папка %APPDATA% синхронизируется с сервером.

Если в %LOCALAPPDATA%\1C\1cv8 папок намного больше, чем баз в списке, — это хвосты от старых и удалённых баз. Их можно удалить без последствий.

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

Признаки, что кэш пора удалить прямо сейчас

Испорченный кэш редко сообщает о себе прямым текстом. Обычно это косвенные симптомы, особенно сразу после обновления.

Типичные ситуации:

  • 🪟 после обновления конфигурации у одного пользователя старая форма документа, а у коллег — новая;
  • ❌ ошибки при открытии форм или отчётов, которые не повторяются на другом компьютере под тем же пользователем;
  • 🐢 база стала долго открываться только на одном рабочем месте;
  • 🔁 1С закрывается при запуске или зависает на заставке, хотя другие базы открываются нормально;
  • 🧩 после доработки программиста новый реквизит не виден на форме у части пользователей;
  • 💽 диск C: заполнен, а в профиле пользователя папка 1C занимает несколько гигабайт.

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

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

Ручная очистка кэша 1С через папки Windows

Ручное удаление — самый надёжный способ. Он убирает кэш всех баз пользователя сразу.

Пошагово

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

Не удаляйте папку 1CEStart и файл ibases.v8i. В нём хранится список информационных баз. Если удалить его, пользователю придётся заново добавлять все базы в окно запуска.

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

GUID в имени папки не подписан. Если нужно очистить кэш только одной базы, есть два пути:

  • 🔎 откройте %APPDATA%\1C\1CEStart\ibases.v8i в Блокноте — у каждой базы там есть строка ID= с её идентификатором, он совпадает с именем папки кэша;
  • 🗂 отсортируйте папки по дате изменения, откройте нужную базу и закройте её — обновится именно её папка.

Linux и macOS

В Linux закройте 1С и удалите подпапки с GUID-именами:

ls ~/.1cv8/1C/1cv8/
rm -rf ~/.1cv8/1C/1cv8/<GUID-базы>

Остальные файлы в этой папке не трогайте. Логика та же, что в Windows.

Веб-клиент и тонкий клиент через публикацию

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

Ключ /ClearCache и другие способы без удаления папок

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

Как добавить ключ в окно запуска:

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

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

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

Для клиент-серверной базы вместо /F указывают сервер и имя базы: /S"srv1c\buh".

Сравнение способов

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

Сторонние утилиты

В сети много программ «чистильщиков кэша 1С». Большинство из них делают то же самое: удаляют папки с GUID-именами. Пользы сверх ручного способа почти нет.

Если всё же пользуетесь такой программой:

  • ✅ скачивайте только из понятного источника и проверяйте антивирусом;
  • ✅ перед запуском сохраните копию ibases.v8i;
  • ❌ не давайте утилите права администратора сервера, если она не нужна для работы с сервером.

Универсальные чистильщики Windows (очистка временных файлов и профилей) кэш 1С обычно не трогают или трогают частично. Надеяться на них не стоит.

Автоматическая очистка кэша для администраторов

На терминальном сервере кэш копится в каждом профиле. При 30 пользователях и 4 базах это 120 папок, и каждая может весить сотни мегабайт. Здесь вручную не наобслуживаешься.

Скрипт PowerShell для текущего пользователя

Скрипт проверяет, что 1С закрыта, и удаляет только папки с именем-GUID. Файлы настроек остаются на месте.

# Не чистим, если 1С запущена
if (Get-Process -Name 1cv8, 1cv8c -ErrorAction SilentlyContinue) { exit }

$guid = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$'
$paths = "$env:APPDATA\1C\1cv8", "$env:LOCALAPPDATA\1C\1cv8"

foreach ($p in $paths) {
    if (Test-Path $p) {
        Get-ChildItem -Path $p -Directory |
            Where-Object { $_.Name -match $guid } |
            Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
    }
}

Где его запускать:

  • 🔑 сценарием входа или выхода пользователя через групповую политику;
  • ⏰ заданием в Планировщике заданий — например, раз в месяц ночью;
  • 🖱 ярлыком на рабочем столе, если хотите дать пользователям кнопку «почистить кэш».

Очистка у всех пользователей сервера

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

$paths = Get-ChildItem 'C:\Users' -Directory | ForEach-Object {
    "$($_.FullName)\AppData\Roaming\1C\1cv8"
    "$($_.FullName)\AppData\Local\1C\1cv8"
}

Проверка Get-Process в таком варианте видит процессы всех сеансов. Если хоть один пользователь работает в 1С, скрипт ничего не удалит. Запускайте его ночью или в окно обслуживания, когда сеансов нет.

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

У сервера 1С:Предприятия свой кэш — сеансовые данные в каталоге кластера. По умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\<GUID кластера>\, а внутри — папки, имя которых начинается с snccntx.

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

Порядок:

  1. Предупредите пользователей: при остановке службы оборвутся все сеансы на сервере, несохранённые данные пропадут.
  2. Остановите службу агента сервера 1С:Предприятия 8.3.
  3. Удалите только папки snccntx* в каталоге кластера.
  4. Запустите службу и проверьте вход в базу.

Не трогайте файлы реестра кластера (1CV8Clst.lst) и сами папки баз внутри reg_1541. В них хранится список баз и настройки кластера. Их потеря — это полноценное восстановление сервера из резервной копии.

Регламент: как встроить очистку в обслуживание

Хороший регламент короткий. Пять пунктов закрывают почти всё.

Регламент очистки кэша 1С
Выполнено: 0 / 5

Что ещё стоит учесть:

  • 🗓 ставьте плановую очистку после обновления, а не перед ним: свежий кэш соберётся уже под новую версию;
  • 📢 предупреждайте пользователей, что первый вход после очистки будет медленнее;
  • 📝 записывайте в журнал обслуживания, когда и где чистили — так проще связать сбой с действием;
  • 💾 исключите папки кэша 1С из резервного копирования профилей: в них нет ничего, что нельзя восстановить.

Кэш — не единственный локальный мусор. Временные файлы платформы при выгрузке отчётов и печати оседают в %TEMP%. Их можно чистить тем же заданием, но отдельно: другие программы тоже пишут туда.

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

Удалятся ли настройки форм и отчётов после очистки кэша?
Нет. Пользовательские настройки (колонки списков, варианты отчётов, отборы) в 8.3 хранятся в самой информационной базе. Очистка кэша их не затрагивает.
Пропадёт ли список баз в окне запуска?
Нет, если не удалять папку 1CEStart и файл ibases.v8i. Папки с GUID-именами к списку баз отношения не имеют.
Нужна ли резервная копия базы перед очисткой кэша?
Для клиентского кэша — нет: в нём нет учётных данных, только копия метаданных. Перед чисткой серверного кэша копия не повредит, потому что вы останавливаете службу.
Почему после очистки 1С запускается дольше?
Платформа заново загружает метаданные и формы. Это разовая задержка. Со второго запуска скорость возвращается к обычной.
Сколько места может занимать кэш 1С?
На одну типовую базу обычно от сотен мегабайт. У пользователя с десятком баз и в больших конфигурациях вроде ERP набегает несколько гигабайт.