Очистка кэша 1С Предприятие 8.3 — одна из сервисных функций, восстанавливающих работоспособность программы. Операция достаточно востребованная, поэтому в публикации дается исчерпывающий ответ на вопрос «Как очистить кэш 1С Предприятие 8.3?».
Очистка кэша 1С — очень эффективное решение многих некорректностей платформы, таких как: «поехали» формы элементов 1С, отчет формируется с ошибкой, появляется окно «ошибка формата потока» и многих других. Поэтому этот технический прием всегда должен быть «под рукой» как у администратора 1С, так и у обычного пользователя 1С программ. Для реализации этого, предлагаю обсудить сегодня следующие вопросы:
Позвонив в техподдержку компании или к партнерам 1С по вопросу некорректной работы 1С Предприятие 8.3 одним из предложенных решений (вместе с тестированием и исправлением информационной базы 1С Предприятие 8.3) будет очистка кэша 1С. Если вы не знаете, что такое «кэш 1С» и зачем он нужен, то вкратце расскажу.
Кэш 1С Предприятие 8.3 — это область на компьютере, где платформа 1С Предприятие 8.3 сохраняет файлы с служебной информацией.
Содержание
- Какая служебная информация сохраняется в кэше 1С
- Как перейти к папкам кэша 1С Предприятие 8.3
- Как очистить кэш 1С Предприятие 8.3 самостоятельно
- Как очистить кэш 1С Предприятие 8.3 через пакетный файл .bat
- Очистка кэша 1С8 на RDS ферме, за минуту
- Очистка кэша 1С8 на RDS ферме, за минуту
- Для чего и что лежит в кэше 1С?
- Папки расположения кэша 1С
- Для чего чистить кэш 1С?
- Методы очистки кэша 1С
- Ручная очистка папки с кэшем 1С
- Удаление кэша 1C предприятия через PowerShell
- Удаление кэша 1C предприятия через CMD
- Удаление кэша 1C предприятия через JavaScript
- Очистка кэша 1С через OneCleaner.exe
- Удаление кэша 1C предприятия через редактирование информационной базы
- Сценарии удаления кэша с групповой политикой
- Самые быстрые и простые способы очистки кэша
Какая служебная информация сохраняется в кэше 1С
Во время работы 1С Предприятие существует необходимость сохранять массивы служебной информацией, такой как расположение окон, настройки шрифтов, цветов, отборов и многое другое заданное пользователем во время работы с конфигурациями 1С, а так же элементы необходимые для ускорения работы 1С Предприятие, служебные данные по работе пользователя и т.д.
Соответственно, если информация в кэше 1С имеет некорректный формат, то конфигурации 1С Предприятие 8.3 будут работать некорректно. Некорректные данные могут появиться, например, при отключении электричества во время записи данных в кэш 1С (при этом часть данных не запишется), из-за образовавшихся сбойных участков жесткого диска в связи с его физическим устареванием и по множеству других причин.
Как перейти к папкам кэша 1С Предприятие 8.3
Кэш 1С Предприятие 8.3 хранится в профиле пользователя в следующих папках:
- %userprofile%AppDataRoaming1C1Cv82
- %userprofile%AppDataRoaming1C1Cv8
- %userprofile%AppDataLocal1C1cv82
- %userprofile%AppDataLocal1C1cv8
Константа %userprofile% — содержит путь до профиля пользователя в ОС Windows, поэтому можно вбить в проводнике адрес до кэша 1С, как он указан выше, ОС Windows вас поймет и перейдет в нужную папку.

Некоторых папок может не существовать, поскольку они относятся к разным версиям платформ. Самый верный способ поиска папок с кэшами — это перейти в папку «…1С«, кэши будут храниться в папках, начинающихся с «1cv8«.

Что бы перейти в профиль самостоятельно, в Проводнике Windows следуем по пути:
С:ПользователиИмяПользователя
отсюда необходимо перейти в папку «AppData».
ВНИМАНИЕ! Папка «AppData» скрыта, что бы перейти в неё из профиля пользователя, необходимо добавить к адресной строке «AppData» вручную и нажать Enter.

Из папки «AppData» переходим в папки с кэшем 1С Предприятие, в соответствии с описанием выше.
Как очистить кэш 1С Предприятие 8.3 самостоятельно
Кэш очищается прямым удалением служебных файлов из папок хранения кэша 1C Предприятие 8.3.
Т.е. необходимо в папках «1Cv8» и «1Cv82» удалить все файлы.

Эта операция не нанесет никакого вреда работе конфигурациям 1С Предприятие 8.3, все необходимые служебные файлы кэша 1С платформа пересоздаст при очередном запуске конфигураций 1С.
Что бы облегчить процедуру удаления кэшей 1С, можно создать пакетный файл .bat.
Как очистить кэш 1С Предприятие 8.3 через пакетный файл .bat
Файл *.bat выполняет последовательно команды ОС Windows записанные в нем. Что бы облегчить процедуру удаления воспользуемся командой rd (удалить директорию)
Очистка кэша 1С8 на RDS ферме, за минуту
Очистка кэша 1С8 на RDS ферме, за минуту
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами научились при в ходя пользователя на терминальный стол, подключать ему нужный список баз 1С, что согласитесь очень удобная вещь. Сегодня я с вами хочу поговорить про очистку кэша 1С у конкретного пользователя или у всех сразу, при входе в систему или в ручном режиме. Мы рассмотрим, что из себя представляет кэш и его назначение. Тема для меня была в новинку, поэтому я решил ее сохранить для себя, чтобы легко к ней можно было обратиться в будущем.
Для чего и что лежит в кэше 1С?
Уверен, что подавляющее число людей, даже те кто далек от IT технологий, понимает смысл слова кэширование, так как оно применяется очень часто в разных продуктах. Кэширование — это механизм ускорения приложения, создающий в памяти устройства, дисках локальные копии данных к которым пользователь обращается чаще всего. Благодаря такой конструкции пользователь считывает их у себя локально быстрее, нежели он бы обратился к серверу. Благодаря этому вы уменьшаете нагрузку на сеть, на удаленный сервер, который может обработать большее количество клиентов, например у меня на сайте настроено кэширование, которое позволяет увеличь его скорость в разы.
Когда пользователь запускает "1C Предприятие" и открывает нужную ему базу данных, у него в профиле создается папка с файлами в которой будет складываться кэш 1С. В кэш могут попадать настройки шрифта, цвет, расположение окон и тому подобное, элементы ускорения работы 1С, какие-то служебные данные.
Папки расположения кэша 1С
Для того, чтобы посмотреть содержимое кэша вам необходимо перейти вот по таки путям:
Для версии 1С 8.2
- %userprofile%AppDataRoaming1C1Cv82
- %userprofile%AppDataLocal1C1cv82
Для версии 1С 8.3

обратите внимание, что чаще всего кэш выглядит вот так некий GUID (589e052f-cbeb-41bf-a459-ebcfa8f5e27d) в виде папки, в которой лежит файл формата .pfl.

Для чего чистить кэш 1С?
К сожалению 1С, как и практически любой другой софт не могут работать всегда корректно и без ошибок. Я по несколько раз в неделю могу наблюдать случаи, что "1C Предприятие" неправильно работает с кэшированной конфигурацией, в результате чего у вас будет неадекватное поведение в данной конфигурации.
Лично я искал решение (Гипотеза) с зависанием терминального сервера, в логах которого я наблюдал вот такие ошибки:

1000
2
100
0x80000000000000
2819141
Application
—
1cv8.exe
8.3.14.1630
5c6e4d23
wbase83.dll
8.3.14.1630
5c6e4bb7
c0000005
00006844
7834
01d536fbd27b0449
C:Program Files (x86)1cv88.3.14.1630in1cv8.exe
C:Program Files (x86)1cv88.3.14.1630inwbase83.dll
638a47cf-a2f1-11e9-8156-0050568dcf1e

Методы очистки кэша 1С
Существует несколько методов и сценариев, которые можно использовать при работе с приложением:
- Ручная очистка папки с кэшем
- Очистка кэша пользователя 1с с помощью PowerShell скрипта
- Очистка с помощью скрипта cmd
- Через редактирование информационной базы
- Через утилиту OneCleaner.exe
Несколько сценариев из практики:
- Использование скрипта при входе в систему, тут не важно будет это cmd или PowerShell
- Создание у пользователя ярлыка или скопированного файла, например на рабочем столе для ручного, самостоятельного запуска.
Ручная очистка папки с кэшем 1С
- Открываем по очереди папки представленные выше в моем списке,
- закрываем все версии "1C Предприятие" и
- удаляем папки с GUID. Как можете заметить, что данный метод очень трудоемкий для пользователя, так как требует много действий. Я его показал, чтобы вы поняли азу процесса.

Удаление кэша 1C предприятия через PowerShell
PowerShell это инструмент номер 1 в руках системного администратора, благодаря ему вы можете автоматизировать огромное количество задач.
- Очистка папок с кэшем для одного пользователя:
- Очистка кэша для всех пользователей, например для RDS фермы
Благодаря PowerShell вы можете выполнить более правильное удаление, так как затрагиваются только папки с кэшем GUID, пользовательские настройки остаются, в отличии от CMD.
Удаление кэша 1C предприятия через CMD
Командная строка, это один из самых старых и действенных методов по выполнению различных сценариев в Windows, пока даже PowerShell не может ее полностью заменить, например он не умеет делать команду ipconfig /release или ipconfig /renew. Для командной строки есть такие сценарии:
If Exist %USERPROFILE%AppDataRoaming1C1Cv82 (
Удаление кэша 1C предприятия через JavaScript
WScript.Echo("Будет выполнена очистка кэша 1с");
var _fso = new ActiveXObject("Scripting.Filesystemobject");
var _wShell = new ActiveXObject("WScript.Shell");
var _wshNetwork = new ActiveXObject("WScript.Network");
var wmi = "winmgmts:!\\.\root\CIMV2";
var _wmi = GetObject(wmi);
var _win_ver = _wShell.ExpandEnvironmentStrings(_wShell.RegRead("HKEY_LOCAL _MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion"));
var _profiles_path = _wShell.ExpandEnvironmentStrings(_wShell.RegRead("HKEY _LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ProfilesDirectory"))
var _user_profile = _wShell.ExpandEnvironmentStrings("%USERPROFILE%");
var _clear_all = _parse_bool_argument("ClearAll");
var _p ;
var stop_1cv8 = ‘cmd /c taskkill.exe /f /im 1cv8*’;
var stop_1cestart = ‘cmd /c taskkill.exe /f /im 1cestart.exe’;
var stop_1c_part = ‘cmd /c taskkill.exe /f /pid ‘
var _sel_logged_users = "SELECT * FROM Win32_LoggedOnUser";
var _sel_sesn_prcs = "SELECT * FROM Win32_SessionProcess";
var _sel_prcs_by_p ;
var vbYesNo = 4;
var vbYes = 6;
var exceptDirectories = ["1CEStart","Licence 2.0","tmplts"];
var exceptFiles = ["LOCATION.CFG","1CV8STRT.PFL","APPSRVRS.LST","IBASES.V8I"];
if(_win_ver == "5.1") <
var user_app_1c = "\Application Data\1C"
var user_lcl_1c = "\Local Settings\1C"
>else <
var user_app_1c = "\AppData\Roaming\1C"
var user_lcl_1c = "\AppData\Local\1C";
>
//киляем процессы 1с
log_w("Started by "+_wshNetwork.UserDomain+"\"+_wshNetwork.UserName);
if(_clear_all) <
log_w("Очищаю кэш 1С для всех профилей");
if(!_parse_bool_argument("DontClose1cClient")) <
log_w("Завершаю работу всех клиентов 1С");
RunAndRead(stop_1cv8);
RunAndRead(stop_1cestart);
>
_profiles = new Enumerator(_fso.GetFolder(_profiles_path).SubFolders);
for (;!_profiles.atEnd(); _profiles.moveNext()) <
_clean_profile(_profiles.item());
>
>else <
log_w("Очищаю кэш текущего пользователя");
for(var logged_users = new Enumerator(_wmi.ExecQuery(_sel_logged_users));!logged_users.atEnd(); logged_users.moveNext()) <
var acc = logged_users.item().Antecedent;
var logon_ > var _logged_user_rexp = eval("/"+_wshNetwork.UserName+"/gi");
if(_logged_user_rexp.test(acc)) <
for(var sess_prcs = new Enumerator(_wmi.ExecQuery(_sel_sesn_prcs));!sess_prcs.atEnd(); sess_prcs.moveNext()) <
var p1 = sess_prcs.item().Antecedent;
var p2 = sess_prcs.item().Dependent;
var _p /gi;
if(p1 == logon_id) <
_p ;
>
>
//WScript.Echo(logon_id);
>
>
_p )
//WScript.Echo(_pids);
var _sel_only_my_1c = _sel_prcs_by_pid+_pids+")";
var c1s = new Enumerator(_wmi.ExecQuery(_sel_only_my_1c));
if((!c1s.atEnd())&&(_wShell.popup("Для продолжения необходимо закрыть 1с. Продолжаем?",0,"Подтверждение",vbYesNo)==vbYes)) <
log_w("Получено согласие на закртие клиентов 1С текущего пользователя");
for(;!c1s.atEnd();c1s.moveNext()) <
c1s_cl = c1s.item();
if(!_parse_bool_argument("DontClose1cClient")) <
cmd = stop_1c_part+c1s_cl.ProcessID;
log_w("Завершаю "+cmd);
RunAndRead(cmd);
>
>
>
_clean_profile(_user_profile);
>
WScript.Echo("Кэш очищен");
function _parse_bool_argument(pa_arg_name) <
var pa_string = "";
for(var pa_i = 0; pa_i "’+rar_outname+’"’;
rar_VSH.run(rar_str, 0, true);
if(rar_FSO.fileexists(rar_outname)) <
if(rar_FSO.getfile(rar_outname).size>0) <
var rar_in = rar_FSO.opentextfile(rar_outname);
var rar_ret = rar_in.readall();
rar_in.close();
>
else
rar_FSO.deletefile(rar_outname);
>else
rar_FSO = null;
rar_VSH = null;
rar_outname = null;
rar_str = null;
rar_in = null;
return rar_ret.replace(/^
|(
)<2,>|
$/gi,"");
>
function _clean_profile(cp_path) <
if(_fso.folderexists(cp_path+"\"+user_app_1c)) <
ClearSubFolders(cp_path+"\"+user_app_1c)
>
if(_fso.folderexists(cp_path+"\"+user_lcl_1c)) <
ClearSubFolders(cp_path+"\"+user_lcl_1c)
>
>
function ClearSubFolders(objFolder) <
var subfolder;
var filename;
var csf_subfolders = new Enumerator(_fso.GetFolder(objFolder).SubFolders);
for(;!csf_subfolders.atEnd();csf_subfolders.moveNext()) <
subfolder = csf_subfolders.item()
if(!in_array(subfolder.name,exceptDirectories)) <
var sf_path = subfolder.Path;
log_w("Очищаю "+sf_path);
ClearSubFolders(sf_path)
try <
if(/1cv8d*/gi.test(subfolder.Name)) <
RunAndRead(‘cmd /c rmdir "’+sf_path+’"’)
>else <
RunAndRead(‘cmd /c rmdir /S /Q "’+sf_path+’"’)
>
>catch(e) <
log_w("Не смог удалить "+sf_path);
>
>else <
log_w(subfolder.Path + " в списке исключений");
>
>
var csf_files = new Enumerator(_fso.GetFolder(objFolder).Files)
for(;!csf_files.atEnd();csf_files.moveNext()) <
var ffile = csf_files.item();
var fname = ffile.Path;
if(!in_array(ffile.name,exceptFiles)) <
try <
_fso.deletefile(ffile);
log_w("Удалён "+fname);
>catch(e) <
log_w("Не смог удалить "+fname);
>;
>
>
>
function log_w(lw_text_t) <
return;
var wait_limit = 999;
var wait_count = 0;
var lw_recorded = false
while(!lw_recorded) <
if(wait_count 9)?dateObj.getMonth()+1:"0"+(dateObj.getMonth()+1))+"."
+((dateObj.getDate()>9)?dateObj.getDate():"0"+dateObj.getDate())+"-"
+((dateObj.getHours()>9)?dateObj.getHours():"0"+dateObj.getHours())+":"
+((dateObj.getMinutes()>9)?dateObj.getMinutes():"0"+dateObj.getMinutes())+":"
+((dateObj.getSeconds()>9)?dateObj.getSeconds():"0"+dateObj.getSeconds())+":"
+((dateObj.getMilliseconds()>99)?dateObj.getMilliseconds():((dateObj.getMilliseconds()>9)?"0"+dateObj.getMilliseconds():"00"+dateObj.getMilliseconds()))+"="
+lw_text_t);
lw_log_file.close();
lw_log_file = null;
lw_fso = null;
lw_log = null;
dateObj = null;
lw_recorded = true;
>
catch(e) <
WScript.Sleep(100);
wait_count++;
lw_recorded = false;
>
>
else <
WScript.Echo("Не смог записать сообщение "+lw_text_t+"
в файл "+WScript.ScriptFullName+".log");
lw_recorded = true;
>
>
>
Очистка кэша 1С через OneCleaner.exe
OneCleaner.exe — это удобная, бесплатная утилита, которая поможет вам легко удалять некорректный кэш.
Запустив OneCleaner.exe она вам на вкладке "Кэш" покажет, что можно удалить, для действия нажимаем соответствующую кнопку.

Так же утилита может удалять старые платформы 1С, если потребуется, в любом случае полезная вещь.

Удаление кэша 1C предприятия через редактирование информационной базы
Необходимо в дополнительных параметрах запуска (в списке баз кнопка Изменить, последняя закладка) прописать команду /ClearCache. Пример использования:

Сценарии удаления кэша с групповой политикой
Как я и писал у вас два варианта, полная автоматизация при входе пользователя или выходе, минус в том что вы создадите большую нагрузку на сервер, но уменьшите возможные проблемы с работой платформы. Для этого готовим или cmd скрипт или PowerShell, создаем групповую политику для пользователя, не забываем убрать 5-ти минутную задержку выполнения скрипта.


Мне же больше по душе, это либо преобразовать скрипт PowerShell в EXE файл, скопировать через групповые политики на рабочий стол пользователя, чтобы он потом его легко сам запускал в нужный момент, так же подойдет и копирование bat файла или javascrip, это не важно, главное, что пользователь сможет сам его запустить. Как копировать файлы через групповую политику читаем по ссылке.
Не редко мы встречаем такие ситуации, что после обновления конфигурации 1С у некоторых пользователей начинают появляться необъяснимые ошибки работы программы. На одном компьютере может работать обновленный код, а на другом старый. Для решения данной проблемы в первую очередь необходимо очистить кэш 1С в 8.3.
Дело в том, что в процессе работы большинство программ, в том числе и 1С автоматически создает временный буфер для быстрого доступа с наиболее часто используемой информацией. В случае с 1С, файлы конфигурации подгружаются из кэша, что существенно ускоряет работу с программой. При возникновении каких-либо сбоев кэш обрабатывается не правильно, что и приводит к некорректной работе программы.
Помимо прочего, очистка кэша является одним из первых способов устранения ошибки формата потока данных.
Самые быстрые и простые способы очистки кэша
Важно знать, что перед очисткой кэша необходимо выйти из 1С!
После очистки кэша автоматически сбросятся введенные ранее имена пользователей во всех информационных базах. В режиме конфигуратора будет необходимо заново открывать конфигурацию базы данных.
1 способ — выполнить скрипт
Данный способ очистки кеша будет в первую очередь полезен администратором и сотрудникам технической поддержки, к которым часто обращаются пользователи с различными проблемами.
Вам будет необходимо создать в блокноте файл с текстом:
@echo off
@FOR /D %%i in («%userprofile%AppDataLocal1C1Cv8. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%AppDataLocal1C1Cv81. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%AppDataLocal1C1Cv82. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%AppDataRoaming1C1Cv8. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%AppDataRoaming1C1Cv81. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%AppDataRoaming1C1Cv82. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Application Data1C1Cv8. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Application Data1C1Cv81. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Application Data1C1Cv82. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Local SettingsApplication Data1C1Cv8. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Local SettingsApplication Data1C1Cv81. -. -. -. -. ») do rd /s /q «%%i»
@FOR /D %%i in («%userprofile%Local SettingsApplication Data1C1Cv82. -. -. -. -. ») do rd /s /q «%%i»
и сохранить его в файл с форматом .bat. Особо ленивые могут скачать его тут (замените расширение файла с .txt на .bat).
Перед запуском bat-файла для очистки кэша 1С не забудьте выйти из 1С.
Данный способ хорош тем, что он подходит для операционных систем Windows XP и Windows 7, а так же для всех версий технологической платформы 8.х, ведь кэш у них находится в разных местах.
2 способ — вручную
Если вы хотите почистить кэш вручную, то сначала необходимо определить, где он находится в файловой системе. Вам необходимо очистить сразу 2 папки, которые находятся в разных местах в зависимости от операционной системы и версии технологической платформы 1С.
В Windows XP:
%userprofile%Local SettingsApplication Data1C1Cv82
%userprofile%Application Data1C1Cv82
В Windows 7:
%userprofile%AppDataRoaming1C1Cv82
%userprofile%AppDataLocal1C1Cv82
Всерверныхоперационныхсистемах Windows 2008
C:Users AppDataLocal1C
C:Users AppDataRoaming1C

Так же вы можете узнать адрес хранения временных файлов в форме настройки из окна списка информационных баз.
В данном случае получен адрес такого типа:
«C:UsersusernameAppDataRoaming1C1cv8 mplts» и кэш будет находиться по адресу: «C:UsersusernameAppDataRoaming1C1cv8».
После того, как вы перешли в нужные каталоги с кэш-файлами, вам необходимо их очистить. Папки, которые нужно удалить имеют формат «fcb8341b-07bd-48b9-97f4-6d1cfae7f002». Подобные папки выделены красным на рисунке ниже:

При очистке кэша 1С вручную будьте осторожны и не удаляйте ничего лишнего!
3 способ — директива ClearCache
Данный способ подходит для случаев с частым возникновением случаев некорректной работы 1С 8 и суть его заключается в запуске программы с дополнительным параметром «/ClearCache». Параметр указывается при нажатии на кнопку «Изменить…» в списке информационных баз на последней вкладке.

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






