helpf.pro
Регистрация
 +6 
Распечатать

Автоматическая архивация баз 1С 8.х для файлового и клиент-серверного варианта

Данный способ архивации подходит для файловых и SQL версий баз 1С:

И так:
1. Создаем скрипт vbs и сохраняем его в C:\Backup\ZUP.vbs
Код VBS
 
Set WshShell = CreateObject("WScript.Shell")
dim d,m,y

d = day(date())
if d < 10 then
d = "0" & d
end if

m = month(date())
if m < 10 then
m = "0" & m
end if

y = year(date())

h = Hour(Time())
if h < 10 then
h = "0" & h
end if

Min = Minute(Time())
if Min < 10 then
Min = "0" & Min
end if

S = Second(Time())
if S < 10 then
S = "0" & S
end if

'Формируется полное имя файлов выгрузки и лога
s = d & "_" & m & "_" & y & "_" & h & "_" & Min & "_" & S

'Путь к файлу выгрузки
BackupPath = "/DumpIB \\Server1CBackup\SQL_Backup\1c_backup\ZUP\BACKUP\ZUP_" & s & ".dt"

'Путь к логу
LogPath = "/Out \\Server1CBackup\SQL_Backup\1c_backup\ZUP\log\ZUP_Log_" & s & ".log -NoT_runcate"

'Путь к фалу запуска программы 1С
one1CPath = """%systemdrive%\Program Files\1cv81\bin\1cv8.exe"""

'Параметры запуска базы (SQL) имя кластера\имя базы пользователь пароль
Paramters = "DESIGNER /S Server1C\ZUP /N UserAdmin1C /P PassWordUserAdmin1C /DisableStartupMessages"

Set fs = CreateObject("Scripting.FileSystemObject")


'Запуск
WshShell.Run one1CPath & " " & Paramters& " " & LogPath & " " & BackupPath, 0, True


2. На Server1C создаем Назначенные задания с параметрами как на рисунках ниже:
title
title

3. В итоге получаем архивные файлы выгрузок 1С и логи:
title
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 60726
 +6 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Посмотреть все результаты поиска похожих
Комментарии
Igor_B
09.12.2011 12:05Комментарий: 8
Igor_B
После длительных и мучительных поисков нашел следующую ВЕЩЬ!!!

ECHO OFF
cls
ECHO.
ECHO ****************************************
ECHO Конфигурируем файл, с помощью которого
ECHO будут автоматически выгружаться базы 1с
ECHO ****************************************

ECHO.
ECHO ****************************************
ECHO Укажите версию вашей программы 1с
ECHO Поддерживаются версии 7.x и 8.x
ECHO По умолчанию 7.x
ECHO 7 - для 7.x (или просто нажмите Enter)
ECHO 8 - для 8.x
ECHO 81 - для 8.1.x
ECHO 82 - для 8.2.x
ECHO.
ECHO Введите 7, 8, 81, 82 или нажмите Enter
ECHO ****************************************
ECHO.
SET /P _1c_ver= :
IF /I "%_1c_ver%"=="" SET _1c_ver=7


SET _1c_default_path=C:\Program Files\1Cv77\bin\1cv7s.exe
IF /I "%_1c_ver%"=="8" SET _1c_default_path=C:\Program Files\1cv8\bin\1cv8.exe
IF /I "%_1c_ver%"=="81" SET _1c_default_path=C:\Program Files\1cv81\bin\1cv8.exe
IF /I "%_1c_ver%"=="82" SET _1c_default_path=C:\Program Files\1cv82\bin\1cv8.exe

cls
ECHO.
ECHO ****************************************
ECHO Укажите путь к EXE-файлу порграммы "1c".
ECHO По умолчанию для вашей версии 1с это:
ECHO.
ECHO "%_1c_default_path%"
ECHO Если у вас этот путь совпадает, просто нажмите Enter
ECHO ****************************************
ECHO.
SET /P _1c_path= :
IF /I "%_1c_path%"=="" SET _1c_path=%_1c_default_path%

cls
ECHO.
ECHO ****************************************
ECHO Введите название выгружаемой базы
ECHO ****************************************
ECHO.
SET /P _base_name= :

IF /I "%_1c_ver%"=="7" GOTO :_NoSQL


cls
ECHO.
ECHO ****************************************
ECHO Где хранится ваша база 1с?
ECHO 1 - На данном компьютере (или просто нажмите Enter)
ECHO 2 - На сервере 1сПредприятия (SQL)
ECHO.
ECHO Введите 1, 2, или нажмите Enter
ECHO ****************************************
ECHO.
SET /P _base_SQL= :
IF /I "%_base_SQL%"=="" SET _base_SQL=1
IF /I "%_base_SQL%"=="1" GOTO :_NoSQL
IF /I "%_base_SQL%"=="2" GOTO :_SQL



:_SQL
cls
ECHO.
ECHO ****************************************
ECHO Укажите имя сервера, на котором хранится база
ECHO и имя этой базы на сервере
ECHO в формате "server\base"
ECHO ****************************************
ECHO.
SET /P _base_path= :

GOTO :_UploadPath

:_NoSQL


cls
ECHO.
ECHO ****************************************
ECHO Укажите путь к базе, которую необходимо выгружать
ECHO !!!Завершающий слеш и кавычки не пишите!!!
ECHO ****************************************
ECHO.
SET /P _base_path= :



:_UploadPath


cls
ECHO.
ECHO ****************************************
ECHO Укажите путь к папке, в которую кладём выгрузку
ECHO !!!Завершающий слеш и кавычки не пишите!!!
ECHO ****************************************
ECHO.
SET /P _upload_path= :

cls
ECHO.
ECHO ****************************************
ECHO Укажите имя пользователя, имеющего права на выгрузку
ECHO ****************************************
ECHO.
SET /P _username= :

cls
ECHO.
ECHO ****************************************
ECHO Укажите пароль пользователя, имеющего права на выгрузку
ECHO ****************************************
ECHO.
SET /P _password= :

cls


SET _1c_exe=1cv8
IF /I "%_1c_ver%"=="7" SET _1c_exe=1cv7s
ECHO.
ECHO ****************************************
ECHO Нужно ли автоматически завершать все процессы 1с
ECHO на этом компьютере перед запуском выгрузки?
ECHO Это может помешать в рабочее время,
ECHO но если не закрыть 1с, выгрузка не произойдёт.
ECHO.
ECHO В случае если вы хотите завершать процессы 1с
ECHO а название вашего EXE-файла 1с
ECHO отличается от стандартного "%_1c_exe%.exe",
ECHO просто введите его !!! БЕЗ РАСШИРЕНИЯ(.EXE)!!!
ECHO.
ECHO В случае, если база открыта по сети с других компьютеров,
ECHO она останется заблокированной и выгрузка не произойдёт!!!
ECHO.
ECHO 1 - да (или просто нажмите Enter)
ECHO 2 - нет
ECHO Введите 1, 2, название вашего EXE-файла
ECHO или просто нажмите Enter
ECHO ****************************************
ECHO.
SET /P _1c_kill= :
IF /I "%_1c_kill%"=="" SET _1c_kill=%_1c_exe%
IF /I "%_1c_kill%"=="1" SET _1c_kill=%_1c_exe%
IF /I "%_1c_kill%"=="2" SET _1c_exe=
SET _1c_EXE=%_1c_kill%


cls
ECHO ************************************************************
ECHO Создаём батник для ежедневной выгрузки базы "%_base_name%"
ECHO ************************************************************


ECHO tskill %_1c_exe% > "%_base_name%.bat"



ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO echo Задаём пути и параметры: >> "%_base_name%.bat"
ECHO echo ************************************************************ >> "%_base_name%.bat"


ECHO set __1c_path=%_1c_path%>> "%_base_name%.bat"
ECHO set __base_name=%_base_name%>> "%_base_name%.bat"
ECHO set __base_path=%_base_path%>> "%_base_name%.bat"
ECHO set __upload_path=%_upload_path%>> "%_base_name%.bat"
ECHO set __username=%_username%>> "%_base_name%.bat"
ECHO set __password=%_password%>> "%_base_name%.bat"

ECHO echo ******************>> "%_base_name%.bat"
ECHO echo Создаём папку выгрузки, если она не существовала ранее>> "%_base_name%.bat"
ECHO echo ******************>> "%_base_name%.bat"
ECHO md "%%__upload_path%%\%%__base_name%%" >> "%_base_name%.bat"

IF /I "%_1c_ver%"=="7" GOTO :_1c7



:_1c8
ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO echo Генерируем выгрузку на текущую дату: >> "%_base_name%.bat"
ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO echo.

IF /I "%_base_SQL%"=="2" GOTO :_SQLUpload

ECHO "%%__1c_path%%" config /Out"%%__upload_path%%\%%__base_name%%\%%__base_name%%.log" /F"%%__base_path%%" /N"%%__username%%" /P"%%__password%%" /DumpIB"%%__upload_path%%\%%__base_name%%\%%__base_name%%-%%date%%.dt" >> "%_base_name%.bat"
GOTO :_EndBat

:_SQLUpload
ECHO "%%__1c_path%%" config /Out"%%__upload_path%%\%%__base_name%%\%%__base_name%%.log" /S"%%__base_path%%" /N"%%__username%%" /P"%%__password%%" /DumpIB"%%__upload_path%%\%%__base_name%%\%%__base_name%%-%%date%%.dt" >> "%_base_name%.bat"

GOTO :_EndBat

:_1c7

ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO echo Генерируем файл конфигурации выгрузки на текущую дату: >> "%_base_name%.bat"
ECHO echo ************************************************************ >> "%_base_name%.bat"


ECHO chcp 1251 >> "%_base_name%.bat"

ECHO echo [General] ^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Output="%%__upload_path%%\%%__base_name%%\%%__base_name%%.log" ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Quit=Y ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo UnloadData=Y ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo SaveData=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo CheckAndRepair=n ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"

ECHO echo [CHECKANDREPAIR] ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Repair=Y ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo PhysicalIntegrity=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo LogicalIntegrity=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Reindex=Y ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo RecalcSecondaries=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo RecalcTotals=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Pack=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo SkipUnresolved=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo CreateForUnresolved=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo Reconstruct=N ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"

ECHO echo [UnloadData] ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"
ECHO echo UnloadToFile="%%__upload_path%%\%%__base_name%%\%%__base_name%%-%%date%%.zip" ^>^> "%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"

ECHO chcp 866 >> "%_base_name%.bat"

ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO echo Запускаем батник на выгрузку базы "%%__base_name%%" >> "%_base_name%.bat"
ECHO echo ************************************************************ >> "%_base_name%.bat"
ECHO "%%__1c_path%%" CONFIG /D"%%__base_path%%" /N"%%__username%%" /P"%%__password%%" /@"%%__upload_path%%\%%__base_name%%\%%__base_name%%.ini" >> "%_base_name%.bat"




:_EndBat

cls
ECHO.
ECHO ****************************************
ECHO Поздравляем!
ECHO.
ECHO Создан файл "%_base_name%.bat", запустив который,
ECHO вы получите выгрузку базы "%_base_name%"
ECHO расположенной по пути "%_base_path%"
ECHO.
ECHO Выгрузка будет сохранена в папку "%_upload_path%"
ECHO.
ECHO Рекомендуем настроить ваш шедулер
ECHO на регулярный запуск файла "%_base_name%.bat" !
ECHO ****************************************
ECHO.
ECHO.
ECHO.
pause

Просто сформируюте bat-файл.

Проблему с русским в консоли решил следующим образом:

reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v CodePage /t REG_DWORD /d 1251 /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName /t REG_SZ /d "Lucida Console" /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontFamily /t REG_DWORD /d 0x0000036 /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontSize /t REG_DWORD /d 0x000c0000 /f
reg add HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FontWeight /t REG_DWORD /d 0x0000190 /f
Igor_B
06.12.2011 11:49Комментарий: 7
Igor_B
Получился такой скрипт:

Set WshShell = CreateObject("WScript.Shell")
dim d,m,y

d = day(date())
if d < 10 then
d = "0" & d
end if

m = month(date())
if m < 10 then
m = "0" & m
end if

y = year(date())

h = Hour(Time())
if h < 10 then
h = "0" & h
end if

Min = Minute(Time())
if Min < 10 then
Min = "0" & Min
end if

S = Second(Time())
if S < 10 then
S = "0" & S
end if

'Формируется полное имя файлов выгрузки и лога
s = d & "_" & m & "_" & y & "_" & h & "_" & Min & "_" & S

'Путь к файлу выгрузки
BackupPath = "/DumpIB \\Server\Backup\UTP\DT\UTP_" & s & ".dt"

'Путь к логу
LogPath = "/Out \\Server\Backup\UTP\LOG\UTP_Log_" & s & ".log -NoT_runcate"

'Путь к фалу запуска программы 1С
one1CPath = """%systemdrive%\Program Files\1cv82\8.2.13.219\bin\1cv8.exe"""

'Имя базы
NameBase = """Galtreid NEW"""

'Параметры запуска базы (SQL)
Paramters = "ENTERPRISE /S Server\ & "" & NameBase& "" & /N Администратор /P 1829 /DisableStartupMessages"

Set fs = CreateObject("Scripting.FileSystemObject")

'Запуск
WshShell.Run one1CPath & " " & Paramters& " " & LogPath & " " & BackupPath, 0, true

Проблема следующая.
Все хорошо стартует только когда в строке запуска я прописываю вместо 0 - 1:
WshShell.Run one1CPath & " " & Paramters& " " & LogPath & " " & BackupPath, 1, true --- и выбираю конфигуратор (пользователя и пароль не спрашивает, стартует под данными с шаблона).
Если прописываю все по шаблону:
WshShell.Run one1CPath & " " & Paramters& " " & LogPath & " " & BackupPath, 0, true --- в диспетчере видно процесс 1С-ки, но никакой реакции(может висеть целую вечность), смело могу зайти при этом процессе в конфигуратор.

СПАСИБО!!!
E_Migachev
06.12.2011 10:55Комментарий: 6
E_Migachev
Igor_B, лучше переименовать
Igor_B
05.12.2011 15:13Комментарий: 5
Igor_B
подскажите как быть с пробелом в имени базы (сер. вариант)
E_Migachev
29.12.2010 14:30Комментарий: 4
E_Migachev
lubov
29.12.2010 13:30Комментарий: 3
lubov
Как перед копированием отключить всех пользователей базы?
E_Migachev
25.10.2010 09:09Комментарий: 2
E_Migachev
Vitalii,
'Путь к файлу выгрузки - \Server1CBackup\SQL_Backup\1c_backup\ZUP\ - Доступен?

в строке
Параметры запуска базы (SQL) имя кластера\имя базы пользователь пароль
Paramters = "DESIGNER /S Server1C\BaseName /N UserAdmin1C /P PassWordUserAdmin1C /DisableStartupMessages"


Замени Server1C\BaseName - на реальный сервер и базу
UserAdmin1C - Пользователь Админитратор 1С
PassWordUserAdmin1C - Пароль Админа 1С
Vitalii
25.10.2010 05:55Комментарий: 1
Vitalii
Здравствуйте все сделал как тут написано, но выгзука базы не работает вот код который я написал и сохранил с расширением .vbs подскажите пожалуйста что я не так сделал

UserName = "Администратор"
UserPass = "йфцыув"
ServerName = "Kvazar"
BaseName = "Soft_f"


Set WshShell = CreateObject("WScript.Shell")
dim d,m,y

d = day(date())
if d < 10 then
d = "0" & d
end if

m = month(date())
if m < 10 then
m = "0" & m
end if

y = year(date())

h = Hour(Time())
if h < 10 then
h = "0" & h
end if

Min = Minute(Time())
if Min < 10 then
Min = "0" & Min
end if

S = Second(Time())
if S < 10 then
S = "0" & S
end if

'Формируется полное имя файлов выгрузки и лога
s = d & "_" & m & "_" & y & "_" & h & "_" & Min & "_" & S

'Путь к файлу выгрузки
BackupPath = "/DumpIB \\Server1CBackup\SQL_Backup\1c_backup\ZUP\BACKUP\ZUP_" & s & ".dt"

'Путь к логу
LogPath = "/Out \\Server1CBackup\SQL_Backup\1c_backup\ZUP\log\ZUP_Log_" & s & ".log -NoT_runcate"

'Путь к фалу запуска программы 1С
one1CPath = """E:\Program Files\1cv81\bin\1cv8.exe"""

'Параметры запуска базы (SQL) имя кластера\имя базы пользователь пароль
Paramters = "DESIGNER /S Server1C\BaseName /N UserAdmin1C /P PassWordUserAdmin1C /DisableStartupMessages"

Set fs = CreateObject("Scripting.FileSystemObject")


'Запуск
WshShell.Run one1CPath & " " & Paramters& " " & LogPath & " " & BackupPath, 0, True
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.