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

Тема в разделе "Visual Basic", создана пользователем nikh848, 8 сен 2010.

Статус темы:
Закрыта.
  1. nikh848

    nikh848 Гость

    Привет Всем!
    Подскажите Пож., Написал код в VBA для сединения с 1С 8.1:
    Код (LotusScript):
    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).ХозрасчетныйОстатки.Счет
    Почему ошибку выдает?
     
  2. etc

    etc Гость

    Надо указывать ошибку.
     
  3. nikh848

    nikh848 Гость

    Пишет:

    Ran-time error ‘438’
    Object doesn’t support this property or method
     
  4. etc

    etc Гость

    Ну так и что не понятно? там же написали, что такого свойства или метода у объекта нет.
    А где этот код работает?
     
  5. nikh848

    nikh848 Гость

    Запрос в 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

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

    nikh848 Гость

    Если написать в упрощенном варианте
    Этот код работает:
    Код (LotusScript):
    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
    Этот не работает:
    Код (LotusScript):
    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 соединение не получается вытянуть данные из РегистрБухгалтерии?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей