К статье
Практический материал

Администрирование · 9 мин

1С: как определить, от какой базы кэш

Как определить, от какой базы 1С остался кэш: поиск папок в AppData, сопоставление с ID базы, проверка через список баз и безопасная очистка кэша.

При работе с несколькими информационными базами 1С на компьютере накапливаются папки кэша с непонятными именами вроде 8b3f2d1a-4c5e-.... Когда базу удаляют из списка или возникает ошибка «база повреждена», возникает вопрос: какая из этих папок принадлежит конкретной базе и что можно безопасно удалить. Ошибка в определении приводит к удалению кэша рабочей базы — это не критично, но вынуждает 1С заново загружать конфигурацию, что занимает время.

Кэш 1С — это служебные файлы, которые платформа создаёт для ускорения запуска: скомпилированные модули, метаданные, временные данные сеанса. Он хранится в профиле пользователя и привязан к конкретной базе через её уникальный идентификатор (GUID). Именно по этому идентификатору и определяется принадлежность папки.

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

Где 1С хранит кэш и как он устроен

Платформа 1С:Предприятие 8 создаёт кэш в профиле пользователя Windows. Основные каталоги:

  • %APPDATA%\1C\1cv8\ — роуминговый кэш (настройки, часть метаданных);
  • %LOCALAPPDATA%\1C\1cv8\ — локальный кэш метаданных и временные файлы;
  • %APPDATA%\1C\1cv8\conf\ — кэш для тонкого клиента при работе через веб-сервер.

Внутри этих каталогов каждая база получает подпапку с именем вида 12345678-abcd-1234-abcd-1234567890ab — это GUID информационной базы. Внутри папки лежат файлы кэша метаданных, журналы, временные файлы сеанса. Для файловой базы там же может находиться служебная информация о подключении.

Важно понимать: сам кэш не содержит данных учёта. Удаление папки кэша не удаляет документы и справочники — они хранятся в файле базы 1Cv8.1CD (для файлового варианта) или на сервере СУБД (для клиент-серверного). Поэтому очистка кэша — относительно безопасная операция, если не перепутать её с каталогом самой базы.

Способ 1: определить базу по идентификатору в списке баз

Самый прямой путь — узнать GUID базы из списка информационных баз и сопоставить его с именем папки кэша. Список баз хранится в файле ibases.v8i, который находится в каталоге %APPDATA%\1C\1CEStart\.

Как найти GUID базы через ibases.v8i
  1. 1
    Закройте все сеансы 1С.
  2. 2
    Откройте %APPDATA%\1C\1CEStart\ и найдите файл ibases.v8i.
  3. 3
    Откройте файл в Блокноте — это текстовый файл со списком баз.
  4. 4
    Найдите секцию нужной базы и строку ID=... — это и есть GUID.
  5. 5
    Сравните GUID с именами папок в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.

В файле ibases.v8i каждая база описана блоком в квадратных скобках: имя базы в заголовке, далее параметры подключения (Connect=), и среди параметров есть строка ID=xxxxxxxx-xxxx-.... Этот идентификатор совпадает с именем папки кэша. Если папки с таким GUID нет — кэш для базы ещё не создавался или уже был очищен.

Обратный вариант: если папка кэша есть, а базы с таким ID в списке нет — это «сиротевший» кэш от удалённой из списка базы. Такие папки можно удалять без сомнений, но сначала убедитесь, что база не используется другим пользователем этого же компьютера (у каждого пользователя свой профиль и свой кэш, так что это маловероятно).

Способ 2: определить базу по содержимому папки кэша

Если файл ibases.v8i недоступен или база подключалась напрямую, ориентируйтесь на файлы внутри каталога кэша. В папке с GUID обычно присутствуют служебные файлы, позволяющие косвенно определить базу:

  • файлы журналов и дампов — внутри могут содержать путь к базе или имя сервера;
  • файлы .log, .txt — открываются Блокнотом, часто содержат строку подключения;
  • вложенные каталоги с именами, отражающими версию конфигурации.

Дополнительный приём — посмотреть дату изменения папки кэша. Она совпадает со временем последнего запуска базы. Если вы знаете, какой базой пользовались вчера, а какой месяц назад, по датам можно сузить круг кандидатов. Это не даёт стопроцентной точности, но в сочетании с содержимым файлов обычно достаточно.

Если баз несколько и все активно используются, самый надёжный способ — запустить нужную базу и сразу посмотреть, какая папка в каталоге кэша изменилась по времени. Это занимает меньше минуты и не требует разбора файлов.
ПЗ
Практическое замечание

Способ 3: очистка кэша через удаление базы из списка

Есть штатный приём, который не требует определять GUID вручную. При удалении базы из списка в окне запуска 1С платформа предлагает удалить и связанные служебные данные. Порядок такой:

  1. Запомните или запишите строку подключения к базе (путь к каталогу или сервер и имя базы).
  2. Удалите базу из списка в стартовом окне 1С.
  3. Добавьте базу заново с той же строкой подключения — она получит новый GUID и чистый кэш.

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

Как отличить кэш от самой базы

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

Контрольные точки

Кэш или база: как отличить

Расположение папки
Норма

Кэш лежит внутри профиля пользователя: AppData\Roaming\1C или AppData\Local\1C

Тревожный признак

Папка находится в документах, на сетевом диске, в корне диска — это, скорее всего, сама база

Имя папки
Норма

Имя — длинный GUID из цифр и букв через дефисы

Тревожный признак

Имя читаемое, например «Бухгалтерия» или «Trade» — это каталог базы

Содержимое
Норма

Внутри множество мелких служебных файлов, нет 1Cv8.1CD

Тревожный признак

Внутри есть файл 1Cv8.1CD — это данные базы, удалять нельзя

Если сомневаетесь — не удаляйте папку, а переименуйте её (например, добавьте суффикс _old). Запустите базу: если всё работает и новый кэш создался, переименованную папку можно удалить. Если что-то пошло не так — верните имя обратно.

Очистка кэша на сервере 1С

В клиент-серверном варианте кэш существует и на сервере 1С:Предприятия — в каталоге srvinfo (обычно C:\Program Files\1cv8\srvinfo или аналогичный путь на Linux). Внутри — папки вида reg_1541 с подкаталогами по GUID баз.

Определить принадлежность серверного кэша можно через консоль кластера: в списке информационных баз у каждой базы отображается её идентификатор. Сопоставьте его с именем папки внутри srvinfo\reg_xxxx. Очистка выполняется только при остановленном агенте сервера либо при отсутствии активных сеансов с этой базой — иначе платформа может работать нестабильно.

Типичные ошибки
01
Удаление каталога srvinfo целиком при работающем сервере — приводит к обрыву сеансов и необходимости перезапуска службы.
02
Удаление папки с GUID, принадлежащей рабочей базе, вместо «сироты» — база пересоздаст кэш, но первый запуск будет долгим.
03
Очистка кэша как попытка исправить любую ошибку — кэш помогает при ошибках метаданных и «глюках» интерфейса, но не лечит проблемы с данными, лицензиями и сетью.

Когда очистка кэша действительно нужна

Чистить кэш «для профилактики» не требуется — платформа управляет им сама. Реальные показания:

  • ошибки вида «Ошибка формата потока», «Нарушена целостность структуры» при запуске базы;
  • после обновления конфигурации интерфейс ведёт себя странно, не открываются формы;
  • база запускается у одного пользователя нормально, а у другого с ошибками — проблема в локальном кэше второго;
  • накопились папки от давно удалённых баз и занимают место на диске.

Во всех этих случаях порядок один: определить GUID базы, завершить сеансы, удалить или переименовать соответствующую папку, запустить базу заново и проверить результат.

Итог

Что важно запомнить

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

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

Можно ли удалить все папки из %APPDATA%\1C\1cv8 сразу?

Технически да, если все сеансы 1С закрыты: платформа пересоздаст кэш при следующем запуске каждой базы. Минус — первый запуск каждой базы будет заметно дольше обычного, и вы потеряете возможность отличить «сирот» от рабочих папок по времени изменения. Разумнее удалять точечно.

Что будет, если удалить кэш работающей базы?

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

Как узнать GUID базы, если она клиент-серверная?

Откройте консоль кластера серверов 1С, найдите базу в списке информационных баз и посмотрите её свойства — там указан идентификатор. Локально на клиенте тот же GUID виден в файле ibases.v8i в строке ID соответствующей базы.

Кэш занимает много места — это нормально?

Для крупных конфигураций кэш одной базы может занимать сотни мегабайт — это ожидаемо. Тревожный признак — десятки папок от баз, которых давно нет в списке. Их можно удалить, предварительно убедившись через ibases.v8i, что GUID не совпадает ни с одной актуальной базой.

Поможет ли очистка кэша при ошибке «Ошибка формата потока»?

Часто да: эта ошибка типична для повреждённого локального кэша метаданных. Очистите кэш у проблемного пользователя. Если ошибка повторяется у всех пользователей и после очистки — проблема глубже, нужна проверка базы через конфигуратор (тестирование и исправление) или анализ на стороне сервера СУБД.