Очистка кэша 1С 8.3: три способа, пути к папкам и скрипт

· 9 мин

Содержание

Кэш 1С 8 чистят двумя способами: запуском базы с параметром /ClearCache или удалением папок с GUID-именами в каталогах AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8. Первый способ безопаснее, второй надёжнее. Данные базы при этом не страдают: кэш хранит только локальные копии служебной информации, и 1С создаст его заново при следующем входе.

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

Почему кэш 1С разрастается и когда его пора чистить

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

Типичные причины:

  • 🔄 обновили конфигурацию или расширение, а клиент продолжает работать со старой копией метаданных;
  • 💥 платформа аварийно закрылась (отключили свет, убили процесс), и файлы остались недописанными;
  • 📦 вы годами заходите в десятки баз, и папок с кэшем накопились гигабайты;
  • 🔀 сменили версию платформы, а кэш остался от предыдущей.

Чистка нужна, если вы видите хотя бы один симптом из таблицы.

СимптомЧто чаще помогает
После обновления форма выглядит по-старомуОчистка через /ClearCache
Ошибка запуска, которой нет у других пользователейРучное удаление папок кэша
Нет места на диске C:Удаление старых папок и Temp
В списке баз мусор и дублиПравка списка информационных баз
Ошибка воспроизводится у всех сразуДело не в клиентском кэше, смотрите сервер

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

Не чистите кэш «на всякий случай» каждый день. После очистки первый запуск медленнее: платформа заново читает конфигурацию с сервера. На 20 пользователях это заметно в понедельник утром.

Быстрый способ: очистка кэша при запуске через параметры

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

Через окно запуска 1С

  1. Откройте окно запуска 1С (список баз).
  2. Выделите нужную базу и нажмите «Изменить».
  3. Дойдите до последнего шага мастера. Там есть поле для дополнительных параметров запуска.
  4. Впишите /ClearCache и сохраните.
  5. Запустите базу в режиме «1С:Предприятие». Кэш для неё сбросится.
  6. Вернитесь в настройки и уберите параметр. Иначе кэш будет сбрасываться при каждом входе.

Название поля в разных версиях лаунчера может отличаться. Ищите строку про «дополнительные параметры запуска».

Через ярлык или командную строку

Если запускаете базу ярлыком, добавьте параметр в строку запуска:

"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. Закройте окно запуска 1С.
  2. Сделайте копию файла ibases.v8i.
  3. Удалите блок целиком, если база больше не нужна.
  4. Сохраните файл и откройте окно запуска.

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

Список баз можно подтянуть с общего ресурса: в конфигурации 1CEStart.cfg есть параметр CommonInfoBases с путём до общего файла. Тогда у всех пользователей список один, и править его нужно в одном месте.

Про реестр. В современных версиях платформы список баз хранится в файлах, а не в реестре Windows. Лезть в regedit ради чистки кэша не требуется.

Какой способ выбрать

  • 🚀 Нужно быстро убрать «старую форму» после обновления: /ClearCache, две минуты.
  • 💾 Мало места на диске или копились годами: ручное удаление папок и %TEMP%.
  • 🧹 В окне запуска десятки лишних баз: правка списка, кэш при этом не трогаем.
  • 🏢 Парк из десятков машин: скрипт и планировщик заданий.

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

Клиент-серверный вариант: что отличается

Здесь два уровня кэша: на рабочем месте и на сервере. Клиентский кэш чистят так, как описано выше. Серверный устроен иначе.

  • 🖥 Кэш сервера 1С лежит в каталоге кластера (srvinfo), в подпапках reg_1541 и аналогичных, и в файлах snccntx*.
  • ⏸ Удалять эти файлы можно только при остановленной службе «Агент сервера 1С:Предприятия».
  • 🗄 Кэш СУБД (PostgreSQL, MS SQL) к 1С не относится, его сбрасывают средствами самой СУБД.

Порядок для сервера:

  1. Предупредите пользователей и дождитесь, пока все выйдут.
  2. Остановите службу агента сервера.
  3. Сделайте копию каталога srvinfo.
  4. Удалите содержимое подпапок snccntx* внутри каталога кластера.
  5. Запустите службу.

Не удаляйте файл 1CV8Clst.lst и каталоги с данными кластера. В них реестр кластера: потеряете его, придётся регистрировать базы заново.

После остановки службы проверьте, что процессы rphost.exe, rmngr.exe и ragent.exe действительно завершились. Иногда рабочий процесс «зависает» и держит файлы, тогда удаление не проходит или проходит частично. Запускать службу обратно можно, когда в диспетчере задач этих процессов нет.

Время для работ выбирайте вне часов закрытия периода и сдачи отчётности: перезапуск кластера обрывает все сеансы, и фоновые задания (обмены, регламентные операции) придётся запускать заново.

Для веб-клиента добавьте чистку кэша браузера. Если форма «залипла» после обновления, сочетание Ctrl+F5 часто решает вопрос без всякой 1С.

Когда чистка кэша не поможет, а что проверить вместо неё

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

Быстрая диагностика

  1. Зайдите в ту же базу с другого компьютера под тем же пользователем. Ошибка повторилась: причина в базе или правах, не в кэше.
  2. Зайдите на проблемной машине под другим пользователем Windows. Работает? Тогда дело в профиле: чистка кэша одного пользователя не затронет второго, и стоит пересоздать профиль.
  3. Запустите другую базу на той же платформе. Тормозит всё: смотрите диск, память, антивирус.
  4. Проверьте версию платформы. Клиент и сервер должны совпадать по номеру релиза хотя бы до третьей цифры. Расхождение даёт ошибки запуска, которые чистка не лечит.
Диагностика: выберите симптом

Мини-пример из практики

В бухгалтерии на 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С и удалить подпапки.

Перед массовой очисткой кэша
Выполнено: 0 / 5

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

Можно ли потерять данные, если удалить кэш 1С?
Нет. Кэш хранит служебные копии, документы и справочники лежат в базе. Возможен сброс локальных настроек окон.
Как часто чистить кэш?
По необходимости: после обновления конфигурации, при странных ошибках, при нехватке места. Регулярная чистка раз в неделю нужна только на проблемных рабочих местах.
Почему после очистки 1С запускается долго?
Платформа заново загружает метаданные и перестраивает кэш. Это разовая задержка: от десятков секунд до пары минут на большой конфигурации.
Чистка кэша не помогла, что дальше?
Проверьте версию платформы, пересоздайте профиль пользователя Windows, проверьте антивирус на блокировку папок 1С. Если ошибка у всех, ищите причину на сервере или в самой конфигурации.
Нужно ли чистить кэш сервера после обновления платформы?
Обычно нет, платформа справляется сама. Серверный кэш чистят при подозрении на повреждение, с остановкой службы.