|
Зачем так делают? Переменные в модуле объекта
arsik, Ёпрст, ЕRPe, АгентБезопаснойНацио, alex73, Александр111, Serg_1960, Greeen, Builder, SleepyHead, obs191, viraboy, Мультук, backfire, rozer76, Bigbro, Prog_man, alexela, PR, LuckyStar, Максимка_Космонавтом, Страждущий, Amfiaray, Галахад, Hawk_1c, Жеглофф, Доминошник, Bad_Aleks, Новиков, Шурик71, mikecool, Ager, maxab72, Homer, Stepashkin, tomvlad, Волшебник, vis, Skylark, Ногаминебить, DimVad, Yu13, Масянька, formista2000, Smit1C, orakool, andryscha1c, craxx, okmail, Trucker, ig0z, Лирик, U4Me2, dimanikko, Ненавижу 1С, TormozIT, Kobol, Гипервизор, Умный Слоненок, vyaz, Ageres, Silgis, mgreat
| ☑ |
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
Такого рода переменные позволяют отделить логику от данных и писать универсальные, переиспользуемые, изменяемые алгоритмы для различных конфигураций.
|
|