Интеграция с 1С 8.2 на C++ Builder
Подключение из программы на С++ Builder 6 к 1С 8.2 через COM-объект (V82.Application)
Возможности:
- Просмотр списка справочников 1С
- Просмотр реквизитов справочника с указанием типа данных
- Вывод данных справочника в Текстовый документ
Исходники прилагаются!
Добавлен бесплатный компонент VirtualTreeview.
По свойствам намного превосходит обычное дерево Treeview.
На мой взгляд, самый функциональный компонент по работе с деревьями!
Пример подключения и получения списка справочников
TVirtualNode *Child;
TVirtualNode *Node;
TDateCatalog *dateCat;
TrVCatalogs->RootNodeCount=0;
TrVCatalogs->NodeDataSize=sizeof(TDateCatalog);
char *TempPath;
TempPath=GetDir();
Directory->Caption=TempPath;
if (Directory->Caption=="")return;
TPanel *Panel;
Panel=new TPanel(this);
Panel->Parent=this;
Panel->Color=TColor(0x00C6D3A9);
Panel->Caption="Идет подключение к 1С 8.2...";
Panel->Font->Size=16;
Panel->Font->Name="Arial";
Panel->Width=350;
Panel->Height=150;
Panel->Left=this->Width/2-Panel->Width/2;
Panel->Top=this->Height/2-Panel->Height;
Panel->Repaint();
Ole1C=CreateOleObject("V82.Application");
//Подключение к БД файлового варианта
ConnectLine="File="+Directory->Caption+"; "
"Usr="+CBoxName->Text+"; "
"Pwd="+EditPass->Text+"";
Ole1C.OleProcedure("Connect", ConnectLine.c_str());
if (VarIsEmpty(Ole1C)) {
ShowMessage("Не удалось подключится!");
return;
}
Catalogs=Ole1C.OlePropertyGet("Справочники");
String ss;
try{ss=Ole1C.OlePropertyGet("Метаданные").OlePropertyGet("Синоним");}
catch(...){}
Form1C->Caption="Интеграция с 1C: Предприятие 8.2 "+ss;
Meta_ole=Ole1C.OlePropertyGet("Метаданные").OlePropertyGet("Справочники");
int RecCount=Meta_ole.OleFunction("Количество");
for (int i=0;i<RecCount;i++){
Variant ss=Meta_ole.OleFunction("Получить",i);
Child=TrVCatalogs->AddChild(NULL,NULL);
dateCat= (TDateCatalog*)TrVCatalogs->GetNodeData(Child);
dateCat->name=ss.OlePropertyGet("Имя");
dateCat->synonym=ss.OlePropertyGet("Синоним");
dateCat->image=1;
}
TrVCatalogs->BeginUpdate();
TrVCatalogs->Header->AutoFitColumns(false,smaAllColumns,0,0);
TrVCatalogs->EndUpdate();
SizeTree();
delete Panel;
Побывал подключиться к 1с КА не получилось.