![]() |
|
Зачем так делают? Переменные в модуле объекта | ☑ | ||
---|---|---|---|---|
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
Такого рода переменные позволяют отделить логику от данных и писать универсальные, переиспользуемые, изменяемые алгоритмы для различных конфигураций. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |