Имя: Пароль:
1C
 
Переписать код на 1С
0 Kongo2019
 
27.07.20
14:42
Доброго.
Есть такой код.
import sockettry:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("127.0.0.1", port))
    s.send(t)
    s.close()
except socket.error, msg:
    error("can't forward to port %i: %s" % (port, msg))
     s.close()

В 1С аналогичное есть?
1 lEvGl
 
гуру
27.07.20
14:43
в 1с как и в ms, есть все, если подключить нужные сборки
2 Kongo2019
 
27.07.20
14:46
И где рыть?
3 acht
 
27.07.20
14:49
(2) С такой постановкой - от HTTPсоединений через ЗапуститьПриложение до внешних компонент
4 lEvGl
 
гуру
27.07.20
14:49
а что нужно
5 Kongo2019
 
27.07.20
14:52
(4) Файл отравить.
Через сокеты.
s.send(t), где t - это файл.
6 ZDenis
 
27.07.20
14:56
(5) У меня так работает, но правда я не файл передаю, но нужна библиотека Mswinsock.dll

&НаКлиенте
Процедура ПередачаКадастровогоНомера(Команда)
    Порт = 1000;
    WinsocketClient = Новый COMObject("MSWinsock.Winsock");        
    WinsocketClient.RemoteHost = "127.0.0.1";
    WinsocketClient.RemotePort = Порт;
    Попытка
        WinsocketClient.Connect();
        // само подключение состоится только после выхода из текущего метода
        // после подключения выполнится ПриПодключенииКлиентаКсерверу
    Исключение
    КонецПопытки;
    
    ПодключитьОбработчикОжидания("ПриПодключенииКлиентаКсерверу", 1, Истина);
    
КонецПроцедуры

&НаКлиенте
Процедура ПриПодключенииКлиентаКсерверу() Экспорт
    ОтключитьОбработчикОжидания("ПриПодключенииКлиентаКсерверу");
    КодДляПередачи = ТутНужноеДляПередачи;
    Если ЗначениеЗаполнено(КодДляПередачи) Тогда
        WinsocketClient.SendData(КодДляПередачи);
    КонецЕсли;
КонецПроцедуры
7 spiller26
 
27.07.20
14:58
(0) 1C самом с сокетами не умеет работать только через сторонние библиотеки.
8 Kongo2019
 
27.07.20
15:01
(6)Спасибо, попробую.
9 ZDenis
 
27.07.20
15:05
(8) Еще в модуле приложения переменная объявлена

Перем WinsocketClient Экспорт;
10 lEvGl
 
гуру
27.07.20
15:07
11 Kongo2019
 
27.07.20
15:10
(10) Ха, да я не первый.
Я свой код из документации вытащил.
Но там походу не заработало.
12 acht
 
27.07.20
15:14
13 Ц_У
 
27.07.20
15:15
14 Ц_У
 
27.07.20
15:16
(10) ой :)
15 Ц_У
 
27.07.20
15:17
ну в этой ситуации мы просто это как бы здесь наши полномочия все (с)
16 lEvGl
 
гуру
27.07.20
15:22
))
по теме - здесь как бы шило мыло, все.
пс. зачем менять свою компоненту из (0) на винсок, тоже полномочия.
17 Сияющий в темноте
 
27.07.20
23:27
файл в udp порт?
ну,ну,веселые ребята.
18 lodger
 
28.07.20
01:00
(17) они суют xml с данными чека, в видеорегистратор снимающий кассу\выдачу, чтобы на картинку наложить содержимое чека.
почему бы и не udp. пока туда-сюда, данные всё равно потеряют актуальность. а так, типа шнеле-шнеле.
19 Garykom
 
гуру
28.07.20
08:31
(0) Поставь питон, проверь что приведенный код работает.
А затем тупо запускай из 1С через командную строку слегка допилив код чтобы xml из файла брал, куда его 1С положит и выполнит КомандаСистемы ))
20 Garykom
 
гуру
28.07.20
08:32
(19)+ Это самый простой, надежный и гибкий способ.
Если завязаться на COMObject("MSWinsock.Winsock") то сразу линукс отсекается
21 Garykom
 
гуру
28.07.20
08:33
(20)+ Да и хрен то с линуксом но к 1С x86 привязка, 64 бит лесом или грабли
22 Сияющий в темноте
 
28.07.20
08:58
если видеорегистратор это программа а как бы 127.0.0.1 намекает,то учить ее о
работе с файлами и потоками
23 novichok79
 
28.07.20
09:07
24 novichok79
 
28.07.20
09:07
ну на ИС посмотрите публикацию с номером 236223
25 Kongo2019
 
28.07.20
10:20
(19) А это интересный вариант.
То бишь писать мое сообщение в файл, и выполнить скрипт на Питоне.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший