Рассмотрим простой способ резервного копирования баз 1С в форматах SQL и DBF без создания батника, запускаемого по расписанию. Для этого нам потребуется WinRar и задание в "Назначенных заданиях" (Меню - Пуск - Настройка - Панель управления - Назначенные задания).

Создаем новой задание с нужным расписанием, и в поле выполнить пишем строку следующего содержания:

"C:\Program Files\WinRAR\WinRAR.exe" a -s -r -rr10p -dh -ed -m3 -ag+YYYYMMDD "D:\1C_BackUp\" X:\1C_Conf

В данном случае архивируется содержимое папки X:\1C_Conf. В результате создается архив с именем ГГГГММДД.rar в папке D:\1C_BackUp (например D:\1C_BackUp\20130112.rar).

Для баз 1С 7.7 в формате SQL необходимо дополнительно сохранить сами данные, т.к. они содержатся не в каталоге ИБ. Будем использовать возможности SQL.

Для этого запускаем MS SQL Management Studio (пример для SQL 2005). Далее в Object Explorer - Management - Maintenance Plan создаем новое задание (показано на картинке ниже) и задаем для него расписание.

 

Далее в Toolbox выбираем Execute T-SQL Statement Task. Открываем задание (см. картинку ниже) и в поле T-SQL Statement пишем следующий текст:

DECLARE @BackupFile varchar(255), @DB varchar(30), @Description varchar(255), @LogFile varchar(50)
DECLARE @Name varchar(30), @MediaName varchar(30), @BackupDirectory nvarchar(200)
SET @BackupDirectory = 'D:\1C_BackUp\'
--Add a list of all databases you don't want to backup to this.
DECLARE Database_CURSOR CURSOR FOR SELECT name FROM sysdatabases WHERE name IN ('Whs','Office','Acc')
OPEN Database_Cursor
FETCH next FROM Database_CURSOR INTO @DB
WHILE @@fetch_status = 0

    BEGIN
        SET @Name = @DB + '( Daily BACKUP )'
        SET @MediaName = @DB + '_Dump' + CONVERT(varchar, CURRENT_TIMESTAMP , 112)
        SET @BackupFile = @BackupDirectory + + @DB + '_' + 'Full' + '_' +
            CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
        SET @Description = 'Normal' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'

        IF (SELECT COUNT(*) FROM msdb.dbo.backupset WHERE database_name = @DB) > 0 OR @DB = 'master'
            BEGIN
                SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +
                    CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
                --SET some more pretty stuff for sql server.
                SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'
            END   
        ELSE
            BEGIN
                SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +
                    CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
                --SET some more pretty stuff for sql server.
                SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'
            END
            BACKUP DATABASE @DB TO DISK = @BackupFile
            WITH NAME = @Name, DESCRIPTION = @Description ,
            MEDIANAME = @MediaName, MEDIADESCRIPTION = @Description ,
            STATS = 10
        FETCH next FROM Database_CURSOR INTO @DB
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor

 

 

Так указываем папку, в которую будут помещены бэкапы:

SET @BackupDirectory = 'D:\1C_BackUp\'

Так указываем список баз, бэкапы которых необходимо сделать:

DECLARE Database_CURSOR CURSOR FOR SELECT name FROM sysdatabases WHERE name IN ('Whs','Office','Acc')

В результате выполнения задания в папке D:\1C_BackUp 12.01.2013 г. появятся файлы Acc_Full_20130112.bak, Office_Full_20130112.bak, Whs_Full_20130112.bak.