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