В 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

этот вариант не самый лучший
<pre class="prettyprint linenums">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 = 0 Then Set v77 = Nothing MsgBox "не удалось установить соединение с 1С" Exit Sub End If Set sotrudnik = v77.EvalExpr("СоздатьОбъект(""Справочник.Сотрудники"")") sotrudnik.ВыбратьЭлементы sotrudnik.ИспользоватьДату (Date) sotrudnik.ПорядокКодов Dim i: i = 0 Do While sotrudnik.ПолучитьЭлемент > 0 If sotrudnik.ЭтоГруппа = 0 And sotrudnik.ПометкаУдаления = 0 Then Debug.Print sotrudnik.Код & ", " & sotrudnik.Наименование End If i = i + 1: If i > 50 Then Exit Do ' для пробы Loop v77.ExecuteBatch ("ЗавершитьРаботуСистемы((0);") Set v77 = Nothing End Sub </pre>
а этот пример, позволит Вам сделать всё, что может 1Cv77
<pre class="prettyprint linenums">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 = 0 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 </pre>
та самая процедура из 1С
<pre class="prettyprint linenums">Процедура глПроцедураДляПримера(путь,парам1) Экспорт dbf = СоздатьОбъект("XBase"); dbf.ДобавитьПоле("pole1", "C", 10,0); dbf.СоздатьФайл(путь + "\tmp.dbf"); dbf.Добавить(); dbf.pole1 = парам1; dbf.Записать(); dbf.ЗакрытьФайл(); КонецПроцедуры </pre>


Valihan

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