запрос к 1С из Visual basic-а

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
McCar
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 10.11.2003 (Пн) 20:25

запрос к 1С из Visual basic-а

Сообщение McCar » 13.04.2004 (Вт) 15:15

Народ, поделитесь опытом и кодом плиз...
Мне нужно из VB через Ole зделать запрос к 1C для выборки накладных
Вот что я пишу
''''''''''''''''''''''''''''''''
Set quer1C = V7.CreateObject("Запрос")
txtQuer1C = "//{{ЗАПРОС(Сформировать)" & vbNewLine & _
"|Период с '11.01.2004' по '13.04.2004' ;" & vbNewLine & _
"|ОбрабатыватьДокументы НеПроведенные;" & vbNewLine & _
"|Обрабатывать НеПомеченныеНаУдаление;" & vbNewLine & _
"|ДокС = Документ.ПриходнаяНакладная.ТекущийДокумент, Документ.РасходнаяНакладная.ТекущийДокумент;" & vbNewLine & _
"|Группировка Документ;" & vbNewLine & _
"|"

debug.print txtQuer1C
If quer1C.Выполнить(txtQuer1C) Then MsgBox "Done"
';''''''''''''''''''''''''''''''''''''''''''''''''

Он мне на последней строку выдает: error 3 ... запрос [2] неизвестная ошибка '|'
Беру из debug.print этот же запрос, выполняю напрямую в 1C - все работает
Что не так делаю то?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 13.04.2004 (Вт) 16:05

Честно говоря, в ВБ вызывает сомнениея вот эта строка
Код: Выделить всё
Set quer1C = V7.CreateObject("Запрос")


V7 там явно лишнее.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.04.2004 (Вт) 16:25

Скорее всего V7 это объектная переменная (из V7PLUS.DLL).
Попробуй формировать строку без "|" и перевода строки (используй пробел для разделения)
Lasciate ogni speranza, voi ch'entrate.

McCar
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 10.11.2003 (Пн) 20:25

"automation error"

Сообщение McCar » 14.04.2004 (Ср) 8:18

На таком запросе - без перевода строки
txtQuer1C = "Период с '11.01.04' по '13.04.04' ; ОбрабатыватьДокументы НеПроведенные; ДокС = Документ.ПриходнаяНакладная.ТекущийДокумент, Документ.РасходнаяНакладная.ТекущийДокумент; Группировка Документ;"

выдает "automation error"
Из 1 С опять же все работает
Причем в FoxPro аналогичная конструкция тоже работает.

McCar
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 10.11.2003 (Пн) 20:25

двойные скобки

Сообщение McCar » 14.04.2004 (Ср) 8:30

Вот что подсказали добрые люди с kuban.ru
isAllRight = quer1C.Выполнить((txtQuer1C))
Помоголо.
Кто нибудь может объяснить, почему именно двойные скобки?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.04.2004 (Ср) 9:03

Э... Наверное, чтобы аргумент передать, как ByVal.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 24

    TopList