| 
    
        
     
     | 
    
  | 
Работа с телнет из 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) вариантов уже кучу накидали. Берите да делайте, какой-нибудь сработает  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |