Чья это папка в 1cv8: находим информационную базу по кэшу
Содержание
Определить, от какой базы кэш 1С, проще всего по имени папки. Папки кэша в %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8 названы идентификаторами вида 3f2a9c1e-…. Тот же идентификатор записан в строке ID= у нужной базы в файле списка %APPDATA%\1C\1CEStart\ibases.v8i. Нашли совпадение — нашли базу.
Способов три, и выбирают их по ситуации. Сверка с ibases.v8i годится для рабочего места пользователя в любом режиме, файловом или клиент-серверном. Для серверного кэша на машине кластера идентификатор ищут в реестре кластера или через rac. Когда база давно удалена из списка, остаётся косвенная проверка: даты изменения файлов и журнал регистрации.
Как устроен локальный кэш 1С и откуда в нём GUID
При первом запуске базы клиент 1С скачивает к себе часть конфигурации: модули, формы, метаданные. Со второго запуска он берёт их с диска, а с сервера или из файла базы получает только то, что изменилось. Отсюда быстрый вход и меньшая нагрузка на сеть.
Каждой записи в списке баз стартер присваивает уникальный идентификатор. Он и становится именем папки кэша. Из этого следуют три вещи, которые полезно знать заранее:
- 🔑 идентификатор принадлежит записи в списке, а не самой базе. Добавили одну и ту же базу дважды — получили две папки кэша;
- 👥 у каждого пользователя Windows свой профиль и свой набор папок. Кэш одной базы у Иванова и Петрова лежит в разных местах;
- 📋 если список баз скопировали другому пользователю вместе с
ibases.v8i, идентификаторы сохранятся, и папки будут называться так же.
Кроме папок-идентификаторов, в 1C\1cv8 лежат служебные папки и файлы с понятными именами. Например, tmplts — каталог шаблонов конфигураций по умолчанию. Их к кэшу баз не относят и вместе с ним не удаляют.
Где искать папки кэша на компьютере пользователя
Кэш хранится в профиле пользователя Windows, в двух местах:
| Каталог | Что там хранится |
|---|---|
%LOCALAPPDATA%\1C\1cv8\<GUID> | основной кэш конфигурации, обычно самая объёмная часть |
%APPDATA%\1C\1cv8\<GUID> | данные, которые переезжают вместе с перемещаемым профилем, включая часть пользовательских настроек |
Чтобы открыть каталог, нажмите Win+R, вставьте %LOCALAPPDATA%\1C\1cv8 и нажмите Enter. Второй каталог открывается так же.
В файловом режиме расположение кэша не зависит от того, где лежит сама база. Файл 1Cv8.1CD может быть на диске D: или в сетевой папке, а кэш всё равно окажется в профиле пользователя. Так что искать кэш рядом с базой бесполезно: там лежат только файлы самой базы и папка журнала регистрации.
На терминальном сервере путь тот же, только профилей много. Кэш конкретного сотрудника ищите в C:\Users\<логин>\AppData\Local\1C\1cv8 и C:\Users\<логин>\AppData\Roaming\1C\1cv8.
Сопоставляем папку кэша с базой через ibases.v8i
Это главный приём. Он одинаково работает для файловых баз, серверных и опубликованных на веб-сервере.
- Откройте
%APPDATA%\1C\1CEStart\ibases.v8iв Блокноте. Файл текстовый, менять в нём ничего не нужно. - Скопируйте имя папки кэша, которая вас интересует.
- Нажмите
Ctrl+Fи вставьте идентификатор. - Поиск остановится на строке
ID=…. Поднимитесь выше до строки в квадратных скобках: это имя базы в списке. - Строка
Connect=в том же блоке покажет, куда база подключена.
Фрагмент файла выглядит так:
[Бухгалтерия ООО Ромашка]
Connect=File="D:\Bases\Romashka";
ID=3f2a9c1e-7b44-4d0a-9e21-5c8f0d6a1b72
OrderInList=0
Folder=/
По строке Connect= сразу видно режим работы:
- 📁
File="путь"— файловая база, путь к каталогу с1Cv8.1CD; - 🖥️
Srvr="имя сервера";Ref="имя базы"— клиент-серверная база ; - 🌐
ws="http://…"— подключение через веб-публикацию.
Если GUID в ibases.v8i не нашёлся, проверьте общие списки баз. Их подключают в файле %APPDATA%\1C\1CEStart\1cestart.cfg строками CommonInfoBases=. Каждая такая строка указывает на отдельный файл .v8i, и идентификаторы ищут уже в нём. Не нашлось и там — база удалена из списка, а папка осталась сиротой.
Скрипт: все папки кэша с именами баз и размером
Когда папок два-три десятка, вручную сверять долго. Этот скрипт PowerShell читает список баз текущего пользователя и выводит для каждой папки кэша её размер и имя базы:
$list = Join-Path $env:APPDATA '1C\1CEStart\ibases.v8i'
$map = @{}
$name = $null
Get-Content $list -Encoding UTF8 | ForEach-Object {
if ($_ -match '^\[(.+)\]$') { $name = $Matches[1] }
elseif ($_ -match '^ID=(.+)$') { $map[$Matches[1].Trim()] = $name }
}
foreach ($root in "$env:LOCALAPPDATA\1C\1cv8", "$env:APPDATA\1C\1cv8") {
if (-not (Test-Path $root)) { continue }
Get-ChildItem $root -Directory |
Where-Object { $_.Name -match '^[0-9a-fA-F-]{36}$' } |
ForEach-Object {
$base = $map[$_.Name]
if (-not $base) { $base = '<нет в списке>' }
$sum = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
'{0} {1} {2,8:N1} МБ {3}' -f $root, $_.Name, ($sum / 1MB), $base
}
}
Строки с пометкой <нет в списке> — кэш баз, которых в вашем списке уже нет. Общие списки из 1cestart.cfg скрипт не читает: если вы ими пользуетесь, сначала сверьтесь с ними.
Кэш клиент-серверной базы: клиент и сервер отдельно
У серверной базы кэш живёт в двух местах, и определяют его по-разному.
На компьютере пользователя всё так же, как в файловом режиме. Папка в профиле названа идентификатором записи из ibases.v8i, сверка та же. В строке Connect= будет Srvr= и Ref=, то есть имя сервера и имя базы в кластере.
На сервере 1С свои данные по каждой базе. Они лежат в каталоге службы srvinfo, путь к нему задаётся при установке службы параметром -d в строке запуска ragent. Внутри есть папка reg_1541, если кластер на стандартном порту, а в ней подпапки по базам.
Имена этих подпапок — тоже GUID, но другие. Это идентификатор базы в кластере, с ID= из списка пользователя он не совпадает. Сопоставить его с именем можно двумя способами:
- Через утилиту
rac, если запущен сервер администрированияras. Сначала узнайте идентификатор кластера, потом выведите список баз:
rac cluster list
rac infobase summary list --cluster=<идентификатор кластера>
Команда выведет для каждой базы её идентификатор и имя. Ищите в выводе GUID нужной папки.
- Через файл реестра кластера
1CV8Clst.lstв папкеreg_1541. Скопируйте файл в другое место, откройте копию Блокнотом и найдите GUID поиском. Рядом с ним стоит имя базы.
Оригинал 1CV8Clst.lst не открывайте на запись и не правьте. Это реестр кластера: испорченный файл — и кластер не увидит ни одной базы.
Сеансовые данные сервера лежат в папках вида snccntx… внутри reg_1541. Их иногда чистят при странном поведении сервера, но только при остановленной службе. Остановка службы обрывает сеансы всех пользователей всех баз кластера, поэтому делают это вне рабочего времени и с предупреждением.
Очистка кэша, когда база уже найдена
Нашли нужную папку — дальше решайте, как чистить. Варианты отличаются охватом и риском:
| Способ | Когда подходит | Что учесть |
|---|---|---|
Параметр /ClearCache | одна база, нужно сбросить кэш при следующем входе | действует при каждом запуске, пока параметр не уберут |
| Удаление одной папки GUID | кэш конкретной базы сломан или раздулся | 1С этой базы должна быть закрыта |
| Удаление всех папок GUID | после переустановки платформы или массовых сбоев | первый запуск каждой базы будет медленнее |
Параметр /ClearCache
- В окне запуска выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы.
- В поле дополнительных параметров запуска впишите
/ClearCache. - Нажмите
Готовои запустите базу.
После успешного запуска уберите параметр. Иначе кэш будет сбрасываться при каждом входе, и смысл в нём пропадёт.
Ручное удаление
- Закройте все окна 1С этого пользователя, включая Конфигуратор.
- Проверьте в диспетчере задач, что процессов
1cv8.exeи1cv8c.exeне осталось. - Удалите папку с нужным GUID в
%LOCALAPPDATA%\1C\1cv8. - Если проблема осталась, удалите папку с тем же GUID в
%APPDATA%\1C\1cv8.
Папку в %APPDATA% трогайте вторым шагом: вместе с ней пропадёт часть пользовательских настроек, которые хранятся на компьютере, а не в базе.
Кэш не содержит данных базы: документы, справочники и проводки хранятся в самой информационной базе. Удаление папки кэша их не затрагивает.
Журнал регистрации как подсказка, если GUID не помог
Бывает, что папка кэша есть, а базы в списке уже нет, и непонятно, удалять ли её. Тогда помогают даты и журнал регистрации.
Сначала посмотрите дату изменения папки кэша. Если её не трогали полгода, базу на этом компьютере давно не открывали. Такую папку можно удалить спокойно: при следующем запуске 1С создаст кэш заново.
Журнал регистрации пригодится с другой стороны, когда нужно понять, кто и откуда работает с базой:
- 📁 у файловой базы журнал лежит в каталоге базы, в папке
1Cv8Log; - 🖥️ у серверной базы он хранится на сервере, в папке
1Cv8Logвнутри подпапки базы вreg_1541. Так через журнал заодно видно, какой GUID на сервере к какой базе относится: откройте журнал из этой базы и сверьте время последних событий с датами файлов; - 🗂️ формат файлов бывает разный: пара
.lgfи.lgpили один файл1Cv8.lgd.
В самом журнале, в разделе Администрирование → Журнал регистрации или из меню функций, отфильтруйте события начала сеанса. В колонке компьютера видно, с каких машин заходили в базу. Если нужного компьютера там нет, кэш на нём — остаток давнего подключения.
Тонкий, толстый и веб-клиент: что и где кэшируется
Тип клиента влияет на объём кэша и на то, где его искать.
- 🪶 Тонкий клиент (
1cv8c.exe) держит у себя только клиентскую часть: формы, клиентские модули, картинки. Папка обычно небольшая. После обновления конфигурации на сервере клиент сам замечает изменения и докачивает нужное. - 🧱 Толстый клиент (
1cv8.exeв режиме «1С:Предприятие») работает с полной конфигурацией, поэтому его кэш заметно больше. Конфигуратор тоже запускается через1cv8.exeи пишет в ту же папку записи базы. - 🌐 Веб-клиент папок в
1C\1cv8не создаёт. Его кэш — это кэш браузера, и чистят его средствами браузера. - 🔗 Тонкий клиент через веб-публикацию (
ws=в строке подключения) ведёт себя как обычный тонкий клиент: папка кэша тоже названа поID=записи из списка.
Если один пользователь открывает базу то тонким, то толстым клиентом, новой папки это не создаёт. Идентификатор привязан к записи в списке, а не к типу клиента.
Частые ошибки при работе с кэшем
1CV8Clst.lst, и сервер не видит базы. Восстановите каталог из резервной копии; сами базы на СУБД при этом не пострадали.Ещё одна частая ловушка — удалить вслепую все папки в 1C\1cv8, включая служебные. Удаляйте только папки, имена которых похожи на GUID: 36 символов из цифр, латинских букв a–f и дефисов.
Частые вопросы
Совпадает ли GUID папки кэша с идентификатором базы на сервере?
ID= записи в списке баз, а папки на сервере — по идентификатору базы в кластере. Это разные значения.Почему у одной базы две папки кэша?
ID= и свой кэш.Можно ли перенести кэш на другой компьютер, чтобы база открылась быстрее?
Где хранится кэш на Linux?
.1cv8. Внутри та же схема: папки названы идентификаторами записей из списка баз.