|
как сравнить перечисление с текстовым значением в запросе? | ☑ | ||
---|---|---|---|---|
0
rchervak
19.08.11
✎
10:57
|
Здравствуйте. собственно проблема в следующем:
Выбираю запросом по СОМ соединению из "Удаленной Базы" документы с опреденеммыми видами операции. Видов порядка 8 значений. Виды - перечисления. Вот запрос "ВЫБРАТЬ | Документ.Номер КАК Номер |ИЗ | Документ.Расходныйдокумент КАК Документ |ГДЕ | Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода | И Документ.Проведен | И Документ.ВидОперации = &ВидОперации Запрос.УстановитьПараметр("ВидОперации", СписокВидовОперации); Виды операции в Рабочей базе получаю из Списка значений ТекПризнак = ?(ЭлементыФормы.ПризнакРеализ.Значение.Количество() = 0, NULL, ЭлементыФормы.ПризнакРеализ.Значение.ВыгрузитьЗначения()); СписокВидовОперации = connection.NewObject("Массив"); Для каждого Элемент из ТекПризнак цикл СписокВидовОперации.Добавить(Элемент); КонецЦикла; В итоге всего этого получаю массив из признаков с типом строка. А вот в запросе никак не могу понять каким образом теперь сравнить тип строку с типом перечисление. Пробывал функцию Представление, но тогда ругается что нельзя сравникать строку с неограниченной длиной. |
|||
1
Grusswelle
19.08.11
✎
10:58
|
ВЫРАЗИТЬ
|
|||
2
rchervak
19.08.11
✎
11:04
|
Изменил на
И Выразить(Документ.ВидОперации как строка (200)) = &ВидОперации Выдает ошибка Произошла исключительная ситуация: {(31, 4)}: Несовместимые типы "ВЫРАЗИТЬ" И <<?>>Выразить(Документ.ВидОперации как строка (200)) = &ВидОперации |
|||
3
rchervak
19.08.11
✎
11:08
|
(1)
передалал на это: И Выразить(Документ.ВидОперации как строка (200)) в (&ВидОперации) таже ошибка. |
|||
4
rchervak
19.08.11
✎
11:20
|
почитал про "выразить" и понял одно, походу если элемент содержит значение в текстовом виде то его можно вытащить для сравнения с помощью выразить, а вот если такого значения впринципе нет, значит и "выразить" не поможет.. Сижу курю....
обидно что даже не понятно на 100% ЕСТЬ ЛИ У ПЕРЕЧИСЛЕНИЯ ЗНАЧЕНИЕ В ТИПЕ СТРОКА.. мож знает кто |
|||
5
Михаил Козлов
19.08.11
✎
11:22
|
Значениия перечислений можно сравнить по Идентификатор().
|
|||
6
Reset
19.08.11
✎
11:29
|
Правильней в СписокВидовОперации занести значения перечислений из COM объекта.
СписокВидовОперации.Добавить(connection.Перечисления.БлаБлаВидыОпераций.ТакойТоВид); и затем в запросе Документ.ВидОперации в (&ВидыОпераций) |
|||
7
Михаил Козлов
19.08.11
✎
11:30
|
(6) Полагаю, что речь идет о сопоставлении значений перечисления в 2-х базах.
|
|||
8
rchervak
19.08.11
✎
11:33
|
(7) да. и все равно если Забирать значение перечислений из удаленной базы мне нужно будет все равно их сравнивать со списком который пользователь выберет. И опять не прокатит. (6) вариант
|
|||
9
Reset
19.08.11
✎
11:34
|
(8) Поэтому надо среди всех вариантов выбрать самый дерьмовый?
|
|||
10
rchervak
19.08.11
✎
11:35
|
В кратце объясню смысл.
Пользователь выбирает Виды операций (из списка значений) а затем получает из удаленной базы все документы с нужными видами. |
|||
11
Reset
19.08.11
✎
11:36
|
(10) Смысл абсолютно понятен из (0)
|
|||
12
rchervak
19.08.11
✎
11:37
|
(11) Это я так.. на всякий случай
|
|||
13
rchervak
19.08.11
✎
11:39
|
(6) я понял в чем был смысл ответа.. ща попробую..
|
|||
14
rchervak
19.08.11
✎
13:52
|
(6) спасибо. помогло.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |