• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

nikh848

Привет Всем!
Подскажите Пож., Написал код в 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

etc

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

nikh848

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

Запрос в 1С взял из: (Как получить остаток по счету?)

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

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

Ну так и что не понятно? там же написали, что такого свойства или метода у объекта нет.
А где этот код работает?
Если написать в упрощенном варианте
Этот код работает:
Код:
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 соединение не получается вытянуть данные из РегистрБухгалтерии?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!