Возникла необходимость работать с 1С. Из Дельфи не хочется. "На коленке" запись поля работает так:
- Код: Выделить всё
procedure lcw(const Source: OleVariant; const PropertyName: String; const Value; const DataType: Integer);
var
Desc: TCallDesc;
begin
Desc.CallType := DISPATCH_PROPERTYPUT;
Desc.ArgCount := 1;
Desc.NamedArgCount := 0;
Desc.ArgTypes[0] := DataType;
StrPCopy(@DescArgTyes[1], UTF8ToWinCP(ProperyName));
VarDispProc(nil, Source, @Desc, @Value);
end;
Имя поля поступает уже в WideString(Utf8ToAnsi()). Всё хорошо, кроме как если надо записать поле с ссылкой. Например, "Организация". Тип OleVariant - varDispatch. При записи ругается. Вероятно надо использовать DISPATCH_PROPERTYPUTREF. Но в этом случае ругается на неверное число параметров. Знает кто как правильно писать ссылки?
P.S. Исходную ссылку получаю похожим образом через DISPATCH_METHOD.