Каждый системный администратор и разработчик 1С рано или поздно сталкивается с необходимостью обслуживания локального кэша платформы на рабочих станциях пользователей. В процессе очистки временных файлов в каталогах Local и Roaming можно обнаружить странную директорию, имя которой состоит исключительно из нулей и дефисов: 00000000-0000-0000-0000-000000000000. Внутри этой папки дублируются идентификаторы баз, а также располагается загадочный каталог под названием vrs-cache.
В этой статье мы подробно разберем внутренние механизмы работы платформы «1С:Предприятие», выясним точные причины появления этой «нулевой» папки, проанализируем назначение службы vrs-cache и рассмотрим безопасные методы устранения связанных с ней системных сбоев.
Для начала проанализируем, как в штатном режиме платформа «1С:Предприятие» идентифицирует информационные базы для создания кэша. Когда пользователь запускает базу через стандартное диалоговое окно, программа обращается к файлу списка баз ibases.v8i. Каждой зарегистрированной в этом списке базе сопоставлен уникальный глобальный идентификатор (GUID). Именно по этому GUID создаются индивидуальные папки кэша в системных директориях пользователя.
Появление папки с именем 00000000-0000-0000-0000-000000000000 (пустой GUID) связано со специфическими сценариями работы системы, когда платформа не может сопоставить запущенную базу со списком зарегистрированных ИБ. Рассмотрим эти сценарии подробнее:
/S или /F, платформа инициализирует сеанс для «незарегистрированной» базы. Поскольку у нее нет локального GUID в файле ibases.v8i, система использует дефолтный пустой идентификатор из одних нулей.Внутри этой общей папки платформа создает структуру подкаталогов, где по внутренним идентификаторам уже разделяются кэши конкретных информационных баз, запущенных таким образом.
Аббревиатура VRS расшифровывается как Version Resolution Service (Служба разрешения версий). Данный механизм является важнейшей частью подсистемы взаимодействия клиента и сервера в управляемом приложении.
Выясним детальнее, какую информацию хранит этот каталог:
vrs-cache для ускорения последующих обращений.cache.1CD внутри папки vrs-cache представляет собой локальную базу данных, в которой структурированно хранятся скомпилированные программные модули, макеты и формы.Папка vrs-cache создается в каталоге Local (при использовании тонкого клиента) или в каталоге Roaming (для толстого клиента).
Несмотря на то, что кэширование ускоряет работу системы, оно нередко становится источником серьезных проблем. В процессе динамического обновления конфигурации разработчиками («демонского обновления») или при внезапном разрыве сетевого соединения между клиентом и сервером данные в vrs-cache могут рассинхронизироваться или записаться с ошибками.
В результате пользователи сталкиваются со следующими проблемами:
Когда возникают вышеописанные проблемы, многие администраторы прибегают к радикальному методу — полной очистке каталогов Local\1C\1Cv8 и Roaming\1C\1Cv8. Однако такой подход имеет существенный минус: вместе с поврежденным кэшем удаляются персональные настройки пользователей. Стираются файлы с расширением .pfl, в которых хранится информация о положении и размерах окон, настройках отборов, истории выбора элементов и других индивидуальных параметрах интерфейса.
Рассмотрим два безопасных и точечных способа очистки кэша версии разрешения (VRS).
Это самый простой и цивилизованный метод очистки. Платформа предоставляет штатный параметр командной строки, который принудительно удаляет только временные файлы метаданных и очищает поисковый индекс, оставляя пользовательские настройки нетронутыми.
Разберем по шагам, как настроить этот параметр для проблемной базы:
/ClearCache.Пример строки запуска из консоли или ярлыка с использованием этого ключа будет выглядеть следующим образом:
"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" ENTERPRISE /S "server-1c\my_database" /ClearCache
Важное примечание: Использование ключа /ClearCache замедлит первый запуск информационной базы, так как платформе потребуется заново загрузить с сервера и скомпилировать все формы и метаданные в локальный каталог vrs-cache. При последующих запусках этот параметр можно убрать из строки запуска.
Если запуск базы невозможен или требуется автоматизировать процесс очистки кэша для множества пользователей с помощью скриптов, можно удалить папку vrs-cache вручную.
Проанализируем алгоритм ручного удаления:
1cv8.exe и 1cv8c.exe отсутствуют.%USERPROFILE%\AppData\Local\1C\1Cv8\.vrs-cache.vrs-cache. Обратите внимание, что удалять файлы конфигурационных настроек с расширением .pfl, лежащие рядом, не требуется.Для системных администраторов отличным решением станет использование bat-скрипта для автоматической очистки проблемных папок у пользователей перед началом рабочего дня:
@echo off
taskkill /F /IM 1cv8*
rd /s /q "%USERPROFILE%\AppData\Local\1C\1Cv8"
:: Или точечно для удаления только папок vrs-cache:
for /d %%i in ("%USERPROFILE%\AppData\Local\1C\1Cv8\*") do (
if exist "%%i\vrs-cache" rd /s /q "%%i\vrs-cache"
)
echo Очистка кэша VRS успешно завершена!
pause
Этот скрипт аккуратно завершит зависшие процессы платформы и удалит исключительно кэш разрешения версий, сохранив все персональные настройки интерфейса пользователей в целости и сохранности.