Имя: Пароль:
1C
1С v8
Подскажите пожалуйста, как получить имя значения перечисления?
,
0 batmansoft
 
10.03.14
16:39
Тоесть, существует какое то значение, например, ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия.
Точнее, переменная, имеющая данное значение. Понятно как получить его индекс. А как имя в виде строки? И как по этому имени потом получить значение из менеджера перечисления?
Дело в том, что я выгружаю данные из БП 2.0 в БП 3.0.
Делаю так:
         удПеречисление=АБаза.Перечисления[АОбъект.Метаданные().Имя];
         лПеречисление=Перечисления[АОбъект.Метаданные().Имя];
         лИндекс=лПеречисление.Индекс(АОбъект);
         удЗначение=удПеречисление.Получить(лИндекс);

но это не прокатывает, потому что в БП 2.0 и 3.0 разный порядок значений. Надо по сопоставлять по имени. Подскажите пожалуйста, как?
1 Добрый хачик
 
10.03.14
16:48
Перечисления.важность.Высокая.Метаданные().Имя
2 zak555
 
10.03.14
16:50
обмен через правила ?
3 batmansoft
 
10.03.14
16:55
(2) нет
4 Torquader
 
10.03.14
16:56
Порядок, насколько я помню, не меняется, то есть можно по метаданным получить имя через индекс значения.

лчИндекс=Перечисление.ИмяПеречисления.Индекс(лпрчЗначениеПеречисления);
лстрИмяЗначения=Метаданные.Перечисления["ИмяПеречисления"].Значения[лчИндекс].Имя;
5 batmansoft
 
10.03.14
17:01
АОбъект.Метаданные().Имя в отладчике равен "ВидыОперацийПоступлениеТоваровУслуг"
а сам АОбъект равен "Покупка, комиссия" тип ПеречислениеСсылка.ВидыОперацийПоступлениеТоваровУслуг
И как быть?
6 batmansoft
 
10.03.14
17:02
(4) Это разные конфигурации, там порядок другой. Но вот имена практически везде совпадают.
7 Mitriy
 
10.03.14
17:05
XMLСтрока(ЗначениеПеречисления)
8 zak555
 
10.03.14
17:07
(3) а как ?
9 Torquader
 
10.03.14
17:07
(6) Порядок метаданных в конфигурации совпадает с порядком значений - и можно получить значение через метаданные по индексу (собственно, что я и написал).
10 zak555
 
10.03.14
17:07
в 2.0 ВидыОперацийПоступлениеТоваровУслуг нет у ртиу

заполняй на стороне бп3
11 batmansoft
 
10.03.14
17:17
(9) Дык к БП 2.0 один порядок, в 3.0 другой. Если я буду искать по индексу, значения путаются
12 batmansoft
 
10.03.14
17:17
(8) Через ОЛЕ
13 batmansoft
 
10.03.14
17:18
(7) Спасибо, XMLСтрока(АОбъект) действительно дает "ПокупкаКомиссия"
14 batmansoft
 
10.03.14
17:31
(13) PS. Вот такой код работает:
         удПеречисление=АБаза.Перечисления[АОбъект.Метаданные().Имя];
         лПеречисление=Перечисления[АОбъект.Метаданные().Имя];
         //лИндекс=лПеречисление.Индекс(АОбъект);
         //удЗначение=удПеречисление.Получить(лИндекс);
         удЗначение=удПеречисление[XMLСтрока(АОбъект)];
         возврат удЗначение;
15 zak555
 
10.03.14
21:26
(14) можно было через соответствие
16 batmansoft
 
10.03.14
23:22
(15) Это как?