Имя: Пароль:
1C
1С v8
v8: Как передать структуру в com-объект
0 Vortigaunt
 
18.02.13
11:49
Здравствуйте!
Пишу обработку для подключения платежного терминала. С ним поставляется OLE-компонента. В инструкции написано: для открытия com порта вызвать следующий метод: CommInit(<Указатель на структуру параметоров>)
В примере на C структура описывается следущим образом:
typedef struct tagCOMParams
{
BYTE PortNum;
DWORD Timeuot;
DWORD BaudRate;
BYTE ByteSize;
BYTE Patity;
BYTE StopBits;

} COMParams

В коде 1с пишу:
Терминал = Новый COMОбъект("ECRCommX.ECRComm")
СтруктураПарам = Новый Структура("PortNum,Timeuot,BaudRate,ByteSize,Patity,StopBits",Парам1,Парам2,...,Парам6);
Терминал.CommInit(СтруктураПарам)

Вылетает ошибка: Форма.ФормаНастройки.Форма(228)}: Ошибка при вызове метода контекста (CommInit)
Терминал.CommInit(Структура);    
по причине:
Типы не совпадают (0)

Подскажите, полжалуйста, как из 1с этой процедуре передать правильную структуру. Заранее спасибо.
1 Жан Пердежон
 
18.02.13
11:55
>> вызвать следующий метод: CommInit(<Указатель на структуру параметоров>)

вот негодяи
2 Vortigaunt
 
18.02.13
11:58
>>вот негодяи
Развейте мысль, пожалуйста.
3 Mafoni
 
18.02.13
12:11
Новый COMSafeArray - не пробовал вместо Новый Структура ?
4 Vortigaunt
 
18.02.13
12:20
Пробовал. В него запихивается только массив. Пробовал в массив добавить элементом созданную структуру и запихнуть в COMSafeArray. Результат тот же. Всмысле ошибка Типы не совпадают (0).
5 Mafoni
 
18.02.13
12:24
(4) - как называется компонента ?
6 Mafoni
 
18.02.13
12:28
7 Mafoni
 
18.02.13
12:29
+ (6) - это из той ветки - из 1С текст скрипта и выполняй его через msscriptcontrol
8 Vortigaunt
 
18.02.13
12:39
(5) ECRCommX.dll
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой