Имя: Пароль:
1C
1С v8
Правильное название объекта метаданных, в данном случае, Перечисления.
0 dim-mich
 
20.05.26
19:48
Казалось бы, простой вопрос, но... Какой из трех вариантов кода 1С правильный с точки зрения 1С:Платформы 8 при обращении к элементам перечисления и как получить правильное название типа данных итератора в первом цикле "ВремяГода"?

для эксперимента имена значениям перечисления ВременаГода дал: Зима, Лето, Осень, Весна, а в синонима каждому прибавил (синоним), например: Зима (синоним). После этого выполнил вышеприведенный код, вот его результат:

&НаСервереБезКонтекста
Процедура ВыводПеречисленияВременаГодаНаСервере()
    ВременаГода = Перечисления.ВременаГода;
    Сообщить("1-й способ:");
    Для каждого ВремяГода из ВременаГода Цикл
        Сообщить(ВремяГода);
    КонецЦикла;    
    
    Сообщить("2-й способ:");
    ВременаГода = Метаданные.Перечисления.ВременаГода;
    Для каждого ВремяГода из ВременаГода.ЗначенияПеречисления Цикл
        Сообщить(ВремяГода.Синоним);
    КонецЦикла;

    Сообщить("3-й способ:");
    ВременаГода = Метаданные.Перечисления.ВременаГода;
    Для каждого ВремяГода из ВременаГода.ЗначенияПеречисления Цикл
        Сообщить(Перечисления.ВременаГода[ВремяГода.Имя]);
    КонецЦикла;
КонецПроцедуры

1-й способ:
Зима (синоним) Перечисление.ВременаГода
Зима (синоним) ВременаГода
Весна (синоним) Перечисление.ВременаГода
Весна (синоним) ВременаГода
Лето (синоним) Перечисление.ВременаГода
Лето (синоним) ВременаГода
Осень (синоним) Перечисление.ВременаГода
Осень (синоним) ВременаГода
2-й способ:
Зима (синоним) Строка
Весна (синоним) Строка
Лето (синоним) Строка
Осень (синоним) Строка
3-й способ:
Зима (синоним) ВременаГода
Весна (синоним) ВременаГода
Лето (синоним) ВременаГода
Осень (синоним) ВременаГода

В первом цикле итератор ВремяГода имеет в отладчике тип "ПеречислениеСсылка.ВременаГода", но получить это значения я не смог, как видно из кода, представленного выше.
Можете объяснить, что не так я делаю и чего я в платфоме не понимаю и ткнуть что покурить?
1 Волшебник
 
20.05.26
19:50
Опять тупой бот
2 agres
 
20.05.26
20:03
(0)    
    Для Каждого ВремяГода из Перечисления.ВременаГода Цикл
        Сообщить(xmlСтрока(ВремяГода));
    КонецЦикла;
3 Волшебник
 
20.05.26
20:02
&НаСервереБезКонтекста
Процедура ВыводПеречисления
   Сообщить...

кому?
4 Волшебник
 
20.05.26
20:03
вышеприведенный
а код ниже

тупой бот!
5 b_ru
 
22.05.26
01:08
>>Можете объяснить, что не так я делаю и чего я в платфоме не понимаю
Не понимаешь разницу между __str__() и __repr__(). Покурить какую-нибудь книжку по ООП, на том языке, который знаешь. На языке 1С таких книжек нет, поскольку 1С прячет детали своей объектной модели от программиста.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой