|
Скрипт для обновления ИБ | ☑ | ||
---|---|---|---|---|
0
val245
23.01.12
✎
15:31
|
Распределенная база. Более 20 зависимых баз. В окнфигурацию достаточно часто вносятся изменения. Клиент хотел бы, что б обмен и обновление конфигурации происходил простыми нажатиями на кнопки "Выгрузить" и "Загрузить". Для того, что б происходило обновления необходим создать скрипт. Достаточно подробная инфа есть здесь http://coder1cv8.narod.ru/Publication2.html.
В езультате формируется скрипт следующего соержания WScript.Sleep 5000 Set WshShell=CreateObject("WScript.Shell") ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\ /F D:\valeriy\Desktop\ObmenAzerSigorta\Genja /N Exchange /P Exchange /UpdateDBCfg",1,1) If ReturnCode=0 Then WshShell.Run """C:\Program Files\1cv81\bin\1CV8.EXE"" ENTERPRISE /F D:\valeriy\Desktop\ObmenAzerSigorta\Genja /N Exchange /P Exchange",1,0 End If Set FSO=CreateObject("Scripting.FileSystemObject") Set File=FSO.GetFile(WScript.ScriptFullName) File.Delete Однако при запуске выходит следующая ошибка: Сценарий: D:\valerii\Desktop\exchange.vbs Строка: 3 Символ: 1 Код: 80070002 Источник: (null) Что может быть не так? Может каталог задаю не верно? Но вроде оставил только латинские символы, убрал все пробелы... |
|||
1
vicof
23.01.12
✎
15:33
|
три кавычки
|
|||
2
vicof
23.01.12
✎
15:34
|
точней после bin\ кавычки закрывающие не стоят
|
|||
3
val245
23.01.12
✎
15:38
|
Спасибо. Исправил. Теперь иммет такой вид
WScript.Sleep 5000 Set WshShell=CreateObject("WScript.Shell") ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\"" /F D:\valeriy\Desktop\ObmenAzerSigorta\Genja /N Exchange /P Exchange /UpdateDBCfg",1,1) If ReturnCode=0 Then WshShell.Run """C:\Program Files\1cv81\bin\1CV8.EXE"" ENTERPRISE /F D:\valeriy\Desktop\ObmenAzerSigorta\Genja /N Exchange /P Exchange",1,0 End If Set FSO=CreateObject("Scripting.FileSystemObject") Set File=FSO.GetFile(WScript.ScriptFullName) File.Delete Но пишет снова ошибку Строка: 3 Символ 1 Ошибка Не удается дождаться процесса. Код: 80020009 Источник WshShell.Run Извините, просто со скриптами не очень знаком... |
|||
4
vicof
23.01.12
✎
15:45
|
права на папку есть?
|
|||
5
val245
23.01.12
✎
15:51
|
права есть
|
|||
6
vicof
23.01.12
✎
16:00
|
||||
7
hhhh
23.01.12
✎
16:05
|
попробуйте пробелы убрать после F N и P
|
|||
8
Nikitos
23.01.12
✎
16:05
|
может проблемы в "лишних" пробелах после /F, /N и /P?
|
|||
9
Nikitos
23.01.12
✎
16:09
|
||||
10
Nikitos
23.01.12
✎
16:15
|
ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\1cv8.exe"" /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /NExchange /PExchange /UpdateDBCfg",1,True)
у меня как-то так работает А все просто ибо (0) забыл указать что он запускает, а именно: 1cv8.exe |
|||
11
vicof
23.01.12
✎
16:39
|
(10) бгг)
|
|||
12
val245
23.01.12
✎
17:30
|
Да уж.. все класнно, запускает, но не обновляет...
WScript.Sleep 2000 Set WshShell=CreateObject("WScript.Shell") ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\1cv8.exe"" /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /N User /P 123 /UpdateDBCfg",1,True) If ReturnCode=0 Then WshShell.Run """C:\Program Files\1cv81\bin\1CV8.EXE"" ENTERPRISE /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /N User /P 123",1,0 End If Set FSO=CreateObject("Scripting.FileSystemObject") Set File=FSO.GetFile(WScript.ScriptFullName) |
|||
13
Nikitos
23.01.12
✎
20:36
|
(12) Ну явно же написано даже в (0)
третья строка должна быть: ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\1cv8.exe"" CONFIG /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /N User /P 123 /UpdateDBCfg",1,True) Внимательнее надо быть, товарищ |
|||
14
Serg_1960
23.01.12
✎
23:04
|
Эпиграф: "Откройте для себя Америку"... типовая конфа, типовая функция:
// функция формирует часть бат файла (вызов обновления конфигурации) Функция СформироватьЧастьВызоваОбновленияКонфигурации(Знач ИмяАдминистратораИБ = "", Знач ИмяФайлаИнформацииОбОшибках = "", Знач ИспользоватьФайлОбОшибкахСПустымИменем = Ложь) ИмяЛогинаАдминистратора = ?(ПустаяСтрока(ИмяАдминистратораИБ), "", СформироватьЛогинПодключенияКИБ(ИмяАдминистратораИБ)); СтрокаОбъявленияФайлаСообщенийОбОшибках = ""; СтрокаДляВыводаДанныхВФайл = ""; Если НЕ ПустаяСтрока(ИмяФайлаИнформацииОбОшибках) ИЛИ ИспользоватьФайлОбОшибкахСПустымИменем Тогда // надо проверить наличие файла для обмена, есл его нет то создать его СтрокаИмениФайлаИнформацииОбОшибках = СокрЛП(ИмяФайлаИнформацииОбОшибках); СтрокаОбъявленияФайлаСообщенийОбОшибках = " |REM Путь к файлу для ошибок и сообщений |set FileInformation=""" + СтрокаИмениФайлаИнформацииОбОшибках + """ | |date /t >> %FileInformation% |time /t >> %FileInformation% |set DataBaseName>>%FileInformation%"; СтрокаДляВыводаДанныхВФайл = "/Out%FileInformation% -NoTruncate"; КонецЕсли; // основной текст ТекстФайлаПоУмолчанию = " |REM Логин администратора системы |set AdminUser=" + ИмяЛогинаАдминистратора + " | |" + СтрокаОбъявленияФайлаСообщенийОбОшибках + " | |rem Завершение работы пользователей |start """" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей /UCПакетноеОбновлениеКонфигурацииИБ " + СтрокаДляВыводаДанныхВФайл + " /DisableStartupMessages | |start """" /wait %v8exe% CONFIG %DataBase% %AdminUser% /UpdateDBCfg /UCПакетноеОбновлениеКонфигурацииИБ " + СтрокаДляВыводаДанныхВФайл + " | |rem Разрешение работы пользователей |start """" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CРазрешитьРаботуПользователей /UCПакетноеОбновлениеКонфигурацииИБ " + СтрокаДляВыводаДанныхВФайл + " /DisableStartupMessages | |rem Запуск самой программы |start """" %v8exe% ENTERPRISE %DataBase% %User% /DisableStartupMessages"; Возврат ТекстФайлаПоУмолчанию; КонецФункции PS: сорри, если "не в тему" :) |
|||
15
Нуф-Нуф
23.01.12
✎
23:08
|
(14)+1
в типовой ут 10.3 |
|||
16
Anton_2011
23.01.12
✎
23:14
|
Абстрогируйтесь от 1С на мгнговение и сразу поймете как пользоваться отладчиком VBS. Отлаживал подобный скрипт как то. Пока не вник в первое свое предложение здесь(изначально не моё) - не заработало.
|
|||
17
vicof
24.01.12
✎
00:14
|
(16) "АбстрОгируйтесь от 1С на мГНГовение"
духов нанюхался? :) |
|||
18
val245
24.01.12
✎
12:22
|
Спасибо всем большое Получилось. Вот окончаельный текст скрипта
WScript.Sleep 2000 Set WshShell=CreateObject("WScript.Shell") ReturnCode=WshShell.Run("""C:\Program Files\1cv81\bin\1cv8.exe"" DESIGNER /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /N User /P 123 /UpdateDBCfg",1,True) If ReturnCode=0 Then WshShell.Run """C:\Program Files\1cv81\bin\1CV8.EXE"" ENTERPRISE /FD:\valeriy\Desktop\ObmenAzerSigorta\Genja /N User /P 123",1,0 End If Set FSO=CreateObject("Scripting.FileSystemObject") Set File=FSO.GetFile(WScript.ScriptFullName) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |