Имя: Пароль:
1C
 
1C и Interbase 6.5? Помогите
0 AlexAAA
 
17.08.04
12:21
Как связаться с IB 6.5 и сделать запрос?
1 Волшебник
 
17.08.04
12:22
Через ODBC.
2 AlexAAA
 
17.08.04
12:24
Нужно через OLE
3 MMF
 
17.08.04
12:25
Самое лучшее - с помощью IBX или FIBpluse во внешней компоненте
4 Волшебник
 
17.08.04
12:29
(2) Делай через OLE.
http://mista.ru/articles1c/ole.htm
5 AlexAAA
 
17.08.04
12:30
Как соединиться? мне нужен код или ссылка на где можно посмотреть как соединяться с IB через тот же IBX
6 MMF
 
17.08.04
12:37
7 AlexAAA
 
17.08.04
12:56
Да нет же из 1С соединяться с IB а не наоборот
8 MMF
 
17.08.04
13:01
(7) я тебе именно это и положил. Из 1С - с IB, (вообще-то с Fb, но это без разницы).
9 AlexAAA
 
17.08.04
13:19
Запустить 1С, связаться с IB, забрать данные запросом из IB.  
есть что то типа как с Ораклом?
OraSession = СоздатьОбъект("OracleInProcServer.XOraSession");
OraDatabase = OraSession.DbOpenDatabase("magicash", "magicash5/nctmagicash5",0);
osRecordSet  = OraDatabase.DbCreateDynaset("select * from ecfil002", 0);
10 SFG
 
17.08.04
14:32
//*********************************
Соединение=СоздатьОбъект("ADODB.Connection");
СтрокаКоннекта="driver=INTERSOLV InterBase ODBC Driver (*.gdb);server=127.0.0.1;uid=SYSDBA;pwd=masterkey;Database=127.0.0.1:D:\Work\Rod\Roger\Roger\Car-care Center 4\DataBase\AUTODLR.GDB"; Соединение.ConnectionTimeOut=20;
Соединение.CursorLocation=3;
Попытка
Соединение.Open(СтрокаКоннекта);
Исключение
Предупреждение("Невозможно установить соединение с базой данных!");
   Возврат;
КонецПопытки;
ЗапросАДО=СоздатьОбъект("ADODB.Command");
ЗапросАДО.ActiveConnection=Соединение;

//*********************************

Процедура ЗаполнитьИзЗаказНарядов()
   Если ЗаказНаряды.С1 = "-"  Тогда
       МойКонтрагент = СоздатьОбъект("Справочник.Контрагенты");
       МойАвтомобиль = СоздатьОбъект("Справочник.Автомобили");
       ТекстЗапроса="SELECT ID,DATE1,DATE2,DATE3,CLIENTID,CLIENTLINKMODELID
       |FROM DOCNARADHEAD
       |WHERE (ID = " + СокрЛП(Строка(ЗаказНаряды.Ном)) + ");"; //
       ЗапросАДО.CommandText=ТекстЗапроса;
       Выборка=ЗапросАДО.Execute();
       Если Выборка.EOF()=-1 Тогда
       Иначе
           Выборка.MoveFirst();
           НомерДок = Выборка.Fields("ID").Value;
           ДатаНачалаРабот = Выборка.Fields("DATE2").Value;
           ДатаКонцаРабот = Выборка.Fields("DATE3").Value;
           МойКонтрагент.НайтиПоРеквизиту("ID",Выборка.Fields("CLIENTID").Value,1);
           Контрагент = МойКонтрагент.ТекущийЭлемент();
           МойАвтомобиль.НайтиПоРеквизиту("ID",Выборка.Fields("CLIENTLINKMODELID").Value,1);  
           Автомобиль = МойАвтомобиль.ТекущийЭлемент();
       КонецЕсли;
       Выборка.Close();
       УдалитьСтроки();             //TIME ,
       ТекстЗапроса="SELECT IDDOCNARADHEAD,WORKID,AMOUNT,FACTOR,PRICENORMID,FINALPRICE,TIMEVALUE
       |FROM NARADWORKS
       |WHERE (IDDOCNARADHEAD = " + СокрЛП(Строка(НомерДок)) + ");"; //
       ЗапросАДО.CommandText=ТекстЗапроса;
       Выборка=ЗапросАДО.Execute();
       Если Выборка.EOF()=-1 Тогда
       Иначе
           МоиРаботы = СоздатьОбъект("Справочник.ТМЦ");
           Выборка.MoveFirst();
           Пока Выборка.EOF()=0 Цикл
               НоваяСтрока();
               МоиРаботы.НайтиПоРеквизиту("ID",Выборка.Fields("WORKID").Value,1);  
               ТМЦ = МоиРаботы.ТекущийЭлемент();
               Коэфициент = Выборка.Fields("FACTOR").Value;
               Кратность = Выборка.Fields("AMOUNT").Value;
               Цена = Выборка.Fields("PRICENORMID").Value;
               Время = Выборка.Fields("TIMEVALUE").Value;
               Стоимость = Выборка.Fields("FINALPRICE").Value;
               Выборка.MoveNext();
           КонецЦикла;
       КонецЕсли;
   Иначе
       Предупреждение("По этой записи уже сформирован документ в 1С!");
   КонецЕсли;
КонецПроцедуры
11 SFG
 
17.08.04
14:42
+10. Пардон, тока заметил, что тебе через Олю надо, а у меня в примере через АДО.
12 AlexAAA
 
17.08.04
15:02
Бальшой сенкс!!!
13 AlexAAA
 
17.08.04
15:04
Про Олю я уже нашел, ток нужно установить OLE-DB Provider
Dim con1 As ADODB.Connection
Dim cmd1 As ADODB.Command
con1.Provider = "LCPI.IBProvider"
con1.Open datasource=localhost:c:\Projects\FB\db_test.gdb;ctype=win1251", "SYSDBA", "masterkey"
con1.Properties("Session AutoCommit") = True
con1.Properties("Autocommit Isolation Levels") = 4096
Set cmd1 = New ADODB.Command
cmd1.ActiveConnection = con1
14 AlexAAA
 
17.08.04
15:08
Все зашибись тока запросы не выполняет, выдает:
"Автоматический старт транзакций запрещен!"
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой