Общая информация
Пространство имен — это область кода, в рамках которой «1С:Предприятие.Элемент Скрипт» гарантирует уникальность используемых имен. Каждое имя принадлежит какому-либо пространству имен. Любой тип в языке имеет квалифицированное имя. Квалифицированное имя включает в себя имя типа, перед которым в иерархическом порядке указываются пространства имен, которым он принадлежит. Части имени разделяются оператором разрешения области видимости ::
(двойное двоеточие).
Типы данных, поставляемые вместе с языком, принадлежат стандартному пространству имен Стд
(Std
).
Например:
Стд::Число
Стд::Коллекции::Массив<ТипЭлемента>
В «1С:Предприятие.Элементе Скрипте» существует пространство имен Скрипт
(Scripts
), которое включает в себя весь код, написанный в текущем файле скрипта.
метод Скрипт()
Консоль.Записать(ПолучитьТип())
;
Разрешение имен
Во время компиляции модуля все неквалифицированные имена разрешаются в квалифицированные. С каждым модулем связан контекст пространства имен, который определяет, какие типы, свойства и методы доступны с указанием или без указания пространства имен.
В контексте доступна следующая информация:
- Доступные пространства имен — идентификаторы из этих пространств можно использовать только с указанием пространства.
- Импортированные пространства имен — идентификаторы из этих пространств можно использовать без указания пространства.
Если какое-либо имя доступно в нескольких пространствах (в том числе в стандартном, собственном или импортируемом) без указания пространства имен, то при разрешении имени используются приоритеты пространств имен. Пространства имен перечислены в порядке убывания приоритета:
- пространство имен текущего сценария (
Скрипт
);
- стандартное пространство имен (
Стд
).
В примере ниже в методе Скрипт()
вызывается метод Степень()
из стандартного пространства имен Стд
:
метод Скрипт()
Консоль.Записать(Степень(10, 4))
;
Но в следующем примере для вызова метода Степень()
из стандартного пространства имен необходимо указать пространство имен явно, т. к. метод Степень()
переопределен пользователем в текущем скрипте и имеет приоритет:
метод Степень(Основание: Число, Показатель: Число): Число
возврат 42
;
метод Скрипт()
Консоль.Записать(Степень(10, 4))
Консоль.Записать(Стд::Степень(10, 4))
;
Описанное выше также актуально и для имен типов-одиночек:
метод УдалитьЭлементИФайл()
пер Файлы = ["test.txt", "log.txt"]
Файлы.Удалить("test.txt")
Стд::ВводВывод::Файлы::Файлы.Удалить("test.txt")
;
метод УдалитьФайл()
Файлы.Удалить("test.txt")
;