-=Белый Медведь=-
Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь
Репутация: 2 Всего: 109
|
Привет всем! Сегодня полдня убил на то, чтобы написать скрипт, который бы бэкапил сколько угодно баз 7.7 и 8.1 в нужные папки. Основные принципы работы: - каждая база 1С бэкапится в отдельную папку
- в этой самой "отдельной папке" накапливаются все бэкапы базы 1с (удаляются старые бэкапы вручную)
- перед выгрузкой баз закрываются все локально запущенные экземпляры 1С версий 7.7 и 8.1
- ведётся максимально подробный лог
- работает с ФАЙЛОВЫМИ базами 1С v 8.1 и любыми базами 1С v 7.7
Прошу протестировать!!! Вот сам скрипт: Код | '******************************************************************** '* Скрипт для резервного копирования (выгрузки) '* данных из базы данных 1С 7.7 и 8.1 '* '* (с) Михаил Медведев. 2009 год. '******************************************************************** Option Explicit ' Требуем обязательного объявления всех переменных
' Описание переменных Dim strLogFileName ' Имя лог-файла Dim BackUpFolder ' "Корневая" папка для архивных коипий Dim BasesList () ' Массив, содержащий список параметров архивируемых баз... Dim MyBase ' Экземпляр объекта "база 1С" Dim I ' Для циклов Dim WshShell, oExec ' Для запуска сторонних программ из скрипта Dim S ' Для обработки текстовых величин
ReDim BasesList(0) ' Очищаем массив, содержащий список параметров архивируемых баз
' Класс, описывающий свойства базы 1С class Base1C Dim Type1C ' Тип 1С: 77 или 81 Dim Program1CName ' Имя исполняемого файла 1С Dim BaseLocationPath ' Путь к базе данных 1С Dim BaseBackUpFolderName ' Имя папки, где будут хранится архивы конкретной базы 1С Dim BaseBackUpFileName ' Имя файла для архива базы (.dt или .zip) без расширения :-) Dim UserName ' Имя пользователя Dim UserPassword ' Пароль пользователя
Private Sub class_Initialize() Type1C = "" Program1CName = "" BaseLocationPath = "" BaseBackUpFolderName = "" BaseBackUpFileName = "" UserName = "" UserPassword = "" End sub End class
'******************************************************************** '******************************************************************** '********************************************************************
' Задаём параметры архивируемых баз данных
' "Корневая" папка для архивных коипий ' Все остальные папки будут создаваться именно в этой корневой папке!!! BackUpFolder = "c:\1Cbackup"
' Задаём параметры первой базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "81" MyBase.Program1CName = "C:\Program Files\1cv81\bin\1cv8.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\11111" MyBase.BaseBackUpFolderName = "Информационная база" MyBase.BaseBackUpFileName = "Информационная база" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
' Задаём параметры второй базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "81" MyBase.Program1CName = "C:\Program Files\1cv81\bin\1cv8.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\22222" MyBase.BaseBackUpFolderName = "базыща" MyBase.BaseBackUpFileName = "базыща" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
' Задаём параметры третьей базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "77" MyBase.Program1CName = "C:\Program Files\1Cv77\BIN\1cv7s.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\33333" MyBase.BaseBackUpFolderName = "семёрка" MyBase.BaseBackUpFileName = "семёрка" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
'******************************************************************** '******************************************************************** '********************************************************************
' Задаём имя для лог-файла strLogFileName = "BackUp1CBases.Log" strLogFileName = ScriptPath + strLogFileName
AppendToFile strLogFileName, "НАЧАЛО" AppendToFile strLogFileName, "Начинаем процесс автоматической архивации." AppendToFile strLogFileName, "Лог пишется в файл " & vbTab & strLogFileName AppendToFile strLogFileName, "Дата: " & vbTab & Date AppendToFile strLogFileName, "Время: " & vbTab & Time
AppendToFile strLogFileName, " "
AppendToFile strLogFileName, "Ищем все запущенные экземпляры 1С v 8.1 ..." AppendToFile strLogFileName, "Найдено экземпляров 1С v 8.1: " & vbTab & ProcessCount ("1cv8%") If (ProcessCount ("1cv8%")) <> 0 Then AppendToFile strLogFileName, "Закрываем все экземпляры 1С v 8.1 ..." KillProcess "1cv8%" AppendToFile strLogFileName, "Подождём секунд 5..." WScript.Sleep 5000 End If AppendToFile strLogFileName, "Продолжаем работу."
AppendToFile strLogFileName, " "
AppendToFile strLogFileName, "Ищем все запущенные экземпляры 1С v 7.7 ..." AppendToFile strLogFileName, "Найдено экземпляров 1С v 7.7: " & vbTab & ProcessCount ("1cv7%") If (ProcessCount ("1cv7%")) <> 0 Then AppendToFile strLogFileName, "Закрываем все экземпляры 1С v 7.7 ..." KillProcess "1cv7%" AppendToFile strLogFileName, "Подождём секунд 5..." WScript.Sleep 5000 End If AppendToFile strLogFileName, "Продолжаем работу." AppendToFile strLogFileName, " "
AppendToFile strLogFileName, "Проверяем существование корневой папки для архивов"
FolderCreate BackUpFolder If Not FolderExist (BackUpFolder) then AppendToFile strLogFileName, "Корневой папки не существует, и создать её не удалось!!!" AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!" WScript.Quit End If
AppendToFile strLogFileName, "Папка нашлась." AppendToFile strLogFileName, "Продолжаем работу." AppendToFile strLogFileName, " "
AppendToFile strLogFileName, "Количество архивируемых баз = " & UBound(BasesList) AppendToFile strLogFileName, " "
For I = 1 To UBound(BasesList) AppendToFile strLogFileName, "Обрабатывается база № " & I AppendToFile strLogFileName, "Тип базы: " & BasesList(I).Type1C AppendToFile strLogFileName, "Имя исполняющего файла 1С: " & BasesList(I).Program1CName AppendToFile strLogFileName, "Исходное расположение базы: " & BasesList(I).BaseLocationPath AppendToFile strLogFileName, "Папка для архивной копии: " & BasesList(I).BaseBackUpFolderName AppendToFile strLogFileName, "Имя файла для архивной копии: " & BasesList(I).BaseBackUpFileName AppendToFile strLogFileName, "Имя пользователя: " & BasesList(I).UserName AppendToFile strLogFileName, "Пароль пользователя: " & BasesList(I).UserPassword AppendToFile strLogFileName, " "
Select Case BasesList(I).Type1C Case "77" BackUp77 Case "81" BackUp81 Case Else AppendToFile strLogFileName, "Неизвестный тип базы 1С!" End Select AppendToFile strLogFileName, "Закончили обработку базы № " & I AppendToFile strLogFileName, " " Next
AppendToFile strLogFileName, " " AppendToFile strLogFileName, "Архивация закончена." AppendToFile strLogFileName, "Дата:" & vbTab & Date AppendToFile strLogFileName, "Время:" & vbTab & Time AppendToFile strLogFileName, "КОНЕЦ" AppendToFile strLogFileName, " " WScript.Quit
'******************************************************************** '* '* Процедура : AppendToFile '* Описание : Дописывает в файл текстовую информацию '* Вход : strFileName - имя файла, в который нужно дописать информацию '* strString - дописываемая информация '* '******************************************************************** Sub AppendToFile(ByVal strFileName, ByVal strString) Const ForAppending = 8 Dim fso, f
Err.Clear On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(strFileName, ForAppending, True) f.WriteLine strString f.Close Set f = Nothing Set fso = Nothing End Sub
'******************************************************************** '* '* Функция : ScriptPath '* Описание : Возвращает имя папки, в которой находится скрипт '* Вход : нет '* Выход : имя папки, в которой находится скрипт '* '******************************************************************** Function ScriptPath Dim S Err.Clear On Error Resume Next ScriptPath = ""
S = WScript.ScriptFullName ScriptPath = mid(S,1,instrrev(S,"\")) End Function
'******************************************************************** '* '* Функция : ProcessCount '* Описание : Возвращает количество запущенных экземпляров процесса с указанным именем '* Вход : PName - имя процесса '* Выход : число запущенных процессов '* '******************************************************************** Function ProcessCount (ByVal PName) Dim N, objService, objProc Err.Clear On Error Resume Next ProcessCount = 0 N = 0 Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") If Err.Number <> 0 Then AppendToFile strLogFileName, "ПРОИЗОШЛА ОШИБКА!!!" AppendToFile strLogFileName, Err.Number & ": " & Err.Description AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!" WScript.Quit End If
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name like '" & PName & "'") N = N +1 Next ProcessCount = N End Function
'******************************************************************** '* '* Процедура : KillProcess '* Описание : Выгружает из памяти все экземпляры процесса с указанным именем '* Вход : PName - имя процесса '* Выход : нет '* '******************************************************************** Function KillProcess (ByVal PName) Dim objService, objProc Err.Clear On Error Resume Next Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") If Err.Number <> 0 Then AppendToFile strLogFileName, "ПРОИЗОШЛА ОШИБКА!!!" AppendToFile strLogFileName, Err.Number & ": " & Err.Description AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!" WScript.Quit End If
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name like '" & PName & "'") objProc.Terminate Next End Function
'******************************************************************** '* '* Функция : MyFileExist '* Описание : Функция проверки существования файла '* Вход : Имя файла '* Выход : true, если файл существует, и false, если файл отсутствует. '* '******************************************************************** Function MyFileExist (ByVal FileName) dim fso
Err.Clear On Error Resume Next Set fso = WScript.CreateObject("Scripting.FileSystemObject")
MyFileExist = (fso.FileExists(FileName)) Set fso = Nothing end Function
'******************************************************************** '* '* Функция : FolderExist '* Описание : Функция проверки существования папки '* Вход : Имя папки '* Выход : true, если папка существует, и false, если папка отсутствует. '* '******************************************************************** Function FolderExist (ByVal FolderName) dim fso
Err.Clear On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") FolderExist = (FSO.FolderExists(FolderName))
Set fso = Nothing end Function
'******************************************************************** '* '* Функция : FolderCreate '* Описание : Функция создания папки по нужному пути '* Вход : Полный путь к создаваемой папке. '* Выход : нет '* '******************************************************************** Sub FolderCreate (ByVal FolderName) dim objFSO, objFolder Dim FA, FN, I
Err.Clear On Error Resume Next Set objFSO = CreateObject("Scripting.FileSystemObject") FA = Split(FolderName, "\") FN = FA (0) For I = 1 To UBound(FA) If Len (FA (I)) <> 0 Then FN = FN & "\" & FA (I) Err.Clear Set objFolder = objFSO.CreateFolder(FN) Set objFolder = Nothing AppendToFile strLogFileName, FN & " - " & Err.Description End If Next end Sub
'******************************************************************** '* '* Функция : ReadTextFromFile '* Описание : Функция возвращает весь текст из указанного файла '* Вход : Полное имя файла '* Выход : текст, содержащийся в файле '* '******************************************************************** Function ReadTextFromFile (byval FileName) Dim objFSO, objTextFile Const ForReading = 1 Err.Clear On Error Resume Next Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile(FileName, ForReading) ReadTextFromFile = objTextFile.ReadAll Set objTextFile = Nothing Set objFSO = Nothing
end Function
'******************************************************************** '* '* Функция : DeleteTextFile '* Описание : Функция удаления файла '* Вход : Полное имя файла '* Выход : нет '* '******************************************************************** Function DeleteTextFile (byval FileName) Dim objFSO
Err.Clear On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile FileName, True Set objFSO = Nothing end Function
'******************************************************************** '* Функция выгрузки баз 1С 8.1 '******************************************************************** Sub BackUp81 AppendToFile strLogFileName, "Определили, что тип базы 1С v 8.1" AppendToFile strLogFileName, "Проверяем наличие папки для хранения архивной копии..." FolderCreate BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName If Not FolderExist (BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName) then AppendToFile strLogFileName, "Папки для хранения архивной копии не существует, и создать её не удалось!!!" AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!" WScript.Quit End If AppendToFile strLogFileName, "Папка нашлась." AppendToFile strLogFileName, "Продолжаем работу." AppendToFile strLogFileName, " " AppendToFile strLogFileName, "Подготавливаем строку для запуска 1С v 8.1" S = """" & BasesList(I).Program1CName & """ CONFIG /DumpIB""" & BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\" & BasesList(I).BaseBackUpFileName & " " & Replace(cstr(now()), ":", ".") & ".dt"" /F""" & BasesList(I).BaseLocationPath & """ /n" & BasesList(I).UserName & " /p" & BasesList(I).UserPassword & " /wa- /Out""" & BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\dump.log"" -NoTruncate " AppendToFile strLogFileName, "Строка для запуска 1С получилась следующая:" AppendToFile strLogFileName, S AppendToFile strLogFileName, "Запускаем 1C в пакетном режиме..." Set WshShell = CreateObject("WScript.Shell") oExec = WshShell.run( S, 5 , True) Set WshShell = Nothing AppendToFile strLogFileName, "Отчёт самой программы 1С о выгрузке базы следующий:" AppendToFile strLogFileName, ReadTextFromFile ( BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\dump.log") AppendToFile strLogFileName, "Удалим файл с отчётом 1С с диска компьютера..." DeleteTextFile ( BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\dump.log") If Err.Number = 0 Then AppendToFile strLogFileName, "Файл с отчётом 1С успешно удалён!" Else AppendToFile strLogFileName, "Файл с отчётом 1С удалить не удалось!" End If End Sub
'******************************************************************** '* Функция выгрузки баз 1С 7.7 '******************************************************************** Sub BackUp77 Dim MyFileName Dim MyLogName Dim MyPRMFile dim fso Dim S
AppendToFile strLogFileName, "Определили, что тип базы 1С v 7.7" AppendToFile strLogFileName, "Проверяем наличие папки для хранения архивной копии..." FolderCreate BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName If Not FolderExist (BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName) then AppendToFile strLogFileName, "Папки для хранения архивной копии не существует, и создать её не удалось!!!" AppendToFile strLogFileName, "АВАРИЙНОЕ ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ!!!" WScript.Quit End If AppendToFile strLogFileName, "Папка нашлась." AppendToFile strLogFileName, "Продолжаем работу." AppendToFile strLogFileName, " " AppendToFile strLogFileName, "Подготавливаем файл с параметрами для запуска 1С v 7.7" AppendToFile strLogFileName, "Вычислим имя для пакетного файла." MyFileName = BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\1CBackUp.prm" AppendToFile strLogFileName, "Имя получилось следующим: " & MyFileName AppendToFile strLogFileName, "Запишем в файл нужные параметры:" AppendToFile strLogFileName, " " Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set MyPRMFile =fso.CreateTextFile(MyFileName, True) ' Вычислим имя для log-файла 1С MyLogName = BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\1C_Log_File.txt" ' Запись текста в пакетный файл MyPRMFile.WriteLine("[General]") MyPRMFile.WriteLine("Output = """ & MyLogName & """" ) MyPRMFile.WriteLine("Quit = 1") MyPRMFile.WriteLine("CheckAndRepair = 0") MyPRMFile.WriteLine("UnloadData = 1") MyPRMFile.WriteLine("SaveData = 0") MyPRMFile.WriteLine("AutoExchange = 0") MyPRMFile.WriteLine("") MyPRMFile.WriteLine("[UnloadData]") MyPRMFile.WriteLine("UnloadToFile = """ & BackUpFolder & "\" & BasesList(I).BaseBackUpFolderName & "\" & BasesList(I).BaseBackUpFileName & " " & Replace(cstr(now()), ":", ".") & ".zip""") MyPRMFile.WriteLine("IncludeUserDef = 1") MyPRMFile.WriteLine("Password =") MyPRMFile.Close Set MyPRMFile = Nothing Set fso = Nothing AppendToFile strLogFileName, ReadTextFromFile (MyFileName) AppendToFile strLogFileName, "Подготавливаем строку для запуска 1С v 7.7" S = """" & BasesList(I).Program1CName & """ config /d""" & BasesList(I).BaseLocationPath & """ /n""" & BasesList(I).UserName & """ /p""" & BasesList(I).UserPassword & """ /@""" & MyFileName & """" AppendToFile strLogFileName, "Строка для запуска 1С получилась следующая:" AppendToFile strLogFileName, S AppendToFile strLogFileName, "Запускаем 1C в пакетном режиме..." Set WshShell = CreateObject("WScript.Shell") oExec = WshShell.run( S, 5 , True) Set WshShell = Nothing AppendToFile strLogFileName, "Отчёт самой программы 1С о выгрузке базы следующий:" AppendToFile strLogFileName, ReadTextFromFile ( MyLogName) AppendToFile strLogFileName, "Удалим файл с отчётом 1С с диска компьютера..." DeleteTextFile ( MyLogName) If Err.Number = 0 Then AppendToFile strLogFileName, "Файл с отчётом 1С успешно удалён!" Else AppendToFile strLogFileName, "Файл с отчётом 1С удалить не удалось!" End If AppendToFile strLogFileName, " " AppendToFile strLogFileName, "Удалим файл параметров выгрузки базы 1С с диска компьютера..." DeleteTextFile ( MyFileName) If Err.Number = 0 Then AppendToFile strLogFileName, "Файл параметров выгрузки базы 1С успешно удалён!" Else AppendToFile strLogFileName, "Файл параметров выгрузки базы 1С удалить не удалось!" End If End Sub
|
Параметры архивируемых баз указываются прямо в коде скрипта Код | ' Задаём параметры архивируемых баз данных
' "Корневая" папка для архивных коипий ' Все остальные папки будут создаваться именно в этой корневой папке!!! BackUpFolder = "c:\1Cbackup"
' Задаём параметры первой базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "81" MyBase.Program1CName = "C:\Program Files\1cv81\bin\1cv8.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\11111" MyBase.BaseBackUpFolderName = "Информационная база" MyBase.BaseBackUpFileName = "Информационная база" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
' Задаём параметры второй базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "81" MyBase.Program1CName = "C:\Program Files\1cv81\bin\1cv8.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\22222" MyBase.BaseBackUpFolderName = "базыща" MyBase.BaseBackUpFileName = "базыща" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
' Задаём параметры третьей базы Set MyBase = New Base1C ReDim Preserve BasesList(UBound(BasesList)+1) MyBase.Type1C = "77" MyBase.Program1CName = "C:\Program Files\1Cv77\BIN\1cv7s.exe" MyBase.BaseLocationPath = "C:\Documents and Settings\mihanik\Рабочий стол\33333" MyBase.BaseBackUpFolderName = "семёрка" MyBase.BaseBackUpFileName = "семёрка" MyBase.UserName = "вася" MyBase.UserPassword = "123" Set BasesList(UBound(BasesList)) = MyBase Set MyBase = Nothing
|
Реально созданный лог: Код | НАЧАЛО Начинаем процесс автоматической архивации. Лог пишется в файл C:\Documents and Settings\mihanik\Рабочий стол\Создание архивных копий 1С\BackUp1CBases.Log Дата: 17.05.2009 Время: 20:47:50 Ищем все запущенные экземпляры 1С v 8.1 ... Найдено экземпляров 1С v 8.1: 1 Закрываем все экземпляры 1С v 8.1 ... Подождём секунд 5... Продолжаем работу. Ищем все запущенные экземпляры 1С v 7.7 ... Найдено экземпляров 1С v 7.7: 1 Закрываем все экземпляры 1С v 7.7 ... Подождём секунд 5... Продолжаем работу. Проверяем существование корневой папки для архивов c:\1Cbackup - Папка нашлась. Продолжаем работу. Количество архивируемых баз = 3 Обрабатывается база № 1 Тип базы: 81 Имя исполняющего файла 1С: C:\Program Files\1cv81\bin\1cv8.exe Исходное расположение базы: C:\Documents and Settings\mihanik\Рабочий стол\11111 Папка для архивной копии: Информационная база Имя файла для архивной копии: Информационная база Имя пользователя: вася Пароль пользователя: 123 Определили, что тип базы 1С v 8.1 Проверяем наличие папки для хранения архивной копии... c:\1Cbackup - Файл уже существует c:\1Cbackup\Информационная база - Папка нашлась. Продолжаем работу. Подготавливаем строку для запуска 1С v 8.1 Строка для запуска 1С получилась следующая: "C:\Program Files\1cv81\bin\1cv8.exe" CONFIG /DumpIB"c:\1Cbackup\Информационная база\Информационная база 17.05.2009 20.48.00.dt" /F"C:\Documents and Settings\mihanik\Рабочий стол\11111" /nвася /p123 /wa- /Out"c:\1Cbackup\Информационная база\dump.log" -NoTruncate Запускаем 1C в пакетном режиме... Отчёт самой программы 1С о выгрузке базы следующий: Выгрузка информационной базы успешно завершена
Удалим файл с отчётом 1С с диска компьютера... Файл с отчётом 1С успешно удалён! Закончили обработку базы № 1 Обрабатывается база № 2 Тип базы: 81 Имя исполняющего файла 1С: C:\Program Files\1cv81\bin\1cv8.exe Исходное расположение базы: C:\Documents and Settings\mihanik\Рабочий стол\22222 Папка для архивной копии: базыща Имя файла для архивной копии: базыща Имя пользователя: вася Пароль пользователя: 123 Определили, что тип базы 1С v 8.1 Проверяем наличие папки для хранения архивной копии... c:\1Cbackup - Файл уже существует c:\1Cbackup\базыща - Папка нашлась. Продолжаем работу. Подготавливаем строку для запуска 1С v 8.1 Строка для запуска 1С получилась следующая: "C:\Program Files\1cv81\bin\1cv8.exe" CONFIG /DumpIB"c:\1Cbackup\базыща\базыща 17.05.2009 20.48.11.dt" /F"C:\Documents and Settings\mihanik\Рабочий стол\22222" /nвася /p123 /wa- /Out"c:\1Cbackup\базыща\dump.log" -NoTruncate Запускаем 1C в пакетном режиме... Отчёт самой программы 1С о выгрузке базы следующий: Выгрузка информационной базы успешно завершена
Удалим файл с отчётом 1С с диска компьютера... Файл с отчётом 1С успешно удалён! Закончили обработку базы № 2 Обрабатывается база № 3 Тип базы: 77 Имя исполняющего файла 1С: C:\Program Files\1Cv77\BIN\1cv7s.exe Исходное расположение базы: C:\Documents and Settings\mihanik\Рабочий стол\33333 Папка для архивной копии: семёрка Имя файла для архивной копии: семёрка Имя пользователя: вася Пароль пользователя: 123 Определили, что тип базы 1С v 7.7 Проверяем наличие папки для хранения архивной копии... c:\1Cbackup - Файл уже существует c:\1Cbackup\семёрка - Папка нашлась. Продолжаем работу. Подготавливаем файл с параметрами для запуска 1С v 7.7 Вычислим имя для пакетного файла. Имя получилось следующим: c:\1Cbackup\семёрка\1CBackUp.prm Запишем в файл нужные параметры: [General] Output = "c:\1Cbackup\семёрка\1C_Log_File.txt" Quit = 1 CheckAndRepair = 0 UnloadData = 1 SaveData = 0 AutoExchange = 0
[UnloadData] UnloadToFile = "c:\1Cbackup\семёрка\семёрка 17.05.2009 20.48.21.zip" IncludeUserDef = 1 Password =
Подготавливаем строку для запуска 1С v 7.7 Строка для запуска 1С получилась следующая: "C:\Program Files\1Cv77\BIN\1cv7s.exe" config /d"C:\Documents and Settings\mihanik\Рабочий стол\33333" /n"вася" /p"123" /@"c:\1Cbackup\семёрка\1CBackUp.prm" Запускаем 1C в пакетном режиме... Отчёт самой программы 1С о выгрузке базы следующий: 20090517;20:48:22;вася;C;UpDown;UpDownDnldToFile;1;c:\1Cbackup\семёрка\семёрка 17.05.2009 20.48.21.zip;; 20090517;20:48:22;вася;C;UpDown;UpDownDnldSuc;1;;;
Удалим файл с отчётом 1С с диска компьютера... Файл с отчётом 1С успешно удалён! Удалим файл параметров выгрузки базы 1С с диска компьютера... Файл параметров выгрузки базы 1С успешно удалён! Закончили обработку базы № 3 Архивация закончена. Дата: 17.05.2009 Время: 20:48:22 КОНЕЦ
|
скрипт в прикреплённом архиве. Прошу потестировать и высказать своё мнение!!! Это сообщение отредактировал(а) mihanik - 17.5.2009, 20:53
Присоединённый файл ( Кол-во скачиваний: 522 )
BackUp1C.zip 4,18 Kb
--------------------
Программистами не рождаются, - это родовая травма...
|