Добрый день, помогите с такой проблемой.
Есть имя вида перечисления <видРек> - Перечисление.СтатусПроизводства
и номер значения <значРек>.
Нужно установить значение реквизита документа <идРек> - СтатусПроизводства.
Делаю так:
док.УстановитьАтрибут(идРек, Метаданные.Перечисление(видРек).Значение(значРек));
В результате значение Док.СтатусПроизводства пустое.
Если задаю явно:
док.УстановитьАтрибут(идРек, Перечисление.СтатусПроизводства.Упаковка);
в этом случае все Ок.
ЗначениеПоНомеру(<?>) Синтаксис:
ЗначениеПоНомеру(<Номер>)
Назначение:
Возвращает значение перечисления по порядковому номеру в перечислении.
Параметры:
<Номер> - порядковый номер значения в перечислении.
Где вы там вообще увидели метод Значение() для перечисления?
+(4) И если вам нужно значение перечисления, то зачем вы обращаетесь к метаданным? Метаданные - это описание структур конфигурации, а не их значения. На пальцах: через метаданные вы можете получить описание справочника (например, "Номенклатура"), но не значения элементов справочника!
Для получения значения перечисления по его текстовому виду надо использовать метод ПолучитьАтрибут():
(7) https://infostart.ru/1c/articles/65108/ Цитата оттуда:
Количество имеющихся значений перечисления можно узнать следующим образом: Метаданные.Перечисление(["Идентификатор"/Номер]).Значение();
Цитата оттуда:
Количество имеющихся значений перечисления можно узнать следующим образом:
Дивная цитата! Вы количество значений перечисления от собственно значений отличаете? Есть ощущение, что не отличаете... но при этом беретесь поучать свысока.
А если вы рассчитываете отмазаться вот этим кусочком чужого кода:
Для й=1 по ТекВид.Значение() Цикл
Сообщить("----------Значение----------","!");
ТекЗнач=ТекВид.Значение(й);
Сообщить("Идентификатор: "+ТекЗнач.Идентификатор);
Сообщить("Комментарий: "+ТекЗнач.Комментарий);
Сообщить("Представление: "+ТекЗнач.Представление);
КонецЦикла;
Так я буду вынужден вас огорчить - именно он у автора не работает! Почему? Ответ на этот вопрос немного сложнее, чем вам впопыхах показалось.
Постараюсь объяснить на простеньком примере: в типовой Бухгалтерии 7.7 есть перечисление "Булево" с двумя значениями: "Да" и "Нет". Так вот, набрав в табло две строчки:
Первая (ваша) возвращает "Метаданные", а вторая (моя) - "Перечисление". Сюрприз!
Надеюсь, теперь разница между способами понятна? Автор пытается (и вы его в этом поддерживаете) записать в реквизит документа объект метаданных - надеюсь, результат понятен даже вам, господин учитель?
(9) угу, метаданные!
просто их еще могло попутать что визуальное представление метаданного выглядит так же как визуальное представление значения перечисления.