|
Как работать с "определенными" типами данных в 1С? | ☑ | ||
---|---|---|---|---|
0
Doomer
11.12.11
✎
21:29
|
Опять же вопрос по работе с сокетами. С чтением я более или менее разобрался. Теперь думаю за отправку. Если мне нужно отправить переменную типа DWORD, а значение ее "1". Как мне в 1С создать такую переменную? Задача такая есть определенная структура которую я должен передать пакетом. В структуре все типы данных и байты и слово и двойное слово. Как мне создать такую структуру.
|
|||
1
Doomer
11.12.11
✎
21:30
|
Господа, может у кого есть пример работы с сокетами из 1С?
|
|||
2
Doomer
11.12.11
✎
22:02
|
Пока вижу только такой вариант. Брать число преобразовывать в строку. Каждый символ строки преобразовывать в число и добавлять в массив. Если длины массива хватать не будет то допишу нули в массив перед числом.
Например надо wd из числа 69 получить. Делаем "69", потом массив: 6,9. Потом добавляем нули: 0,0,6,9. Может есть по проще способы? |
|||
3
МихаилМ
11.12.11
✎
22:29
|
сокеты это не прикладное, а системное программирование
а для этих целей есть внешние компоненты |
|||
4
H A D G E H O G s
11.12.11
✎
22:40
|
Не понимаю проблемы автора.
|
|||
5
Doomer
11.12.11
✎
22:57
|
(4) Мне нужно отправить например 4 байта. А я не знаю сколько памяти выделено под мою переменную в 1С.
|
|||
6
vde69
11.12.11
✎
23:04
|
используй COM объекты, по другому 1с не поддерживает явную типизацию,
в 1с ВСЕ переменные имеют тип "неопределенный" |
|||
7
oleg_km
12.12.11
✎
09:31
|
Если речь идет о ActiveX WinSock, то внимательно почитай справку:
object.SendData data The SendData method syntax has these parts Part Description object Anobject expression that evaluates to an object in the Applies To list. data Data to be sent. For binary data, byte array should be used. Remarks When a UNICODE string is passed in, it is converted to an ANSI string before being sent out on the network. Т.е. можно бинарные данные отправить через COMSafeArray с типом VT_I1. Если отправляешь строку, она преобразуется в ANSI Соответственно прием: object.GetData data, [type,] [maxLen] The GetData method syntax has these parts: Part Description object Anobject expression that evaluates to an object in the Applies To list. data Where retrieved data will be stored after the method returns successfully. If there is not enough data available for requested type, data will be set to Empty. type Optional. Type of data to be retrieved, as shown in Settings. maxLen Optional. Specifies the desired size when receiving a byte array or a string. If this parameter is missing for byte array or string, all available data will be retrieved. If provided for data types other than byte array and string, this parameter is ignored. Settings The settings for type are: Description Constant Byte vbByte Integer vbInteger Long vbLong Single vbSingle Double vbDouble Currency vbCurrency Date vbDate Boolean vbBoolean SCODE vbError String vbString Byte Array vbArray + vbByte |
|||
8
oleg_km
12.12.11
✎
09:32
|
Вот пример из реально работающей 1С
Процедура СокетDataArrival(Элемент, bytesTotal) Ошибка = Ложь; Буфер = СтрСоздать(bytesTotal); // Буфер = Новый COMSafeArray("VT_UI1", bytesTotal); Попытка Элемент.GetData(Буфер, 8, bytesTotal); // Элемент.GetData(Буфер, 8192 + 17, bytesTotal); Исключение Ошибка = Истина; КонецПопытки; Если Ошибка Тогда Возврат; КонецЕсли; ПринятьДанные(Буфер); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |