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

Ваш аккаунт

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

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

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

Builder + OLE + 1c Бухгалтерия

2.4K
14 июня 2004 года
Lexogen
70 / / 18.05.2004
Как в С++ Builder подключиться к 1С Бухгалтерии и проитать какие-то данные?
Или может ссылки по этим темам.
(Есть пример на Delphi, но при переводе на Builder 6 он не работает.)
272
14 июня 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by Lexogen
Как в С++ Builder подключиться к 1С Бухгалтерии и проитать какие-то данные?
Или может ссылки по этим темам.
(Есть пример на Delphi, но при переводе на Builder 6 он не работает.)


А для чего тебе нужно потключиться если просто прочитать данные, то подключайся к бд....

1.6K
15 июня 2004 года
Grom2025
82 / / 20.03.2003
Цитата:
Originally posted by vladsoft

А для чего тебе нужно потключиться если просто прочитать данные, то подключайся к бд....


ДА подключайся подключайся ежели драйвер такой найдеш! Затем разберись в структуре из полусотни таблиц итд... фигня это все... просто так к 1с не подцепишся, но можно через OLE ,как правильно задал вопрос автор, исходники для делфи лежат на hippo, там все показано что да как подключить и как получить.
Кстати я уже задавал аналогичный вопрос на этом форуме (OLE OLE OLE и 1С Предприятие) только касающийся создания внешник компонент для 1С, правда ответить мне никто не смог (или не хотел), так что разбираюсь сам.
Между прочим как вариант могу предложить вариант обмена данными через внешнюю компоненту, одна проблема, 1С в упор отказывается работать с OLE старше чем 1.0

272
15 июня 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by Grom2025

ДА подключайся подключайся ежели драйвер такой найдеш! Затем разберись в структуре из полусотни таблиц итд... фигня это все... просто так к 1с не подцепишся, но можно через OLE ,как правильно задал вопрос автор, исходники для делфи лежат на hippo, там все показано что да как подключить и как получить.
Кстати я уже задавал аналогичный вопрос на этом форуме (OLE OLE OLE и 1С Предприятие) только касающийся создания внешник компонент для 1С, правда ответить мне никто не смог (или не хотел), так что разбираюсь сам.
Между прочим как вариант могу предложить вариант обмена данными через внешнюю компоненту, одна проблема, 1С в упор отказывается работать с OLE старше чем 1.0


Ole конечно модно но если знать что лежит в БД, то можно и без ole обойтись...

2.4K
15 июня 2004 года
Lexogen
70 / / 18.05.2004
Через BDE я уже пробовал подключаться, ничего не получается. В примере на Delphi есть код:
onesobj.initialise(...
Т.е. указывается путь к конфигурации, а также пароль и логин.Ну так вот, в Buildere метода initialise для объекта класса OleVariant нет.
Может, это уже делается по-другому?
Кстати, а что такое hippo?
1.6K
18 июня 2004 года
Grom2025
82 / / 20.03.2003
Цитата:
Originally posted by Lexogen
Через BDE я уже пробовал подключаться, ничего не получается. В примере на Delphi есть код:
onesobj.initialise(...
Т.е. указывается путь к конфигурации, а также пароль и логин.Ну так вот, в Buildere метода initialise для объекта класса OleVariant нет.
Может, это уже делается по-другому?
Кстати, а что такое hippo?



1c.hippo.ru - сайт интересных разработок под 1С

А не получилось через BDE потому что 1С'овцы используют (скорее всего) модифицированный драйвер DBF.

2.4K
19 июня 2004 года
Lexogen
70 / / 18.05.2004
Спасибо за ответы, уже разобрался сам.
272
21 июня 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by Lexogen
Спасибо за ответы, уже разобрался сам.


ВЫложи исходники если не влом а то жуть как интересно....

2.4K
25 июня 2004 года
Lexogen
70 / / 18.05.2004
Выкидываю, банзайте на здоровье.

Variant onesobj = CreateOleObject("V77.Application");
onesobj.Exec(Procedure("Initialize")<<onesobj.OlePropertyGet("rmtrade")<<"/DD:\\money /M /NПапа"<<"NO_SPLASH_SHOW");
Variant Sprav = onesobj.Exec(Function("CreateObject")<<"Справочник.Участники");
Sprav.OleProcedure("Selectgroup",1);
Sprav.OleProcedure("Selectitems",1);
int numr=1;
while (Sprav.OleFunction("GetItem",1)) {
StringGrid1->Cells[0][numr]=Sprav.Exec(Function("GetAttrib")<<"Код");
StringGrid1->Cells[1][numr]=Sprav.Exec(Function("GetAttrib")<<"Наименование");
numr++;
}
272
29 июня 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by Lexogen
Выкидываю, банзайте на здоровье.

Variant onesobj = CreateOleObject("V77.Application");
onesobj.Exec(Procedure("Initialize")<<onesobj.OlePropertyGet("rmtrade")<<"/DD:\\money /M /NПапа"<<"NO_SPLASH_SHOW");
Variant Sprav = onesobj.Exec(Function("CreateObject")<<"Справочник.Участники");
Sprav.OleProcedure("Selectgroup",1);
Sprav.OleProcedure("Selectitems",1);
int numr=1;
while (Sprav.OleFunction("GetItem",1)) {
StringGrid1->Cells[0][numr]=Sprav.Exec(Function("GetAttrib")<<"Код");
StringGrid1->Cells[1][numr]=Sprav.Exec(Function("GetAttrib")<<"Наименование");
numr++;
}


Спасибо!

520
02 января 2007 года
inkognitum
155 / / 03.05.2006
Не стал переводить с Delphi!

Вот как это делал я:

Код:
int k;
   Variant Ole1C, rmTrade;
   HResult s1cResult;
   LPUNKNOWN pIUnknown = NULL;
   char *IntializationLine = "/DC:\\Base1";
   s1cResult = GetActiveObject(ProgIDToClassID("V77.Application"), NULL, &pIUnknown);
   if ( s1cResult == MK_E_UNAVAILABLE ) {
      Ole1C = CreateOleObject("V77.Application");
   } else {
      Ole1C = GetActiveOleObject("V77.Application");
   }
   rmTrade = Ole1C.OlePropertyGet("RMTrade");
   /* Start OLE Automation ... */
   Ole1C.OleProcedure("Initialize", rmTrade, IntializationLine,"NO_SPLASH_SHOW");
   IntializationLine = "СоздатьОбъект(\"Справочник.Товары\")";
   Variant Buh1 = Ole1C.OleFunction("EvalExpr", IntializationLine);

   k = 1;
   Form1->StringGrid1->Visible = false;
   if (Buh1.OleFunction("ВыбратьЭлементы")==1) {
      while (Buh1.OleFunction("ПолучитьЭлемент") == 1) {
         StringGrid1->Cells[1][k] = Buh1.OlePropertyGet("Наименование");
         StringGrid1->Cells[0][k] = Buh1.OlePropertyGet("Код");
         StringGrid1->Cells[2][k] = Buh1.OlePropertyGet("ШтрихКод");
         k++;
      }
   }
   Form1->StringGrid1->RowCount = k;
   Form1->StringGrid1->Visible = true;



думаю суть понятна, далее немного знаний 1с Конфигуратора и вперед, рубить дрова. ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог