PowerShell и выгрузка dt файла
Решил сделать скрипт для выгрузки dt файла из 1С, а быть точнее немного подправить его. В самом начале был скрипт на bat файле, было всего три сточки кода, но для выгрузки из всех баз, его нужно было увеличивать в размере, отсутствовала универсальность.
За эти три строчки отдельное спасибо нашим друзьям из azbukait, помогли разобраться.
Скрипт выгрузки dt файла
И так суть скрипта, запуск из консоли с указанием какую базу выгружать.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
param( [string]$Base ) # Настройки скрипта $DateTime = Get-Date -UFormat "%Y_%m_%d_%H-%M" $PatchBackup = "C:\backup-folder\" + $Base + "_" + $DateTime + ".dt" $1cexe = '"C:\Program Files (x86)\1cv8\common\1cestart.exe"' $BaseServer = "/S192.168.*.*\" + $Base $AdminLogin = '"/NАдминистратор-1С"' $Pswd = "/Pp@ssw0rd" $ExitUsers = " /CЗавершитьРаботуПользователей" $EnterUsers = " /CРазрешитьРаботуПользователей /UCКодРазрешения" $Argument = " ENTERPRISE $BaseServer $AdminLogin $Pswd /DisableStartupMessages" $ArgumentBackup = "DESIGNER $BaseServer $AdminLogin $Pswd /DumpIB" + $PatchBackup # Блокируем вход в базу 1С Start-Process $1cexe "$Argument $ExitUsers" # Ждем 60 секунд Start-Sleep -Seconds 60 # Завершаем процесс 1С Stop-Process -Name 1cv8c # Ждем 20 секунд Start-Sleep -Seconds 20 # Разрешаем вход в 1С Start-Process -Wait $1cexe "$Argument $EnterUsers" # Ждем 20 секунд Start-Sleep -Seconds 20 # Делаем выгрузку DT файла Start-Process $1cexe $ArgumentBackup # Цикл проверки созданного DT файла While($true) { if (Test-Path $PatchBackup) { Write-Host "Бэкап сделан!" -ForegroundColor Green exit } Start-Sleep -Seconds 120 } |
Требуется заменить следующие строчки на свои данные (выделены жирным, лишние не удалять):
$BaseServer = «/S192.168.*.*\» + $Base
$AdminLogin = ‘»/NАдминистратор-1С«‘
$Pswd = «/Pp@ssw0rd»
В данной заметке есть проблемы с кавычками, но в указанному выше коде, все нормально!
192.168.*.* — Адрес сервера баз данных 1С.
Администратор-1С — пользователь с правами администратора 1С.
p@ssw0rd — пароль от учетной записи администратора.
Как запускать скрипт
1 |
.\backup1c.ps1 -base название_базы |
После значения -base пишем полное название базы, размещенное на сервере 1С.
4 комментария
Евгений
Подскажите, а есть команда для ключа /C для удаление (именно удаление а не отключения) пользователей из базы. Иногда нужно передавать базу третьим лицам, от чего не хотелось бы светить сотрудников а оставить по итогу только User’a.
kanitelka
Не сталкивался с такой задачей.
Иго
А зачем раблокировать вход пользователям перед созданием выгрузки?
kanitelka
Чтобы этого не делать в конце, так как я думаю не все успеют войти в базу перед запуском выгрузки, плюс вдруг скрипт выдаст сбой и последняя строчка так и не отработает. Но если смущает можете добавить в конец.