Вход | Регистрация



Перечисление по индексам

Перечисление по индексам
Я
   terletskiyab
 
21.05.18 - 09:40
Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Семестр = Перечисления.Семестры.ВторойСеместр Тогда
        КурсСеместра  = Перечисления.Курсы.ПервыйКурс
    ИначеЕсли  Семестр = Перечисления.Семестры.ТретийСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетвертыйСеместр Тогда
        КурсСеместра  = Перечисления.Курсы.ВторойКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ПятыйСеместр ИЛИ Семестр =  Перечисления.Семестры.ШестойСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ТретийКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.СедьмойСеместр ИЛИ Семестр = Перечисления.Семестры.ВосьмойСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ЧетвертыйКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ДевятыйСеместр ИЛИ Семестр = Перечисления.Семестры.ДесятыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ПятыйКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.ОдиннадцатыйСеместр ИЛИ  Семестр = Перечисления.Семестры.ДвенадцатыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ШестойКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.ТринадцатыйСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетырнадцатыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.СедьмойКурс;
         
    КонецЕсли;
    Возврат КурсСеместра;

Как из этого сделать перечисление по индексам?
 
 
   xXeNoNx
 
1 - 21.05.18 - 09:47
что такое "перечисление по индексам"?
   Сти
 
2 - 21.05.18 - 09:52
Индекс = Перечисления["Семестры"].Индекс(Перечисления.Семестры.ПервыйСеместр);
   Сти
 
3 - 21.05.18 - 09:53
(2) Точнее 
Индекс = Перечисления["Семестры"].Индекс(Семестр);

Ну а дальше с полученным индексом возишься.
   terletskiyab
 
4 - 21.05.18 - 09:56
Спасибо, Сергей! А как мне подбить эти данные с индексами под выше мой цикл, чтобы точно также работало только индексами
   Мыш
 
5 - 21.05.18 - 09:58
(4) Сделай соответствие вместо кейса.
   terletskiyab
 
6 - 21.05.18 - 09:59
Может вот так? Индекс = Перечисления.Семестры.Получить(ПервыйСеместр);
   Сти
 
7 - 21.05.18 - 10:05
(4) Ну, если хочется вообще коротко в одну строчку, то

Возврат Перечисления.Курсы[Окр(Перечисления.Семестры.Индекс(Семестр)/2-0.5, 0)]
   Сти
 
8 - 21.05.18 - 10:06
(7) осталась такая вот дурацкая привычка писать кратко, но непонятно со времен, когда на Perl мутил всякое
   Малыш Джон
 
9 - 21.05.18 - 10:14
(5) +1

Я бы тоже добавил соответствие. Наглядно и легко дорабатывается.
   singlych
 
10 - 21.05.18 - 10:24
(7) Главное, порядок значений не менять.
 
 Рекламное место пустует
   Сти
 
11 - 21.05.18 - 11:02
(10) Конечно. Но поскольку это метаданные, доступ к которым должен быть только у разработчика, который должен понимать что делает (требовать это от обычных юзеров практически бесполезно), то в общем-то не опасно :)
   terletskiyab
 
12 - 21.05.18 - 11:02
А зачем вот тут:Квадратные скобки и -0,5 ОБЪЯСНИТЕ :) Заранее спасибо,  Возврат Перечисления.Курсы[Окр(Перечисления.Семестры.Индекс(Семестр)/2-0.5, 0)]
   Йохохо
 
13 - 21.05.18 - 11:04
(8) у перлистов тяжелое детство, а у 1сников другие фломастеры, не нужно тебе это
   Сти
 
14 - 21.05.18 - 11:05
(12) Квадратные скобки - получение значения по индексу.При этом в 1С иногда можно использовать имя, а совсем иногда - наоборот, нельзя. -0,5 для того чтобы округлялось всегда вниз, то есть получение целой части числа (3/2 = 1,5 и без -0.5 округление будет давать 2, а не требуемое 1).
   Сти
 
15 - 21.05.18 - 11:09
(13) для того, кто паял на коряво сделанных платах ZХ-Spectrumы и АОНы в лихие годы перестройки и правил программы в машинных кодах, perl совсем не тот черт, каким его малюют! 1С сложнее. Ну да, и парадигма тут другая, и знания разнообразнее )
   Йохохо
 
16 - 21.05.18 - 11:17
(15) строить связь по индексу перечисления это бредовейший бред
   Сти
 
17 - 21.05.18 - 12:01
(16) Все зависит от задачи и входящих данных. В данном случаем, по условиям в (0) и описываемым в них сущностям, это оптимально и безопасно. В других - полный бред. А вообще, на вкус и цвет все те самые фломастеры из (13) разные.
   igorPetrov
 
18 - 21.05.18 - 12:27
(0) ТС темы просто плодит https://www.forum.mista.ru/topic.php?id=818944
   igorPetrov
 
19 - 21.05.18 - 12:27
(0) Чем старая тема не устроила?
   Малыш Джон
 
20 - 21.05.18 - 12:31
(19) ну там было три курса, а тут уже семь.
Разве это не достойно новой темы?)
   Малыш Джон
 
21 - 21.05.18 - 12:31
+(20) хотя нет, там тоже до седьмого добрались...


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует