В 1С 7.7 из VB 6.0

Valihan

Доброго времини суток!Как из VB Открыть клиент 1C - ки ?пример если можно или функциюСпасибо зарание!
5 ответов

Valihan

AppName = "V77.Application"shop = ""Set v7 = CreateObject(AppName)DBPath = "\\s33\nsfo_\"Base1C = DBPathParam = "/D" & DBPath & " /nadmin /P123 / "result = v7.Initialize(v7.RMTrade, Param, "SPLASH_SHOW")If Not result Then MsgBox "Нет связи с базой 1С. " & shop, vbCritical, App.ProductName Base1C = "Нет соеденения с базой"ElseLabel5.Caption = "Соединение с базой 1С установлено."End IfВот как поципитьсяА скажи как открыть Нужную мне форму плз!


Valihan

7-ая версия, это тормоз.Вот в ней! Вызывать другие OLE объекты, (создавать, управлять excel-книгой, например)работает хорошо.


Valihan

Спасибо учту!


Valihan

этот вариант не самый лучший
Private Sub Command1_Click()
 Dim PathBase As String: PathBase = "C:\trpr"
 Dim User As String: User = "Иванова"
 Dim Password As String: Password = "123"
 
 Dim v77 As Object, result As Variant
 Set v77 = CreateObject("V77.Application")
 result = v77.Initialize(v77.RMTrade, " /D" + PathBase + " /N" + User + " /P" + Password, "")
 
 If result = <b>0</b> Then
 Set v77 = Nothing
 MsgBox "не удалось установить соединение с 1С"
 Exit Sub
 End If
 
 Set sotrudnik = v77.EvalExpr("СоздатьОбъект(""Справочник.Сотрудники"")")
 sotrudnik.ВыбратьЭлементы
 sotrudnik.ИспользоватьДату (Date)
 sotrudnik.ПорядокКодов

 Dim i: i = <b>0</b>

 Do While sotrudnik.ПолучитьЭлемент > <b>0</b>
 If sotrudnik.ЭтоГруппа = <b>0</b> And sotrudnik.ПометкаУдаления = <b>0</b> Then
 Debug.Print sotrudnik.Код & ", " & sotrudnik.Наименование
 End If
 i = i + <b>1</b>: If i > <b>50</b> Then Exit Do ' для пробы
 Loop
 
 v77.ExecuteBatch ("ЗавершитьРаботуСистемы((0);")
 Set v77 = Nothing
 
End Sub
а этот пример, позволит Вам сделать всё, что может 1Cv77
Private Sub Command2_Click()
 Dim PathBase As String: PathBase = "C:\trpr"
 Dim User As String: User = "Иванова"
 Dim Password As String: Password = "123"
 
 Dim v77 As Object, result As Variant
 Set v77 = CreateObject("V77.Application")
 result = v77.Initialize(v77.RMTrade, " /D" + PathBase + " /N" + User + " /P" + Password, "")
 
 If result = <b>0</b> Then
 Set v77 = Nothing
 MsgBox "не удалось установить соединение с 1С"
 Exit Sub
 End If
 
 result = v77.ExecuteBatch("глПроцедураДляПримера( ""C:\trpr"", ""12345"")")
 If result Then
 MsgBox "Процедура из глобального модуля выполнена"
 End If
 
 v77.ExecuteBatch ("ЗавершитьРаботуСистемы((0);")
 Set v77 = Nothing
 
End Sub
та самая процедура из 1С
Процедура глПроцедураДляПримера(путь,парам1) Экспорт
 dbf = СоздатьОбъект("XBase");
 dbf.ДобавитьПоле("pole1", "C", <b>10</b>,<b>0</b>);
 dbf.СоздатьФайл(путь + "\tmp.dbf");
 dbf.Добавить();
 dbf.pole1 = парам1;
 dbf.Записать();
 dbf.ЗакрытьФайл();
КонецПроцедуры


Valihan

чтобы 1С не было видно
result = v77.Initialize(v77.RMTrade, " /D" + PathBase + " /N" + User + " /P" + Password + " /m", "NO_SPLASH_SHOW")