Хранилище кэша конфигурации 1С: откуда берётся ConfigCacheStorage и когда его можно удалять
Содержание
ConfigCacheStorage — служебное хранилище, в которое платформа 1С:Предприятие 8.3 складывает подготовленные данные конфигурации: разобранные метаданные, формы, модули. Это не данные учёта. Его можно очистить, когда с базой никто не работает : платформа при следующем запуске создаст кэш заново, а первый вход займёт больше времени.
Чистить файл configcachestorage стоит в трёх случаях: каталог занял гигабайты, после обновления конфигурации 1С показывает старые формы или падает при запуске, база ведёт себя по-разному у разных пользователей. Во всех остальных случаях кэш лучше не трогать: он и есть причина, по которой база открывается быстро.
Что лежит в кэше конфигурации и зачем он платформе
Конфигурация хранится в самой информационной базе — в файле 1Cv8.1CD для файлового варианта или в таблицах СУБД для серверного. Каждый раз разбирать её целиком при запуске долго. Поэтому платформа один раз готовит рабочее представление и кладёт его на диск. Это и есть кэш конфигурации.
Что обычно попадает в кэш:
- 📦 описания метаданных: справочники, документы, регистры и их реквизиты;
- 🧩 подготовленные формы и командный интерфейс;
- ⚙️ скомпилированные модули, которые клиенту не нужно получать заново;
- 🔌 данные подключённых расширений.
Принцип простой. При запуске платформа сверяет версию конфигурации в базе с версией в кэше. Совпадает — берёт готовое с диска. Не совпадает — догружает изменения и обновляет кэш.
Кэш — производные данные. Всё, что в нём есть, платформа может восстановить из самой базы. Поэтому удаление кэша не теряет ни документов, ни настроек конфигурации.
Где искать ConfigCacheStorage
Кэш платформы распределён по нескольким местам, и у разных версий платформы раскладка немного отличается. Проверять стоит три каталога:
| Где | Что там | Для какой базы |
|---|---|---|
Каталог файловой базы (рядом с 1Cv8.1CD) | служебные папки платформы: журнал регистрации 1Cv8Log, индекс полнотекстового поиска, кэши | файловая |
%LOCALAPPDATA%\1C\1cv8\ и %APPDATA%\1C\1cv8\ | папки с именами-идентификаторами баз, в них — клиентский кэш конфигурации | файловая и серверная |
Каталог кластера, по умолчанию srvinfo\reg_1541\ | папки баз по их идентификаторам и сеансовые данные snccntx… | серверная |
Быстрее всего найти хранилище поиском. Откройте командную строку и выполните:
dir /s /b /a:d "%LOCALAPPDATA%\1C\1cv8\*ConfigCache*"
dir /s /b /a:d "%APPDATA%\1C\1cv8\*ConfigCache*"
dir /s /b /a:d "D:\Bases\Buh\*ConfigCache*"
Последнюю строку поправьте под путь к своей базе. Путь видно в окне запуска 1С: выделите базу в списке, внизу окна отображается строка подключения File="...".
Как понять, какая папка к какой базе относится
Папки в профиле пользователя названы идентификаторами вида a1b2c3d4-…. Соответствие хранится в файле списка баз %APPDATA%\1C\1CEStart\ibases.v8i. Откройте его Блокнотом: у каждой базы есть строка ID= с тем же идентификатором, что и у папки кэша.
Почему хранилище разрастается и как это сказывается на работе
Небольшая база с типовой конфигурацией держит кэш в сотни мегабайт. Типовые БП 3.0, ЗУП 3.1, УТ 11 — объёмные конфигурации, и для них кэш в 1–2 ГБ на одну базу обычен. Проблема начинается, когда объём растёт без остановки.
Основные причины разрастания:
- 🔄 частые обновления конфигурации — после каждого релиза появляются новые данные, а старые удаляются не всегда сразу;
- 🧪 разработка в Конфигураторе: десятки сохранений и обновлений конфигурации базы данных за день;
- 🔌 расширения, которые часто перезаписывают или отключают и включают обратно;
- 🗂 копии одной и той же базы, развёрнутые в разные каталоги: у каждой свой идентификатор и своя папка кэша;
- 🧹 удалённые из списка базы — их кэш в профиле пользователя остаётся навсегда;
- 💥 аварийное завершение 1С при обновлении: кэш остаётся недописанным, и платформа создаёт рядом новый.
Как это влияет на производительность
Сам по себе большой кэш базу не тормозит. Тормозит другое:
- ⏳ кончается место на диске
C:— особенно на терминальном сервере, где у каждого пользователя свой профиль; - 🐢 перемещаемые профили Windows копируют
%APPDATA%при входе и выходе, и вход в систему растягивается на минуты; - 🧯 повреждённый кэш даёт ошибки при запуске, «старые» формы после обновления, вылеты при открытии отдельных объектов;
- 🔒 антивирус, который проверяет каждый файл кэша при старте 1С, заметно замедляет открытие базы.
На терминальном сервере с 30 пользователями и тремя базами кэш легко занимает 30 × 3 × 1,5 ГБ = 135 ГБ. Это частая причина того, что системный диск «внезапно» заполнился.
Проверка состояния хранилища перед очисткой
Прежде чем удалять, выясните, что именно разрослось и действительно ли дело в кэше.
Шаг 1. Посмотрите размер папок
В PowerShell посчитайте объём каждой папки в профиле:
Get-ChildItem "$env:LOCALAPPDATA\1C\1cv8","$env:APPDATA\1C\1cv8" -Directory |
ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
[pscustomobject]@{ Folder = $_.FullName; SizeMB = [math]::Round($size / 1MB) }
} | Sort-Object SizeMB -Descending
Сверху окажутся самые тяжёлые папки. Их идентификаторы сравните со строками ID= в ibases.v8i. Папки, для которых базы в списке нет, — кандидаты на удаление в первую очередь.
Шаг 2. Проверьте каталог файловой базы
Откройте каталог базы и посмотрите размеры служебных папок. Журнал регистрации 1Cv8Log и индекс полнотекстового поиска тоже умеют разрастаться до гигабайт. Их не путайте с кэшем:
| Папка | Что это | Можно ли удалить |
|---|---|---|
| ConfigCacheStorage и другие кэши | производные данные конфигурации | да, при закрытой базе |
1Cv8Log | журнал регистрации | нет, сокращают средствами 1С |
| индекс полнотекстового поиска | данные для поиска по базе | можно пересоздать из 1С |
1Cv8.1CD | сама база | никогда |
Шаг 3. Отделите сбой кэша от сбоя базы
Признаки, что виноват именно кэш:
- ошибка проявляется у одного пользователя или на одном компьютере, у других база работает;
- после обновления конфигурации видны старые формы или старые команды;
- запуск с параметром
/ClearCacheубирает проблему.
Если ошибка у всех пользователей и на всех компьютерах, дело скорее в самой базе. Тогда очистка кэша не поможет, нужна проверка через Администрирование → Тестирование и исправление в Конфигураторе или утилиту chdbfl.exe из каталога bin платформы.
Как безопасно очистить кэш конфигурации 1С
Способы идут от безопасного к радикальному. Начинайте с первого.
Способ 1. Запуск с параметром /ClearCache
Самый мягкий вариант: платформа сама сбрасывает клиентский кэш выбранной базы.
- Откройте окно запуска 1С.
- Выделите базу и нажмите
Изменить. - Пройдите до последней страницы мастера, где есть поле
Дополнительные параметры запуска. - Впишите
/ClearCacheи сохраните. - Запустите базу. Первый вход будет дольше обычного.
- Уберите параметр, иначе кэш будет сбрасываться при каждом запуске.
То же самое из командной строки:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache
Способ 2. Удаление папок кэша в профиле пользователя
Подходит, когда нужно освободить место или /ClearCache не помог.
- Попросите пользователя закрыть все окна 1С. Проверьте в диспетчере задач, что не осталось процессов
1cv8.exeи1cv8c.exe. - Найдите папку базы по идентификатору из
ibases.v8i. - Удалите её в
%LOCALAPPDATA%\1C\1cv8\и в%APPDATA%\1C\1cv8\. - Запустите 1С и дождитесь полной загрузки.
Не удаляйте весь каталог %APPDATA%\1C\1cv8\ целиком. Рядом лежат пользовательские настройки клиента, и после такой «чистки» пропадут сохранённые параметры окон и списков.
Способ 3. Очистка ConfigCacheStorage в каталоге файловой базы
Здесь кэш общий для всех, кто работает с базой. Перед очисткой все пользователи должны выйти из базы — открытые сеансы оборвутся с ошибкой, а несохранённые документы пропадут.
- Предупредите пользователей и выберите нерабочее время.
- Убедитесь, что из базы вышли все: в Конфигураторе откройте
Администрирование → Активные пользователи, список должен быть пустым. - Сделайте копию каталога базы целиком или выгрузку
.dtчерезАдминистрирование → Выгрузить информационную базу. - Не удаляйте, а переименуйте папку кэша, например в
ConfigCacheStorage_old. - Запустите 1С под одним пользователем. Платформа создаст новый кэш.
- Поработайте день. Если всё в порядке, удалите переименованную папку.
Переименование вместо удаления даёт откат за секунду: вернули имя — вернули прежнее состояние.
Способ 4. Кэш серверной базы
В клиент-серверном варианте серверный кэш и сеансовые данные лежат в каталоге кластера. Чистить его можно только при остановленной службе «Агент сервера 1С:Предприятия», а это значит, что оборвутся сеансы всех пользователей всех баз на этом сервере.
Порядок такой: согласовать окно с администратором и пользователями, остановить службу, перенести папки snccntx… нужной базы в резервный каталог, запустить службу и проверить вход. Каталог srvinfo целиком, файлы реестра кластера 1CV8Clst.lst и 1CV8Reg.lst не трогайте никогда: в них список баз и настройки кластера.
Сравнение способов
| Способ | Когда применять | Риски |
|---|---|---|
/ClearCache | старые формы, сбои у одного пользователя | почти нет |
| Удаление папок в профиле | мало места, /ClearCache не помог | потеря настроек при удалении лишнего |
| Кэш в каталоге базы | сбой у всех пользователей файловой базы | обрыв сеансов, нужна копия |
| Кэш кластера | сбои на сервере | остановка всех баз сервера |
Автоматизация обслуживания файловых баз
Если папки кэша регулярно забивают диск, очистку можно поставить на расписание. Разумная частота — раз в неделю или раз в месяц, ночью.
Пример скрипта для очистки клиентского кэша на терминальном сервере. Он ничего не делает, пока запущен хотя бы один процесс 1С:
@echo off
rem Очистка клиентского кэша 1С во всех профилях
tasklist /FI "IMAGENAME eq 1cv8.exe" | find /I "1cv8.exe" >nul && exit /b 1
tasklist /FI "IMAGENAME eq 1cv8c.exe" | find /I "1cv8c.exe" >nul && exit /b 1
for /d %%U in ("C:\Users\*") do (
if exist "%%U\AppData\Local\1C\1cv8" (
for /d %%D in ("%%U\AppData\Local\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
)
)
echo %date% %time% cache cleared >> C:\Scripts\1c_cache.log
Маска *-*-*-*-* выбирает только папки с именами-идентификаторами баз и не задевает служебные файлы рядом. Скрипт чистит Local, где лежит основной объём, и не трогает Roaming с настройками.
Как поставить на расписание:
- Откройте «Планировщик заданий» Windows и создайте задачу.
- Триггер — еженедельно, например в воскресенье в 03:00.
- Действие — запуск
C:\Scripts\clear_1c_cache.bat. - Включите запуск от имени учётной записи с правами администратора и вне зависимости от входа пользователя.
Регламентное задание 1С для этого не подходит: оно работает внутри базы и не может удалять кэш платформы, которым сама база пользуется в этот момент.
Как не допускать проблем с кэшем
Кэш конфигурации реже ломается и меньше растёт, если соблюдать несколько правил.
- 🧹 Удаляйте базы из списка вместе с их кэшем. Удалили базу из окна запуска — удалите и её папку в профиле.
- 🛑 Не закрывайте 1С через диспетчер задач во время обновления конфигурации. Недописанный кэш — главная причина ошибок при следующем запуске.
- 🧪 Разработку ведите в отдельной копии базы, а не в рабочей. Сотни сохранений в Конфигураторе раздувают кэш именно той базы, где идёт работа.
- 🛡 Добавьте папки кэша 1С в исключения проверки антивируса при открытии файлов. Сканировать каталог базы целиком всё равно нужно по расписанию.
- 💾 На терминальном сервере выделите для профилей отдельный диск или настройте ограничение роста профилей средствами Windows.
- 🔁 После крупного обновления типовой конфигурации разово запустите базу с
/ClearCacheу тех, у кого появились странности.
Когда чистить кэш не нужно
- база просто стала медленнее работать с документами — дело в данных, индексах или сервере, а не в кэше;
- ошибка «Ошибка формата потока» или повреждение базы — это работа для тестирования и исправления;
- кэш занимает 1–2 ГБ на большую типовую конфигурацию — это нормальный размер, место освободится ненадолго, а запуск у всех станет медленнее.