Страница 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С). Как его выгрузить в эксель???

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 работает