|
v7: OLE Запрос | ☑ | ||
---|---|---|---|---|
0
Ainur
10.09.12
✎
16:42
|
Доброго времени!!
Отправляю запрос через OLE. Выполняю Запрос = БазаОле.CreateObject("Запрос") В запросе есть условие с использованием константы и перечисления. С этими условиями не работает. Пробовал их глобальной переменной присвоить, тоже не помогает. |
|||
1
Ainur
10.09.12
✎
16:42
|
Обе Базы 7.7
|
|||
2
Lexusss
10.09.12
✎
16:43
|
хммм... обе базы 7.7, в заголовке v8, откуда константы вообще не понятно...
|
|||
3
Ainur
10.09.12
✎
16:44
|
о да в семерке сейчас создам
|
|||
4
DrShad
10.09.12
✎
16:45
|
как передаешь константы и перечисления в параметры?
|
|||
5
Rie
10.09.12
✎
16:45
|
(3) Не надо плодить лишних веток.
|
|||
6
DrShad
10.09.12
✎
16:45
|
(3) не спеши, модеры перенесут
|
|||
7
Rie
10.09.12
✎
16:45
|
(0) Текст запроса показал бы. Глядишь - и вышло бы что полезное.
|
|||
8
Ainur
10.09.12
✎
16:46
|
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать) |Период с "+СокрЛП("'"+НачДата+"'")+" по "+СокрЛП("'"+КонДата+"'")+"; |Обрабатывать НеПомеченныеНаУдаление; |ДатаДок = Документ.ПоступлениеТМЦ.ДатаДок, Документ.Реализация.ДатаДок; |Фирма = Документ.ПоступлениеТМЦ.Фирма, Документ.Реализация.Фирма; |КодОперации = Документ.ПоступлениеТМЦ.КодОперации, Документ.Реализация.КодОперации; |НомерДок = Документ.ПоступлениеТМЦ.НомерДок, Документ.Реализация.НомерДок; |Контрагент = Документ.ПоступлениеТМЦ.Контрагент, Документ.Реализация.Контрагент; |Код = Документ.ПоступлениеТМЦ.Контрагент.Код, Документ.Реализация.Контрагент.Код; |Количество = Документ.ПоступлениеТМЦ.Количество, Документ.Реализация.Количество; |Сумма = Документ.ПоступлениеТМЦ.Сумма, Документ.Реализация.Сумма; |СуммаНДС = Документ.ПоступлениеТМЦ.СуммаНДС, Документ.Реализация.СуммаНДС; |Расчет = Документ.ПоступлениеТМЦ.Контрагент.Расчет, Документ.Реализация.Контрагент.Расчет; |Функция КоличествоСумма = Сумма(Количество); |Функция СуммаСумма = Сумма(Сумма); |Функция СуммаНДССумма = Сумма(СуммаНДС); |Группировка ДатаДок; |Группировка КодОперации; |Группировка НомерДок; |Группировка Контрагент без групп; |Группировка Код; |Условие(Расчет = глБН); |Условие(Фирма =глОФ); |"//}}ЗАПРОС ; |
|||
9
Ёпрст
10.09.12
✎
16:48
|
||||
10
Ainur
10.09.12
✎
16:48
|
А в начале
глБН = БазаОле.глБезНал; глОФ = БазаОле.глОсновнаяФирма; или то же самое глБН = БазаОле.Перечисление.ВидРасчета.БезНал глОф = БазаОле.Константа.ОсновнаяФирма |
|||
11
Ушкин
10.09.12
✎
16:53
|
(10) БазаОле не знает переменую глБН
|
|||
12
Ainur
10.09.12
✎
16:54
|
Знает. В глобальном модуле присваивается
|
|||
13
DrShad
10.09.12
✎
16:54
|
(10) и как ты их в запрос передаешь?
|
|||
14
Ainur
10.09.12
✎
16:57
|
Текст запроса выше
|
|||
15
Ainur
10.09.12
✎
16:59
|
По идее и так должен работать
|Условие(Расчет = Перечисление.ВидРасчета.БезНал); |Условие(Фирма =Константа.ОсновнаяФирма); Он же там это все читает, мы же передаем только текст запроса. В нормальном режиме в ОЛЕ базе этот запрос работает |
|||
16
Rie
10.09.12
✎
17:01
|
(12) Но в глобальном модуле у тебя переменная называется глБезНал, а в запросе стоит глБН. Которая из другой базы.
|
|||
17
Ёпрст
10.09.12
✎
17:02
|
глобальный массив спасёт.
|
|||
18
Ainur
10.09.12
✎
17:06
|
до запроса я пишу
глБН = БазаОле.глБезНал; глОФ = БазаОле.глОсновнаяФирма; |
|||
19
Ainur
10.09.12
✎
17:07
|
и в запросе писать
Расчет = Массив[1]? |
|||
20
Ушкин
10.09.12
✎
17:08
|
(18) Если пишешь в ГМ то причем БазаОле , а если в модуле запроса то (11)
|
|||
21
Ёпрст
10.09.12
✎
17:10
|
(19)
как пример, фильтрация по списку (тебе проще - пихай не список , а само значение) В оле базе Перем СписокКлиентосов[1] Экспорт; В обработине ОЛЕ.ExecuteBatch("СписокКлиентосов[1] =СоздатьОбъект(""СписокЗначений"")"); м = ОЛЕ.EvalExpr("СписокКлиентосов[1]"); Спр = ОЛЕ.CreateObject("Справочник.Контрагенты"); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ЭтоГруппа()=0 Тогда м.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЕсли; КонецЦикла; Запрос = ОЛЕ.CreateObject("Запрос"); ТекстЗапроса = " |Спр = Справочник.Номенклатура.ТекущийЭлемент; |Условие (Спр в СписокКлиентосов[1]); |Группировка Спр Без Групп;"; Запрос.Выполнить(ТекстЗапроса); Пока Запрос.Группировка(1)=1 Цикл Сообщить(Запрос.Спр.Наименование); КонецЦикла; |
|||
22
Ainur
10.09.12
✎
17:19
|
Где то я это уже видел.
В глобальнике ОЛЕ базы пишу функцию, которая возвращает массив с моим перечислением и константой. а здесь в запросе пишу |Условие(Расчет в Массив); |Условие(Фирма в Массив); Так? |
|||
23
Ёпрст
10.09.12
✎
17:38
|
(22) я ж те дал пример :)
в оле базе только объявление массива и всё. т.е в глобальничке Перем ТвойМассив[1] Экспорт; нужно воткнуть. Сам массив потом создаешь в обработине и заполняешь |
|||
24
Ainur
10.09.12
✎
17:45
|
Да все получилось спасибо!!!!! Запрос только элементы не получает, осталос. везде прописать ".Наименование"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |