Чья это папка в 1cv8: находим информационную базу по кэшу

· 9 мин

Содержание

Определить, от какой базы кэш 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

Это главный приём. Он одинаково работает для файловых баз, серверных и опубликованных на веб-сервере.

  1. Откройте %APPDATA%\1C\1CEStart\ibases.v8i в Блокноте. Файл текстовый, менять в нём ничего не нужно.
  2. Скопируйте имя папки кэша, которая вас интересует.
  3. Нажмите Ctrl+F и вставьте идентификатор.
  4. Поиск остановится на строке ID=…. Поднимитесь выше до строки в квадратных скобках: это имя базы в списке.
  5. Строка 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= из списка пользователя он не совпадает. Сопоставить его с именем можно двумя способами:

  1. Через утилиту rac, если запущен сервер администрирования ras. Сначала узнайте идентификатор кластера, потом выведите список баз:
rac cluster list
rac infobase summary list --cluster=<идентификатор кластера>

Команда выведет для каждой базы её идентификатор и имя. Ищите в выводе GUID нужной папки.

  1. Через файл реестра кластера 1CV8Clst.lst в папке reg_1541. Скопируйте файл в другое место, откройте копию Блокнотом и найдите GUID поиском. Рядом с ним стоит имя базы.

Оригинал 1CV8Clst.lst не открывайте на запись и не правьте. Это реестр кластера: испорченный файл — и кластер не увидит ни одной базы.

Сеансовые данные сервера лежат в папках вида snccntx… внутри reg_1541. Их иногда чистят при странном поведении сервера, но только при остановленной службе. Остановка службы обрывает сеансы всех пользователей всех баз кластера, поэтому делают это вне рабочего времени и с предупреждением.

Очистка кэша, когда база уже найдена

Нашли нужную папку — дальше решайте, как чистить. Варианты отличаются охватом и риском:

СпособКогда подходитЧто учесть
Параметр /ClearCacheодна база, нужно сбросить кэш при следующем входедействует при каждом запуске, пока параметр не уберут
Удаление одной папки GUIDкэш конкретной базы сломан или раздулся1С этой базы должна быть закрыта
Удаление всех папок GUIDпосле переустановки платформы или массовых сбоевпервый запуск каждой базы будет медленнее

Параметр /ClearCache

  1. В окне запуска выделите базу и нажмите Изменить.
  2. Пройдите мастер до последней страницы.
  3. В поле дополнительных параметров запуска впишите /ClearCache.
  4. Нажмите Готово и запустите базу.

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

Ручное удаление

  1. Закройте все окна 1С этого пользователя, включая Конфигуратор.
  2. Проверьте в диспетчере задач, что процессов 1cv8.exe и 1cv8c.exe не осталось.
  3. Удалите папку с нужным GUID в %LOCALAPPDATA%\1C\1cv8.
  4. Если проблема осталась, удалите папку с тем же 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= записи из списка.

Если один пользователь открывает базу то тонким, то толстым клиентом, новой папки это не создаёт. Идентификатор привязан к записи в списке, а не к типу клиента.

Частые ошибки при работе с кэшем

Диагностика: выберите симптом

Ещё одна частая ловушка — удалить вслепую все папки в 1C\1cv8, включая служебные. Удаляйте только папки, имена которых похожи на GUID: 36 символов из цифр, латинских букв a–f и дефисов.

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

Совпадает ли GUID папки кэша с идентификатором базы на сервере?
Нет. Папка кэша на компьютере пользователя названа по ID= записи в списке баз, а папки на сервере — по идентификатору базы в кластере. Это разные значения.
Почему у одной базы две папки кэша?
Базу добавили в список дважды, например вручную и через общий список. У каждой записи свой ID= и свой кэш.
Можно ли перенести кэш на другой компьютер, чтобы база открылась быстрее?
Смысла нет. На новом месте 1С сама скачает конфигурацию при первом запуске, а чужой кэш может оказаться устаревшим.
Где хранится кэш на Linux?
В домашнем каталоге пользователя, в скрытой папке .1cv8. Внутри та же схема: папки названы идентификаторами записей из списка баз.
Сколько места занимает кэш одной базы?
У тонкого клиента обычно десятки мегабайт, у толстого и Конфигуратора — сотни. Точный размер показывает скрипт из раздела о сверке.