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

-
-
- Сообщения: 8
- Зарегистрирован: 10.11.2003 (Пн) 20:25
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

-

-
- Сообщения: 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
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