|
v7: из DOS в 1С | ☑ | ||
---|---|---|---|---|
0
Gugolovski
25.01.18
✎
10:04
|
Из 1С я могу вызвать исполнение команды DOS.
Допустим: КомандаСистемы("ping 192.168.2.1"); а есть возможность подхватить ответ системы и показать его, например, через "Сообщить()"? |
|||
1
NikVars
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
|
>> два знака
|
|||
5
Gugolovski
25.01.18
✎
10:11
|
> это досовские команды?
Это да, мы поколение окон и зизуализации |
|||
6
Gugolovski
25.01.18
✎
10:17
|
В целом направление понято. Спасибо (1)
|
|||
7
NikVars
25.01.18
✎
10:17
|
(5) https://yandex.ru/yandsearch?&clid=2186620&text=досовские%20команды%20вывод%20в%20файл&lr=213
Тогда должны уметь пользоваться поиском. Щас поиск дает ответы - контента с избытком и даже на русском - не то, что раньше. Как думешь, какая ссылка твоя? |
|||
8
Gugolovski
25.01.18
✎
10:21
|
||||
9
MadDAD
31.01.18
✎
09:10
|
(1)
Режим зануды: ON Вообще-то, DOS тут ни при чем. Ты говоришь о консоли. Режим зануды: OFF Вообще для получения консольного вывода можно использовать скрипт Wscript.Shell и его метод Exec. Это, кмк, красивей чем временные файлы. |
|||
10
Скиурус
31.01.18
✎
09:14
|
(9) Скрипт через СОМ звать? Так тогда уж лучше сразу сокет открыть и потыкаться им в нужный айпишник, не привлекая посторонние экзешники.
|
|||
11
MadDAD
31.01.18
✎
09:18
|
(10) Так-то да. DynWrapX + WinApi будет быстрее.
|
|||
12
MadDAD
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 + РазделительСтрок; КонецЦикла; Сообщить(Вывод); |
|||
13
NikVars
31.01.18
✎
11:07
|
(12) Вывод = Вывод + TextStream.ReadLine + РазделительСтрок;
...: Метод не найден |
|||
14
ADirks
31.01.18
✎
11:36
|
(13) дык укажи скобки то, раз метод
|
|||
15
MadDAD
31.01.18
✎
11:41
|
(13) ОЧепятался. Скобок не доложил...
Вывод = Вывод + TextStream.ReadLine() + РазделительСтрок; |
|||
16
MadDAD
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()) + РазделительСтрок; КонецЦикла; Сообщить(Вывод); |
|||
17
NikVars
31.01.18
✎
11:58
|
(16) Ага! Класс! Спасибо!
Только вот черное окно висит при выполнении пинга... |
|||
18
Йохохо
31.01.18
✎
12:42
|
а так? Run("ping 192.168.2.1", 0, true);
|
|||
19
big
31.01.18
✎
12:43
|
(18) там возвращаемое значение не то
|
|||
20
MadDAD
31.01.18
✎
16:49
|
(17) Ну если прям ОООЧЕНЬ сильно бесит - то можно подключить DynWrapX и через winApi скрыть окно, но оно того не стоит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |