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

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

Как работает кэш 1С и что делать при его повреждении

Разбираем, как устроен кэш 1С: типы кэша платформы и метаданных, признаки повреждения, безопасная очистка, типичные ошибки и профилактика.

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

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

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

Какие виды кэша существуют в 1С

Клиентский кэш метаданных — самый известный. Платформа сохраняет скомпилированное описание конфигурации (структуру объектов, форм, модулей) в локальной папке пользователя, чтобы при следующем запуске не загружать её целиком. Для файловых баз путь обычно выглядит как %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\, внутри — папки с уникальными идентификаторами баз.

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

Отдельно стоит кэш СУБД (MS SQL, PostgreSQL): буферный пул, кэш планов запросов. Он управляется самой СУБД и напрямую платформой 1С не контролируется. Также существует кэш COM-соединений и веб-сервисов, который актуален для интеграций.

Как платформа использует кэш при запуске и в работе

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

Во время работы кэшируются и другие данные: настройки интерфейса, варианты отчётов, данные механизмов повторного использования возвращаемых значений (например, результаты функций общих модулей с признаком «Повторное использование»). Это снижает количество обращений к серверу, но создаёт риск рассинхронизации: локальная копия может не соответствовать актуальному состоянию базы.

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

Признаки повреждённого или устаревшего кэша

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

Ошибка только у одного пользователяВероятен локальный кэш

Попросите пользователя войти с другого компьютера — если ошибки нет, кэш локальный

«Формат потока ошибочен»Повреждены файлы кэша

Типичная ошибка после аварийного завершения; лечится очисткой кэша

Старые данные после обновленияКэш не перестроился

Проверьте, видят ли изменения другие пользователи

Программа падает при открытии формыВозможно повреждение кэша форм

Сравните поведение под другим пользователем на том же ПК

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

Как очистить клиентский кэш метаданных

Самый надёжный способ — удалить папки кэша вручную при закрытой программе. Закройте все сеансы 1С, откройте проводник, введите в адресной строке %APPDATA%\1C\1cv8 и удалите папки с длинными буквенно-цифровыми именами (это идентификаторы баз). Повторите то же для %LOCALAPPDATA%\1C\1cv8. При следующем запуске платформа создаст кэш заново — первый вход будет медленнее обычного, это нормально.

Альтернативный способ — удалить базу из списка в окне запуска 1С и добавить её заново. При добавлении базе присваивается новый идентификатор, и старый кэш просто перестаёт использоваться. Этот вариант удобен, если не хочется разбираться, какая папка к какой базе относится.

Третий вариант — параметр командной строки /ClearCache при запуске конфигуратора или предприятия. Он очищает кэш конкретной базы, но требует аккуратности с ярлыками и не всегда удобен для массового применения.

Порядок безопасной очистки кэша
  1. 1
    Закройте все сеансы 1С у пользователя
  2. 2
    Убедитесь, что есть резервная копия базы
  3. 3
    Откройте %APPDATA%\1C\1cv8 и удалите папки с идентификаторами баз
  4. 4
    Повторите очистку в %LOCALAPPDATA%\1C\1cv8
  5. 5
    Запустите 1С и проверьте, исчезла ли ошибка
  6. 6
    Если проблема осталась у всех пользователей — проверяйте серверный кэш и саму конфигурацию

Серверный кэш и кэш в клиент-серверном режиме

В клиент-серверном варианте часть кэша живёт на сервере приложений 1С. Если ошибка проявляется у всех пользователей базы одновременно, а очистка локальных кэшей не помогает, стандартное действие — перезапуск службы «Агент сервера 1С:Предприятия». При этом рабочие процессы пересоздаются и серверный кэш очищается.

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

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

Способы очистки кэша

Удаление папок кэша вручную

Надёжно и точечно; требует доступа к профилю пользователя и понимания структуры папок

Пересоздание базы в списке запуска

Просто и безопасно; старый кэш остаётся на диске и занимает место

Параметр /ClearCache

Быстро для конкретной базы; неудобно массово и требует настройки ярлыков

Перезапуск агента сервера

Решает проблемы серверного кэша; разрывает сеансы всех пользователей

Типичные ошибки при работе с кэшем

Типичные ошибки
01
Удаление каталога самой базы вместо папки кэша — потеря данных; кэш лежит в профиле пользователя, а не в каталоге ИБ
02
Очистка кэша при открытых сеансах — платформа держит файлы, очистка неполная или приводит к новым ошибкам
03
Очистка кэша вместо исправления реальной ошибки в коде — симптом уходит ненадолго и возвращается
04
Массовая очистка на всех компьютерах при серверной проблеме — потраченное время без результата
05
Игнорирование резервной копии перед любыми манипуляциями — риск остаться без точки восстановления

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

Профилактика и снижение риска повреждений

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

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

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

Как проверить результат очистки

Запуск базы после очистки
Норма

Первый запуск чуть медленнее, ошибок нет

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

Ошибка воспроизводится сразу — причина не в кэше

Поведение у других пользователей
Норма

У всех работает одинаково корректно

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

Ошибка у всех — проверяйте серверный кэш или конфигурацию

Открытие проблемной формы
Норма

Форма открывается, данные актуальны

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

Старые данные или падение — нужна диагностика кода и журнала регистрации

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

Очистка кэша удалит мои данные или настройки?

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

Как понять, кэш какой базы лежит в конкретной папке?

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

Почему после очистки кэша 1С стала запускаться медленнее?

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

Нужно ли чистить кэш после каждого обновления конфигурации?

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

Можно ли автоматизировать очистку кэша для всех пользователей?

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

Ошибка «Ошибка формата потока» — это всегда кэш?

Чаще всего да, это повреждённый клиентский кэш метаданных, и очистка помогает. Но в клиент-серверном режиме та же ошибка может указывать на проблемы серверного кэша или повреждённые данные в базе. Если после очистки локального кэша ошибка осталась — перезапустите сервер 1С и проверьте базу утилитой chdbfl или тестированием и исправлением.

Итог

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

Кэш 1С ускоряет работу, храня локальные копии метаданных и служебных данных. Проблема у одного пользователя — почти всегда клиентский кэш, лечится удалением папок в %APPDATA% и %LOCALAPPDATA% при закрытой программе. Проблема у всех — проверяйте серверный кэш и перезапускайте агент сервера. Чистите кэш по факту ошибки, а не для профилактики, и всегда держите резервную копию.