Имя: Пароль:
1C
1C 7.7
v7: Перечисление
,
0 aptomilov
 
13.09.11
14:41
Господа, вот такая проблема, имею в наличии значение некоего перечисления, есть необходимость получить объект перечисления, который содержит искомое значение. Как это сделать не могу сообразить, видимо конец рабочего дня.
1 Grusswelle
 
13.09.11
14:43
Запросом.
2 Шапокляк
 
13.09.11
14:43
Т.е. имеется некое слово, например, "электронно", и нужно понять, какого перечисления это значение?
3 Ёпрст
 
13.09.11
14:44
(0) через перебор метаданных.
4 1Сергей
 
13.09.11
14:45
Перечисление.ПолучитьАтрибут(ЗначениеПеречисления.Вид());
5 Irbis
 
13.09.11
14:45
Вид()
Синтаксис:
Вид()
Назначение:
Возвращает строку с названием вида перечисления.
6 Irbis
 
13.09.11
14:45
Метод значения перечисления
7 aptomilov
 
13.09.11
14:47
1Сергей, не то , в наличии значение
8 МастерВопросов
 
13.09.11
14:47
Для Номер = 1 По Метаданные.Перечисление(ИдПеречисления).Значение() Цикл
               Список.ДобавитьЗначение(Перечисление.ПолучитьАтрибут(ИдПеречисления).ЗначениеПоНомеру(Номер));
           КонецЦикла;
9 МастерВопросов
 
13.09.11
14:49
в ТиС-е даже есть такая функция:

Функция глСоздатьСписокЗначПеречисления(ИдПеречисления, СписокИдЗначений = "") Экспорт
10 1Сергей
 
13.09.11
14:49
(7) а по-моему то. Я как раз использовал значение перечисления
11 Irbis
 
13.09.11
14:50
(7) Все зависит от того что у тебя есть. Само значение перечисления или его идентификатор. Во втором случае задача вообще может иметь несколько решений.
12 Жан Пердежон
 
13.09.11
15:03
ТипЗнч()
13 aptomilov
 
13.09.11
15:05
У меня первый случай, в наличии только само значение
14 1Сергей
 
13.09.11
15:06
(13) ты (4) попробовал?
15 Irbis
 
13.09.11
15:07
ПеречислениеОбъект=СоздатьОбъект("Перечисление."+ТвоеЗначение.Вид());
16 viktor_vv
 
13.09.11
15:07
(13) Тогда (4) самое то.
17 aptomilov
 
14.09.11
12:03
все решилось вот так:
ВидМат=Лист.Cells(Ряд,8).Value;
            Пр=Перечисление.Видыматериалов;
          Для Ин=1 по Пр.КоличествоЗначений() цикл
                Если Найти(Пр.ЗначениеПоНомеру(Ин),СокрЛП(ВидМат))<>0 Тогда
                Сообщить("НашОЛся"+ВидМат);
                ВидМатОбъект=Пр.ЗначениеПоНомеру(Ин);
           
                КонецЕсли;        
           КонецЦикла;  
Тему закрываем всем спасибо
AdBlock убивает бесплатный контент. 1Сергей