Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: из DOS в 1С

v7: из DOS в 1С
Я
   Gugolovski
 
25.01.18 - 10:04
Из 1С я могу вызвать исполнение команды DOS.

Допустим:
КомандаСистемы("ping 192.168.2.1");

а есть возможность подхватить ответ системы и показать его, например, через "Сообщить()"?
 
 
   NikVars
 
1 - 25.01.18 - 10:06
(0) Пробуй
КомандаСистемы("ping 192.168.2.1 > c:\1.txt");
Потом этот txt анализируй.
   Злопчинский
 
2 - 25.01.18 - 10:09
Вот и выросло поколение которое не знает ничего о перенаправления ввода-вывода
   Злопчинский
 
3 - 25.01.18 - 10:09
Например ещё можно такой знак поставить
   Злопчинский
 
4 - 25.01.18 - 10:10
>> два знака
   Gugolovski
 
5 - 25.01.18 - 10:11
> это досовские команды?
Это да, мы поколение окон и зизуализации
   Gugolovski
 
6 - 25.01.18 - 10:17
В целом направление понято. Спасибо (1)
   NikVars
 
7 - 25.01.18 - 10:17
(5) https://yandex.ru/yandsearch?&clid=2186620&text=досовские%20команды%20вывод%20в%20файл&lr=213
Тогда должны уметь пользоваться поиском.
Щас поиск дает ответы - контента с избытком и даже на русском - не то, что раньше.
Как думешь, какая ссылка твоя?
   Gugolovski
 
8 - 25.01.18 - 10:21
(7) Ага, я уже тут подобное увидел. https://ru.wikipedia.org/wiki/Список_команд_DOS

Спасибо еще раз
   MadDAD
 
9 - 31.01.18 - 09:10
(1)
Режим зануды: ON
Вообще-то, DOS тут ни при чем. Ты говоришь о консоли.
Режим зануды: OFF

Вообще для получения консольного вывода можно использовать скрипт Wscript.Shell  и его метод Exec. Это, кмк, красивей чем временные файлы.
   Скиурус
 
10 - 31.01.18 - 09:14
(9) Скрипт через СОМ звать? Так тогда уж лучше сразу сокет открыть и потыкаться им в нужный айпишник, не привлекая посторонние экзешники.
 
 Рекламное место пустует
   MadDAD
 
11 - 31.01.18 - 09:18
(10) Так-то да. DynWrapX + WinApi будет быстрее.
   MadDAD
 
12 - 31.01.18 - 09:18
(0)
Как-то примерно так это выглядит.

WshShell = СоздатьОбъект("WScript.Shell")
WshExec = WshShell.Exec("ping 192.168.2.1")
TextStream = WshExec.StdOut;
Вывод = "";
Пока TextStream.AtEndOfStream <> -1 Цикл
    Вывод=ВЫвод +  TextStream.ReadLine + РазделительСтрок;
КонецЦикла;
    
Сообщить(Вывод);
   NikVars
 
13 - 31.01.18 - 11:07
(12) Вывод = Вывод +  TextStream.ReadLine + РазделительСтрок;
...: Метод не найден
   ADirks
 
14 - 31.01.18 - 11:36
(13) дык укажи скобки то, раз метод
   MadDAD
 
15 - 31.01.18 - 11:41
(13) ОЧепятался. Скобок не доложил...

Вывод = Вывод +  TextStream.ReadLine() + РазделительСтрок;
   MadDAD
 
16 - 31.01.18 - 11:47
Совсем по правильному будет так.
    WshShell = СоздатьОбъект("WScript.Shell");
    WshExec = WshShell.Exec("ping 192.168.2.1");
    TextStream = WshExec.StdOut;
    Вывод = "";
    Пока TextStream.AtEndOfStream <> -1 Цикл
        Вывод = ВЫвод +  OemToAnsi(TextStream.ReadLine()) + РазделительСтрок;
    КонецЦикла;
    
    Сообщить(Вывод);
   NikVars
 
17 - 31.01.18 - 11:58
(16) Ага! Класс! Спасибо!
Только вот черное окно висит при выполнении пинга...
   Йохохо
 
18 - 31.01.18 - 12:42
а так? Run("ping 192.168.2.1", 0, true);
   big
 
19 - 31.01.18 - 12:43
(18) там возвращаемое значение не то
   MadDAD
 
20 - 31.01.18 - 16:49
(17) Ну если прям ОООЧЕНЬ сильно бесит - то можно подключить DynWrapX и через winApi скрыть окно, но оно того не стоит.

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