Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

1С и C++Builder

436
23 октября 2005 года
Fevzi
87 / / 02.04.2005
Подскажите пожалуйста хорошие ссылки по обучению
1C и C++Builder,т.е. о связи 1C и C++Builder.
2.3K
24 октября 2005 года
ART-CODE
134 / / 15.11.2004
-1-
Есть платные компоненты Direct1c, см. в "ya.ru"
-2-
Исследуй этот небольшой примерчик - может и компоненты не потребуются...
Код:
void __fastcall TConnect_To_1c_Form::SpeedButton1Click(TObject *Sender)
{
Caption = "Connect_To_1c - Идет процесс подключения...";
Serv = CreateOleObject("V77.Application");
Trade = Serv.OlePropertyGet("RMTrade");
if ( VarType(Trade) == varDispatch )
{
return;
}
Serv.Exec(Function("Initialize") << Trade <<" /M /DC:\\1c_database\\MnfcDemo /NСимошкин"<< "NO_SPLASH_SHOW"  );
Caption = "Connect_To_1c - Присоединились !";

}
//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::SpeedButton2Click(TObject *Sender)
{
Caption = "Connect_To_1c - Идет процесс отключения...";
Serv = Unassigned;
Serv =Serv.Empty();
Caption = "Connect_To_1c - Отсоединились";

}
//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::SpeedButton3Click(TObject *Sender)
{
Materialy(); // эта функция загружает справочник материалов в TTreeView

/*
//а эта реализация загружает справочник "Контрагенты" в M_Pers - TMemo

M_Pers->Clear();
 Variant Spr = Serv.Exec(Function("EvalExpr")
                      <<"СоздатьОбъект(\"Справочник.Контрагенты\")");
  Spr.Exec(Function("ВыбратьЭлементы"));
  while (Spr.Exec(Function("ПолучитьЭлемент")) > 0)
    {
      M_Pers->Lines->Add(Spr.OlePropertyGet("Наименование"));
    }
  */

 }

//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::Materialy()
{
// TV - это TTreeView
TV->Items->Clear();
Direct(EmptyVar.Empty(),NULL,"Материалы");

}
//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::Direct(Variant Elem, TTreeNode* Node,String Sprav)
{
// Универсальный метод загрузки любого справочника в TV - TTreeView

  Variant Spr = Serv.Exec(Function("EvalExpr")<<"СоздатьОбъект(\"Справочник."+Sprav+"\")");
 if (!Elem.IsEmpty())
  {
   Spr.Exec(Function("ИспользоватьРодителя")<<Elem);
  }
 Spr.Exec(Function("ВыбратьЭлементы")<<1);
  while (Spr.Exec(Function("ПолучитьЭлемент"))> 0)
 {
    Test = Spr.Exec(Function("Родитель"));
    E1 = Test.Exec(Function("Наименование"));
    if(!Elem.IsEmpty())
   {E2 = Elem.Exec(Function("Наименование"));}
    else {E2 = "";}

   if (Spr.Exec(Function("ЭтоГруппа")) == 1)
   {
   if (E1 == E2)
   {
    pChildNode = TV->Items->AddChild(Node,Spr.OlePropertyGet("Наименование"));
    ParentElem = Spr.Exec(Function("ТекущийЭлемент"));
    Direct(ParentElem, pChildNode, Sprav);
    }
   }
   else
   {
    if (E1 == E2)
    {
    TV->Items->AddChild(Node,Spr.OlePropertyGet("Наименование"));
    }
   }
  Application->ProcessMessages();
  }

}
//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::SpeedButton5Click(TObject *Sender)
{
// Загрузка плана счетов в TMemo
M_Pers->Lines->BeginUpdate();
M_Pers->Clear();

Variant Spr = Serv.Exec(Function("EvalExpr")<<"СоздатьОбъект(\"Счет\")");
Variant CurrSchet;

 Spr.Exec(Function("ВыбратьСчета"));
 int tmp_int=0;
 String val_str;
 while (Spr.Exec(Function("ПолучитьСчет")) > 0)
    {
      CurrSchet=CurrSchet.Empty();
      CurrSchet=Spr.Exec(Function("ТекущийСчет"));
       tmp_int=CurrSchet.OlePropertyGet("Валютный");
       if (tmp_int){val_str="Валютный";}
     
 else{val_str=" - ";}
       M_Pers->Lines->Add(CurrSchet.OlePropertyGet("Код")+String(" ")+CurrSchet.OlePropertyGet("Наименование")+String(" ")+val_str+Spr.Exec(Function("ПолнНаименование")));

    }
  M_Pers->Lines->EndUpdate();
}
//---------------------------------------------------------------------------
void __fastcall TConnect_To_1c_Form::N11Click(TObject *Sender)
{
// это сохранение плана счетов из 1с в мою таблицу б.д.

Caption = "Connect_To_1c - Идет процесс получения плана счетов...";
DataSource1->DataSet=NULL;
Variant Spr = Serv.Exec(Function("EvalExpr")<<"СоздатьОбъект(\"Счет\")");
Variant CurrSchet;

 Spr.Exec(Function("ВыбратьСчета"));
 int Valyta=0;
 int Act=0;
 int Zab=0;
 int Kol=0;
 int Count=0;
 String Code="";
 String Name="";
 String Comment="";

 while (Spr.Exec(Function("ПолучитьСчет")) > 0)
    {

      Count++;
      CurrSchet=CurrSchet.Empty();
      CurrSchet=Spr.Exec(Function("ТекущийСчет"));

      Valyta=CurrSchet.OlePropertyGet("Валютный");
      Kol=CurrSchet.OlePropertyGet("Количественный");
      Zab=CurrSchet.OlePropertyGet("Забалансовый");
      Act=CurrSchet.OlePropertyGet("Активный");
      Code=CurrSchet.OlePropertyGet("Код");
      Name=CurrSchet.OlePropertyGet("Наименование");
      Comment=Spr.Exec(Function("ПолнНаименование"));

    ADOQuery1->SQL->Text="Insert INTO T_PScetGen (REC_GUID,REC_GUID, PValyta, PKol, PZab, PAct, PGroup, PCode, PName, PComment,REC_C) VALUES ("+IntToStr(Count)+", "+IntToStr(Count)+", "+IntToStr(Valyta)+", "+IntToStr(Kol)+", "+IntToStr(Zab)+", "+IntToStr(Act)+", 0, '"+Code+"', '"+Name+"', '"+Comment+"', 1)";
    ADOQuery1->ExecSQL();
    LevelControl(Code);  // создаем иерархическую структуру счетов
    Caption = "Connect_To_1c - Идет процесс получения плана счетов... Получено="+IntToStr(Count);
    Update();
    }
    Caption = "Connect_To_1c - Получение плана счетов завершено. Всего получено="+IntToStr(Count);
    Update();
    ADOQuery1->SQL->Text="Select * from T_PScetGen";
    DataSource1->DataSet=ADOQuery1;

    ADOQuery1->Open();
}
//---------------------------------------------------------------------------
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог