Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Запуск "*.vbs" из 7.7... проблема

v7: Запуск "*.vbs" из 7.7... проблема
Я
   serpentt
 
06.06.16 - 13:30
Пробую запустить скрипт без Досовского окна через "WScript.Shell"
Скрипт получает информацию с сайта https://api.orgregister.1c.ru/orgregister/v2

запускаю из 1С
WshShell = СоздатьОбъект("WScript.Shell");
Запуск = "%comspec% /c "+ВремФайлНаДиске+".vbs";
WshShell.Exec(Запуск);

приходит ответ "не могу расшифровать данные"

Запускаю из "проводника", данный скрипт.... приходят нужные данные.

компьютер WinXP-3sp
   Звездец
 
1 - 06.06.16 - 13:31
%comspec% что в этой переменной? насколько я помню это не стандартная системная переменная окружения
   serpentt
 
2 - 06.06.16 - 13:33
(1) comspec система сама определяет какое запускать приложение
   Звездец
 
3 - 06.06.16 - 13:35
(2) не совсем понял.

в общем посмотри отладчиком Запуск правильно ли ссылается на файл, который нужно запустить и есть ли права записи туда, куда этот скрипт пишет временные данные
   serpentt
 
4 - 06.06.16 - 13:39
(3)
Хранит путь до текущего командного интерпретатора Windows.
https://ru.wikipedia.org/wiki/Переменная_среды
   serpentt
 
5 - 06.06.16 - 13:41
(3) Все права в норме...
Если из 1с запустить...

Запуск = "c:\WINDOWS\System32\explorer.exe "+ВремФайлНаДиске+".vbs";
WshShell.Exec(Запуск);

Ответ приходит, но всплывают дополнительные окна по безопасности скрипта.
   ADirks
 
6 - 06.06.16 - 13:47
Скрипты лучше выполнять непосредственно движком, без всяких файлов.
Например

    Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
    Скрипт.Language = "JScript";
    Стр = "
    |function GetNum(str)
    |{
    |    var re = new RegExp('(.*)(Cумма [\\d-\\.,]*.*)', 'i');//Откинем хвост с суммами

    |    var arr = re.exec(str);
    |    if( arr != null ) str = arr[1];
    |
    |    re = new RegExp('(.*)(НДС[\\s(]*[\\d]*.*)', 'i');//Откинем хвост с суммами

    |    arr = re.exec(str);
    |    if( arr != null ) str = arr[1];
    |
    |    re = new RegExp('\\d\\d\\.\\d\\d\\.\\d{2,4}', 'ig');//вычистим даты

    |    str = str.replace(re, '');
    |    re = new RegExp('\\d{2,4}\\s*[гГ]', 'ig');//вычистим даты

    |    str = str.replace(re, '');
    |
    |    re = new RegExp('\\d{3,}', 'ig');//вот теперь все циферки будем считать потенциальными номерами счетов

    |    arr = str.match(re);
    |    if( arr == null ) return '';
    |
    |    return '' + arr;
    |}
    |";
    Скрипт.AddCode(стр);

    стрНомера = Скрипт.Run("GetNum", стрНазначениеПлатежа);
   serpentt
 
7 - 06.06.16 - 13:49
(6) Спасибо. Сейчас испробую

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.