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

Переписать код на 1С

Переписать код на 1С
Я
   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С аналогичное есть?
   lEvGl
 
1 - 27.07.20 - 14:43
в 1с как и в ms, есть все, если подключить нужные сборки
   Kongo2019
 
2 - 27.07.20 - 14:46
И где рыть?
   acht
 
3 - 27.07.20 - 14:49
(2) С такой постановкой - от HTTPсоединений через ЗапуститьПриложение до внешних компонент
   lEvGl
 
4 - 27.07.20 - 14:49
а что нужно
   Kongo2019
 
5 - 27.07.20 - 14:52
(4) Файл отравить.
Через сокеты.
s.send(t), где t - это файл.
   ZDenis
 
6 - 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(КодДляПередачи);
    КонецЕсли; 
КонецПроцедуры
   spiller26
 
7 - 27.07.20 - 14:58
(0) 1C самом с сокетами не умеет работать только через сторонние библиотеки.
   Kongo2019
 
8 - 27.07.20 - 15:01
(6)Спасибо, попробую.
   ZDenis
 
9 - 27.07.20 - 15:05
(8) Еще в модуле приложения переменная объявлена
Перем WinsocketClient Экспорт;
   lEvGl
 
10 - 27.07.20 - 15:07
   Kongo2019
 
11 - 27.07.20 - 15:10
(10) Ха, да я не первый.
Я свой код из документации вытащил.
Но там походу не заработало.
   acht
 
12 - 27.07.20 - 15:14
   Ц_У
 
13 - 27.07.20 - 15:15
   Ц_У
 
14 - 27.07.20 - 15:16
(10) ой :)
   Ц_У
 
15 - 27.07.20 - 15:17
ну в этой ситуации мы просто это как бы здесь наши полномочия все (с)
   lEvGl
 
16 - 27.07.20 - 15:22
))
по теме - здесь как бы шило мыло, все.
пс. зачем менять свою компоненту из (0) на винсок, тоже полномочия.
   Сияющий в темноте
 
17 - 27.07.20 - 23:27
файл в udp порт?
ну,ну,веселые ребята.
   lodger
 
18 - 28.07.20 - 01:00
(17) они суют xml с данными чека, в видеорегистратор снимающий кассу\выдачу, чтобы на картинку наложить содержимое чека.
почему бы и не udp. пока туда-сюда, данные всё равно потеряют актуальность. а так, типа шнеле-шнеле.
   Garykom
 
19 - 28.07.20 - 08:31
(0) Поставь питон, проверь что приведенный код работает.
А затем тупо запускай из 1С через командную строку слегка допилив код чтобы xml из файла брал, куда его 1С положит и выполнит КомандаСистемы ))
   Garykom
 
20 - 28.07.20 - 08:32
(19)+ Это самый простой, надежный и гибкий способ.
Если завязаться на COMObject("MSWinsock.Winsock") то сразу линукс отсекается
   Garykom
 
21 - 28.07.20 - 08:33
(20)+ Да и хрен то с линуксом но к 1С x86 привязка, 64 бит лесом или грабли
   Сияющий в темноте
 
22 - 28.07.20 - 08:58
если видеорегистратор это программа а как бы 127.0.0.1 намекает,то учить ее о
работе с файлами и потоками
   novichok79
 
23 - 28.07.20 - 09:07
   novichok79
 
24 - 28.07.20 - 09:07
ну на ИС посмотрите публикацию с номером 236223
   Kongo2019
 
25 - 28.07.20 - 10:20
(19) А это интересный вариант.
То бишь писать мое сообщение в файл, и выполнить скрипт на Питоне.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.