Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Работа с 1С v7.7 по OLE

Автор Miduza, 20.10.2012, 16:28

« назад - далее »

Miduza

Доброго времени суток, Господа!

http://msexcel.ru/content/view/34/115/ - сдесь взял обработку для выгрузки журнала проводок из 1С. Дело в том что нечто подобное я пытаю реализовать исключительно средствами VBA. на данный момент пока имею следующее.

____________________________________________________________________________________________________
Public v7 As Object

Sub ConnectV77_1()
Dim i
i = 4

st = " /D" & """C:\Documents and Settings\financier\Мои документы\Копия базы\""" & " /N " & """Ильченко_АВ""" & " /P" & """334455"""
Set v7 = CreateObject("v77.Application")
result = v7.Initialize(v7.RMTrade, st, "yes_SPLASH_SHOW")

If Not result Then
Set v7 = Nothing
Exit Sub
Else
End If

    Set Spr = v7.CreateObject("Справочник.контрагенты")
    Spr.SelectItems

        Do While Spr.GetItem() = 1
             
        sname = "" & Spr.GetAttrib("Код")
        sname1 = "" & Spr.GetAttrib("ПолнНаименование")
        sname2 = "" & Spr.GetAttrib("ИНН")
        sname3 = "" & Spr.GetAttrib("ЮридическийАдрес")
        sname4 = "" & Spr.GetAttrib("Руководитель")
        sname5 = "" & Spr.GetAttrib("ГлБух")
        sname6 = "" & Spr.GetAttrib("Телефоны")

        ThisWorkbook.Sheets("Выгрузка").Range("A" & i).Value = Trim(sname)
        ThisWorkbook.Sheets("Выгрузка").Range("B" & i).Value = Trim(sname1)
        ThisWorkbook.Sheets("Выгрузка").Range("C" & i).Value = Trim(sname2)
        ThisWorkbook.Sheets("Выгрузка").Range("D" & i).Value = Trim(sname3)
        ThisWorkbook.Sheets("Выгрузка").Range("E" & i).Value = Trim(sname4)
        ThisWorkbook.Sheets("Выгрузка").Range("F" & i).Value = Trim(sname5)
        ThisWorkbook.Sheets("Выгрузка").Range("G" & i).Value = Trim(sname6)

        i = i + 1
        Loop
Set v7 = Nothing
End Sub
____________________________________________________________________________________

Вот теперь думаю дальше...Необходимо производить выгруз посредством VBA значений журнала проводок из 1С. Если кто сталкивался с подобной задачей, буду рад любой оказанной помощи

Алексей Шмуйлович

Так можно взять куски кода из обработки, которую вы упомянули. Просто переписать их под VBA - создать объекты VBA с помощью оператора Set - и синтаксис причесать под VBA и вывод результата сделать не в отчет, а в Excel.

Вот этот кусок странный:

  Set Spr = v7.CreateObject("Справочник.контрагенты")

Я бы написал:

  Set Spr = v7.Справочник.контрагенты

По крайней мере в v8 это работает.