Имя: Пароль:
1C
1C 7.7
v7: 1CPP ActiveX WinSock GetData(Text) - возвращает пустое значение.
,
0 Agent ООЗ
 
28.09.12
13:30
Сабж, кто-нибудь победил? В гугле тишина.
1 Ёпрст
 
28.09.12
13:37
2 Ёпрст
 
28.09.12
13:38
короче, RiK_Inet пользуй..
http://www.rikcenter.ru/downloads.php
3 Agent ООЗ
 
28.09.12
13:39
сам читаешь, то что отправляешь?
4 Ёпрст
 
28.09.12
13:39
(3) нет, в закладках валялось
5 oleg_km
 
28.09.12
14:09
А не понял, что нужно победить? Если речь идет о майкросовтовском ActiveX. То у меня он уже используется лет 10. Сейчас на нем крутится серверный процесс, который обслуживает до 100 пользователей. Подключаю терминалы спутниковой навигации. Поэетому приведи код, попробуем разобраться что не работает
6 Agent ООЗ
 
28.09.12
14:21
Процедура Winsock_DataArrival(bytesTotal)
    Команда = "";
    Десктоп.Объект.GetData(Команда);
КонецПроцедуры    

Переменная Команда всегда пустая, не могу получить сообщение с другого конца.
7 oleg_km
 
28.09.12
14:27
(6) А-а. Нужно выделить память в буфере:

Процедура Winsock_DataArrival(bytesTotal)
    Команда = "";
для ии = 1 По bytesTotal Цикл
    Команда = Команда + " ";
КонецЦикл
    Десктоп.Объект.GetData(Команда);
КонецПроцедуры    

должно получиться. У меня работает
8 Agent ООЗ
 
28.09.12
14:34
получается строка с пробелами, а данных нет.
9 oleg_km
 
28.09.12
15:17
(8) Так я посмотрел у себя, полный текст такой:

Процедура СокетDataArrival(Элемент, bytesTotal)
   Ошибка = Ложь;
   Буфер = СтрСоздать(bytesTotal);
//    Буфер = Новый COMSafeArray("VT_UI1", bytesTotal);
   Попытка
       Элемент.GetData(Буфер, 8, bytesTotal);
//        Элемент.GetData(Буфер, 8192 + 17, bytesTotal);
   Исключение
       Ошибка = Истина;
   КонецПопытки;
КонецПроцедуры

Может параметров не хватает в функции GetData. Второй параметр тип буфера, третий размер
10 Agent ООЗ
 
28.09.12
16:29
В 8 возвращает без всяких наворотов, в отличии от 7.
11 oleg_km
 
28.09.12
17:23
(10) Тогда ой. У меня были сомнения про 7, но думал не существенно. С 7кой дел не имел и не планирую