Очистка кэша 1С 8.3: три способа, пути к папкам и скрипт
Содержание
Кэш 1С 8 чистят двумя способами: запуском базы с параметром /ClearCache или удалением папок с GUID-именами в каталогах AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8. Первый способ безопаснее, второй надёжнее. Данные базы при этом не страдают: кэш хранит только локальные копии служебной информации, и 1С создаст его заново при следующем входе.
Чистка помогает, когда после обновления конфигурации форма показывает старый вид, база «подвисает» на запуске, пропали или дублируются пункты меню, а пользователь видит ошибку, которой нет у соседа за соседним столом. Ниже: когда это действительно нужно, как сделать по шагам и как автоматизировать, если машин много.
Почему кэш 1С разрастается и когда его пора чистить
Платформа складывает на диск всё, что ускоряет работу: описание метаданных, настройки форм, образы интерфейса, результаты разбора конфигурации. Пока всё в порядке, вы кэша не замечаете. Проблемы начинаются, когда запись в нём расходится с реальной конфигурацией.
Типичные причины:
- 🔄 обновили конфигурацию или расширение, а клиент продолжает работать со старой копией метаданных;
- 💥 платформа аварийно закрылась (отключили свет, убили процесс), и файлы остались недописанными;
- 📦 вы годами заходите в десятки баз, и папок с кэшем накопились гигабайты;
- 🔀 сменили версию платформы, а кэш остался от предыдущей.
Чистка нужна, если вы видите хотя бы один симптом из таблицы.
| Симптом | Что чаще помогает |
|---|---|
| После обновления форма выглядит по-старому | Очистка через /ClearCache |
| Ошибка запуска, которой нет у других пользователей | Ручное удаление папок кэша |
| Нет места на диске C: | Удаление старых папок и Temp |
| В списке баз мусор и дубли | Правка списка информационных баз |
| Ошибка воспроизводится у всех сразу | Дело не в клиентском кэше, смотрите сервер |
Если ошибка у всех пользователей сразу, чистка на одной машине ничего не даст. Сначала проверьте, у одного ли человека проблема.
Не чистите кэш «на всякий случай» каждый день. После очистки первый запуск медленнее: платформа заново читает конфигурацию с сервера. На 20 пользователях это заметно в понедельник утром.
Быстрый способ: очистка кэша при запуске через параметры
Это самый безопасный вариант, ничего удалять руками не надо.
Через окно запуска 1С
- Откройте окно запуска 1С (список баз).
- Выделите нужную базу и нажмите «Изменить».
- Дойдите до последнего шага мастера. Там есть поле для дополнительных параметров запуска.
- Впишите
/ClearCacheи сохраните. - Запустите базу в режиме «1С:Предприятие». Кэш для неё сбросится.
- Вернитесь в настройки и уберите параметр. Иначе кэш будет сбрасываться при каждом входе.
Название поля в разных версиях лаунчера может отличаться. Ищите строку про «дополнительные параметры запуска».
Через ярлык или командную строку
Если запускаете базу ярлыком, добавьте параметр в строку запуска:
"C:\Program Files\1cv8\8.3.24.1368\bin\1cv8.exe" ENTERPRISE /IBName "Бухгалтерия" /ClearCache
Путь к 1cv8.exe и номер версии у вас свои: смотрите свойства ярлыка. Для конфигуратора вместо ENTERPRISE пишут DESIGNER.
Параметр /ClearCache сбрасывает кэш только той базы, которую вы запускаете. Остальные папки на диске остаются. Если нужно освободить место, переходите к ручной очистке.
Ручная очистка: какие папки удалять в проводнике Windows
Когда параметр не помог или нужно освободить диск, удаляйте папки сами. Предварительно закройте все окна 1С и убедитесь в диспетчере задач, что процессов 1cv8.exe, 1cv8c.exe и 1cv8s.exe нет.
Где лежит кэш
Нажмите Win+R и вставьте поочерёдно:
%LOCALAPPDATA%\1C\1cv8
%APPDATA%\1C\1cv8
В обоих каталогах будут папки с длинными именами вроде 8f3b2a1c-0d4e-4b7a-9c51-2e6f7a8b9c01. Это и есть кэш конкретных баз. Удаляйте их.
Что удалять, а что нет
- 🗑 папки с GUID-именами: можно удалять все;
- 🗑 файлы
*.pflиsnccntx*внутри них: тоже кэш; - ✅ файл
1cv8strt.pflи каталог1CEStartлучше не трогать, там список баз и настройки окна запуска (о нём ниже).
Если не уверены, переименуйте каталог 1cv8 в 1cv8_old. Запустите 1С: платформа создаст новый. Всё работает? Удалите старый. Что-то пропало, вернёте имя обратно.
Временные файлы
Отдельно загляните в %TEMP%. Там копятся файлы вида v8_xxxx.tmp и каталоги 1C_..., особенно после аварийных закрытий. Удаляйте всё, что система позволит удалить. Занятые файлы Windows не отдаст, и это нормально.
Если пользователь настраивал внешний вид или сохранял пользовательские настройки списков, часть настроек хранится в самой базе, а не в кэше. Потерять их из-за чистки нельзя. А вот локальные настройки интерфейса (положение окон) могут сброситься.
Если файлы не удаляются
Проводник пишет «файл занят другим процессом»? Причин обычно три:
- 🔒 в фоне остался
1cv8.exe: завершите его в диспетчере задач; - 🛡 антивирус сканирует каталог: подождите минуту или добавьте
AppData\Local\1Cв исключения; - 🧑💻 тот же профиль открыт в другой сессии, например на терминальном сервере. Тогда выйдите из лишних сессий.
На терминальном сервере у каждого пользователя свой профиль и свой кэш. Чистить придётся для каждого отдельно, поэтому там особенно удобен скрипт из раздела про автоматизацию.
Список информационных баз: как привести в порядок
Окно запуска показывает базы из файла ibases.v8i. Он лежит в %APPDATA%\1C\1CEStart. Это обычный текстовый файл, и править его можно блокнотом.
Каждая база описана блоком:
[Бухгалтерия предприятия]
Connect=Srvr="app01";Ref="buh";
ID=2f6e1c7a-5b3d-4a89-8c10-9d4e7f2a3b61
Что с этим делать:
- Закройте окно запуска 1С.
- Сделайте копию файла
ibases.v8i. - Удалите блок целиком, если база больше не нужна.
- Сохраните файл и откройте окно запуска.
Так вычищают тестовые базы, дубликаты после переезда на новый сервер и записи с устаревшими адресами. Если нужно убрать одну запись, проще нажать в окне запуска «Удалить»: файл обновится сам.
Список баз можно подтянуть с общего ресурса: в конфигурации 1CEStart.cfg есть параметр CommonInfoBases с путём до общего файла. Тогда у всех пользователей список один, и править его нужно в одном месте.
Про реестр. В современных версиях платформы список баз хранится в файлах, а не в реестре Windows. Лезть в regedit ради чистки кэша не требуется.
Какой способ выбрать
- 🚀 Нужно быстро убрать «старую форму» после обновления:
/ClearCache, две минуты. - 💾 Мало места на диске или копились годами: ручное удаление папок и
%TEMP%. - 🧹 В окне запуска десятки лишних баз: правка списка, кэш при этом не трогаем.
- 🏢 Парк из десятков машин: скрипт и планировщик заданий.
Эти способы не исключают друг друга. Обычный порядок такой: сначала параметр, потом, если не помогло, ручное удаление, и только после этого разбираемся с профилем и сервером.
Клиент-серверный вариант: что отличается
Здесь два уровня кэша: на рабочем месте и на сервере. Клиентский кэш чистят так, как описано выше. Серверный устроен иначе.
- 🖥 Кэш сервера 1С лежит в каталоге кластера (
srvinfo), в подпапкахreg_1541и аналогичных, и в файлахsnccntx*. - ⏸ Удалять эти файлы можно только при остановленной службе «Агент сервера 1С:Предприятия».
- 🗄 Кэш СУБД (PostgreSQL, MS SQL) к 1С не относится, его сбрасывают средствами самой СУБД.
Порядок для сервера:
- Предупредите пользователей и дождитесь, пока все выйдут.
- Остановите службу агента сервера.
- Сделайте копию каталога
srvinfo. - Удалите содержимое подпапок
snccntx*внутри каталога кластера. - Запустите службу.
Не удаляйте файл 1CV8Clst.lst и каталоги с данными кластера. В них реестр кластера: потеряете его, придётся регистрировать базы заново.
После остановки службы проверьте, что процессы rphost.exe, rmngr.exe и ragent.exe действительно завершились. Иногда рабочий процесс «зависает» и держит файлы, тогда удаление не проходит или проходит частично. Запускать службу обратно можно, когда в диспетчере задач этих процессов нет.
Время для работ выбирайте вне часов закрытия периода и сдачи отчётности: перезапуск кластера обрывает все сеансы, и фоновые задания (обмены, регламентные операции) придётся запускать заново.
Для веб-клиента добавьте чистку кэша браузера. Если форма «залипла» после обновления, сочетание Ctrl+F5 часто решает вопрос без всякой 1С.
Когда чистка кэша не поможет, а что проверить вместо неё
Кэш виноват не всегда. Потратили полчаса на удаление папок, а ошибка осталась? Идите по списку от простого к сложному.
Быстрая диагностика
- Зайдите в ту же базу с другого компьютера под тем же пользователем. Ошибка повторилась: причина в базе или правах, не в кэше.
- Зайдите на проблемной машине под другим пользователем Windows. Работает? Тогда дело в профиле: чистка кэша одного пользователя не затронет второго, и стоит пересоздать профиль.
- Запустите другую базу на той же платформе. Тормозит всё: смотрите диск, память, антивирус.
- Проверьте версию платформы. Клиент и сервер должны совпадать по номеру релиза хотя бы до третьей цифры. Расхождение даёт ошибки запуска, которые чистка не лечит.
Мини-пример из практики
В бухгалтерии на 12 рабочих мест после обновления конфигурации у троих осталась старая форма документа. Очистили кэш только у них через /ClearCache: у двоих помогло, у третьего нет. Оказалось, что он запускал базу через сохранённый ярлык со старым путём на предыдущую версию платформы. Вместо чистки поправили ярлык, и форма обновилась.
Вывод простой: перед удалением папок сверьте, какой именно 1cv8.exe запускается.
Размеры и ориентиры
Кэш одной базы обычно занимает от нескольких десятков до сотен мегабайт. Если у сотрудника, который работает с 30 базами, каталог 1cv8 разросся до 5-10 ГБ, это нормально для лет накопления, и такую папку можно чистить без опаски.
Автоматизация: скрипт для рабочих мест
Когда машин больше пяти, ходить руками по каждой надоедает. Простой bat-файл чистит кэш при входе пользователя или по расписанию:
@echo off
rem Закрываем 1С, если она висит
taskkill /F /IM 1cv8.exe /IM 1cv8c.exe 2>nul
rem Удаляем кэш в Local и Roaming
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*") do rd /s /q "%%D"
for /d %%D in ("%APPDATA%\1C\1cv8\*") do rd /s /q "%%D"
rem Чистим временные файлы 1С
del /q /f "%TEMP%\v8_*.tmp" 2>nul
echo Готово
Как его использовать:
- запускайте через планировщик заданий раз в неделю, в нерабочее время;
- или кладите в автозагрузку и пускайте до запуска 1С;
- перед массовым запуском протестируйте на одной машине.
Команда taskkill обрывает работу 1С без сохранения. Если у пользователя открыта несохранённая форма, он потеряет введённое. Поэтому по расписанию запускайте ночью, а при входе выполняйте скрипт без taskkill.
Для Linux путь другой: кэш лежит в ~/.1cv8/1C/1cv8 и ~/.1C/1cv8. Логика та же, закрыть 1С и удалить подпапки.