Имя: Пароль:
1C
1С v8
vba запрос к базе 1с
0 noob20
 
15.05.12
17:37
Всем привет.

надо в модуле vba обратиться к базе 1с, чтобы получить некоторые проводки.
прога вылетает на закомменченных строках с ошибкой run-time error 438 Object doesn't support this property or method.
что странно, к некоторым полям выборки могу обратиться, а к некоторым нет - ошибка.

КОД

Set Query = Connection1C.NewObject("Запрос")
   Query.УстановитьПараметр "Счет", "76.07"
   Query.Текст = "ВЫБРАТЬ " _
                   & "ХозрасчетныйДвиженияССубконто.Период КАК Дата, " _
                   & "ХозрасчетныйДвиженияССубконто.Регистратор КАК ДокРег, " _
                   & "ХозрасчетныйДвиженияССубконто.СчетДт.Код КАК СчетДт, " _
                   & "ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1, " _
                   & "ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2, " _
                   & "ХозрасчетныйДвиженияССубконто.СчетКт.Код КАК СчетКт, " _
                   & "ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1, " _
                   & "ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2, " _
                   & "ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма, " _
                   & "ХозрасчетныйДвиженияССубконто.Содержание КАК Содержание " _
                   & "ИЗ " _
                   & "РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто " _
                   & "ГДЕ " _
                   & "ХозрасчетныйДвиженияССубконто.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета) " _
                   & "И (ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками) " _
                   & "ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным) " _
                   & "ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками) " _
                   & "ИЛИ ХозрасчетныйДвиженияССубконто.СчетДт.Код = &Счет) "

   Set ResultQuery = Query.Execute()

   If Not ResultQuery.Пустой() Then
       Set cmd = CreateObject("ADODB.Command")
   
       cmd.ActiveConnection = CurrentProject.Connection
       cmd.CommandText = "DELETE * FROM JournalEntries"
       cmd.Execute
       
       Set Selection = ResultQuery.Выбрать
       
       Dim str1 As String
       Dim str2 As String
       Dim str3 As String
       Dim str4 As String
       Dim str5 As String
       Dim str6 As String
       Dim str7 As String
       Dim str8 As String
       Dim str9 As String
       Dim str10 As String
       
       
       Do While Selection.Следующий
       
           str1 = Selection.Дата
'            str2 = Selection.ДокРег
           str3 = Selection.СчетДт
'            str4 = Selection.СубконтоДт1
'            str5 = Selection.СубконтоДт2
           str6 = Selection.СчетКт
'            str7 = Selection.СубконтоКт1
'            str8 = Selection.СубконтоКт2
           str9 = Selection.Сумма
           str10 = Selection.Содержание
           
           cmd.CommandText = "INSERT INTO JournalEntries (DateDoc, Document, Dt, DtSub1, DtSub2, Ct, CtSub1, CtSub2, SumDoc, Comment) " _
                           & "VALUES ('" & str1 & "','" & str2 & "','" & str3 & "','" & str4 & "','" & str5 & _
                                       "','" & str6 & "','" & str7 & "','" & str8 & "','" & str9 & "','" & str10 & "');"
           cmd.Execute
       Loop
   Else
       MsgBox ("Обновлений нет")
   End If
1 sergeante
 
15.05.12
17:52
(0) может не может преобразовать в строку?
2 noob20
 
16.05.12
10:49
Да, точно!
Как тогда приведение типов выполнить? из объектов 1с наименования "доставать"?
3 UFedor
 
16.05.12
10:57
Automation сервер (Automation server)
String (String)
Синтаксис:

String(<Параметр>)
Параметры:

<Параметр> (обязательный)

Тип: Произвольный.
Выражение произвольного типа.
Возвращаемое значение:

Тип: Строка.

Описание:

Получает строковое представление значения произвольного типа.

Доступность:

Интеграция.
4 UFedor
 
16.05.12
10:57
Да, и у Com коннектора тоже есть
5 noob20
 
16.05.12
13:54
Спасибо, теперь норм, работает.