Каталог решений - Скрипт удаления локального кэша 1С 8.0-8.3

Скрипт удаления локального кэша 1С 8.0-8.3

Скрипт удаления локального кэша 1С 8.0-8.3

В наличии

После динамического обновления часто возникает ситуация, когда при перезапуске клиента он подхватывает не актуальную версию конфигурации с сервера, в результате чего могут появляться совершенно непредсказуемые глюки.
Данный скрипт очищает локальный кэш 1С и при следующем запуске 1С подхватывает актуальную версию конфигурации. Скрипт настроен на удаление кешей 8.0-8.2 платформ. Работает только если на локали нет ни одного запущенного процесса 1С 8.

Категория:

Описание

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

Данный скрипт очищает локальный кэш 1С и при следующем запуске 1С подхватывает актуальную версию конфигурации. Скрипт настроен на удаление кешей 8.0-8.2 платформ. Работает только если на локали нет ни одного запущенного процесса 1С 8.

Причиной написания данного скрипта послужило то, что параметр /ClearCache часто не решает проблему.

Для использования необходимо создать текстовый файл, скопировать в него текст скрипта и изменить его расширение с *.txt на *.js.

 

Реализовано на  VBScript:

Текст скрипта:

 

Dim FSO 

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

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

WScript.Echo «OK»

 

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

 

Реализовано на JScript. 

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

Текст скрипта:

 

var FSO = new ActiveXObject(«Scripting.FileSystemObject»);

var WshShell = new ActiveXObject(«WScript.Shell»);

var colEnvVars = WshShell.Environment(«Process»);

 

var sErrors = false;

 

var FolderName1 = «\\Local Settings\\Application Data\\1C\\1Cv82»;

var FolderName2 = «\\Local Settings\\Application Data\\1C\\1Cv81»;

var FolderName3 = «\\Local Settings\\Application Data\\1C\\1Cv80»;

var FolderName4 = «\\Local Settings\\Application Data\\1C\\1Cv8»;

 

 

if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName1))

    GoSubFolders(colEnvVars(«userprofile») + FolderName1);

if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName2))

    GoSubFolders(colEnvVars(«userprofile») + FolderName2);

if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName3))

    GoSubFolders(colEnvVars(«userprofile») + FolderName3);

if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName4))

    GoSubFolders(colEnvVars(«userprofile») + FolderName4);

 

 

if (!sErrors)

    WScript.Echo(«Обновление кэша прошло успешно»);

else

    WScript.Echo(«Возникли ошибки. Возможно запущена 1С»);

 

function DelFile(sFILE)

{

    try

    {

        FSO.DeleteFile(sFILE, True);

    }

    catch(e)

    {

        sErrors = true;

    }

}

 

function GetFolder(sFOLDER)

{

    try

    {

        return FSO.GetFolder(sFOLDER);

    }

    catch(e)

    {

        sErrors = true;

    }

}

 

function GoSubFolders(objDIR)

{

    ProcessFilesInFolder(objDIR);

    var sFolder = GetFolder(objDIR);

    var subFlds = new Enumerator(sFolder.SubFolders);

    for (; !subFlds.atEnd(); subFlds.moveNext())

    {

        GoSubFolders(subFlds.item());

    }

    try

    {

        FSO.DeleteFolder(sFolder, true);

    }

    catch(e)

    {

        sErrors = true;

    }

}

 

function ProcessFilesInFolder(objDIR)

{

    var sFolder = GetFolder(objDIR);

    var subFiles = new Enumerator(sFolder.Files);

    for (; !subFiles.atEnd(); subFiles.moveNext())

    {

        DelFile(subFiles.item());

    }

}

 

has been added to your cart:
Оформление заказа