Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 00:57

Вопрос по перечислениям.

Автор Q37, 10 авг 2018, 19:12

0 Пользователей и 1 гость просматривают эту тему.

Q37

Всем здравствуйте ! Такое дело:
Есть документ, я узнаю его реквизит через Реквизит.Имя, далее - его значение через ВыбранныйДокумент[Реквизит.Имя], у меня получается, что реквизит относится к перечислению, а значение мне выдаётся = На счета сотрудников.
НО, в самом этом перечислении нет такого значения , там Касса, Проект, Раздатчик, Банковский счёт.
В самом документе заполнение стоит Банковский счёт.
Но почему мне выдаётся "На счета сотрудников" ? И как получить корректную информацию?
Нужна ваша помощь.

alexandr_ll

Цитата: Q37 от 10 авг 2018, 19:12
Всем здравствуйте ! Такое дело:
Есть документ, я узнаю его реквизит через Реквизит.Имя, далее - его значение через ВыбранныйДокумент[Реквизит.Имя], у меня получается, что реквизит относится к перечислению, а значение мне выдаётся = На счета сотрудников.
НО, в самом этом перечислении нет такого значения , там Касса, Проект, Раздатчик, Банковский счёт.
В самом документе заполнение стоит Банковский счёт.
Но почему мне выдаётся "На счета сотрудников" ? И как получить корректную информацию?
Нужна ваша помощь.
По-видимому это синоним.

Q37

Цитата: alexandr_ll от 11 авг 2018, 07:02
Цитата: Q37 от 10 авг 2018, 19:12
Всем здравствуйте ! Такое дело:
Есть документ, я узнаю его реквизит через Реквизит.Имя, далее - его значение через ВыбранныйДокумент[Реквизит.Имя], у меня получается, что реквизит относится к перечислению, а значение мне выдаётся = На счета сотрудников.
НО, в самом этом перечислении нет такого значения , там Касса, Проект, Раздатчик, Банковский счёт.
В самом документе заполнение стоит Банковский счёт.
Но почему мне выдаётся "На счета сотрудников" ? И как получить корректную информацию?
Нужна ваша помощь.
По-видимому это синоним.

Вы абсолютно правы. Подскажите пожалуйста, как добраться именно до имени значения ?

alex0402

Цитата: Q37 от 11 авг 2018, 12:58, как добраться именно до имени значения ?

наверное только перебрать ЗначенияПеречисления, сравнивать синоним и выводить имя.
или сделать синоним = имя
Спасибо за Сказать спасибо

AIFrame

Цитата: Q37 от 11 авг 2018, 12:58
Цитата: alexandr_ll от 11 авг 2018, 07:02
Цитата: Q37 от 10 авг 2018, 19:12
Всем здравствуйте ! Такое дело:
Есть документ, я узнаю его реквизит через Реквизит.Имя, далее - его значение через ВыбранныйДокумент[Реквизит.Имя], у меня получается, что реквизит относится к перечислению, а значение мне выдаётся = На счета сотрудников.
НО, в самом этом перечислении нет такого значения , там Касса, Проект, Раздатчик, Банковский счёт.
В самом документе заполнение стоит Банковский счёт.
Но почему мне выдаётся "На счета сотрудников" ? И как получить корректную информацию?
Нужна ваша помощь.
По-видимому это синоним.

Вы абсолютно правы. Подскажите пожалуйста, как добраться именно до имени значения ?

По аналогии можешь сделать
Маска - ссылка на значение перечисления
ИмяМТ = Маска.Метаданные().Имя;
МетаданныеСсылка = Метаданные.Перечисления[ИмяМТ].ЗначенияПеречисления[Перечисления[ИмяМТ].Индекс(Маска)];

ОписаниеМаски = МетаданныеСсылка.Комментарий;
КлассМаски = МетаданныеСсылка.Имя;
ПредставлениеМаски = МетаданныеСсылка.Синоним;


Q37

Всем Спасибо !!
Если кто-то столкнётся с такой же проблемой, также вот одно из решений(из интернета)
Функция ПолучитьИмяЗначенияПеречисления(Ссылка) Экспорт

ИмяПеречисления = Ссылка.Метаданные().Имя;
Индекс = Перечисления[ИмяПеречисления].Индекс(Ссылка);

Возврат Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[Индекс].Имя;

КонецФункции


AIFrame

ЦитироватьРешение:
2 + 2 = 4
ЦитироватьВсем спасибо, Если кто-то столкнётся с такой же проблемой, также вот одно из решений(из интернета)
1 + 1 + 2 = 4
:kmtu:
Но, в виде функции, может кому и пригодится.

LexaK

детский сад какой-то!  :D
все гораздо проще

ИмяЭлементаПеречисления = XMLСтрока(СсылкаНаЭлементПеречисления);

если помогло нажмите: Спасибо!

AIFrame

Цитата: LexaK от 13 авг 2018, 11:37
детский сад какой-то!  :D
все гораздо проще

ИмяЭлементаПеречисления = XMLСтрока(СсылкаНаЭлементПеречисления);

Комментарий также вытащишь?

LexaK

а в постановке задачи только имя нужно было узнать! все строго по ТЗ.  B)
если помогло нажмите: Спасибо!

Похожие темы (5)

Рейтинг@Mail.ru

Поиск