|
Работа с телнет из 1с | ☑ | ||
---|---|---|---|---|
0
Иван-1C
10.05.23
✎
10:24
|
Добрый день!
Необходимо из 1С передать на принтер команду из 5 цифр по телнету Телнет установлен. Из командной строки работает. Написал функцию, но возникает ошибка: Произошла исключительная ситуация (WshShell.Exec): Не удается найти указанный файл". Функция Телнет() objShell = Новый ComОбъект("WSript.Shell"); objScriptExec = objShell.Exec("C:\Windows\System32\telnet.exe"); Возврат 1; КонецФункции Если заменить telnet на ping, то функция работает. telnet есть в указанном каталоге. Подскажите куда копать? |
|||
1
OldCondom
10.05.23
✎
10:37
|
ЗапуститьПриложение();
|
|||
2
Aleksey
10.05.23
✎
10:39
|
Ты же телнету ничего не передашь https://techarks.ru/qa/mozhno-li-ispolzovat-paketn-GS/
А так http://blog.openquality.ru/telnet-scripting/ |
|||
3
Aleksey
10.05.23
✎
10:40
|
И ты уверен что файлик там лежит? У меня к примеру он в папке c:\Windows\WinSxS\amd64_microsoft-windows-telnet-client_31bf3856ad364e35_10.0.19041.1865_none_2cb69c2ada6c4eb4\telnet.exe
|
|||
4
Волшебник
10.05.23
✎
10:48
|
(1) Здесь лучше КомандаСистемы()
|
|||
5
NorthWind
10.05.23
✎
10:49
|
я бы использовал plink.exe из пакета PuTTY.
Там можно одной строкой сделать типа вот так: echo reboot|plink.exe -ssh -noagent -batch -l admin -pw myPa$sw0rd 192.168.102.2 -ssh пусть не пугает, можно написать и -telnet :) |
|||
6
Иван-1C
10.05.23
✎
12:16
|
(4) Волшебник крут! Спасибо всем! и NorthWind за подсказку
|
|||
7
Garykom
гуру
10.05.23
✎
12:16
|
(0) Сделай батник (аля внешнее приложение-микросервис) и запускай его из 1С
|
|||
8
Иван-1C
10.05.23
✎
12:36
|
(7) в этот файл нужно каким-то образом каждый раз вставлять новую команду
|
|||
9
Garykom
гуру
10.05.23
✎
12:46
|
(8) Из макета сохраняешь в темп и запускаешь
Это стандартный способ ВК точно так же например Плюс в том что у тебя единый способ даже для разных ОС, пофиг винда, линукс, макось, андроид или еще что Не надо изменять вызов/код в 1С, можно перейти на другой способ |
|||
10
Иван-1C
10.05.23
✎
14:43
|
(7) у меня даже батник не получается сделать чтобы работал.
К телнету я обращаюсь telnet 192.168.102.2 4001 а дальше отправить команду не получается, потому что управление переходит к программе телнет и она ждет действий от пользователя, ей чихать на батник. |
|||
11
Aleksey
10.05.23
✎
15:03
|
(10) О чем сказано в (2). И в данном случае проще заменить виндовый клиент на другой, который так может. И тебе даже несколько вариантов накидали
|
|||
12
lEvGl
гуру
10.05.23
✎
15:14
|
winsock еще есть длл от мс
|
|||
13
lEvGl
гуру
10.05.23
✎
15:19
|
избавляет от записи в файлы и т д, т к есть события DataArrival и другие, изучите, возможности у нее есть
|
|||
14
Иван-1C
10.05.23
✎
15:41
|
(12) Ошибка создания объекта Winsock. Класс не лицензирован для использования
|
|||
15
lEvGl
гуру
10.05.23
✎
16:11
|
(14) входит в состав вин10, 8, 7 и т д. предоставляет activeX
https://infostart.ru/public/119982 тут задают и разъясняют вопросы по это теме ну и в гугле достаточно много всего |
|||
16
Злопчинский
10.05.23
✎
17:32
|
(2) на консольную утилиту можно переопределить входной поток чтобы не тыкать с клавы, а получать из файла...
??? |
|||
17
lEvGl
гуру
10.05.23
✎
17:45
|
(16) да можно наверно, но зачем нужно, муторно
|
|||
18
Злопчинский
11.05.23
✎
00:18
|
Запищал в файло последовательность команд и скормил в качестве стдин
|
|||
19
Fedor-1971
11.05.23
✎
09:21
|
(18) Не получится, это интерактивная игрушка, она возвращает ответ на каждую строку пользователя, т.е. тупо будет пропускать часть ввода из стдин
Насколько я помню у TelNet есть ключ (вроде -с ИмяФайла, можно уточнить TelNet /? в командной строке), т.е. пишем в файл команды, например: Help Q и запускаем "telnet -c ИмяФайла" - вот это выполнит последовательно все внутренние команды telneta и закроет оный |
|||
20
lEvGl
гуру
11.05.23
✎
09:47
|
(18) да в хрен о впились эти ваши файлы, на ввод файл, на вывод файл. все внутри проги делать надо, тогда и проблем не будет
|
|||
21
lEvGl
гуру
11.05.23
✎
09:47
|
*они
|
|||
22
Иван-1C
11.05.23
✎
09:56
|
(20) внутри проги это через sendkeys и sleep понимаю?
|
|||
23
Волшебник
11.05.23
✎
10:11
|
(22) лучше через TCP-соединение
|
|||
24
lEvGl
гуру
11.05.23
✎
10:13
|
(22) прога у нас одна - 1с. возьмите библиотеку из постов выше и дайте ей ума один раз и будете пользоваться этим и дальше, так называемый кейс.
а то уже видно, что вы нашли костыли в виде сендкейс и остального приблудного. или напишите свою вк в любой среде, в которой есть средства tcp/ip. в 1С их нет |
|||
26
NorthWind
11.05.23
✎
10:54
|
(20) все зависит от решаемой задачи. Если разово нужно чет плюнуть на железку, не обрабатывая ответ - можно и через внешнее приложение сделать, особенно если вам никто дополнительно не платит за разборки со средствами более низкого уровня типа ВК и COM-объектов. Если планируется взаимодействие более серьезное - тогда да.
|
|||
27
Иван-1C
11.05.23
✎
11:13
|
(26) да, сейчас стоит задача плюнуть команду 12345 на железку. Ответ не нужен.
|
|||
28
NorthWind
11.05.23
✎
12:42
|
(22) можно так. Можно на stdin проги команды направить. Можно файл текстовый скормить с командами. Вариантов полно.
(27) вариантов уже кучу накидали. Берите да делайте, какой-нибудь сработает |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |