Как стать автором
Поиск
Написать публикацию
Обновить

Мой способ именования переменных в 1С

В 1С при создании переменной, необходимо чтобы имя переменной было уникальным в пределах модуля, где пишешь код. Не совпадало с именем реквизита формы. Не совпадало с переменными в модуле приложения. Не совпадало с названием свойства. Не совпадало с названием встроенных методов языка. Из этого так же вытекает, что при анализе чужого кода, не просто понять, что за именованная сущность перед тобой. Эта проблема хорошо описана в книге "1С:Предприятие 8.3. Практическое пособие разработчика" на странице 177. Приведу отрывок из книги:

Допустим, в модуле формы нам встретилось выражение: СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные.

Как понять, что такое СтрокаТабличнойЧасти? Нужно вспомнить, из чего состоит контекст формы:

  • локальный контекст самого модуля формы;

  • реквизиты формы, которой «принадлежит» модуль;

  • свойства и методы объекта УправляемаяФорма встроенного языка;

  • свойства и методы расширения формы, определяемого типом того объекта, данные которого содержатся в основном реквизите формы;

  • глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей;

  • экспортируемые переменные, процедуры и функции модуля управляемого приложения.

    Далее по порядку проверить:

  • 1. Объявлена ли в модуле формы переменная СтрокаТабличнойЧасти? Нет.

  • 2. Есть ли у формы реквизит СтрокаТабличнойЧасти? Нет.

  • 3. Есть ли у объекта УправляемаяФорма свойство СтрокаТабличнойЧасти? Нет.

  • 4. Есть ли у расширения формы свойство СтрокаТабличнойЧасти? Нет.

  • 5. Есть ли свойство глобального контекста СтрокаТабличнойЧасти? Нет.

  • 6. Есть ли в модуле управляемого приложения экспортная переменная СтрокаТабличнойЧасти? Нет.

  • Значит СтрокаТабличнойЧасти – это локальная переменная, определяемая непосредственно в этом операторе присваивания.

Для упрощения себе жизни ввел такое правило именования:

  • Параметрам процедур и функций добавляю префикс "п"

  • Переменным внутри модуля добавляю префикс "л"

  • Реквизиты формы без префикса

Пример

&НаСервере
Процедура ЗаписатьШаблонНаСервере(пСсылка) 
	
	лОбъект = пСсылка.ПолучитьОбъект();
	лОбъект.Шаблон.Очистить();
	
	Для каждого Стр Из Шаблон Цикл
	
		НовСтр = лОбъект.Шаблон.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтр, Стр);	
	
	КонецЦикла;
	
	лОбъект.Записать();
	
КонецПроцедуры

Таким образом данная проблема решается радикально. И голова значительно разгружается.

Теги:
0
Комментарии0

Публикации

Ближайшие события