Перейти к основному содержимому

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

Общая информация

Пространство имен — это область кода, в рамках которой «1С:Шина» гарантирует уникальность используемых имен. Каждое имя принадлежит какому-либо пространству имен. Любой тип в языке имеет квалифицированное имя. Квалифицированное имя включает в себя имя типа, перед которым в иерархическом порядке указываются пространства имен, которым он принадлежит. Части имени разделяются оператором разрешения области видимости :: (двойное двоеточие).

Поддерживаются следующие форматы имен:

  • Полное квалифицированное имя: Поставщик::ИмяПроекта::Подсистема[::Пакет]::ИмяТипа.

    Например:

    e1c::ДемоПроект::Основное::КурсыВалют.Запись
  • Частичное квалифицированное имя: Подсистема[::Пакет]::ИмяТипа.

    Например:

    Основное::КурсыВалют.Запись
  • Краткое, неквалифицированное, имя: ИмяТипа. Например: КурсыВалют.Запись.

Типы данных, поставляемые вместе с языком, принадлежат стандартному пространству имен Стд (Std).

Разрешение имен

Во время компиляции модуля все неквалифицированные имена разрешаются в квалифицированные. С каждым модулем связан контекст пространства имен, который определяет, какие типы, свойства и методы доступны с указанием или без указания пространства имен.

В контексте доступна следующая информация:

  • Доступные пространства имен — идентификаторы из этих пространств можно использовать только с указанием пространства.
  • Импортированные пространства имен — идентификаторы из этих пространств можно использовать без указания пространства.

Если какое-либо имя доступно в нескольких пространствах (в том числе в стандартном, собственном или импортируемом) без указания пространства имен, то при разрешении имени используются приоритеты пространств имен. Пространства имен перечислены в порядке убывания приоритета:

  • пространства имен пакетов текущей подсистемы;

    примечание

    Если несколько пакетов содержат тип с одинаковым именем, то выдается ошибка неоднозначности.

  • пространства имен текущего проекта;

  • пространства имен остальных проектов;

  • стандартное пространство имен (Стд).