Имя: Пароль:
1C
 
Как получить значение перечисления через COM соединение?
0 KoanMu
 
20.09.04
13:24
Добрый день!
Создал COM соединение с базой 1cv8, выбрал элемент спрваочника.
Теперь хочу получить значение реквизита, который имеет тип "перечисление", а каким методом  - не знаю. Под значением я понимаю имя выбранного значения перечиления.
1 F427
 
20.09.04
13:32
Получай Представление()
2 KoanMu
 
20.09.04
13:37
> Получай Представление()
Это было в "семерке". Было и сплыло :(
А мне нужно в "ВОСЬМЕРКЕ"!!!!
3 Волшебник
 
20.09.04
13:54
(2) Как освобожусь, расскажу.
4 F427
 
20.09.04
14:18
ну тогда через коллекцию и имя перечисления...
Синтаксис сам посмотри. У меня сейчас 8 под руками нет...

Смысл в том, что через ОЛЕ тебе бессмысленно получать ссылку. Ибо она работает для ОЛЕ базы. Чтобы ей сопоставить перечисление в своей базе - надо сравнивать имена...  Вот это и подразумевалось в (1)
5 KoanMu
 
20.09.04
14:28
> через ОЛЕ тебе бессмысленно получать ссылку
Это я и сам знаю. Мне нужно ИМЯ! (см. внимательнее первый вопрос) или хотя бы номер перечисления
6 Волшебник
 
20.09.04
14:37
через Метаданные пробуй
7 KoanMu
 
20.09.04
14:42
Если выбрать так:

ЭлементСправочника.Перечисление.Метаданные()

Тогда получаем ссылку на все варианты перечисления данного вида, а не на конкретное. :(
8 F427
 
20.09.04
14:48
...... задумчиво чешет в затылке .....

ХЗ... нет под руками ничего... навскидку не помню... Попробуй по итланду пролезть - вроде там пример был....
9 KoanMu
 
20.09.04
15:05
Там для COM объекта не нашел... :(
Мда... Похоже, что с этим в восьмерке "перемудрили" :(
10 Волшебник
 
20.09.04
15:08
(9) Все нормально там. Просто надо посидеть в отладчике. Была еще статья на ИТС по этому поводу.
11 KoanMu
 
20.09.04
15:55
Уфффф... Докопался. Всё как-то через Ж....

Ном = COM_ОбъектБД.Перечисления.ВидыТМЦ.Индекс(COM_ЭлементСправочника.Перечисление);
Имя = COM_ОбъектБД.Метаданные().Перечисления.ВидПеречисления.EnumValues.Get(Ном).Name;

Ура!
12 Волшебник
 
20.09.04
15:57
(11) Можешь, когда захочешь. Я ж говорил, все просто. :)