|
v7: Есть ли способы прямым запросом получить значение перечисления?
| ☑ |
0
МастерВопросов
30.01.12
✎
13:56
|
Нужна именно строка с идентификатором Перечисления, а не ссылка
Строка(ВыбНоменклатура.ВидНоменклатуры.Идентификатор());
Например: "Прочее", "Тара", "Услуга".
З.Ы.: Сам токма такое надумал:
CASE WHEN LTRIM(RTRIM(Номенклатура.sp2417))='2Q2' THEN 'Прочее' WHEN LTRIM(RTRIM(Номенклатура.sp2417))='2Q1' THEN 'Инвентарь' WHEN LTRIM(RTRIM(Номенклатура.sp2417))='2Q0' THEN 'Стройматериалы'ELSE Номенклатура.sp2417 END СтрВидНоменклатуры
|
|
1
Mikeware
30.01.12
✎
14:00
|
Создай служебную таблицу...
|
|
2
МастерВопросов
30.01.12
✎
14:08
|
(1) ты про "WITH", или что то другое?
Проблема, что если кто то когда то добавит новое перечисление, то надо будет дописывать код в (0)
|
|
3
Ковычки
30.01.12
✎
14:12
|
подставь ид и не парься
|
|
4
МастерВопросов
30.01.12
✎
14:12
|
+(2) "WITH yyy AS"
|
|
5
МастерВопросов
30.01.12
✎
14:16
|
(3) это запрос из одной базы в другую, где ID не совпадают
|
|
6
Ковычки
30.01.12
✎
14:20
|
тогда никак
только если служебную и при каждом чихе обновлять
|
|
7
antoneus
30.01.12
✎
14:26
|
ну формируй строку динамически, как-то так
стрВыбор = "
| case";
Для сч = 1 По Перечисление.ВидыНоменклатуры.КоличествоЗначений() Цикл
Ид = Перечисление.ВидыНоменклатуры.ЗначениеПоНомеру(сч).Идентификатор();
стрВыбор = стрВыбор + "
| when $Номенклатура.ВидНоменклатуры = $Перечисление.ВидыНоменклатуры."+Вид+" then '" + Вид + "'";
КонецЦикла;
стрВыбор = стрВыбор + " end ВидНоменклатуры";
|
|
8
antoneus
30.01.12
✎
14:28
|
очепятка
|
|
9
antoneus
30.01.12
✎
14:28
|
when $Номенклатура.ВидНоменклатуры = $Перечисление.ВидыНоменклатуры."+Ид+" then '" + Ид + "'"
|
|
10
rs_trade
30.01.12
✎
14:31
|
(2) а причем тут CTE вообще.
|
|