Скрипт запуска 1С 8 с принудительным обновлением кэша конфигурации 8.0-8.3 (замена 1cestart.exe)
Скрипт служит для борьбы с глюками 8-ой версии после динамического обновления. Данный скрипт очищает локальный кэш 1С при каждом запуске платформы. Для использования необходимо положить его в папку "%appdata%\1C\1CEStart\" и у ярлыка на рабочем столе пользователей изменить расширение файла с ".exe" на ".js". Скрипт работает на всех версиях Windows включая Windows 7 (x64), Server 2008 (R2), Server 2012 (R2).
- Описание
- Подробнее
Описание
Скрипт служит для борьбы с глюками 8-ой версии после динамического обновления. Данный скрипт очищает локальный кэш 1С при каждом запуске платформы. Для использования необходимо положить его в папку «%appdata%\1C\1CEStart\» и у ярлыка на рабочем столе пользователей изменить расширение файла с «.exe» на «.js». Скрипт работает на всех версиях Windows включая Windows 7 и Server 2008.
Для использования необходимо создать текстовый файл, скопировать в него текст скрипта и изменить его расширение с *.txt на *.js.
Текст скрипта (1cestart.js):
var FSO = new ActiveXObject(«Scripting.FileSystemObject»);
var WshShell = new ActiveXObject(«WScript.Shell»);
var colEnvVars = WshShell.Environment(«Process»);
var sErrors = false;
var WshSysEnv = WshShell.Environment;
var WshUserEnv = WshShell.Environment(«USER»);
//Устанавливаем переменную окружения для того, чтобы Windows не спрашивала
//про сертификат безопасности, если скрипт будет запускаться из сетевой папки
//——————————————————————
WshUserEnv(«SEE_MASK_NOZONECHECKS») = 1;
//——————————————————————
//Очищаем кэш
//——————————————————————
var FolderName1 = «\\AppData\\Local\\1C\\1Cv8»;
var FolderName2 = «\\AppData\\Roaming\\1C\\1Cv8»;
var FolderName3 = «\\AppData\\Local\\1C\\1Cv80»;
var FolderName4 = «\\AppData\\Roaming\\1C\\1Cv80»;
var FolderName5 = «\\AppData\\Local\\1C\\1Cv81»;
var FolderName6 = «\\AppData\\Roaming\\1C\\1Cv81»;
var FolderName7 = «\\AppData\\Local\\1C\\1Cv82»;
var FolderName8 = «\\AppData\\Roaming\\1C\\1Cv82»;
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 (FSO.FolderExists(colEnvVars(«userprofile») + FolderName5))
GoSubFolders(colEnvVars(«userprofile») + FolderName5);
if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName6))
GoSubFolders(colEnvVars(«userprofile») + FolderName6);
if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName7))
GoSubFolders(colEnvVars(«userprofile») + FolderName7);
if (FSO.FolderExists(colEnvVars(«userprofile») + FolderName8))
GoSubFolders(colEnvVars(«userprofile») + FolderName8);
//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());
}
}
//——————————————————————
//Запускаем 1С
//——————————————————————
WshShell.Run(«1cestart.exe»);

