|   |   | 
| 
 | v7: Установка переменной окружения из WSH | ☑ | ||
|---|---|---|---|---|
| 0
    
        big 19.12.19✎ 08:16 | 
        Для работы с бэкапами понадобилось в процессе работы из-под прокси устанавливать параметры этой самой прокси.
 В JScript сделал это вот так: WshShell = WScript.CreateObject('WScript.Shell') WshEnvir = WshShell.Environment("PROCESS"); WshEnvir('HTTP_PROXY') = 'http://user:pass@proxy:3128' WshEnvir('HTTPS_PROXY') = 'http://user:pass@proxy:3128' и далее уже WshShell.Run("%ComSpec% /c "+Command,1,true) А вот как это сделать из 7.7 не могу понять. Вот такой код не работает: WshShell=СоздатьОбъект("WScript.Shell"); WshEnvir = WshShell.Environment("PROCESS"); //WshEnvir("HTTP_PROXY") = "http://user:pass@proxy:3128"; //WshEnvir("HTTPS_PROXY") = "http://user:pass@proxy:3128" WshEnvir.HTTP_PROXY = "http://user:pass@proxy:3128"; WshEnvir.HTTPS_PROXY = "http://user:pass@proxy:3128"; Посоветуйте как можно сделать? | |||
| 1
    
        vicof 19.12.19✎ 08:18 | 
        что значит не работает?     | |||
| 2
    
        Смотрящий 19.12.19✎ 08:19 | 
        1     | |||
| 3
    
        big 19.12.19✎ 08:24 | 
        При таком варианте:
 WshEnvir.HTTP_PROXY = "http://user:pass@proxy:3128"; WshEnvir.HTTPS_PROXY = "http://user:pass@proxy:3128"; "Поле агрегатного объекта не обнаружено" При таком варианте: WshEnvir("HTTP_PROXY") = "http://user:pass@proxy:3128"; WshEnvir("HTTPS_PROXY") = "http://user:pass@proxy:3128"; "Процедура не обнаружена" | |||
| 4
    
        vicof 19.12.19✎ 08:30 | 
        А в отладчике посмотреть, что WshEnvir из себя представляет?     | |||
| 5
    
        vicof 19.12.19✎ 08:34 | 
        Подозреваю, что массив     | |||
| 6
    
        vicof 19.12.19✎ 08:35 | 
        Пример:
 Set WshShell = CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment MsgBox WshEnv.Item("WINDIR") Другой пример: Set WshShell = CreateObject("WScript.Shell") WScript.Echo "ПЕРЕМЕННЫЕ System:" For Each Var In WshShell.Environment("System") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ User:" For Each Var In WshShell.Environment("User") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Volatile:" For Each Var In WshShell.Environment("Volatile") WScript.Echo Var Next WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Process:" For Each Var In WshShell.Environment("Process") WScript.Echo Var Next | |||
| 7
    
        trdm 19.12.19✎ 08:40 | 
        Используй 
 ScrCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); ScrCtrl.Language="JScript"; | |||
| 8
    
        ADirks 19.12.19✎ 08:47 | 
        (0) с коллекциями 1С не умеет.
 как-то так надо Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language = "JScript"; стрКод = " |function SetEnv() |{ | WshShell = WScript.CreateObject('WScript.Shell'); | WshEnvir = WshShell.Environment("PROCESS"); | WshEnvir('HTTP_PROXY') = 'http://user:pass@proxy:3128'; | WshEnvir('HTTPS_PROXY') = 'http://user:pass@proxy:3128'; |} |"; Скрипт.AddCode(стрКод); Скрипт.Run("SetEnv"); | |||
| 9
    
        big 19.12.19✎ 08:49 | 
        (6) Эти примеры у меня есть ))
 Только что его же посмотрел и обнаружил, что этот объект-коллекция только для чтения. Как с ним получается работать в JScript - вопрос ) (7) Кстати, пробовал и так, но видать опыта не хватает - не получилось на самом начальном этапе. ТекстСкрипта = " |function probe(){ | | var WshShell = WScript.CreateObject(""WScript.Shell""); | return 1234; |}"; scriptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); scriptCtrl.Language="jscript"; scriptCtrl.AddCode(ТекстСкрипта); Сумма = scriptCtrl.Eval("probe()"); Ошибка: Ошибка выполнения Microsoft JScript: 'WScript' - определение отсутствует | |||
| 10
    
        Сияющий в темноте 19.12.19✎ 08:49 | 
        если запуск через командную строку,то лучше всего подходит bat файл,где все в одной коробке.
 также,можно посмотреть на создание процесса через wmi,где переменные окружения задаются явно. и еще когда вы используете vbscript,то у обьекта вызывается метод по умолчанию,который 1с вызвать не может,в ней нужно все методы прописывать явно. | |||
| 11
    
        ADirks 19.12.19✎ 08:56 | 
        (9)  WshShell = new ActiveXObject('WScript.Shell');     | |||
| 12
    
        big 19.12.19✎ 08:58 | 
        (11) УРА!! Это оно и есть!!! )))     | |||
| 13
    
        big 19.12.19✎ 08:59 | 
        (11) Спасибо!! ))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |