Skip to end of metadata
Go to start of metadata

Каждый элемент системы может иметь некоторое имя, с помощью которого к этому элементу можно обращаться.

Пространства имен

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

Подробнее как используются пространства имен при поиске элементов можно прочитать в соответствующем разделе.

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

Каждое пространство имен имеет свое собственное имя, которое и является его уникальным идентификатором. Соответственно, для каждого элемента строку, полученную объединением (через точку) имени его пространства имен с именем самого элемента, будем называть его полным именем. Например, если пространство имен называется System, и внутри него есть класс Element, полным именем этого класса будет System.Element.

Уникальность

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

Канонические имена

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

<имя пространства имен>.<имя элемента системы>
 
Item.name
Sale.Document

Так как в пределах одного пространства имен свойства и действия могут иметь одинаковые имена, то полное имя свойства может быть не уникальным. Поэтому каноническое имя свойств/действий включает в себя еще и сигнатуру, то есть список канонических имен классов параметров свойства/действия, перечисленных через запятую. Если класс параметра не определен, то вместо канонического имени класса используется символ вопросительного знака '?':

<имя пространства имен>.<имя свойства/действия>[<класс1>,...,<классN>]
 
Item.gender[Item.Article]
Date.between[DATE,DATE,DATE]
Document.addHeader[Document.Document,STRING]
Math.sum[?,?]

Так как в сигнатуре свойств/действий могут находиться не только пользовательские классы, то для встроенных классов также определены канонические имена: 

Имя классаКаноническое имя
INTEGERINTEGER
LONGLONG
DOUBLEDOUBLE
NUMERIC[ , ]NUMERIC
BOOLEANBOOLEAN
DATEDATE
DATETIMEDATETIME
TIMETIME
YEARYEAR
STRING, STRING[ ]STRING
ISTRING, ISTRING[ ]STRING
BPSTRING[ ]STRING
BPISTRING[ ]STRING 
TEXTSTRING 
ITEXTSTRING 
RICHTEXTSTRING 
COLORCOLOR
FILE,RAWFILE...FILE,RAWFILE...

В некоторых случаях элементом сигнатуры свойства может являться не одиночный класс, а множество классов. В этом случае каноническое имя будет иметь более сложный вид.

Политика имен

Для избежания пересечения имен, а также лучшей читабельности, рекомендуется использовать следующую политику имен:

Элементы системы

  • Имя должно начинаться с маленькой буквы (за исключением классов).

  • Если имя состоит из нескольких слов, то каждое последующее слово должно начинаться с большой буквы. Например, myFirstNameMySuperClass.

Классы

  • Имя каждого класса должно начинаться с большой буквы.

Язык

Именование элементов осуществляется при помощи простых идентификаторов.

  • No labels