таблица значений из 1С8.1

  • Автор темы nikh848
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

nikh848

#1
Привет Всем!
Подскажите Пож., Написал код в VBA для сединения с 1С 8.1:
Код:
Query.Текст = "ВЫБРАТЬ ХозрасчетныйОстатки.Счет, ХозрасчетныйОстатки.Субконто1 , ХозрасчетныйОстатки.Организация,ХозрасчетныйОстатки.СуммаОстаток, ХозрасчетныйОстатки.КоличествоОстаток ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период) КАК ХозрасчетныйОстатки"

Query.УстановитьПараметр "Период", УсловиеКонДата

Set Result = Query.Execute()
Set Tabl = Result.Выгрузить()

For i = 0 To Tabl.Количество() - 1
ji = ji + 1
[b]Cells(ji, 1).Value = Tabl.Получить(i).ХозрасчетныйОстатки.Счет[/b]
Cells(ji, 2).Value = Tabl.Получить(i).ХозрасчетныйОстатки.Субконто1
Cells(ji, 3).Value = Tabl.Получить(i).ХозрасчетныйОстатки.Организация
Cells(ji, 4).Value = Tabl.Получить(i).ХозрасчетныйОстатки.СуммаОстаток
Cells(ji, 5).Value = Tabl.Получить(i).ХозрасчетныйОстатки.КоличествоОстаток
Next i
Выдает ошибку в строке Cells(ji, 1).Value = Tabl.Получить(i).ХозрасчетныйОстатки.Счет
Почему ошибку выдает?
 
E
#4
Ну так и что не понятно? там же написали, что такого свойства или метода у объекта нет.
А где этот код работает?
 
N

nikh848

#5
Ну так и что не понятно? там же написали, что такого свойства или метода у объекта нет.
А где этот код работает?
Запрос в 1С взял из: http://programna1c.narod.ru/docs/Samples8/Buhuchet.html (Как получить остаток по счету?)

Код, который работает:

Query.Текст = "ВЫБРАТЬ КурсыВалют.Период как Период, КурсыВалют.Курс как Курс, КурсыВалют.Валюта.Наименование как Валюта ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &сДаты И &поДату И КурсыВалют.Валюта.Наименование<>&руб "
Query.УстановитьПараметр "сДаты", УсловиеНачДата
Query.УстановитьПараметр "поДату", УсловиеКонДата
Query.УстановитьПараметр "руб", "руб"
Set Result = Query.Execute

Set Tabl = Result.Выгрузить()

For i = 0 To Tabl.Количество() - 1
ji = ji + 1
Cells(ji, 1).Value = Tabl.Получить(i).Валюта
Cells(ji, 2).Value = Tabl.Получить(i).Курс
Cells(ji, 3).Value = Tabl.Получить(i).Период

Next i

Переделал запрос и не работает...
 
N

nikh848

#6
Ну так и что не понятно? там же написали, что такого свойства или метода у объекта нет.
А где этот код работает?
Если написать в упрощенном варианте
Этот код работает:
Код:
Query.Текст = "ВЫБРАТЬ	РегистрСведений.КурсыВалют.Валюта.Наименование как ЗначениеЗапроса"
Set Result = Query.Execute()
Set Tabl = Result.Выгрузить()

ji = 1 ' начальная строка
For i = 0 To Tabl.Количество() - 1
ji = ji + 1
Sheets("Sheet2").Cells(ji, 1).Value = Tabl.Получить(i).ЗначениеЗапроса
Next i
Этот не работает:
Код:
Query.Текст = "ВЫБРАТЬ	РегистрБухгалтерии.Хозрасчетный.Обороты.Счет как ЗначениеЗапроса"
Set Result = Query.Execute()
Set Tabl = Result.Выгрузить()

ji = 1 ' начальная строка
For i = 0 To Tabl.Количество() - 1
ji = ji + 1
Sheets("Sheet2").Cells(ji, 1).Value = Tabl.Получить(i).ЗначениеЗапроса
Next i
Как внешние обработки в 1С оба запроса работают.
Почему через COM соединение не получается вытянуть данные из РегистрБухгалтерии?
 
Статус
Закрыто для дальнейших ответов.