Установка обновлений / Неинтерактивное обновление конфигурации / Содержимое макета
файл ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// updater.js
function include (fileName) {
var stream = new ActiveXObject('Adodb.Stream')
stream.CharSet = 'UTF-16'
stream.Type = 2 // adTypeText
stream.Open()
stream.LoadFromFile(fileName)
var code = stream.readText()
stream.Close()
return code
}
var oHTA
var scriptFileName = WScript.ScriptFullName
var scriptDir = scriptFileName.substr(0, scriptFileName.lastIndexOf('\\') + 1)
eval(include(scriptDir + 'helpers.js'))
eval(include(scriptDir + 'main.js'))
// Вывести сообщение о ходе обновления
function setProgress (statusText) {
statusText += '...'
log(statusText)
}
function checkResult (ret) {
if (ret === 0) {
return
}
log(format('[СообщениеЗаставкиОшибкаШага]', ret), true)
finalize()
ClearTempFiles()
WScript.Quit(ret)
}
setProgress('[СообщениеИнициализация]')
var ret = initialize()
checkResult(ret)
setProgress('[СообщениеЗавершениеРаботыПользователей]')
ret = disconnectAndBlockUsers()
checkResult(ret)
if (createBackup) {
setProgress('[СообщениеСозданиеРезервнойКопииБазы]')
ret = backupDB()
checkResult(ret)
}
if (executeDeferredHandlers) {
setProgress('[СообщениеВыполнениеОтложенныхОбработчиковОбновления]')
ret = runDeferredHandlers()
checkResult(ret)
}
if (cfgFileNames.length === 0) {
if (updateConfiguration){
setProgress('[СообщениеОбновлениеКонфигурации]')
ret = updateDbCfg()
checkResult(ret)
}
if (loadExtentions){
setProgress('[СообщениеЗагрузкаРасширений]')
ret = executeLoadExt()
checkResult(ret)
}
} else {
for (var cfgFileIndex = 0; cfgFileIndex < cfgFileNames.length; cfgFileIndex++) {
var fileProperties = GetRequired(cfgFileNames[cfgFileIndex])
setProgress(format('[СообщениеЗагрузкаФайлаОбновлений]', cfgFileIndex + 1, cfgFileNames.length))
ret = updateCfg(fileProperties.filePath)
// Если не удалось загрузить файл, возможно конфигурация не находится на поддержке.
if (ret !== 0) {
ret = loadCfg(fileProperties.filePath)
}
checkResult(ret)
setProgress(format('[СообщениеПараметрыОбновленияКонфигурации]', cfgFileIndex + 1, cfgFileNames.length))
ret = updateDbCfg()
checkResult(ret)
if (fileProperties.requiredVersion || (cfgFileIndex + 1 === cfgFileNames.length)) {
setProgress(format('[СообщениеВыполнениеОбработчиковОбновления]', cfgFileIndex + 1, cfgFileNames.length))
ret = executeUpdate(cfgFileIndex + 1 === cfgFileNames.length)
checkResult(ret)
}
}
}
setProgress('[СообщениеРазрешениеПодключений]')
ret = allowConnections()
checkResult(ret)
setProgress('[СообщениеЗавершениеОбновления]')
finalize(true)
ClearTempFiles()