Страница 1 из 1

Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 13:15
Lame
привет всем.

Есть из VBA запрос в 1С на получения каких-либо данных. Запрос получил, поместил его в переменную. Как теперь результат запроса выгрузит в эксель (или акссесс или хотя бы ворд )) ).

Сам код сбсно

Sub Calin1C()

Dim V8 As Object

Set V8 = CreateObject("V8.COMConnector")
Set Con = V8.Connect("Srvr=""Feldman"";Ref=""alfa_trade_2005"";Usr=""Иванов"";Pwd=""1234""")
Set q1 = Con.newObject("Запрос")

q1.Text = "ВЫБРАТЬ Валюты.Наименование ИЗ Справочник.Валюты КАК Валюты"

Set Result = q1.Execute

Set Result = q1.Execute()


End Sub


Получается, что в переменной result резульат запроса (предствяляет из себя таблицу 1С). Как его выгрузить в эксель??? :confused:

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 14:53
airyashov
Обход запроса не работает чтоли

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 15:09
airyashov
Думаю перевести на VB перевсти просто типа строка ТаблЗнач.Получить(сц).НазвВалюты

Код: Выделить всё

	ВалЗапр=Новый Запрос;
	ВалЗапр.Текст="ВЫБРАТЬ Валюты.Наименование Как НазвВалюты ИЗ Справочник.Валюты КАК Валюты";
	ТаблЗнач=ВалЗапр.Выполнить().Выгрузить(ОбходРезультатаЗапроса.Прямой);
	для сц=0 по ТаблЗнач.Количество()-1 цикл
		  Сообщить(ТаблЗнач.Получить(сц).НазвВалюты);
	КонецЦикла;

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 15:39
Lame
Скажите а можно ли это сделать средствами VBA. Я ведь из VBa редктор 1С запускаю

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 15:50
airyashov
Lame писал(а):Скажите а можно ли это сделать средствами VBA. Я ведь из VBa редктор 1С запускаю
так Вы же через оле работаете можно, просто проверить времени нет

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 15:58
airyashov
у меня 8.1 Объект замените, далее думаю ясно

Код: Выделить всё

Sub in1c()
    Dim V8 As Object

    Set V8 = CreateObject("V81.COMConnector")
    Set Con = V8.Connect(".....")
    Set q1 = Con.newObject("Запрос")

    q1.Text = "ВЫБРАТЬ Валюты.Наименование Как НазвВалюты ИЗ Справочник.Валюты КАК Валюты"

    Set Result = q1.Execute

    Set Tabl = Result.Выгрузить()
    For i = 0 To Tabl.Количество() - 1
          MsgBox Tabl.Получить(i).НазвВалюты
    Next i

End Sub

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 16:11
Lame
MsgBox Tabl.Получить(i).НазвВалюты

говорит нет такого объекта или метода...библиотеки 8 подключены OLE тоже..

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 16:23
Lame
MsgBox Tabl.Получить(i).НазвВалюты

говорит нет такого объекта или метода...библиотеки v8 подключены OLE тоже..

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 16:30
Lame
MsgBox Tabl.Получить(i).НазвВалюты

говорит нет такого объекта или метода...библиотеки 8 подключены OLE тоже..

Re: Запрос 1С в эксель (либо Аксесс)

Добавлено: 12 мар 2008, 16:57
airyashov
Lame писал(а):MsgBox Tabl.Получить(i).НазвВалюты

говорит нет такого объекта или метода...библиотеки 8 подключены OLE тоже..
строка запроса "ВЫБРАТЬ Валюты.Наименование Как НазвВалюты ИЗ Справочник.Валюты КАК Валюты"
попробуете разбить на 2 строки
стр=Tabl.Получить(i)
назв=стр.НазвВалюты
2007+1с 8,1 бух 1,6,3,2 работает