|
Перечисления в запросе через OLE Ø | ☑ | ||
---|---|---|---|---|
0
Sergulet1
29.12.05
✎
16:02
|
Отправляю запрос в удаленную базу
Запрос = БазаОле.CreateObject("Запрос"); ТекстЗапроса = " Период с '"+Дата1+ "' по '"+Дата2+"'; |Порода = Регистр.РасходСырья.Порода; |ТипСырья = Регистр.РасходСырья.ТипСырья; |Сорт = Регистр.РасходСырья.Сорт; |ВидДвижения = Регистр.РасходСырья.ВидДвижения; |Группировка Порода без групп; |Группировка ТипСырья без групп; |Группировка Сорт без групп; |Условие (ВидДвижения = Перечисление.ВидДвижения.Окорка); |Объем = Регистр.РасходСырья.Объем; |Функция Расход = Сумма(Объем);"; Выдает ошибку Условие (ВидДвижения = Перечисление.ВидДвижения.Окорка <<?>> ); Запрос[9] : Ошибка в выражении 'Перечисление' Вроде все сделал по уму. Как построить условие? |
|||
1
zzz
29.12.05
✎
16:02
|
http://www.sinor.ru/~my1c/knowhow/v7&OLE.html
|
|||
2
Sergulet1
29.12.05
✎
16:06
|
Эти текстом и руководствовался, когда писал. Но не работает
|
|||
3
zzz
29.12.05
✎
16:09
|
Сообщить( БазаОле.Перечисление.ВидДвижения.Окорка.Идентификатор() )
и как ты запрос выполняешь? код? |
|||
4
КонецЦикла
29.12.05
✎
16:09
|
2(2) Если не хочешь долго думать - пиши через идентификатор в запросе и сверяй со строкой
|
|||
5
Sergulet1
29.12.05
✎
16:17
|
Пробовал и через идентификатор и через ПорядковыйНомер(). Не работает. Ошибка правда уже другая.
2 zzz Запрос без этого условия работает. В смыле данные возвращаются. Делал группировку по перечислению, чтобы потом отобрать нужные данные по порядковому номеру перечисления. Но в местной базе порядковый номер не получить. |
|||
6
zzz
29.12.05
✎
16:18
|
2(5) ?
|
|||
7
Alexaha
29.12.05
✎
16:19
|
5. я пользовался шаблоном и метаданными
|
|||
8
Sergulet1
29.12.05
✎
16:24
|
(6) Вот так:
ТекстЗапроса = " Период с '"+Дата1+ "' по '"+Дата2+"'; |Порода = Регистр.РасходСырья.Порода; |ТипСырья = Регистр.РасходСырья.ТипСырья; |Сорт = Регистр.РасходСырья.Сорт; |ВидДвижения = Регистр.РасходСырья.ВидДвижения.Идентификатор; |Группировка Порода без групп; |Группировка ТипСырья без групп; |Группировка Сорт без групп; |Группировка ВидДвижения; //|Условие (ВидДвижения = Окорка); |Объем = Регистр.РасходСырья.Объем; |Функция Расход = Сумма(Объем);"; Ошибка: ВидДвижения = Регистр.РасходСырья.ВидДвижения. <<?>> Идентификатор; Запрос[5] : Неверно заданный путь 'Идентификатор' (7) Это как? |
|||
9
КонецЦикла
29.12.05
✎
16:28
|
2(8) МойВид = "Окорка";
|Условие (ВидДвижения.Идентификатор() = МойВид); |
|||
10
Sergulet1
29.12.05
✎
16:37
|
2(9) А как я в тексте запроса передам в удаленную базу переменную МойВид?
|
|||
11
Lexusss
29.12.05
✎
16:37
|
(9) Тогда уж
|Условие (ВидДвижения.Идентификатор() = "+МойВид+"); |
|||
12
КонецЦикла
29.12.05
✎
16:43
|
2(10,11) Короче вы поняли... :)
|Условие (ВидДвижения.Идентификатор() = ""Окорка""); |
|||
13
Sergulet1
29.12.05
✎
16:50
|
Получилось след. образом:
Запрос = БазаОле.CreateObject("Запрос"); ТекстЗапроса = " Период с '"+Дата1+ "' по '"+Дата2+"'; |Порода = Регистр.РасходСырья.Порода; |ТипСырья = Регистр.РасходСырья.ТипСырья; |Сорт = Регистр.РасходСырья.Сорт; |ВидДвижения = Регистр.РасходСырья.ВидДвижения; |Группировка Порода без групп; |Группировка ТипСырья без групп; |Группировка Сорт без групп; |Условие (ВидДвижения.ПорядковыйНомер() = 3); |Объем = Регистр.РасходСырья.Объем; |Функция Расход = Сумма(Объем);"; Что интересно, при использовании метода ВыбратьДвижения() нужное значение перечисления в качестве фильтра по движениям работает замечательно. Но это было слишком долго. Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |