|
vbs для загрузки информационной базы | ☑ | ||
---|---|---|---|---|
0
dainastar
20.06.12
✎
08:19
|
У кого-нибудь есть vbs для автоматической загрузки базы. Поделитесь пожалуйста.
|
|||
1
dainastar
20.06.12
✎
08:20
|
Я нашала скрипт для 1С 7.7, пыталась переделать, но не работает. Вот он:
Set objArgs = WScript.Arguments if (objArgs.Count < 5) then WScript.Quit end if ArcPath = " " ' Путь к файлу архива Database = " " ' Путь к базе данных 1С User = " " ' Имя пользователя 1С Password = " " ' Пароль пользователя 1С Prefix = " " ' Префикс имени файла архива LogDir = " " if (objArgs.Count >= 5) then LogDir = objArgs(5) end if ' Восстановить данные - 2, загрузить - 4 Action = 4 ' Запуск и активизация 1С Program = "C:\Program Files (x86)\1cv82\8.2.15.310\bin\1cv8.exe" Caption = "Конфигуратор" ' Заголовок окна которое должно получать нажатия клавиш ' Временные промежутки в миллисекундах WaitRun = 20000 ' Время на загрузку конфигуратора KeySpeed = 300 ' Промежутки между нажатиями клавиш ' Возвращает число даты или месяца с начальным нулем ' (для м-цев с января по сентябрь) Function GetWithZero(pNum, pDigs) sNumber = "" & pNum If (Len(sNumber) < pDigs) then GetWithZero = "0" & pNum else GetWithZero = sNumber end if End Function ' Возвращает имя файла (префикс плюс дата). формирует его из даты, но может быть любой Function GetArcName(pPref) GetArcName = pPref & Year(Date) & GetWithZero(Month(Date), 2) & GetWithZero(Day(Date), 2) End Function ' Пути к другим файлам и формирование имени файла архива 'LogFile = LogDir & GetArcName(prefix) & ".log" LogFile = LogDir & GetArcName(dump2Ipl) & ".log" '======================================================================================================= Sub WriteLog(Message) Dim FSObj, Log Set FSObj = CreateObject("Scripting.FileSystemObject") Log = "" On Error Resume Next Set Log = FSObj.OpenTextFile(LogFile, 8, True) Log.WriteLine Message Log.Close FSObj = "" End Sub Sub SendKeystokes(Keys, Rep) For i = 1 To Rep WshShell.SendKeys Keys WriteLog " Посланы клавиши: " & Keys WScript.Sleep KeySpeed Next End Sub WriteLog "---------------------------------------------------" WriteLog "Начало работы " & Date & " " & Time ArcFile = ArcPath & GetArcName(dump2Ipl) & ".dt" Set FSObj = CreateObject("Scripting.FileSystemObject") If FSObj.FileExists(ArcFile) Then WriteLog " Файл архива существует: " & ArcFile FSObj = "" Else WriteLog " Файл архива " & ArcFile & " не найден!" WriteLog "Окончание работы " & Date & " " & Time FSObj = "" WScript.Quit -1 End If set WshShell = WScript.CreateObject("WScript.Shell") Res = WshShell.AppActivate(Caption) ' Закроем все окна конфигураторов, чтобы ненароком не загрузить ' данные в другую (возможно рабочую) конфигурацию iTry = 0 iAllTries = 0 While (Res) ' Выход из конфигуратора !!! // WM, 2004 iTry = iTry + 1 iAllTries = iAllTries + 1 WriteLog " Попытка закрыть окно конфигуратора:" SendKeystokes "%", 1 ' Если было больше 20 попыток закрыть окно конфигуратора ' то передвинемся на один пункт меню вправо, так как в конф-ре ' открыты окна и скрипт постоянно выбирает в меню пункт ' "Следующее окно". А передвинувшись на один пункт вправо - получим ' "Закрыть" If iTry > 3 Then SendKeystokes "{RIGHT}", 1 iTry = 0 End If SendKeystokes "~", 1 SendKeystokes "{UP}", 1 SendKeystokes "~", 1 WScript.Sleep 1500 Res = WshShell.AppActivate(Caption) If iAllTries > 50 Then WriteLog " Не удалось закрыть уже открытый конфигуратор ! Возможно Вы забыли сохранить изменения и выйти!" WriteLog "Окончание работы " & Date & " " & Time wscript.Quit End If WEnd If not Res Then Res = WshShell.Run("" & Program & " CONFIG" & " /d" & Database & " /n" & User & " /p" + Password, 1) If Res = 0 Then WriteLog " Запущена программа: " & Program & " CONFIG" & " /d" & Database & " /n" & User & " /p********" Else WriteLog " Не удалось запустить программу: " & Program & " CONFIG" & " /d" & Database & " /n" & User & " /p********" WriteLog "Окончание работы " & Date & " " & Time WshShell = "" WScript.Quit -2 End If WriteLog " Ожидание загрузки программы: " & WaitRun & " миллисекунд" WScript.Sleep WaitRun Res = WshShell.AppActivate(Caption) End If If Res Then WshShell.SendKeys "" ' Это даст фокус окну, если оно его успело потерять WshShell.AppActivate(Caption) WScript.Sleep 500 WriteLog " Активизировано окно: " & Caption SendKeystokes "%", 1 SendKeystokes "{RIGHT}", 3 SendKeystokes "~", 1 SendKeystokes "{DOWN}", Action SendKeystokes "~", 1 SendKeystokes ArcFile, 1 SendKeystokes "{TAB}", 2 SendKeystokes "~", 2 If Action = 4 Then WriteLog " Начата загрузка данных " & Date & " " & Time SendKeystokes "~", 1 SendKeystokes "%{F4}", 1 Res = WshShell.AppActivate(Caption) While Res WScript.Sleep 100 Res = WshShell.AppActivate(Caption) WEnd ' Выход из конфигуратора !!! // WM, 2004 WriteLog " Закрыл окно : " & Caption SendKeystokes "%", 1 SendKeystokes "~", 1 SendKeystokes "{UP}", 1 SendKeystokes "~", 1 End If Else WriteLog " Не удалось активизировать окно: " & Caption End If WriteLog "Окончание работы " & Date & " " & Time WshShell = "" |
|||
2
Мимохожий Однако
20.06.12
✎
08:22
|
ОФФ: А для 1С6.0 случайно нет? Вдруг подойдет...
|
|||
3
Галахад
гуру
20.06.12
✎
08:24
|
(0) Гм, а зачем вообще базу автоматически загружать?
|
|||
4
dainastar
20.06.12
✎
08:29
|
После выгрузки некоторые базы получаются испорченными, поэтому чтобы хранить только рабочие выгрузки, хотим проверить, что загружается
|
|||
5
dainastar
20.06.12
✎
08:32
|
(2) очень смешно. Я со скриптом сталкиваюсь первый раз, но начальство наседает и не знаю что делать
|
|||
6
Мимохожий Однако
20.06.12
✎
08:33
|
(5)а мне не смешно. Тема V8, а скрипт V7. Или каша в голове или тремор в руках. ИМХО.
|
|||
7
dainastar
20.06.12
✎
08:36
|
Мне нужен скрипт для v8, но для него не нашла в интернете, есть только для V7. Поэтому я думала что возможно его переделать и он будет работать и для v8. Но у меня не получается переделать, потому что язык vbs пока знаю на "2"
|
|||
8
Галахад
гуру
20.06.12
✎
08:37
|
(4) Гм. Просто копируйте 1CD файл целиком, если у вас файловая.
|
|||
9
dainastar
20.06.12
✎
08:38
|
Вариант, но начальство хочет, чтобы все происходило автоматически
|
|||
10
Галахад
гуру
20.06.12
✎
08:39
|
(9) Автоматически копируйте. :0)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |