Правила образования имен

///

1С:ИТС

Сайт ИТС дает обширные рекомендации о том, как следует образовывать и использовать имена переменных, функций, реквизитов, модулей и прочих объектов конфигурации.

Имена метаданных

Каждый объект метаданных использует семейство представлений, используемых в различных ситуациях и контекстах.

Этот раздел снабжен иллюстрациями представлений подчиненного справочника, в котором для наглядности все представления полностью совпадают со своим названием: Имя "Имя", Синоним "Синоним", Пояснение "Пояснение" и т.д.

Имя

Идентифицирующее Имя метаданных определяет семейство имен типов объектов, которые (имена) используются только в конфигураторе. В обычном случае в интерфейсе приложения Имя нигде и никогда не проявляется, если только это не было специально предусмотрено разработчиком.

Синоним

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

Комментарий, Пояснение

Если Синоним не дает достаточного объяснения назначению объекта метаданных, оно может быть дано в Комментарии, который будет доступен разработчику в Конфигураторе, и нигде больше. Если объяснение назначению должно быть доступным в интерфейсе приложения, то для этого следует использовать Пояснение.

Представление объекта, Представление списка

Эти представления являются основными для интерфейса, поэтому они должны быть четкими, ясными и при этом компактными. По представлению объект можно найти в поиске:

Представление списка подчиненного объекта используется в панели формы владельца:

Поиск в навигационной панели следует выполнять по Представлению списка или объекта:

Расширенное представление объекта, Расширенное представление списка

Эти представления используются заголовках соответствующих форм объекта и могут быть максимально содержательными:

Следует помнить, что поиск по расширенному представлению не выполняется:

Разделы модуля

Рекомендации ИТС //its.1c.ru

Программный модуль (общие модули, модули объектов, модули менеджеров объектов, модули форм, команд и т.п.)
  • Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования другими объектами конфигурации или другими программами (например, через внешнее соединение).
  • Раздел «Служебный программный интерфейс»  предназначен для модулей, которые являются частью некоторой функциональной подсистемы. В нем должны быть размещены экспортные процедуры и функции, которые допустимо вызывать только из других функциональных подсистем этой же библиотеки.
  • Раздел «Служебные процедуры и функции» содержит процедуры и функции, составляющие внутреннюю реализацию общего модуля. В тех случаях, когда общий модуль является частью некоторой функциональной подсистемы, включающей в себя несколько объектов метаданных, в этом разделе также могут быть размещены служебные экспортные процедуры и функции, предназначенные только для вызова из других объектов данной подсистемы.
Модули объектов, менеджеров, наборов записей, обработок, отчетов
  • Раздел «Программный интерфейс» содержит экспортные процедуры и функции, предназначенные для использования в других модулях конфигурации или другими программами (например, через внешнее соединение). Не следует в этот раздел помещать экспортные функции и процедуры, которые предназначены для вызова исключительно из модулей самого объекта, его форм и команд. Например, процедуры заполнения табличной части документа, которые вызываются из обработки заполнения в модуле объекта и из формы документа в обработчике команды формы не являются программным интерфейсом модуля объекта, т.к. вызываются только в самом модуле и из форм этого же объекта. Их следует размещать в разделе «Служебные процедуры и функции».
  • Раздел «Обработчики событий» содержит обработчики событий модуля объекта (ПриЗаписиПриПроведении и др.)
  • Раздел «Служебный программный интерфейс» имеет такое же предназначение, как и в общих модулях.
  • Раздел «Служебные процедуры и функции» имеет такое же предназначение, как и в общих модулях.
Модули форм
  • Раздел «Обработчики событий формы» содержит процедуры-обработчики событий формы: ПриСозданииНаСервереПриОткрытии и т.п.
  • Раздел «Обработчики событий элементов шапки формы» содержит процедуры-обработчики элементов, расположенных в основной части формы (все, что не связано с таблицами на форме).
  • В разделах «Обработчики событий элементов таблицы формы <имя таблицы формы>» размещаются процедуры-обработчики таблиц формы и элементов таблиц. Для процедур-обработчиков каждой таблицы должен быть создан свой раздел.
  • Раздел «Обработчики команд формы» содержит процедуры-обработчики команд формы (имена которых задаются в свойстве Действие команд формы).
  • Раздел «Служебные процедуры и функции» имеет такое же предназначение, что и в общих модулях.
Модули команд
  • Раздел «Обработчики событий» содержит процедуру-обработчик команды ОбработкаКоманды.
  • Раздел «Служебные процедуры и функции» имеет такое же предназначение, что и в общих модулях.

РеКС

По некоторым вопросам образования имен у РеКС имеется свой обоснованный взгляд, который может противоречить рекомендациям ИТС или носить субъективный и дискуссионный характер

Переменные модулей

Вопреки рекомендации ИТС "Не рекомендуется в названиях процедур и функций описывать типы принимаемых параметров и (или) возвращаемых значений", тип возвращаемого  значения может завершать имя функции в семействе функций схожего назначения, например:

  • ...ПредметыЗапрос
  • ...ПредметыВыборка
  • ...ПредметыМассив
  • ...ПредметыКоллекция

Аналогично для реквизита формы и элемента формы:

  • ПредметыДерево,
  • ПредметыТаблица,
  • ПредметыСписок

Процедура объекта данных, которую следовал бы сделать методом, если бы язык это позволял, начинается с имени реквизита имитируя вызов метода:

  • ПредметыДеревоДобавитьПредмет()
  • ПредметыДеревоУдалитьСвойство()

Коллекции элементов - ПредметыКоллекция = Контейнер.ПолучитьЭлементы(); - во избежание путаницы со свойством управляемой формы Элементы типа ВсеЭлементыФормы

Оптимизация

РеКС ведет исследование производительности 1С, материалы которого частично опубликованы в ... /// На основании исследования РеКС рекомендует: ?

ЭлементыПредметыДерево = Элементы.ПредметыДерево;
ЭлементыПредметыДеревоТекущиеДанные = ЭлементыПредметыДерево.ТекущиеДанные;

ВерсияДанныеИдентификатор = ВерсияДанные.ПолучитьИдентификатор();

Источники

  • ИТС
    • Тексты модулей //its.1c.ru
    • Правила образования имен переменных //its.1c.ru
    • Имена процедур и функций //its.1c.ru
    • Параметры процедур и функций //its.1c.ru
    • Перенос выражений //its.1c.ru
    • Описание процедур и функций //its.1c.ru
    • Правила создания модулей форм  //its.1c.ru
    • Правила создания общих модулей //its.1c.ru
    • Структура модуля (управляемого, мобильного, обычного приложения) //its.1c.ru
    • Имя, синоним, комментарий //its.1c.ru
    • Пользовательские представления объектов (Синоним, Представление, Расширенное представление, Пояснение) //its.1c.ru
  • Использование объектов типа Структура //its.1c.ru
  • Перехват исключений в коде //its.1c.ru

Leave a Reply