Получить консультацию

3 способа очистки кэша в 1С 8

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

Содержание

Что такое кэш 1С и зачем он нужен?

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

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

Ложка меда в бочке дегтя

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

Что делать?

В одном из двух извечных вопросов «Кто виноват?» и «Что делать?» мы уже разобрались — случается так, что виноват кэш 1С. Теперь разберемся со вторым вопросом — что со всем этим делать?

Чаще всего выручает очистка этого самого кэша для сбойной базы. И сделать это можно несколькими способами

1. Удаление базы из списка и повторное добавление

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

2. Удаление файлов и папок кэша 1С

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

  • в операционных системах начиная с Windows 7 и выше —C:\Users\<ИмяПользователя>\AppData\Roaming\1C и C:\Users\<ИмяПользователя>\AppData\Local\1C в папках, начинающихся с «1cv8»
  • В Windows XP, в каталоге пользователя по адресу Local Settings\Application Data\1C\

Следует учесть, что по умолчанию эти папки могут быть скрыты, и необходимо включить отображение скрытых папок.
В папке «1cv8» вы увидите папки с нечитаемыми названиями — 32-битными идентификаторами баз. Каждой базе, которая была когда-либо прописана у пользователя в списке баз, будет соответствовать отдельная папка кэша. Т.е. даже если у вас в списке баз всего одна база, но ранее вы неоднократно добавляли / удаляли ее, то каталогов кэша 1С может быть много (см. первый пункт).
Если вы пользуетесь несколькими базами, и кэш нужно удалить только у одной из них — вам может помочь отображение папки в виде таблицы — так вы сможете по времени изменения папки определить нужный каталог.
Но в целом эти каталоги можно безболезненно удалять, вреда не будет.

3. Запуск с параметром "/ClearCache"

Это тоже достаточно простой метод очистки кэша 1С. В списке баз в окне запуска 1С выбираем базу, в которой хотим очистить кэш. Жмем кнопку «Изменить», жмем «Далее», и в последнем окне мастера редактирования информационной базы в поле «Дополнительные параметры запуска» пишем параметр «/ClearCache».
Минус у этого способа тоже есть — кэш будет очищаться, и каждый раз создаваться заново при каждом запуске. А это может привести к довольно ощутимым тормозам, если база достаточно тяжелая.
Кроме того, этот способ работает только при запуске тонкого клиента.

Немного автоматизации

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

del “%AppData%\1C\1cv8\*.*” /S /Q
del “%LocalAppData%\1C\1cv8\*.*” /S /Q
rmdir “%AppData%\1C\1cv8” /S /Q
rmdir “%LocalAppData%\1C\1cv8” /S /Q
Есть более «точечные» способы очистки кэша, в интернете можно отыскать множество скриптов, которые удаляют кэш выборочно, оставляя настройки пользователей.

Серверный кэш 1С

В случае, если используется клиент-серверный вариант работы, очистка кэша на клиентском компьютере не всегда устраняет ошибку. В этом случае можно попробовать остановить службу сервера 1С и вручную очистить ряд файлов серверного кэша.
Серверный кэш находится на центральном сервере кластера в папке
<рабочий каталог кластера> / <идентификатор информационной базы> / reg_1541/SNCCNTX

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

  • 1CV8Reg.lst — реестр кластера (в нем хранятся список зарегистрированных ИБ, рабочие сервера и процессы, соответствие кластера и доп. менеджера, список администраторов.)
  • srvribrg.lst — список кластеров (зарегистрированные кластеры и администраторы центрального сервера)
  • 1cv8ftxt — данные полнотекстового поиска. Они лежат на центральном сервере 1с: рабочий каталог кластера-идентификатор информационной базы
  • 1Cv8Log — журнал регистрации базы, файлы *.lgp и *.lgf

На этом все. Удачи в работе!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

17 − тринадцать =

К НАЧАЛУ