Возникла необходимость работать с 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.


