Мой способ именования переменных в 1С
В 1С при создании переменной, необходимо чтобы имя переменной было уникальным в пределах модуля, где пишешь код. Не совпадало с именем реквизита формы. Не совпадало с переменными в модуле приложения. Не совпадало с названием свойства. Не совпадало с названием встроенных методов языка. Из этого так же вытекает, что при анализе чужого кода, не просто понять, что за именованная сущность перед тобой. Эта проблема хорошо описана в книге "1С:Предприятие 8.3. Практическое пособие разработчика" на странице 177. Приведу отрывок из книги:
Допустим, в модуле формы нам встретилось выражение: СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные.
Как понять, что такое СтрокаТабличнойЧасти? Нужно вспомнить, из чего состоит контекст формы:
локальный контекст самого модуля формы;
реквизиты формы, которой «принадлежит» модуль;
свойства и методы объекта УправляемаяФорма встроенного языка;
свойства и методы расширения формы, определяемого типом того объекта, данные которого содержатся в основном реквизите формы;
глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей;
экспортируемые переменные, процедуры и функции модуля управляемого приложения.
Далее по порядку проверить:
1. Объявлена ли в модуле формы переменная СтрокаТабличнойЧасти? Нет.
2. Есть ли у формы реквизит СтрокаТабличнойЧасти? Нет.
3. Есть ли у объекта УправляемаяФорма свойство СтрокаТабличнойЧасти? Нет.
4. Есть ли у расширения формы свойство СтрокаТабличнойЧасти? Нет.
5. Есть ли свойство глобального контекста СтрокаТабличнойЧасти? Нет.
6. Есть ли в модуле управляемого приложения экспортная переменная СтрокаТабличнойЧасти? Нет.
Значит СтрокаТабличнойЧасти – это локальная переменная, определяемая непосредственно в этом операторе присваивания.
Для упрощения себе жизни ввел такое правило именования:
Параметрам процедур и функций добавляю префикс "п"
Переменным внутри модуля добавляю префикс "л"
Реквизиты формы без префикса
Пример
&НаСервере
Процедура ЗаписатьШаблонНаСервере(пСсылка)
лОбъект = пСсылка.ПолучитьОбъект();
лОбъект.Шаблон.Очистить();
Для каждого Стр Из Шаблон Цикл
НовСтр = лОбъект.Шаблон.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, Стр);
КонецЦикла;
лОбъект.Записать();
КонецПроцедуры
Таким образом данная проблема решается радикально. И голова значительно разгружается.