Скрипт очистки кэша 1с
Бывают случаи, когда на данном компьютере пользователя в рабочей базе была старая конфигурация, хотя на любом другом ПК и на сервере она обновилась. Так же может возникать ошибка потока данных. В этих и некоторых других случаях поможет очистка кеша.
В связи с тем, что 1С может быть установлена на различных операционных системах, папка, где хранится кэш, может быть различной.
Для Win XP:
%userprofile%\Local Settings\Application Data\1C\1Cv82
%userprofile%\Application Data\1C\1Cv82
Для Win 7:
%userprofile%\AppData\Roaming\1C\1Cv82
%userprofile%\AppData\Local\1C\1Cv82
Серверные оси Windows 2008
C:\Users\\AppData\Local\1C
C:\Users\\AppData\Roaming\1C
А самый простой способ найти папки – это использовать поиск по системе(win + F) по ключевым словам «1сv81» и/или «1cv82». Нужные нам папки находятся в каталоге пользователя.
Напимер:
C:\Documents and Settings\%userprofile%\Local Settings\Application Data\1C\1Cv81
C:\Documents and Settings\%userprofile% \Local Settings\Application Data\1C\1Cv82
C:\Documents and Settings\%userprofile% \Application Data\1C\1Cv81\
C:\Documents and Settings\%userprofile% \Application Data\1C\1Cv82\
Важно:
1) Кэш хранится в двух папках. Чаще всего эти папки называются «LocalSettings» и «ApplicationData». Обе папки находятся в каталоге пользователя.
2) Формат кэш-файлов выглядит вот так: «0df525c2-1c3e-44be-b852-c7059f17c5aa» или «0f2c4d8f-cc84-4033-8744-1acfa6204474». Удалять необходимо только те папки, у которых такой же формат в названии.
3.) Не удаляйте файл ibases.v8i — он содержит список баз
Можно ли изменить путь кэша метаданных?
Можно. С помощью групповых политик (gpedit.msc) можно переопределить путь профиля пользователя целиком (не только кэш метаданных).
ВАРИАНТЫ АВТОМАТИЗАЦИИ:
1. Доп. ключик командной строки /ClearCache — очистка кэша клиент-серверных вызовов (используется для тонкого и толстого клиентов в режиме 1С:Предприятия).
2. bat / cmd файл:
Код VBS
и текст батника с проверкой на ХР или 7:
Код VBS
3. Процедуру ОчиститьКэшИПерезапуститьПрограмму() создаем в глобальном модуле и вызываем ее когда нужно почистить кэш 1С
Код 1C v 8.х
Что хранится в C:\Documents and Settings\User\Application Data\1C\.
После динамического обновления часто возникает ситуация, когда при перезапуске клиента он подхватывает не актуальную версию конфигурации с сервера, в результате чего могут появляться совершенно непредсказуемые глюки.
Данный скрипт очищает локальный кэш 1С и при следующем запуске 1С подхватывает актуальную версию конфигурации. Скрипт настроен на удаление кешей 8.0-8.2 платформ. Работает только если на локали нет ни одного запущенного процесса 1С 8.
После динамического обновления часто возникает ситуация, когда при перезапуске клиента он подхватывает не актуальную версию конфигурации с сервера, в результате чего могут появляться совершенно непредсказуемые глюки.
Данный скрипт очищает локальный кэш 1С и при следующем запуске 1С подхватывает актуальную версию конфигурации. Скрипт настроен на удаление кешей 8.0-8.2 платформ. Работает только если на локали нет ни одного запущенного процесса 1С 8.
Причиной написания данного скрипта послужило то, что параметр /ClearCache часто не решает проблему.
Для использования необходимо создать текстовый файл, скопировать в него текст скрипта и изменить его расширение с *.txt на *.js.
Реализовано на VBScript:
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set colEnvVars = WshShell.Environment("Process")
FolderName1 = "\Local Settings\Application Data\1C\1Cv82"
FolderName2 = "\Local Settings\Application Data\1C\1Cv81"
FolderName3 = "\Local Settings\Application Data\1C\1Cv80"
FolderName4 = "\Local Settings\Application Data\1C\1Cv8"
If FSO.FolderExists(colEnvVars("userprofile") & FolderName1) Then
GoSubFolders colEnvVars("userprofile") & FolderName1
If FSO.FolderExists(colEnvVars("userprofile") & FolderName2) Then
GoSubFolders colEnvVars("userprofile") & FolderName2
If FSO.FolderExists(colEnvVars("userprofile") & FolderName3) Then
GoSubFolders colEnvVars("userprofile") & FolderName3
If FSO.FolderExists(colEnvVars("userprofile") & FolderName4) Then
GoSubFolders colEnvVars("userprofile") & FolderName4
On Error Resume Next
FSO.DeleteFile sFILE, True
If Err.Number <> 0 Then
Wscript.Echo "Error deleting file: " & sFILE
On Error Resume Next
Set GetFolder = FSO.GetFolder(sFOLDER)
If Err.Number <> 0 Then
Wscript.Echo "Error connecting to folder:" & sFOLDER & VBlf & "[" & Err.Number & "]" & Err.Description
Sub GoSubFolders (objDIR)
Set sFolder = GetFolder(objDIR)
For Each eFolder in sFolder.SubFolders
FSO.DeleteFolder sFolder, True
Sub ProcessFilesInFolder (objDIR)
Set sFolder = GetFolder(objDIR)
For Each objFile in sFolder.Files
Реализовано на JScript.
При возникновении ошибкок при удалении каждый раз не выводится окно с ошибкой, а выводится только в самом конце одно.
Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.
+ Чистит только кэш (настройки остаются целыми)
+ Очищает кэш всех версий 1С 8 (8.0, 8.1, 8.2, 8.3)
+ Без консольных окон
+ Безопасен (очищает кэш только тогда, когда пользователь закрыл все сеансы 1С)
+ Запускается на любой версии Windows
+ Открытый исходный код
В отличии от примитивных batch-файлов, скрипт выполняет проверку на наличие запущенной 1С, если 1С не запущена производит очистку кэша баз 1С.
Скрипт написан на языке "WSH JScript", структурирован и лаконичен, все необходимые параметры выведены наверх исходного кода скрипта в виде строк ресурсов.
".wsf" - это стандартные скрипты ОС Windows, запускаются в любой ОС Windows, точно так же как .".cmd" ,".bat", ".vbs" и ".js".
Исходный код скрипта открыт и может быть просмотрен/отредактирован в любом текстовом редакторе.
При работе скрипта не появляется консольных окон, как в случае использования примитивных batch-файлов, о результатах своей работы скрипт сообщает через окна MessageBox:
Добавлен "скрипт очистки программного кэша 1С 8", его отличие от первого скрипта в том, что он очищает не всю папку кэша, а удаляет только папки "Config" и "ConfigSave" в папках кэша конфигураций.
Добавлен "Скрипт очистки кэша 1С (все пользователи)", его отличие от предыдущих скриптов в том, что он автоматически определяет папку с профилями пользователей, далее выполняет поиск кэшей 1С в профилях всех пользователей и выполняет чистку.
Этот скрипт необходимо запускать под учётной записью администратора, с административными полномочиями, чтобы учётная запись под которой он запущен, имела доступ в профили других пользователей.
Целевая аудитория данного скрипта - администраторы серверов, которым необходимо однократным запуском скрипта почистить кэши 1С всех пользователей терминального сервера.
Доработаны функции проверки наличия запущенной 1С в скрипте очистки кэша 1С 8 и скрипте очистки программного кэша 1С 8. Теперь они не только обнаруживают запущенные процессы 1С, но ещё и проверяют пользователя, которому принадлежит процесс 1С. Запуск очистки кэша теперь блокируется только тогда, когда запущенный процесс 1С принадлежит текущему пользователю. (Без этой доработки возникали проблемы с использованием этих скриптов на терминальных серверах).
Доработаны функции проверки наличия запущенной 1С в скрипте очистки кэша 1С 8 и скрипте очистки программного кэша 1С 8. При работе на некоторых терминальных серверах возникали проблемы с производительностью при определении параметров процессов 1С через WMI. Вместо WMI теперь используется анализ результатов команды Windows "tasklist".
Bat-файлы для очистки кэша 1С 8.3 и 1С 8.2 и другие методы очистки кэша
ФАЙЛЫ 1С 8 → перейти в меню [СТАТЬИ И ИНСТРУКЦИИ]
- Формирование отчетов с ошибками
- Различия данных в одной информационной базе данных у разных пользователей
- Ошибки формата потока
- Ошибки форм
- Аппаратные или программные сбои во время работы базы данных
- Некорректное завершение сеанса
- Динамическое обновление конфигурации
В большинстве случаев - это вина кэша. Кэш 1С Предприятие 8.3 - это директория в операционной системе, где платформа 1С Предприятие 8.3 сохраняет файлы с временными файлами и часто используемой служебной информацией (расположение окон, настройки отчетов, шрифтов, цветов, путей, автозаполнения). Кэширование необходимо для ускорения работы программы.
✔ ВНИМАНИЕ! Перед любыми действиями с рабочей базой данных 1С - рекомендуется создать её резервную копию .
2 метод) Удаляем из списка базу данных. Перезапускаем платформу 1С Предприятие и заново добавляем путь к базе данных. Временные файлы удалены не будут, но из-за того, что мы перепрописали путь к базе, автоматически меняется директория хранения этих самых файлов.
3 метод) Ручная очистка кэша. Запустив платформу 1С Предприятие, нажимаем . Если конфигурация типовая – будет прописан путь. Что-то вроде: C:\Documents and Settings\\Application Data\1C\1cv8. Соответственно, папка с кэшем находиться по адресу: C:\Documents and Settings\\Application Data\1C\1cv8. Закрываем платформу 1С. Удаляем только папки с длинными буквенно-цифровыми кодами.
4 метод) Подходит только для тонкого клиента 1С Предприятие. Запускаем платформу. Нажимаем кнопку (параметры информационной базы). Нажимаем два раза . Наименование и каталог ИБ оставляем без изменения. А в дополнительных параметрах запуска прописываем команду /ClearCache . Нажимаем . Стартуем базу данных 1С.
Нужно учитывать, что данный метод рекомендован только при постоянных проблемах с кэшем и существенно замедляет работу и запуск платформы 1С.
Кэширование используется для ускорения работы программы, в частности, в 1С на компьютер пользователя подгружаются файлы конфигурации, чтобы не запрашивать их с сервера при каждом обращении. Однако очень часто платформа 1С неправильно отрабатывает кэширование конфигурации, и в результате мы получаем неадекватное поведение конфигурации.
Причины некорректного поведения могут быть разные: динамическое обновление конфигурации, программные или аппаратные сбои.
Очистка пользовательского кэша
Cпособ №1 — очистка пользовательского кэша 1С вручную.
Открываем каталог, где хранятся временные файлы 1С, обычно они расположены здесь:
*где username — имя пользователя системы
Если мы перейдем в эти каталоги, то увидим папки:
Способ №2 - очистка пользовательского кэша 1С с помощью скрипта.
Создаем текстовый документ, в который вносим следующий текст:
Сохраняем файл, затем меняем расширение с .txt на .bat
После запуска .bat файла будет произведено удаление папок по маске \. -. -. -. -. для всех пользователей на сервере\пк и не затронет пользовательские настройки в базах и сам список информационных баз.
Очистка серверного кэша 1С
Очистка серверного кэша 1С с помощью скрипта
По-умолчанию для сервера 1С:предприятия x64 по такому пути:
Что выполняется в скрипте:
После запуска файла появится окно консоли со списком операций, которые выполняются, по завершению которых оно закроется.
Читайте также: