7.7 Авто backup данных 1С!

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем volerster, 6 мар 2007.

  1. TopicStarter Overlay
    volerster
    Offline

    volerster

    Регистрация:
    14 фев 2007
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Граждане подскажите? Есть скрипт который запускает 1С в пакетном режиме, и делает выгрузку 1С, т.е. копию базы данных 1С.

    Сам скрипт вот:

    """""""""""""""""""""""""""""""""""""""""""""""""""
    'Скрипт осуществляет резервное копирование баз данных 1С:Предприятия v7.7.
    'При запуске скрипт определяет текущий день недели и осуществляет резервное копирование баз данных
    'в папку, соответствующую этому дню недели. Резервное копирование осуществляется путём пакетного
    'запуска 1С:Предприятия в режиме Конфигуратора (с командой "Выгрузить данные").

    'ВНИМАНИЕ! Отредактируйте раздел "НАСТРОЙКИ СКРИПТА"!

    Option Explicit
    On Error Resume Next

    Dim Base 'Элемент коллекции баз
    Dim Bases 'Коллекция баз (каталоги баз + имена файлов для бэкапа)
    Dim Folder 'Элемент коллекции папок
    Dim Folders 'Коллекция папок (каталоги файлов бэкапа + названия дней недели)
    Dim LogPath 'Путь к файлу лога этого скрипта
    Dim LogFile 'Поток текстового файла лога этого скрипта
    Dim TempPath 'Путь к каталогу временных файлов
    Dim UserName 'Имя пользователя 1С
    Dim UserPass 'Пароль пользователя 1С
    Dim ExePath 'Путь к исполняемому файлу 1С
    Dim IniFile 'Поток текстового файла параметров 1С для выгрузки данных
    Dim FSO 'Объект "Scripting.FileSystemObject"
    Dim WSH 'Объект "WScript.Shell"
    Dim WeekDayNumber 'Номер текущего дня недели
    Dim Log1C 'Поток текстового файла лога 1С

    Set Bases = CreateObject("Scripting.Dictionary")
    Set Folders = CreateObject("Scripting.Dictionary")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set WSH = CreateObject("WScript.Shell")
    WeekDayNumber = WeekDay(Now, vbMonday)

    '**************************************************************************************************
    '->> НАСТРОЙКИ СКРИПТА
    '**************************************************************************************************
    'сопоставление имён файлов резервных копий и каталогов баз 1С:Предприятия
    Bases.Add "MyBase1.zip", "C:\1cdb\DB_Zt"

    'сопоставление номеров дней недели и каталогов файлов резервных копий
    Folders.Add 1, "J:\Arhiv_baz\Понедельник\"
    Folders.Add 2, "J:\Arhiv_baz\Вторник\"
    Folders.Add 3, "J:\Arhiv_baz\Среда\"
    Folders.Add 4, "J:\Arhiv_baz\Четверг\"
    Folders.Add 5, "J:\Arhiv_baz\Пятница\"
    Folders.Add 6, "J:\Arhiv_baz\Суббота\"
    Folders.Add 7, "J:\Arhiv_baz\Воскресенье\"
    'путь к файлу лога этого скрипта
    LogPath = "J:\Arhiv_baz\Log\BackUp1C.log"
    'путь к каталогу временных файлов
    TempPath = "C:\Temp\"
    'имя пользователя 1С:Предприятия
    UserName = "Администратор"
    'пароль пользователя 1С:Предприятия
    UserPass = "lupicha"
    'путь к исполняемому файлу 1С:Предприятия
    ExePath = "C:\Program Files\1Cv77\BIN\1cv7.exe"
    '**************************************************************************************************
    '<<- НАСТРОЙКИ СКРИПТА (окончание)
    '**************************************************************************************************

    'Создание лог-файла
    Set LogFile = FSO.CreateTextFile(LogPath)
    'Основной цикл по базам
    For Each Base In Bases
    'Создание файла параметров 1С для выгрузки данных
    Set IniFile = FSO.CreateTextFile(TempPath & "UnLoad.ini")
    IniFile.WriteLine "[General]"
    IniFile.WriteLine "UnloadData = 1"
    IniFile.WriteLine "Output = """ & TempPath & "UnLoad.log"""
    IniFile.WriteLine "[UnloadData]"
    IniFile.WriteLine "UnloadToFile = """ & Folders.Item(WeekDayNumber) & Base & """"
    IniFile.Close

    'Удаление старого backup'а
    'If FSO.FileExists(Folders.Item(WeekDayNumber) & Base) Then
    ' FSO.DeleteFile(Folders.Item(WeekDayNumber) & Base)
    'End If

    'Запуск backup'а 1C
    WSH.Run """" & ExePath & """ CONFIG /D""" & Bases.Item(Base) & """ /N" & UserName & _
    " /P" & UserPass & " /@""" & TempPath & "UnLoad.ini""", 1, True

    'Удаление файла параметров 1С для выгрузки данных
    If FSO.FileExists(TempPath & "UnLoad.ini") Then
    FSO.DeleteFile(TempPath & "UnLoad.ini")
    End If

    'Чтение лога 1С и его перезапись в лог этого скрипта
    LogFile.WriteLine "=================================================="
    If FSO.FileExists(TempPath & "UnLoad.log") Then
    Set Log1C = FSO.GetFile(TempPath & "UnLoad.log").OpenAsTextStream(1, -2)
    While Not Log1C.AtEndOfStream
    LogFile.WriteLine Log1C.ReadLine
    Wend
    Log1C.Close
    FSO.DeleteFile(TempPath & "UnLoad.log")
    End If
    Next '(Основной цикл по базам)

    'Закрытие потока лог-файла этого скрипта
    LogFile.Close
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    По умолчанию копию каких данных делает 1С? И достаточно ли этого для нормального восстановления утерянных данных.
  2. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Ну судя по куску кода
    IniFile.WriteLine "UnloadData = 1"
    будет произведена выгрузка информационнной базы, что аналогично действию из конфигуратора: Администрирование->Выгрузить данные.
    По идее этого достаточно для восстановления.
  3. TopicStarter Overlay
    volerster
    Offline

    volerster

    Регистрация:
    14 фев 2007
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1

    Спасибо.

Поделиться этой страницей