Чистим кэш 1С 8.3 вручную, ключом запуска и скриптом
Содержание
Утром бухгалтер открывает базу, а форма документа не обновилась после загрузки новой обработки. Или справочник «Номенклатура» показывает старые реквизиты, хотя администратор уже всё поправил. В половине таких случаев виноват локальный кэш клиента. Чтобы почистить кэш
1С 8.3 на компьютере, закройте все окна 1С и удалите папки с GUID-именами из двух каталогов: %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8.
Список баз и настройки окна при этом остаются на месте, если удалять только папки, а не файлы. Ниже три способа очистки: руками, ключом запуска и скриптом. Отдельно разобрано, что делать на терминальном сервере, где пользователей много, а профили живут по своим правилам.
Что копит 1С на диске и когда это мешает
Платформа складывает на клиентской машине несколько видов данных. Часть из них нужна для скорости, часть просто остаётся мусором.
- 📦 Кэш метаданных и форм. Платформа запоминает структуру конфигурации, чтобы не читать её из базы при каждом входе.
- 🗂 Кэш расширений и внешних отчётов. Появляется, когда вы подключаете расширения или открываете внешние обработки.
- 🧾 Временные файлы. Они лежат в каталоге
%TEMP%, часто с именами видаv8_xxxx.tmp, и копятся после аварийных закрытий. - 📋 Служебные файлы пользователя. Список баз, история выбора, положение окон. Их удалять не нужно.
Кэш чистят в трёх ситуациях:
- После обновления конфигурации или расширения форма ведёт себя по-старому.
- После переноса базы на другой сервер или смены пути публикации.
- Когда клиент долго стартует, а на самой базе всё в порядке.
Чистка кэша не «ускоряет 1С» сама по себе. Первый запуск после неё будет даже медленнее, потому что платформа заново читает метаданные. Выигрыш виден, когда кэш повреждён или устарел.
Данных в базе очистка не касается. Документы, справочники и регистры лежат на сервере или в файле базы, а кэш хранит только копию служебной информации.
Ручная очистка через Проводник
Это самый наглядный способ, и его стоит освоить первым. Он работает на любой версии Windows.
Подготовка
- Закройте все сеансы 1С на компьютере. Проверьте в диспетчере задач, что процессов
1cv8.exeи1cv8c.exeнет. - Если 1С запущена как служба или через планировщик, остановите и их.
- Включите показ скрытых папок: в Проводнике вкладка «Вид» → «Показать» → «Скрытые элементы».
Где лежит кэш
Нажмите Win + R, вставьте путь и подтвердите Enter. Откроются две папки:
%LOCALAPPDATA%\1C\1cv8
%APPDATA%\1C\1cv8
Первая обычно развёрнута как C:\Users\<имя>\AppData\Local\1C\1cv8, вторая как C:\Users\<имя>\AppData\Roaming\1C\1cv8. В старых установках встречается каталог 1Cv82, логика та же.
Внутри вы увидите папки с длинными именами вида 3f7a9c52-1b4e-4d0a-9c11-6a2e8d5b7f10. Это и есть кэш конкретных баз. Удаляйте именно их.
Файлы рядом с этими папками не трогайте. В каталоге лежат служебные файлы со списком кластеров и стартовыми настройками. Их потеря не фатальна, но настройки придётся собирать заново.
Что удалять, а что оставить
| Что в каталоге | Удалять? | Что будет |
|---|---|---|
| Папки с GUID-именами | Да | Платформа пересоздаст их при входе |
Файлы 1cv8strt.pch, 1cv8clst.lst | Нет | Потеряются настройки запуска и список кластеров |
Папка %TEMP% с файлами v8_*.tmp | Да, закрытые | Освободится место на диске |
Файл списка баз ibases.v8i | Нет | Исчезнут все базы из окна запуска |
Список баз хранится отдельно, в каталоге %APPDATA%\1C\1CEStart. Если вы чистите руками «всё подряд», сначала сохраните оттуда файл ibases.v8i в безопасное место.
После удаления запустите 1С. Первый вход будет дольше обычного: платформа пересоберёт кэш. Это нормально.
Очистка одной командой: утилита clearcache
Ручной обход папок надоедает уже на втором компьютере. Для этого есть небольшие консольные утилиты, которые находят каталоги кэша и чистят их сами. Самая известная называется clearcache. Её распространяют сторонние авторы, в поставку платформы она не входит.
Типичная схема работы:
- Скачайте утилиту из источника, которому доверяете, и проверьте файл антивирусом.
- Положите
clearcache.exeв отдельную папку, напримерC:\Tools. - Закройте 1С и запустите утилиту из командной строки.
- Дождитесь сообщения о завершении.
Что она делает внутри, вы можете повторить руками: перебирает профили, находит в них каталоги 1cv8 и удаляет папки с GUID. Поэтому утилита не магия, а удобная обёртка.
Запускайте сторонние .exe только после проверки и только на тестовой машине, пока не убедились, что утилита не трогает лишнее. Программа с правами администратора может удалить больше, чем вы ждёте.
Если политика безопасности запрещает сторонние программы, переходите к следующим способам. Они используют только штатные средства платформы и Windows.
Ключ запуска /ClearCache в ярлыке
Платформа умеет сама очищать кэш при старте. Для этого есть параметр командной строки /ClearCache. Он действует на ту базу, которую вы запускаете, и не трогает остальные.
Вариант 1: через ярлык
- Найдите ярлык 1С на рабочем столе, нажмите правой кнопкой → «Свойства».
- На вкладке «Ярлык» в поле «Объект» после пути к файлу добавьте пробел и параметры.
- Сохраните, закройте окно.
Получится примерно так:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /ClearCache
Путь у вас может отличаться: он зависит от версии платформы и разрядности. Меняйте только хвост строки, а начало оставьте как есть.
Вариант 2: через окно запуска
Откройте список баз, выберите нужную, нажмите «Изменить». На втором шаге мастера в дополнительных параметрах запуска можно указать нужные ключи. Если такого поля у вас нет, пользуйтесь ярлыком.
Подводные камни
- 🔁 Ключ срабатывает при каждом запуске. Если оставить его навсегда, кэш будет сбрасываться ежедневно, и вход станет стабильно медленным. Делайте отдельный ярлык «1С с очисткой» и запускайте его по необходимости.
- 🔒 Ключ чистит кэш именно этой базы. Остальные базы пользователя останутся нетронутыми.
- 🖥 Ключи для режима «Конфигуратор» и «Предприятие» разные. Для Конфигуратора очистку обычно делают отдельно, вручную.
Заведите два ярлыка с разными значками: обычный и «с очисткой кэша». Пользователь сам поймёт, какой нажимать, и вам не придётся ходить по кабинетам.
Как чистить кэш на терминальном сервере и в Citrix
На терминальном сервере всё сложнее, чем на обычном ПК. Один сервер, несколько десятков пользователей, у каждого свой профиль. Кэш лежит в профиле, поэтому вопрос в том, какой это профиль.
Три типа профилей
| Тип профиля | Где лежит кэш | Как чистить |
|---|---|---|
| Локальный | C:\Users\<имя>\AppData на сервере | Скриптом по всем пользователям или при выходе из сеанса |
| Перемещаемый (roaming) | На файловом сервере, подтягивается при входе | Чистить на файловом сервере, пока пользователь вне сеанса |
| Контейнерный (FSLogix и подобные) | Внутри виртуального диска профиля | Скриптом при входе или выходе, либо исключить кэш из профиля |
Что учесть администратору
- Не удаляйте кэш, пока пользователь в сеансе. Файлы заняты, часть удалится, часть нет, и форма может открыться наполовину.
- Исключите каталог
Local\1Cиз перемещаемого профиля. Он велик, постоянно меняется и тормозит вход. Кэш всё равно пересоздаётся. - Выносите очистку на выход из сеанса. Самый надёжный вариант: скрипт завершения сеанса (logoff) удаляет GUID-папки текущего пользователя.
- Проверьте, где лежит
%TEMP%. На сервере временные файлы сотен сеансов быстро съедают диск. Настройте периодическую чистку папок временных файлов.
В Citrix логика та же, но добавляется публикация приложений: проверьте, на каком этапе профиль подключается и отключается. Скрипт очистки должен выполняться, когда профиль уже подключён, иначе удалять будет нечего.
Если сеансы часто «зависают» и пользователи убивают их через диспетчер, файлы кэша остаются заблокированными. Для таких случаев скрипт должен пропускать занятые файлы и идти дальше, а не падать на первой ошибке.
Как понять, что кэш пора чистить на сервере
Признаки обычно такие:
- 📈 Профили пользователей растут, а вход в сеанс занимает минуту и больше.
- 🐢 Жалобы звучат одинаково у всех, кто сидит на одном сервере, и пропадают после перезагрузки сервера.
- 💾 Системный диск заполнен на 90% и выше, хотя базы лежат на другом сервере.
Оцените размер каталога Local\1C у нескольких пользователей. Если у каждого он занимает порядка гигабайта и больше, запланируйте очистку при выходе из сеанса и исключите каталог из перемещаемого профиля.
Автоматизация: BAT-скрипт на все базы
Когда ручная чистка нужна регулярно, пишите скрипт. Ниже рабочий пример на bat. Он удаляет только папки с именами-GUID и не трогает файлы.
@echo off
chcp 65001 >nul
rem Закрываем 1С, если она запущена
taskkill /f /im 1cv8.exe >nul 2>&1
taskkill /f /im 1cv8c.exe >nul 2>&1
rem Чистим Local и Roaming
for %%P in ("%LOCALAPPDATA%\1C\1cv8" "%APPDATA%\1C\1cv8") do (
if exist %%P (
for /d %%D in (%%P\????????-????-????-????-????????????) do (
rd /s /q "%%D"
)
)
)
echo Готово.
pause
Как это работает:
- 🛑 Команда
taskkillзакрывает висящие процессы, иначе файлы будут заняты. Пользователь теряет несохранённые данные, поэтому используйте её осознанно. - 🔍 Маска из знаков вопроса соответствует формату GUID, так что случайные папки не попадут под удаление.
- 🧹 Ключ
rd /s /qудаляет каталог со всем содержимым без подтверждений.
Как запускать
- Вручную по двойному щелчку, если чистка нужна редко.
- По расписанию через планировщик заданий Windows, например по ночам.
- При выходе из системы через групповую политику, если это терминальный сервер .
Если нужно ещё и подчистить временные файлы, добавьте строку удаления v8_*.tmp из %TEMP%. Но сначала убедитесь, что эти файлы не принадлежат другим пользователям или процессам.
Перед внедрением скрипта на всех машинах прогоните его на одном компьютере и проверьте, что список баз и настройки окон остались на месте.
Если очистка не помогла
Бывает, что кэш удалён, а проблема на месте. Значит, дело не в кэше. Пройдите по списку от простого к сложному.
Что делать, когда ничего из перечисленного не помогло:
- Обновите платформу до актуального релиза. Старые версии иногда повреждают кэш при аварийном выходе.
- Проверьте свободное место на системном диске. Если его меньше нескольких гигабайт, кэш не сможет создаться.
- Переустановите платформу целиком, предварительно сохранив список баз.
- Обратитесь к администратору базы: возможно, проблема на стороне сервера.