Имя: Пароль:
1C
1С v8
Обработка с Инфостарта
,
0 Robin iz Robinov
 
28.12.12
15:42
Люди добрые помогите может у кого есть

Обработка для формирования скрипта, который в SQL версии 1С блокирует базу и через 5 минут разрывает абсолютно все соединения с ИБ. Просто прописываем скрипт в планировщик и наслаждаемся свежим .dt файлом каждый день.

Автоматический бэкап средствами 1С, который обязательно сделается (без перезапуска сервера).

Она есть на http://infostart.ru/public/65849/
1 zak555
 
28.12.12
15:43
wtyf djghjcf &
2 zak555
 
28.12.12
15:43
*цена вопроса ?
3 pumbaEO
 
28.12.12
15:44
Выгрузка в dt - не есть бэкап.
4 zak555
 
28.12.12
15:45
(3) +1

1с не гарантирует сохранность данных
5 vde69
 
28.12.12
15:46
делать бекап DT имея базу SQL - это как минимум мазахизм...

да и 1с рекомендует делать средствами скуля...
6 Robin iz Robinov
 
28.12.12
15:47
Может кто подскажет что внутри скрипта интересует

(5)
Это как минимум экономия места!
7 Robin iz Robinov
 
28.12.12
15:48
dt весит 700 метров
bak весит 20 гиг
8 Alex S D
 
28.12.12
15:49
того. кто тебе скинет обработку забанят там)
9 Попытка1С
 
28.12.12
15:49
(7) Архивировать не пробовали?
10 le_
 
28.12.12
15:49
(0) Продам стратмани. 1 sm - 7 руб.
11 zak555
 
28.12.12
15:49
(7) прочти ещё раз (4) и подумай о том, что выгрузишь без ошибок, а загрузить не сможешь
12 zak555
 
28.12.12
15:49
(8) могу скинуть, но меня там не забанят
13 Alex S D
 
28.12.12
15:50
(12) че это
14 Robin iz Robinov
 
28.12.12
15:50
есть и dt и bak

вопрос что там внутри что за скрипт
15 Robin iz Robinov
 
28.12.12
15:51
да просто выложи батник что там внутри
16 zak555
 
28.12.12
15:51
(13) сикрет=)
17 эцп
 
28.12.12
15:51
18 Robin iz Robinov
 
28.12.12
15:51
(12)

Сам BAT фаил интересует
19 Dedal
 
28.12.12
15:58
dt на скуле, батенька вы мазохист. Сжимайте бекап скуля хоть 7-zip.
12 вообще сам ужимает до приемлемых размеров.
20 Robin iz Robinov
 
28.12.12
15:58
Там такое или другое?

"C:\Program Files\1cv8.exe" ENTERPRISE /SSERVER\TEST /N"Автообмен" /P12345 /DisableStartupMessages /C"ЗавершитьРаботуПользователей" /UC"ПакетноеОбновлениеКонфигурацииИБ"
"C:\Program Files\1cv8.exe" config /UC"ПакетноеОбновлениеКонфигурацииИБ" /SSERVER\TEST /N"Автообмен" /P12345 /DumpIB"C:\Temp\TEST_SHR-%Date%.dt"
"C:\Program Files\1cv8.exe" ENTERPRISE /SSERVER\TEST /N"Автообмен" /P12345 /DisableStartupMessages /C"РазрешитьРаботуПользователей" /UC"ПакетноеОбновлениеКонфигурацииИБ"
21 jump if overflow
 
28.12.12
16:00
на юха помогать ленивым одинэсникам . которы не могут создать пару постов  на ИС
22 Robin iz Robinov
 
28.12.12
16:01
(21)

Нет у меня творчества описывать что-то
23 jump if overflow
 
28.12.12
16:02
вписываясь в чужую карму  нищеброта , вы убиваете собственную, и им становитесь.
24 Robin iz Robinov
 
28.12.12
16:04
вот я и говорю нет у меня творчества заумно описывать или что то рассказывать
25 Robin iz Robinov
 
28.12.12
16:07
(19)

на сжатие 20 гиг уходит 2 часа
26 hhhh
 
28.12.12
16:12
(25) наверно вы по сети смимаете. Сжимайте локально.
27 Robin iz Robinov
 
28.12.12
16:14
(26)

локально WinRar (мах) пишет уже 1час
28 Dedal
 
28.12.12
16:17
(26) 7-zip 30 минут  на 20 гб. Считаю вполне нормально.
29 etc
 
28.12.12
16:20
(0) использую другой подход. Есть база, есть её копия. Скрипт делает бэкап базы и тутже восстанавлиает её в копию. Копия всегда без подключений и соответственно бэкапится в dt на раз.
Результат = волки сыты, овцы целы.
30 Robin iz Robinov
 
28.12.12
16:20
Обработка есть у кого, что там внутри?

(28)
Сжал 20% размер 480 мег
31 etc
 
28.12.12
16:20
Могу скрипт подбросить.
32 Robin iz Robinov
 
28.12.12
16:22
(29)
Если DT не выгрузился упустили день или несколько дней!
Как часто DT выгружается?

(31)

Если он как (20) то не надо
33 etc
 
28.12.12
16:23
(0) и вобще, поставь 2008 SQL и жми бэкап средствами SQL-я на лету.
34 Robin iz Robinov
 
28.12.12
16:23
(33) -> (7)
35 Конфигуратор1с
 
28.12.12
16:24
(32)Как вариант - хотя меня тут затюкают - УРБД. Делаете центральную базу, в периферии все работают. Раз в час выгрузка дтхи делается. И овцы сыты и волки целы
36 Robin iz Robinov
 
28.12.12
16:27
(35)

У меня три уровня баз, обмен и так каждый час идет
37 etc
 
28.12.12
16:30
на, наслаждайся:


const vDBName = "***"
const vDBServer = "***"
const vTmpBakFile = "D:\TEMP\tmp.bak"
const vTmpDBName = "***"
const vTmpDBOwner = "***"
const v1CServer = "***"
const v1CExe = "\\***\bin\1cv8.exe"
const vRemoteShare = "\\****\****"
const vRemoteUser = "***"
const vRemotePassword = "***"
const vMapDriveName = ""
const vTmpPath = "D:"

DebugMode = true

set wsn = WScript.CreateObject("WScript.Network")

DebugMsg "Mapping remote share " & vRemoteShare
MappedDrive = ""
set oDrives = wsn.EnumNetworkDrives
for i = 0 to oDrives.Count - 1 Step 2
   if oDrives.Item(i+1) = vRemoteShare then
       'уже подсоединен
       MappedDrive = oDrives.Item(i)
       exit for
   end if
next

if MappedDrive = "" then
   wsn.MapNetworkDrive vMapDriveName, vRemoteShare, false, vRemoteUser, vRemotePassword
   MappedDrive = vMapDriveName
end if

Set fso = CreateObject("Scripting.FileSystemObject")

set sqlConn = CreateObject("ADODB.Connection")
sqlConn.Provider = "SQLOLEDB"
sqlConn.Properties("Integrated Security").Value = "SSPI"
sqlConn.Properties("Data Source").Value = vDBServer
sqlConn.Properties("Initial Catalog").Value = "master"
sqlConn.CommandTimeout = 20000
sqlConn.Open
if sqlConn.state <> adStateOpen then
   wscript.echo "Не удалось установить соединение с сервером: """ & vDBServer & """"
   set sqlConn = Nothing
   wscript.quit(1)
end if

DebugMsg "Backuping SQL database " & vDBName & " to " & vTmpBakFile & " ..."
sqlConn.Execute("BACKUP DATABASE [" & vDBName & "] TO DISK = '" & vTmpBakFile & "' WITH FORMAT, COMPRESSION")

stMove = ""
set rs = sqlConn.Execute("SELECT name, physical_name FROM [" & vTmpDbName & "].sys.database_files")
do until rs.EOF
   if stMove <> "" then
       stMove = stMove & ","
   end if
   stMove = stMove & " MOVE '" & rs.Fields("name").Value & "' TO '" & rs.Fields("physical_name").Value & "'"
   rs.MoveNext
loop
rs.close
set rs = nothing

DebugMsg "Restoring SQL database to " & vTmpDbName & " ..."    
sqlConn.Execute("RESTORE DATABASE [" & vTmpDbName & "] FROM DISK = '" & vTmpBakFile & "' WITH" & stMove)
sqlConn.Execute("ALTER AUTHORIZATION ON DATABASE::" & vTmpDBName & " TO " & vTmpDBOwner)
sqlConn.Close

if MappedDrive = "" then
   stDTFile = vRemoteShare & "\" & vDBName & ".dt"
else
   stDTFile = MappedDrive & "\" & vDBName & ".dt"
end if
stLogFile = vTmpPath & "\log.txt"

DebugMsg "Backuping 1C database " & vTmpDBName & " to " & stDTFile & " ..."
set oShell = CreateObject("WScript.Shell")
set o1C = oShell.Exec(v1CExe & " DESIGNER /S" & v1CServer & "\" & vTmpDBName & " /DumpIB """ & stDTFile & """ /out """ & stLogFile & """")
Do While o1C.Status = 0
   WScript.Sleep 100
Loop

Set f = fso.OpenTextFile(stLogFile, ForReading)
stText = Trim(f.ReadLine)
f.Close
if stText <> "Выгрузка информационной базы успешно завершена" then
   Set f = fso.OpenTextFile(stLogFile, ForReading)
   stText = Trim(f.ReadAll)
   f.Close
   wscript.echo "Не удалось создать бэкап базы 1С: " & stText
   wscript.quit(2)
end if

DeleteFile stLogFile

wscript.quit()

'---------------------------------------------------------------------------
function DebugMsg(stMessage)
   if DebugMode then
       wscript.echo "Debug: " & stMessage
   end if
end function

'---------------------------------------------------------------------------
Function DeleteFile(stFileName)
   if fso.FileExists(stFileName) then
       fso.DeleteFile(stFileName)
   end if
end function

'---------------------------------------------------------------------------
' Константы для работы с файлами
'---------------------------------------------------------------------------

Const ForReading = 1, ForWriting = 2

'---------------------------------------------------------------------------
' Константы для работы с ADO
'---------------------------------------------------------------------------

Const adStateClosed = 0 'Indicates that the object is closed.
Const adStateOpen = 1 'Indicates that the object is open.
Const adStateConnecting = 2 'Indicates that the object is connecting.
Const adStateExecuting = 4 'Indicates that the object is executing a command.
Const adStateFetching = 8 'Indicates that the rows of the object are being retrieved.

38 Robin iz Robinov
 
28.12.12
16:33
Спасибо буду разбираться!
39 etc
 
28.12.12
16:35
Для назойливых поясню почему появилась данная "кривая" по назначению обработка. Люди просили скидывать им бэкап именно в dt и никак иначе так как sql у них нет. Распределенка не устроила.
40 Robin iz Robinov
 
28.12.12
16:41
Спасибо!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.