| 
    
            
         
         | 
    
    
  | 
Перечисление по индексам | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        terletskiyab    
     21.05.18 
            ✎
    09:40 
 | 
         
        Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Семестр = Перечисления.Семестры.ВторойСеместр Тогда
 
        КурсСеместра = Перечисления.Курсы.ПервыйКурс ИначеЕсли Семестр = Перечисления.Семестры.ТретийСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетвертыйСеместр Тогда КурсСеместра = Перечисления.Курсы.ВторойКурс ИначеЕсли Семестр = Перечисления.Семестры.ПятыйСеместр ИЛИ Семестр = Перечисления.Семестры.ШестойСеместр Тогда КурсСеместра = Перечисления.Курсы.ТретийКурс ИначеЕсли Семестр = Перечисления.Семестры.СедьмойСеместр ИЛИ Семестр = Перечисления.Семестры.ВосьмойСеместр Тогда КурсСеместра = Перечисления.Курсы.ЧетвертыйКурс ИначеЕсли Семестр = Перечисления.Семестры.ДевятыйСеместр ИЛИ Семестр = Перечисления.Семестры.ДесятыйСеместр Тогда КурсСеместра = Перечисления.Курсы.ПятыйКурс ИначеЕсли Семестр = Перечисления.Семестры.ОдиннадцатыйСеместр ИЛИ Семестр = Перечисления.Семестры.ДвенадцатыйСеместр Тогда КурсСеместра = Перечисления.Курсы.ШестойКурс ИначеЕсли Семестр = Перечисления.Семестры.ТринадцатыйСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетырнадцатыйСеместр Тогда КурсСеместра = Перечисления.Курсы.СедьмойКурс; КонецЕсли; Возврат КурсСеместра; Как из этого сделать перечисление по индексам?  | 
|||
| 
    1
    
        xXeNoNx    
     21.05.18 
            ✎
    09:47 
 | 
         
        что такое "перечисление по индексам"?     
         | 
|||
| 
    2
    
        Сти    
     21.05.18 
            ✎
    09:52 
 | 
         
        Индекс = Перечисления["Семестры"].Индекс(Перечисления.Семестры.ПервыйСеместр);     
         | 
|||
| 
    3
    
        Сти    
     21.05.18 
            ✎
    09:53 
 | 
         
        (2) Точнее 
 
        Индекс = Перечисления["Семестры"].Индекс(Семестр); Ну а дальше с полученным индексом возишься.  | 
|||
| 
    4
    
        terletskiyab    
     21.05.18 
            ✎
    09:56 
 | 
         
        Спасибо, Сергей! А как мне подбить эти данные с индексами под выше мой цикл, чтобы точно также работало только индексами     
         | 
|||
| 
    5
    
        Мыш    
     21.05.18 
            ✎
    09:58 
 | 
         
        (4) Сделай соответствие вместо кейса.     
         | 
|||
| 
    6
    
        terletskiyab    
     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
 
        Я бы тоже добавил соответствие. Наглядно и легко дорабатывается.  | 
|||
| 
    10
    
        singlych    
     21.05.18 
            ✎
    10:24 
 | 
         
        (7) Главное, порядок значений не менять.     
         | 
|||
| 
    11
    
        Сти    
     21.05.18 
            ✎
    11:02 
 | 
         
        (10) Конечно. Но поскольку это метаданные, доступ к которым должен быть только у разработчика, который должен понимать что делает (требовать это от обычных юзеров практически бесполезно), то в общем-то не опасно :)     
         | 
|||
| 
    12
    
        terletskiyab    
     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) разные.     
         | 
|||
| 
    18
    
        igorPetrov    
     21.05.18 
            ✎
    12:27 
 | 
         
        (0) ТС темы просто плодит https://www.forum.mista.ru/topic.php?id=818944     
         | 
|||
| 
    19
    
        igorPetrov    
     21.05.18 
            ✎
    12:27 
 | 
         
        (0) Чем старая тема не устроила?     
         | 
|||
| 
    20
    
        Малыш Джон    
     21.05.18 
            ✎
    12:31 
 | 
         
        (19) ну там было три курса, а тут уже семь. 
 
        Разве это не достойно новой темы?)  | 
|||
| 
    21
    
        Малыш Джон    
     21.05.18 
            ✎
    12:31 
 | 
         
        +(20) хотя нет, там тоже до седьмого добрались...     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |