Имя: Пароль:
1C
 
Как получить текстовое представление перечисления из ОЛЕ базы?
0 Gucci76
 
24.02.09
15:57
Как получить текстовое представление перечисления из ОЛЕ базы???? А то в печатной форме пишет ОЛЕ. Идентификатор нельзя подставить в печатную форму (там нет пробелов).
Строка(V7.Перечисление.ВидПеречисления.КонкретноеЗначениеПеречисления) выдает ОЛЕ
1 ДенисЧ
 
24.02.09
15:58
Иденнтификатор()
2 Gucci76
 
24.02.09
16:01
В идентификаторе нет пробелов.
ОЛЕ перечисление используется при выводе на печать таблицы.
3 vde69
 
24.02.09
16:05
ДругаяБаза.Строка(ДругаяБаза.ЗначениеПеречисления)
4 ДенисЧ
 
24.02.09
16:05
Метаданные.Перечисление(ИмяПеречисления).Значение(ИмЗначенияПеречисления).Представление
5 ProxyInspector
 
24.02.09
16:08
Добавь в базу ОЛЕ следующую функцию:
Функция глПредставление(Объект) Экспорт
   Возврат СокрЛП(Объект);
КонецФункции


После этого можно будет использовать:
БазаОле.глПредставление(V7.Перечисление.ВидПеречисления.КонкретноеЗначениеПеречисления)    
БазаОле.глПредставление(ДокументОле)
 и тд. и тп.
6 Gucci76
 
24.02.09
16:10
(5) нет возможности изменить конфигуратор оле базы.
7 Gucci76
 
24.02.09
16:16
ДругаяБаза.Строка(ДругаяБаза.ЗначениеПеречисления)
не прокатило, поругалось на Строка
8 vde69
 
24.02.09
16:17
(5)(6) да приведение к представлению происходит автоматически при приведении к типу строка, по этому довольно (3)
9 ДенисЧ
 
24.02.09
16:18
(7) А чем тебе мой вариант не понравился?
10 vde69
 
24.02.09
16:18
ДругаяБаза.СокрЛП()
11 Gucci76
 
24.02.09
16:21
(3) ДругаяБаза.Строка(ДругаяБаза.ЗначениеПеречисления)
не прокатило, поругалось на Строка
(9) я беру перечисление из ОЛЕ базы, в твоем варианте база не ОЛЕ и идентификатор передает значение БЕЗ ПРОБЕЛОВ
12 ДенисЧ
 
24.02.09
16:21
(11) см (4)
13 Gucci76
 
24.02.09
16:22
(4) там есть про ОЛЕ.
Пытаюсь (4) переделать под использование ОЛЕ пишет типы не совпадают.
14 Gucci76
 
24.02.09
16:23
(4) там есть про ОЛЕ????
15 ДенисЧ
 
24.02.09
16:24
(14) ДругаяБаза.Метаданные. И дальше по тексту
16 Gucci76
 
24.02.09
16:25
вот именно так и пытаюсь, пока не выходит
17 rs_trade
 
24.02.09
16:29
Можно так, хоть и не очень красиво...

Если базаОЛЕ.ТвойРеквизит = базаОЛЕ.Перечисление.ТвоеПеречисление.Значение Тогда
   представление = "бла-бла-бла"
18 Gucci76
 
24.02.09
16:30
(17) видимо так и придется, раз другого пока не получается
19 Gucci76
 
24.02.09
16:34
(15) не выходит ругается на ПРЕДСТАВЛЕНИЕ, хотя до него нормально получаются данные. Как только пишешь Представление 1С ругается Типы не совпадают.
Буду делать (17) вариантом, благо надо только одно перечисление выводить.
20 v_rtex
 
24.02.09
16:57
ответ в (4) с маленьким уточнением

ЗначСтр=БазаОЛЕ.Метаданные.Перечисление(ИмяПеречисления).Значение(ИДЗначенияПеречисления).Представление();
21 dk
 
24.02.09
17:02
извращенцы :)
ТетяОля.Метаданные.Перечисление(ТипаПеречисление.Вид()).Значение(ТипаПеречисление.ПорядковыйНомер()).Представление()
22 dk
 
24.02.09
17:05
или так
ТетяОля.EvalExpr("СокрЛП("""+СтрЗаменить(ТетяОля.ЗначениеВСтроку(ТетяОля.Перечисление.ВидПеречисления.КонкретноеЗначениеПеречисления), """", """""")+""")");
23 Gucci76
 
24.02.09
17:24
(21) dk оказался прав:
ТетяОля.Метаданные.Перечисление(ТипаПеречисление.Вид()).Значение(ТипаПеречисление.ПорядковыйНомер()).Представление()
Представление() должно быть со скобками, тогда работает!!!! :-)
Всем откликнувшимся большое спасибо!!!!