Как почистить кэш 1С и не потерять настройки торгового оборудования

Системный администратор 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

Каждый системный администратор или специалист 1С сталкивался с ситуацией, когда база начинает вести себя некорректно: «плывут» формы, возникают странные ошибки при открытии документов или конфигурация просто отказывается запускаться. В 90% случаев универсальным лекарством является очистка локального кэша. Однако у этой процедуры есть серьезный побочный эффект для рабочих мест кассиров — после удаления папок из AppData часто «слетают» драйверы фискальных регистраторов и обнуляется список подключенного оборудования. Рассмотрим, как выполнить очистку правильно, сохранив работоспособность торговых точек.

Выясним причину проблемы: почему исчезают настройки

Для начала проанализируем, где именно 1С хранит свои временные данные и настройки. Кэш платформы 1С:Предприятие 8 распределен по двум основным директориям пользователя Windows:

  1. %LocalAppData%\1C\1cv8\ — здесь хранятся преимущественно временные данные: скомпилированные модули, образы форм, индексы поиска. Удаление этой папки обычно безопасно для настроек, но именно здесь 1С хранит файлы, связанные с конкретной информационной базой в папках с длинными именами-идентификаторами (GUID).
  2. %AppData%\1C\1cv8\ — эта папка (Roaming) содержит пользовательские настройки, настройки окон, список баз и, что самое важное, внешние компоненты (драйверы).

Главная причина «слета» оборудования заключается в потере связи между текущим сеансом пользователя и записью в справочнике Рабочие места в самой базе 1С. Внутри папок кэша хранятся файлы с расширением .pfl (профили). В одном из таких файлов записан уникальный ID рабочего места. Если мы бездумно удаляем всё содержимое папок 1c8, 1С при следующем запуске не находит свой старый ID, генерирует новый (например, «ИмяКомпьютера_1») и открывает базу с абсолютно чистым списком оборудования. Старое оборудование остается привязанным к старому ID, который был безвозвратно удален вместе с файлами профиля.

Разберем безопасный алгоритм очистки вручную

Посмотрим на практический опыт, описанный в обсуждении. Чтобы не переустанавливать драйверы торгового оборудования (ДТО) и не настраивать логические устройства заново, мы должны действовать избирательно. Разберем по шагам, что можно и что нельзя трогать.

Во-первых, проанализируем папку Roaming. В ней находится критически важная директория ExtCompT. Рассмотрим её назначение: именно сюда 1С распаковывает драйверы (DLL-файлы) из макетов конфигурации. Если удалить эту папку, платформе придется заново регистрировать компоненты в системе, что может потребовать прав администратора или вызвать ошибки защиты. Поэтому папку ExtCompT трогать категорически нельзя.

Во-вторых, обратим внимание на структуру папок внутри Local и Roaming. Каждая база имеет свою подпапку, имя которой соответствует GUID. Вместо того чтобы удалять всю папку целиком, попробуем очистить только те данные, которые действительно являются кэшем метаданных. Внутри папки с GUID базы обычно находятся следующие объекты:

Использование штатного параметра запуска /ClearCache

Проанализируем альтернативный, более цивилизованный способ. Платформа 1С поддерживает специальный ключ запуска. Это самый безопасный метод, так как сама программа понимает, какие файлы являются временными, а какие — критически важными настройками пользователя.

Чтобы воспользоваться этим методом, выполним следующие действия:

  1. Запустим окно выбора информационных баз 1С.
  2. Выберем нужную базу и нажмем кнопку Изменить.
  3. Перейдем на последнюю закладку параметров.
  4. В поле Дополнительные параметры запуска впишем команду:

/ClearCache

После этого запустим базу. 1С автоматически очистит кэш запросов и кэш тонкого клиента. Важно помнить: этот параметр стоит убрать после успешного запуска, иначе программа будет очищать кэш при каждом старте, что существенно замедлит работу пользователя.

Автоматизация очистки с помощью скрипта

Если рабочих мест много, и проблема с кэшем возникает регулярно, целесообразно использовать автоматизированный скрипт (bat-файл). Однако мы должны составить его так, чтобы он обходил важные файлы стороной. Посмотрим на пример логики такого скрипта, который удаляет только папки Config и vrs-cache, не затрагивая идентификаторы рабочего места.


@echo off
set "baseDirLocal=%LocalAppData%\1C\1cv8"
set "baseDirRoaming=%AppData%\1C\1cv8"

for /d %%i in ("%baseDirLocal%\*") do (
    if exist "%%i\Config" rd /s /q "%%i\Config"
    if exist "%%i\ConfigSave" rd /s /q "%%i\ConfigSave"
    if exist "%%i\vrs-cache" rd /s /q "%%i\vrs-cache"
)

echo Очистка завершена, настройки оборудования сохранены.
pause

Разберем, что делает этот скрипт: он не удаляет корневые папки баз, а заходит внутрь каждой и точечно стирает только директории Config и vrs-cache. Это позволяет сбросить основные ошибки кэширования, но сохраняет файлы *.pfl в корне папки базы, благодаря чему 1С «узнает» рабочее место при запуске.

Ситуация с COM-компонентами и реестром

Выясним еще одну важную деталь. Некоторые старые драйверы (особенно для 1С 7.7 или работающие через старые COM-интерфейсы в 8.3) хранят свои параметры не в файлах кэша, а в реестре Windows. В частности, ветка HKEY_CURRENT_USER\Software\1C\1Cv8\3\ComNamespaces может содержать пути к библиотекам. Обычная очистка папок AppData их не задевает, но если вы используете сторонние утилиты для «полной очистки системы» (вроде CCleaner), они могут вычистить и эти ветки реестра. Рекомендуем исключать пути 1С из подобных программ-оптимизаторов.

Подведем итоги

Для эффективного решения проблемы без вреда для торгового оборудования придерживаемся следующих правил:

Следуя этим рекомендациям, мы сможем оперативно устранять программные сбои 1С, не тратя время на повторную настройку кассовых аппаратов, весов и сканеров штрихкодов.

← На главную