|   |   | 
| 
 | Зачем так делают? Переменные в модуле объекта | ☑ | ||
|---|---|---|---|---|
| 0
    
        formista2000 10.04.25✎ 14:49 | 
        Вначале модуля объекта пишут:
 Перем мСтавкиНДС; И после процедур и функций в основной части модуля пишут: мСтавкиНДС = Перечисления.СтавкиНДС; И работают потом с мСтавкиНДС, но ведь если этого не знать и не посмотреть, то программист так и будет в коде использовать Перечисления.СтавкиНДС.НДС20 например. Зачем такое делают? Какой скрытый смысл? | |||
| 1
    
        СвинТуз 10.04.25✎ 14:53 | 
        Тяжёлое наследие 1с 7.7     | |||
| 2
    
        Kigo_Kigo 10.04.25✎ 14:56 | 
        Приставка "м" значит переменнная модуля и существует только в модуле, к примеру есть реквизит объекта СтавкиНДС, а надо поигратся с перменной СтавкиНДС, и что бы его не трогать (и не запутаться) делают переменную мСтавкиНДС
 ПыСы типа правило этики программирования, что бы код был читаем | |||
| 3
    
        Ненавижу 1С гуру 10.04.25✎ 14:55 | 
        Выпендриваются. 
 Перечисления.СтавкиНДС это статический объект менеджер и обращение к нему стоит копейки, чтобы выделять прямую переменную Используйте Перечисления.СтавкиНДС - так понятнее | |||
| 4
    
        Злопчинский 10.04.25✎ 15:12 | 
        (1) это отчего вдруг тяжкое наследи клюшек?
 . "глУслуга" просто тупо удобнее писать чем Перечисление.ВидыНоменклатуры.Услуга | |||
| 5
    
        Ненавижу 1С гуру 10.04.25✎ 15:14 | 
        (4) там не конкретное значение перечисления, а менеджер одного типа перечисления
 Но даже в этом случае все относительно - писать помогает IDE, а вот читать в силу особенностей языка - никто не помогает | |||
| 6
    
        Злопчинский 10.04.25✎ 15:16 | 
        (5) ну, как переменную назвали, так она и поплывет...     | |||
| 7
    
        Andy13 10.04.25✎ 15:22 | 
        Скорее не наследие клюшек, а наследие малых ресурсов и файловых баз с отсутствием кэша.
 В приведеном примере одно считывание из базы данных и дальнейшее использование. Иначе будет считываться каждый раз при обращении. Что в реалиях файловой базы - тормоза. Ну в целом - наследие тощих времен... | |||
| 8
    
        Ненавижу 1С гуру 10.04.25✎ 15:23 | 
        (7) что конкретно считывается из базы данных в строке:
 мСтавкиНДС = Перечисления.СтавкиНДС; ? | |||
| 9
    
        Конструктор1С 10.04.25✎ 18:13 | 
        (2) древний говнищенский стиль, собезъяненый с других языков (от него уж отказались), не делает код читаемым     | |||
| 10
    
        Конструктор1С 10.04.25✎ 18:22 | 
        Префикс m_ использовали в сишных языках в древности, когда кодили в примитивных IDE. Но некоторые уникумы зачем-то испозьзуют эту хрень до сих пор. То ли в блокноте кодят, то ли что     | |||
| 11
    
        Bigbro 10.04.25✎ 20:04 | 
        не знаю что у вас за модуль и зачем так сделано
 но вот есть к примеру обработка диадока. которая на всяких разных конфигурациях должна работать в которых эти перечисления со ставками НДС разные или их вообще может не быть. но унифицировать как то модуль надо и вызовы к нему из других модулей. поэтому там много на первый взгляд странных решений а есть такие которые странные и на 2 и на 3 взгляд )) | |||
| 12
    
        ptiz 10.04.25✎ 23:18 | 
        (10) Префикс "м" в мПеременная дает однозначное указание, что это переменная уровня формы или модуля объекта. Такой код легче читать и сопровождать. Более того, я - за то, чтобы визуально различать реквизиты объекта или формы и обычные переменные, чтобы избегать путаницы и глюков в коде. Жаль, что нет таких практик.     | |||
| 13
    
        SleepyHead гуру 11.04.25✎ 08:56 | 
        (0) Возможно, когда-то было другое перечисление. потом перешли на новое.
 Можно везде в коде поменять Перечисления.СтавкиНДС_Прежнее на Перечисления.СтавкиНДС_Новое, а можно один раз в переменной. | |||
| 14
    
        Stepashkin 11.04.25✎ 08:59 | 
        (0) Ну нравится им так.     | |||
| 15
    
        vis 11.04.25✎ 09:11 | 
        (12) Почему нет?
 Каждый может сам практиковать так, как ему удобнее. | |||
| 16
    
        alex73 11.04.25✎ 10:31 | 
        (15) Нет - потому, что работа программиста 1С и всегда была, и с годами становится все более и более коллективной. Вероятность того, что в твоем "гениальном коде" никто после тебя не будет никогда разбираться - близка к нулю. А в случае более-менее больших проектов - даже становится и практически равна нулю.
 Именно поэтому и нужны стандарты разработки и их соблюдение - чтобы можно было быстрее и с меньшим количеством ошибок разобраться в ранее написанном коде. С почтением, ваш Кэп. | |||
| 17
    
        Serg_1960 11.04.25✎ 10:34 | 
        (13) +1
 Такого рода переменные позволяют отделить логику от данных и писать универсальные, переиспользуемые, изменяемые алгоритмы для различных конфигураций. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |