Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Доступ через v81.Application


Автор: TongerenS 13.10.2009, 09:48
Добрый день!

Хотелось бы спросить у знающих такой вопрос. 

Пишу в Builder C++,  подключение к 1С 8.1. 

Есть такой код:

Variant Ole1C=CreateOleObject("v81.Application"); //Подключение к версии 8.1
AnsiString ConnectLine="File=D:\\1CM; Usr="+Form1->Edit1->Text+"; Pwd="+Form1->Edit2->Text+"";
Ole1C.OleProcedure("Connect", ConnectLine.c_str());

Variant unDoc = Ole1C.OlePropertyGet("Документы").OlePropertyGet("Товар").OleFunction("НайтиПоРеквизиту", "Организация", NameOrg);




Отобранный по реквизиту документ Товар содержит в себе табличную часть "ТаблицаМатериалов".

Как перебрать данные этой таблицы из С++?

Если можно подскажите пожалуйста, что-то не выходит у меня.

Автор: Itsys 13.10.2009, 11:09
На C++ не писал никогда, но к табличной части можно обратиться через точку.
так
Код

Variant tblDoc = unDoc.ТаблицаМатериалов

или так:
Код

Variant tblDoc = unDoc.OlePropertyGet("ТаблицаМатериалов");


Автор: TongerenS 13.10.2009, 11:25
Через точку не выйдет в С++

Variant Ole1C=CreateOleObject("v81.Application"); //Подключение к версии 8.1

AnsiString ConnectLine="File=D:\\1CM; Usr="+Form1->Edit1->Text+"; Pwd="+Form1->Edit2->Text+"";

Ole1C.OleProcedure("Connect", ConnectLine.c_str());

Variant unDoc = Ole1C.OlePropertyGet("Документы").OlePropertyGet("Товар").OleFunction("НайтиПоРеквизиту", "Организация", NameOrg);

Variant ooo = unDoc.OleFunction("ПолучитьОбъект");
Variant kolvo = ooo.OlePropertyGet("ТаблицаТоваров").OleFunction("Количество");


int i;
for (i = 1; i < kolvo; i++)
    {
  
// Как в этом месте отображать например на экране значение колонки таблицы Наименование?
// Должно быть по аналогии С 1С-овским  диалектом т.е. Сообщить (ооо.ТаблицаТоваров[м].Наименование);
// только через OlePropertyGet в подключении OLE
// 


   }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)