|
Очистить КЭШ параметров сеанса | ☑ | ||
---|---|---|---|---|
0
Вуглускр1991
05.04.13
✎
15:21
|
Привет!
Помню, где-то было, 20 минут поиска не помогли. Какой процедурой это делается? Я меняю в УТ10 текущегоПользователя. |
|||
1
Trotter
05.04.13
✎
15:23
|
Как очистить кэш 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 А самый простой способ найти папки – это использовать поиск по системе(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 — он содержит список баз |
|||
2
Trotter
05.04.13
✎
15:23
|
или это не подходит ?
|
|||
3
Вуглускр1991
05.04.13
✎
15:27
|
(2) Спасибо, скорее нет, у меня впечатление такое, что 1С услышали разработчиков и сделали такую процедуру, чтобы мы не лазили туда.
|
|||
4
Trotter
05.04.13
✎
15:29
|
(3) вот стырил
// Процедура создает и запускает vbs файл, который производит очистку кэша. // 1С и презапускает программу // Процедура ОчиститьКэшИПерезапуститьПрограмму() Экспорт СкриптФайл = Новый ТекстовыйДокумент; СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы(); СтрокаЗапускаПрограммы = КаталогПрограммы(); ПутьКФайлуСкрипта = КаталогВременныхФайлов() + "CacheCleaning.vbs"; ПутьКФайлу1С = СтрокаЗапускаПрограммы + "1cv8.exe"; ИмяСервера = ""; ИмяБазы = ""; Путь = ""; КомандаЗапуска = ""; Один = """"; Два = """"""; Три = """"""""; Если (Найти(СтрокаСоединенияСБД, "File=") <> 0) Тогда Путь = СтрЗаменить(СтрокаСоединенияСБД, "File=", ""); Путь = Лев(Путь, СтрДлина(Путь)-1); КомандаЗапуска = "WshShell.Run " + Три + ПутьКФайлу1С + Два + " ENTERPRISE /F" + Путь + Один + ", 1, true"; Иначе МассивПараметровСоединения = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаСоединенияИнформационнойБазы(), ";"); МассивПараметровСервера = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(МассивПараметровСоединения[0], """"); ИмяСервера = СокрЛП(МассивПараметровСервера[1]); МассивПараметровБазы = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(МассивПараметровСоединения[1], """"); ИмяБазы = СокрЛП(МассивПараметровБазы[1]); КомандаЗапуска = "WshShell.Run " + Три + ПутьКФайлу1С + Два + " ENTERPRISE /S" + ИмяСервера + "\" + ИмяБазы + Один + ", 1, true"; КонецЕсли; // Если пользователь не хочет перезапускать сеанс 1С, то после выполнения скрипта ничего не делаем. Если Не глЗначениеПеременной("глПерезапускатьСеансРаботыСПрограммой") Тогда КомандаЗапуска = ""; КонецЕсли; СкриптФайл.УстановитьТекст("WScript.Sleep(5000) | |Dim FSO |Set FSO = WScript.CreateObject(""Scripting.FileSystemObject"") |Set WshShell = WScript.CreateObject(""WScript.Shell"") |Set colEnvVars = WshShell.Environment(""Process"") | |strComputer = ""."" |Set objWMIService = GetObject(""winmgmts:"" _ |& ""{impersonationLevel=impersonate}!\\"" _ |& strComputer & ""\root\cimv2"") | |Set colProcesses = objWMIService.ExecQuery( _ |""S_elect * From Win32_Process "" _ |& ""Where Name = '1cv8.exe'"") | |For Each objProcess In colProcesses | objProcess.Terminate |Next | |WScript.Sleep(1000) | |FolderName1 = ""\Local Settings\Application Data\1C\1Cv82"" |FolderName2 = ""\Local Settings\Application Data\1C\1Cv81"" |FolderName3 = ""\appdata\Local\1C\1Cv82"" |FolderName4 = ""\appdata\Local\1C\1Cv81"" | |If FSO.FolderExists(colEnvVars(""userprofile"") & FolderName1) Then | GoSubFolders colEnvVars(""userprofile"") & FolderName1 |End If |If FSO.FolderExists(colEnvVars(""userprofile"") & FolderName2) Then |GoSubFolders colEnvVars(""userprofile"") & FolderName2 | End If |If FSO.FolderExists(colEnvVars(""userprofile"") & FolderName3) Then | GoSubFolders colEnvVars(""userprofile"") & FolderName3 |End If |If FSO.FolderExists(colEnvVars(""userprofile"") & FolderName4) Then | GoSubFolders colEnvVars(""userprofile"") & FolderName4 |End If | |" + КомандаЗапуска + " |Set WshShell = Nothing | |Sub DelFile(sFILE) | On Error Resume Next | FSO.DeleteFile sFILE, True | If Err.Number <> 0 Then | Wscript.Echo ""Error deleting file: "" & sFILE | End If |End sub | |Function GetFolder(sFOLDER) | 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 | Wscript.Quit Err.Number | End If |End Function | |Sub GoSubFolders (objDIR) | ProcessFilesInFolder objDIR | Set sFolder = GetFolder(objDIR) | For Each eFolder in sFolder.SubFolders | GoSubFolders eFolder | Next | FSO.DeleteFolder sFolder, True |End Sub | |Sub ProcessFilesInFolder (objDIR) |Set sFolder = GetFolder(objDIR) |For Each objFile in sFolder.Files | DelFile objFile |Next |End Sub"); Попытка СкриптФайл.Записать(ПутьКФайлуСкрипта, КодировкаТекста.Системная); ЗапуститьПриложение(ПутьКФайлуСкрипта); Исключение КонецПопытки; КонецПроцедуры |
|||
5
Вуглускр1991
05.04.13
✎
15:34
|
(4) Круто! И морочно :(
я меняю параметр сеанса в управляемом приложении, которое прилепляю к УТ10. Надеюсь, что я не попаду на процедуры, написанные в 1С, которым могло бы повредить изменение пользователя "на лету". на RLS и ошибки кэша. Пока написал просто: ПараметрыСеанса.ТекущийПользователь = НовПользак; |
|||
6
dmrjan
05.04.13
✎
15:34
|
Я просто создал .CMD
Для чистки temp поместил в автозагрузку Для чистки кэша 1с - на рабочий стол ярлык Очистка temp WinXP del /F /Q /S "%USERPROFILE%\Local Settings\Temp\" Win 7 del /F /Q /S "%USERPROFILE%\AppData\Local\Temp" Очистка кэша 1с Win 7 del /F /Q /S "%USERPROFILE%\AppData\Local\1C\1Cv82" del /F /Q /S "%USERPROFILE%\AppData\Roaming\1C\1Cv82" WinXP del /F /Q /S "%USERPROFILE%\AppData\Local\Temp" |
|||
7
dmrjan
05.04.13
✎
15:35
|
Для ХР наврал.
|
|||
8
Trotter
05.04.13
✎
15:35
|
(7) CMD или BAT ?))
|
|||
9
dmrjan
05.04.13
✎
15:37
|
XP
del /F /Q /S "%USERPROFILE%\Local Settings\Application Data\1C\1Cv82" del /F /Q /S "%USERPROFILE%\Application Data\1C\1Cv82\" Да обозвал .cmd - работает |
|||
10
dmrjan
05.04.13
✎
15:38
|
Единственно - каталоги не чистит, зато под юзером нормально чистит, прав хватает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |