АЦРК: система именования переменных

27.11.11

Разработка - Рефакторинг и качество кода

Предлагается система префиксов для именования переменных при написании программ на 1С. Сам пользуюсь этой системой более 10 лет

Префиксы имен переменных в программных модулях

Правила именования переменных при разработке конфигураций на платформе 1С:Предприятие 7.7.

Префикс отделяется от основного имени переменной символом «_» для лучшей читаемости программы.
Гл_ - глобальная переменная, процедура или функция. Описана в глобальном модуле с ключевым словом ЭКСПОРТ.
м_ - переменная, описанная явно или неявно в текущем программном модуле. Рекомендуется всегда явно описывать переменные модуля в начале текста модуля с помощью оператора Перем.
л_ - переменная, описанная явно или неявно в текущей процедуре или функции. Рекомендуется никогда явно не описывать локальные переменные процедур и функций, а создавать их с помощью оператора присваивания, например: л_НомерСтроки=0.
п_ - параметр текущей процедуры или функции.
рд_ - реквизит диалога. Описан в форме диалога.
яч_ - ячейка таблицы в режиме ввода данных. Определена в таблице. Может использоваться в тексте программы в качестве переменных. Является первичной ячейкой и/или группой соседних ячеек, объединенных командой "объединить ячейки". Представляет собой единую неделимую единицу ввода и/или отображения информации в таблице.
от_ - область таблицы. Определена в таблице. Представляет собой группу ячеек таблицы. Используется, как правило, для форматирования ячеек области.
Отсутствие префикса означает, что переменная является реквизитом того объекта (справочника, документа, …), модулем которого является фрагмент программы. Как следствие, в модулях отчетов и обработок, в том числе и внешних, не должны встречаться переменные без префикса.

Правила именования переменных при разработке конфигураций на платформе 1С:Предприятие 8.

Гл_ - глобальная переменная, процедура или функция для основного режима работы конфигурации. Описана в модуле приложения с ключевым словом ЭКСПОРТ.
ГлВС_ - глобальная переменная, процедура или функция для работы конфигурации в режиме внешнего соединения. Описана в модуле внешнего соединения с ключевым словом ЭКСПОРТ.
м_ - (переменная модуля) переменная, описанная явно или неявно в текущем программном модуле. Рекомендуется всегда явно описывать переменные модуля в начале текста модуля с помощью оператора Перем.
л_ - переменная, описанная явно или неявно в текущей процедуре или функции. Рекомендуется никогда явно не описывать локальные переменные процедур и функций, а создавать их с помощью оператора присваивания, например: л_НомерСтроки=0.
п_ - параметр текущей процедуры или функции.
рф_ - реквизит формы. Определен как реквизит формы (на закладке «Реквизиты»).
Отсутствие префикса означает, что переменная является реквизитом того объекта (справочника, документа, …), модулем которого является фрагмент программы. Как следствие, в модулях отчетов и обработок, в том числе и внешних, не должны встречаться переменные без префикса.

Комментарий.
Давно пользуюсь этой системой и уже не могу с ней расстаться.
Природа префиксов - "по месту рождения" переменной. Префикс отлично дополняет смысл, который можно узнать из имени переменной. Потому что всегда полезно знать, является переменная локальной или объявлена в модуле или это параметр процедуры (функции) или вообще является реквизитом объекта, к которому модуль относится. Когда писал на 7.7 до этой системы,был у меня случай (и потом еще пара случаев, когда другим помогал), когда объявлена переменная в модуле формы и с таким же именем реквизит диалога на форме. Первый раз очень трудно такую ошибку найти.
При использовании префиксов такое просто невозможно.
Когда ко мне обращались за помощью в поиске ошибки и показывают модуль без префиксов, я часто говорю: "префиксов нет, поэтому и не работает". И на самом деле ошибка находится сама, стоит только расставить префиксы в модуле. Ну не все ошибки, конечно, а те, которые не позволяли двигаться дальше.

Для 8-ки практически все то же самое, что и для 7.7. Только в 8 реквизит диалога отделен от данных, поэтому префикса "рд_" нет. Обращение к элементам формы возможно только через свойство формы "ЭлементыФормы", так что префикс не нужен, и так ни с чем не спутаешь. Зато в форме могут быть реквизиты (которые определены на закладке формы "реквизиты"). Для них префикс "рф_".
Еще пока не пришлось пользоваться префиксами "Гл_" и "ГлВС_" - для этого надо конфигурацию с нуля писать.

Хотел еще суффиксы ввести, "Ссылка" и "Объект". Но не прижились: писать долго, и хотя для смысла они очень полезны, но острой проблемы нет. Поэтому я их использую, но только в случаях, когда это необходимо, поэтому в систему для обязательного применения они не записаны. Но требуются они довольно часто, потому что все-таки важно понимать, переменная "л_Контрагент", например, является "л_КонтрагентСсылка" или "л_КонтрагентОбъект".

8-ка правда немного мешает применению этой системе. В 8-ке помощник ввода текстов гораздо мощнее, чем в 7.7. Например, при вставке предопределенных процедур модуля мы получаем заголовок процедуры вместе с параметрами, которые, к сожалению моему, без префиксов «п_». И ставить их мне иногда лень, Поэтому в текстах моих можно встретить небольшие процедуры без префиксов, если очень тороплюсь. Но в большинстве случаев все-таки меняю. И чем больше и сложнее текст процедуры, тем больше важно поставить префиксы у параметров.

Сейчас и разработчики 1С стали использовать префикс "м" в переменных модулей, правда без подчеркивания. На мой вкус с подчеркиванием лучше. Но все равно, когда читаешь текст какой-нибудь процедуры (функции) и сразу не понимаешь, локальная это переменная, параметр процедуры (функции) или реквизит объекта у меня возникает раздражение. Ну если уж пришли к префиксу "м_", то дальше просто просятся префиксы "п_" и "л_", с моей точки зрения, конечно.

В общем, попробуйте сами, не пожалеете.

См. также

Когда понадобился новый оператор

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Когда понадобился новый оператор, но его нет в синтакс-помощнике, что делать?

18.03.2024    1147    ZhokhovM    2    

4

Когда разработчик платформы не добавил проверку препроцессоров

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Когда разработчик платформы решил пойти на кухню за кофе, а проверку препроцессоров не добавил, и вот тут-то и началось: "Что, опять все сломалось? Ну и кофе же я забыл сделать!".😅

18.03.2024    2672    ZhokhovM    4    

8

Реструктуризация - бесконечная история

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

При разработке программ требуемый функционал ставят на первое место, но есть еще и архитектура программы. На горизонте 5-10 лет она становится важнее функционала, который должен работать при масштабировании и росте данных. Реструктуризация 5 терабайтной базы 1С 8.2 в формат 1С 8.3, складывает весь пазл архитектурных просчетов, которые сделали ради функционала. Как это исправить? - для разработки правильной архитектуры, нужно всего лишь сместить фокус с функционала и подумать о «вечном».

29.09.2023    1909    1CUnlimited    15    

22

Чистый код. Мой взгляд на жизнь в макаронных джунглях. Часть 2

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Коротко о том, как я перестал быть создателем макаронного кода и непроходимых джунглей методов и модулей. Расскажу о том, что реально применяю на практике с примерами при разработке (а в основном доработке) в типовых конфигурациях 1С. Комментарии очень приветствуются.

27.09.2023    6966    Lemmonbri    136    

36

Чистый код. Мой взгляд на жизнь в макаронных джунглях. Часть 1

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Коротко о том, как я перестал быть создателем макаронного кода и непроходимых джунглей методов и модулей. Расскажу о том, что реально применяю на практике с примерами при разработке (а в основном доработке) в типовых конфигурациях 1С. Комментарии очень приветствуются.

19.09.2023    4345    Lemmonbri    16    

31

5 подходов при доработке конфигурации 1С, чтобы в будущем не было мучительно больно её обновлять

Архитектура Рефакторинг и качество кода Обновление 1С Платформа 1С v8.3 Бесплатно (free)

Нашей компании часто приходится сталкиваться с обновлением конфигураций разной степени переписанности. Какие-то из них обновляются легко, какие-то — не очень. Расскажем о некоторых принципах модификации программы, которые помогут сделать последующий процесс обновления легче. Или тяжелее, если стараться их не соблюдать.

10.08.2023    9584    0    1c-izhtc    37    

21

Задача на ошибки и неоптимальности при проведении приходной накладной

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Задачу эту дают на собеседованиях, видимо, те франчи, которые не в состоянии оценить человека по резюме и в ходе беседы. По идее задачи, подобные этой, должны давать начинающим студентам. Но дают всем подряд. Итак: мои 5 копеек. Критика приветствуется.

11.07.2023    2214    magic1s    32    

11
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. acrk 749 01.01.70 03:00 Сейчас в теме
Предлагается система префиксов для именования переменных при написании программ на 1С. Сам пользуюсь этой системой более 10 лет

Перейти к публикации

1. vkr 27.11.11 20:23 Сейчас в теме
Плюс! Любое упорядочение мышления ведет к уменьшению глюков... :)
u_n_k_n_o_w_n; +1 Ответить
2. Поручик 4670 28.11.11 07:53 Сейчас в теме
Это может и хорошо, но фирма 1С в системе стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8 не рекомендует использование подчёркивания _ в наименованиях переменных и реквизитов. У них там целая глава посвящена теме.
42. teploukhov 9 13.11.18 15:48 Сейчас в теме
(2)Сергей, Вы не поможете найти ссылку на эту главу? Не могу найти такие рекомендации на https://its.1c.ru/db/v8std
3. Арчибальд 2706 28.11.11 08:38 Сейчас в теме
Приведенные соглашения ввел в обиход Камин. Я, кстати, тоже им пользуюсь (нестрого), но без подчерков.
6. acrk 749 28.11.11 11:52 Сейчас в теме
(3) Арчибальд,
Да, я там работал, в Камине. Настал момент, когда другой сотрудник (Волков Михаил) предложил ввести некоторую систему. Но он предложил как в Аспекте была, там префиксы по типу переменной использовались. Но их было во-первых, много. Во-вторых, на мой взгляд, бесполезные. Потому что тип переменной и так ясен должен быть из названия. Например, если переменная - это список значений, то в наименовании должно быть слово "Список", если таблица значений, то должно быть слово "Таблица" и т.д. Я по крайней мере этого придерживаюсь: очень читабельность текста повышает. В-третьих, в 1С мягкая типизация, префикс ничего не гарантирует и только заставляет разработчика прилагать дополнительные усилия, чтобы следить за соответствием префикса и содержания.
Соответственно я предложил эту систему, сам ей пользуюсь и считаю, что имею право представлять ее от своего имени. И практика показала, что префикс "по месту рождения" оказался очень удачным (IMHO).
u_n_k_n_o_w_n; Арчибальд; +2 Ответить
8. Арчибальд 2706 28.11.11 15:05 Сейчас в теме
(6) Я еще пользую префикс "кн", ибо кнопки в диалоге все-таки на особом положении. И еще у кого-то встречал.
ShantinTD; +1 Ответить
10. acrk 749 28.11.11 21:29 Сейчас в теме
(8) Арчибальд,
я тоже использую, только полностью "Кнопка". Хотел написать, но не стал. Когда слово полностью, то это вроде и не префикс, а часть названия.
4. АлексейН 2 28.11.11 09:09 Сейчас в теме
Класная идея!!!
Иногда тоже в сложных отчетах использую, сразу же уменьшается количество глюков и намного проще и понятнее становится текст модуля.
5. iov 406 28.11.11 10:32 Сейчас в теме
http://infostart.ru/public/79901/ Разреши добавить в шапку со ссылкой на тебя?
7. acrk 749 28.11.11 12:10 Сейчас в теме
(5) iov,
конечно, пожалуйста.
Хотя в твоей статье речь идет о другом. Я лично придерживаюсь тех принципов, к которым ты призываешь. Кроме комментирования. Я считаю, что раз мы программируем на русском языке (очередной раз спасибо фирме 1С), то программа сама должна читаться как комментарий. А дополнительные комментарии только в тех случаях, где реально нужна помощь в понимании алгоритма.
9. TrinitronOTV 14 28.11.11 15:23 Сейчас в теме
плюсану, хорошая информация, пригодиться
11. orefkov 1152 30.11.11 01:28 Сейчас в теме
Статью плюсую, хотя над "В 8-ке помощник ввода текстов гораздо мощнее, чем в 7.7" иронично улыбаюсь...
12. DrAku1a 1679 30.11.11 06:43 Сейчас в теме
Идея хорошая, многие из нас анализируя примеры 1С, чужого кода и т.п. стараются вникнуть и использовать систему именования переменных, потом процедур и функций.
Префиксы, как и определенные правила структрирования кода - уже стали стандартом профессионализма разработчиков на многих языках (c++, delphi, ...). Это необходима для повышения читабельности кода другими программистами, да и своего-же кода десятилетней давности.

Система префиксов и наименований переменных в 1С у каждого своя. Анализируя код типовых решений и примеров в документации, мы обычно прививаем себе некие общие правила и пользуемся ими в работе.

Лично я в именах переменных стараюсь заключить не месторождение переменной (место объявления, можно всегда узнать встав на нее и нажав F12), а то, какой тип значения планирую в ней хранить.
Например:
сзКонтрагенты = новый СписокЗначений;
тзСписокДокументов = новый ТаблицаЗначений;


Локальные переменные процедур и функций стараюсь объявлять - привычка осталась от Delphi. А вот почему это не рекомендуется?

Единственное - в типовых решениях 1С глобальные переменные действительно обзываются с "гл", а локальные для модуля формы и экспортные для модуля объекта - все начинаются с "м". И массивы у меня начинаются с "м" - и тут, бывает, возникает путаница...
Кстати, еще один нюанс - зачем подчеркивание нужно? Предлагаю считать префиксом первые буквы переменной, если они в нижнем регистре - до буквы верхнего регистра, вполне читабельно, собственно фирма 1С в своих стандартных решениях именно так и делает.
14. Арчибальд 2706 30.11.11 08:32 Сейчас в теме
(12)
Единственное - в типовых решениях 1С глобальные переменные действительно обзываются с "гл"
Это тоже появилось от Камина. Во всяком случае, позже.
16. acrk 749 30.11.11 10:18 Сейчас в теме
(12) DrAku1a,
Вот я как раз против таких префиксов.
Считаю, что "тзСписокДокументов = новый ТаблицаЗначений;" - это неправильно. С таким же успехом можно писать "тзМассивДокументов = новый ТаблицаЗначений;" или "тзДеревоДокументов = новый ТаблицаЗначений;". Кроме префиксов надо еще и имена осмысленные давать. Если у вас таблица документов, то почему вы назвали ее "..СписокДокументов"?
Правильно, с моей точки зрения, "тзТаблицаДокументов = новый ТаблицаЗначений;", но в эом случае префикс "тз" не нужен. Кроме того, мягкая типизация не препятствует вам хранит в переменной тзСписокДокументов хоть массив, хоть дерево, хоть число.
Префиксы по типам плохи тем, что их слишком много - трудно для запоминания и извлечения из памяти. Информация о типе как правило ясна из смыслового названия переменной.
А вот префикс по "месту рождения" действительно дает новую информация и весьма важную для понимания алгоритма. Клафишей F12 пользоваться неудобно, только текст перед глазами прыгать будет, а в голове постоянно надо будет держать информацию о том, где какая переменная объявлена.
nayd; karnilaev; ShantinTD; Арчибальд; +4 Ответить
17. Арчибальд 2706 30.11.11 10:30 Сейчас в теме
(16) Согласен. "ТИповые" префиксы имеют смысл в языках, где переменная объявляется вместе с типом, но не в 1С.
22. ShantinTD 91 02.12.11 11:51 Сейчас в теме
Я согласен с тем, что префикс следует начинать с маленьких букв, тогда будет видно, что это именно префикс.
Относительно подчеркивания - наверное иногда есть смысл его использовать, потому что 1С кроме мягкой типизации позволяет еще и регистронезависимость. Так вот для тех, кто не любит выделять регистром начала слов - наверное можно немного удлинить код.
Префикс по типу переменной или по месту ее рождения? На мой взгляд - по месту рождения. Опять же из соображений мягкой типизации.
Относительно имен переменных - имя должно трактоваться однозначно. Полностью поддерживаю (16).

Пример того, к чему приводит пренебрежение: определена переменная модуля; определена функция с параметром, названным точно так же; и в качестве аргумента при вызове используется она же (переменная модуля). Работает? В одном единственном частном случае - работает правильно. В остальных - работает долго, и портит все посчитанное ранее.
13. Oleg_nsk 277 30.11.11 08:24 Сейчас в теме
Использую такую же префиксацию, только без именования локальных переменных и без подчеркивания. На мой взгляд, подчеркивание уднинняет текст модуля, а то, что первая буква маленькая уже указывает на то, что это префикс. Что касается локальных переменных, то соглашусь префикс "л" может быть полезен, но тогда придется по этому стандарту еще и счетчики префиксить. Скажите у вас в коде перебор так выглядит: "...Для л_Счетчик = 1 По 100 Цикл..." или "...Для каждого л_Строка1 Из л_Дерево.Строки Цикл..."? На мой взгляд криво выглядит...
15. l_men 15 30.11.11 09:31 Сейчас в теме
А я предлагаю расширить этот список:
для 8:
например если тип переменной структура - "стк",
Таблица значений - "тбз",
Дерево значений - "двз",
Список значений - "спз",
и т.д.
18. dusha0020 1103 30.11.11 11:59 Сейчас в теме
Идея понимания самому своего кода и облегчения понимания другим хороша. Но... Такой стандарт должен исходить от 1С и штатных разработчиков конфигураций. В собственных разработках это замечательно, но когда дописывешь стандартную конфигурацию получается каша, хотя индекс гл уже вроде стандартен. Думаю эта идея префиксов должна быть принята как 1С так и партнерами и тогда большинство разработчиков просто присоединятся. Почему это до сих пор не сделано большой большой вопрос...
19. acrk 749 30.11.11 19:59 Сейчас в теме
(18) dusha0020,
Было бы очень хорошо, если бы такое исходило от 1С. Но на это надеяться не надо. Стандарты разработки 1С, например, меня наполовину не устраивают.
Да и вообще, никто не запрещает любому создавать свои стандарты, лучшие из них могут стать отраслевыми, и не обязательно таких будет один.
Любой стандарт становится стандартом "де-факто", когда обретает поддержку большого количества сторонников.
20. Арчибальд 2706 01.12.11 08:22 Сейчас в теме
(18) Большлй скептицизм вызывает предположение, что 1С может предпринять какие-то шаги в этом направлении. И это при наличии "системы стандартов и методик..."
28. e-katerina 126 09.12.11 13:00 Сейчас в теме
(18) dusha0020,

dusha0020 пишет:
когда дописывешь стандартную конфигурацию получается каша


На мой взгляд никакой каши нет, данные префиксы при чтении типовой конфигурации с частями чужого кода, как раз позволяют быстрее понять, что, а главное где, было дописано другим разработчиком.

А в том, что разработчикам 1С неплохо было бы это включить в систему стандартной методики, - полностью согласна.
21. bssat 01.12.11 11:09 Сейчас в теме
А мне кажется, что красивее, да и правильнее, глобальные переменные начинать с Большой буквы. Хотя, на вкус и цвет... Но упорядочивание информации - это всегда правильно.
23. nafa 657 03.12.11 00:27 Сейчас в теме
18
dusha0020 пишет:
Думаю эта идея префиксов должна быть принята как 1С так и партнерами и тогда большинство разработчиков просто присоединятся.

Лучше бы возможность назначениям переменных типов сделали.
24. oaf_is 04.12.11 13:39 Сейчас в теме
+1. Стараюсь .. придерживаться.... подобного. Нужно и полезно.
25. dicwork 08.12.11 10:41 Сейчас в теме
Раньше приходилось программировать на Delphi и прочитал в одной книге (по моему автор Хендерсон) о префиксах в названиях переменных. На 1С программирую недавно, но стараюсь и здесь придерживаться такого принципа:
тз ТаблицаЗначений
сз СписокЗначений
сп Справочник
дк Документ
за Запрос
Получается спОборудование, заСписокОборудования, тзСписокОборудования
меньше приходится придумывать наименований переменных префикс помогает сразу по тексту определить тип.
В именовании по "месту рождения" переменной пока смысла не вижу. Может кто объяснит, чем это лучше?
26. acrk 749 08.12.11 11:08 Сейчас в теме
(25) dicwork,
Вот аргументы против:
1. тзСписокОборудования - это неправильно. Запутывает читателя: это все-таки СПИСОК или ТАБЛИЦА ?
2. Вот есть набор префиксов по типу и набор имен переменных по смыслу. Делаем все комбинации префиксов и имен. Смысл имеет ТОЛЬКО ОДНА комбинация. Тогда вопрос: что нового дает префикс ? Какой новый смысл? Никакого, потому что тип ясен из смыслового имени переменной. Если это "Сумма", то ясно, что она число, зачем еще префиксом это дублировать ?
И вот есть другой набор префиксов - по месту рождения. Делаем все комбинации префикса и имени. Во-первых их меньше. Во-вторых - все имеют смысл. В-третьих, смысл у всех немного разный, причем с очень важным оттенком. Потому что ясно, что л_Сумма, м_Сумма, п_Сумма, рф_Сумма и просто Сумма - это все числа, в которых хранится некая сумма. Но очень важно понимать, локальная ли это переменная или параметр, или переменная модуля, или реквизит объекта, или реквизит формы, который не является реквизитом объекта.

Критерий качества системы префиксов - наличие смысла в любой (или большинстве) комбинаций префикса и имени.
27. dicwork 09.12.11 00:53 Сейчас в теме
(26) acrk
тзСписокОборудования - это таблица значений содержащая список оборудования.
заСписокОборудования - это запрос для формирования списка оборудования
спОборудование = это справочник оборудования
И и не понимаю, почему это неправильно. Идею вычитал в книге Кена Хендерсона "Руководство разработчика баз данных в Delphi 2" в далеком 1998 году. Использовал при программировании на Delphi - теперь перенес эту методику и на работу с 1С. Если такая методика именования переменных была признана такими авторами как Хендерсон, то почему ее нельзя применять в 1С? Хотелось бы и с Вашей стороны услышать ссылки на литературные источники, на которых базируется Ваша методика именования переменных.
29. acrk 749 11.12.11 22:09 Сейчас в теме
(27) dicwork,
есть языки программирования разных типов. В delphi (я на нем не работаю, Pascal в свое время использовал и очень любил) жесткая типизация переменных. Там это наверное имеет смысл, чтобы в середине программы не прыгать в начало, чтобы уточнить тип переменной. Потому что использование переменной без знания ее типа приведет к ошибке и потере времени.
А в 1С типизация мягкая. Платформа не мешает присвоить переменной спОборудование число или строку и не посчитает это ошибкой. Более того, многие функции платформы возвращают значение, тип которого жестко не определен. Например, для справочника метод НайтиПоКоду может вернуть значение Неопределено, хоть вы три префикс "сп" поставьте. Поэтому префиксы по типам для 1С не очень удачны.
31. vkr 27.01.12 14:44 Сейчас в теме
(29) Ну и что, что 1С-функции могут вернуть "Неопределено" ?
Если сразу проверить результат на неопределенность, то потом об этом можно не вспоминать...
А смысловой префикс типа тзн_, сзн_, спр_ и т.п. в любом месте исходника напомнит,
какого типа переменную использует сам разработчик, исходя из собственных мыслей...
Пишите, как Вам лично удобнее - зачем подстраиваться под бредовый стиль 1С ??? :)
(30) Согласен с Вами - на С++ много веселого есть :)
30. awk 741 27.01.12 14:29 Сейчас в теме
Я лично пока вижу только в приставках гл и л. В первом случае не перекрываются локальные имена, а во втором не перекрываются имена реквизитов. Остальное перебор по моему. Кто писал на С++ может видел перфиксы до 10 символов. Все хорошо в меру.
32. acrk 749 27.01.12 17:25 Сейчас в теме
(30) awk,
а разве не удобно где-то в недрах большой процедуры увидеть префикс "п" и сразу понять, что это параметр процедуры ?
а префикс "м" даже 1С уже использует, чтобы отличать переменную модуля от локальной или реквизита.
33. awk 741 30.01.12 11:24 Сейчас в теме
(32)
1. Переменная модуля = глобальная переменная(хорошо, что в рамках модуля) = зло. Я бы их пефиксировал как хрень_(и подпись с комментариями для чего эта хрень заведена, если нарушать закон - так со знанием).
2. Процедура или функция должна на экран помещаться. Если не помещается - то это то же хрень непонятная и ошибочная.
34. acrk 749 30.01.12 12:56 Сейчас в теме
(33) awk,
2. - это в идеале. В типовых встречаются запросы на несколько страниц (даже несколько десятков страниц, даже не экранов), так что это нереально выполнить.
35. awk 741 30.01.12 13:13 Сейчас в теме
(34) Видел-видел этих монстров творческой мысли. Практически все разбиваются на части. В идеале - это когда в фирме 1С работают люди с квалификацией выше среднего. :)))
43. PythonJ 112 19.03.21 22:28 Сейчас в теме
(33)
Несмотря на давность ветки, не удержался, чтобы не ответить. Согласен с вами целиком и полностью. Читаю тред из любопытства и все понять не могу, ЗАЧЕМ использовать глобальные переменные, хоть общие, хоть в рамках модуля. ЗАЧЕМ писать код на несколько страниц так, что в нем потом тяжело разобраться. В таком ракурсе всякие префиксы - костыль, используемый для решения собственноручно созданной проблемы.
36. пользователь 31.01.12 16:51
Сообщение было скрыто модератором.
...
37. Krasnyj 1282 07.03.12 13:50 Сейчас в теме
Полезная идея, сам пользуюсь подобным. Статью оплюсовал.
38. pumbaE 07.03.12 13:51 Сейчас в теме
Гл - переменная на сервере, клиенте ? Идею не поддерживаю.
39. AzagTot 40 22.06.13 12:16 Сейчас в теме
Идея хорошая. Поддерживаю.
Такая система (или подобная ей) должна быть встроена на уровне конфигурации.
Т.е., префиксы должны добавляться к имени переменной автоматически - это было бы очень удобно, а затраты на реализацию минимальны.
Жаль, что в 1С этого не сделали.
Может можно такую фишку сделать в Снегопате? Никто не пробовал?
40. pumbaE 22.06.13 12:42 Сейчас в теме
(39) AzagTot, без контекстной подсказки - это пойдет, даже добавив контекстную подсказку к таким переменным , то все равно у разработчиков типовых конфигурации нет снегопата и они не смогут оценить всю задумку, а делать такую вещь для малого процента кода не думаю что стоит.
Это можно сделать, как маленькое дополнение к работе подсказки после точки в снегопате ( когда уже будет, тогда и можно будет задумываться).
41. edzz 22.06.13 22:30 Сейчас в теме
Поддеерживаю. Система префиксов очнь хорошо себя показывает в сильно допиленных конфах(у меня пара доков постоянно допиливается, использую эту систему - очень удобно). Да самому писать иногда лениво, но потом привыкаешь и ничего
Оставьте свое сообщение