Модель встроенного языка

Модель встроенного языка #

Описание модели встроенного языка платформы “1С:Предприятие 8” в 1С:EDT.

Аннотация #

В проекте 1С:EDT создана семантическая модель встроенного языка пдатформы “1С:Предприятие 8”. Данная модель связана с грамматикой языка и является одним из основных средств работы со встроенным языком внутри проекта 1С:EDT. Поэтому пользователи, которые будут работать со внешним API, должны четко представлять связь грамматических конструкций языка с разработанной моделью.

Описание модели будет происходить следующим образом:

  • будет описан каждый элемент модели
  • для каждого элемента модели будет сказано, как он связан с грамматическими элементами
  • для чего предназначено каждое свойство и метод каждого элемента модели
  • будет дан ряд рекомендаций по более удобному использованию предоставленной модели

Так же хочется отметить, что модель спроектирована с использованием проекта Eclipse Xcore.

Кроме того, данная модель не сериализуется, то есть нельзя получить по модели текст модуля. Только из текста модуля его модель.

Для получения доступа к node-модели, связанной с семантической моделью встроенного языка, нужно воспользоваться сервисом org.eclipse.xtext.nodemodel.util.NodeModelUtils.

Описание модели #

Module #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Module

Представляет собой программный модуль конфигурации. Является корневым элементом модели. Каждому программному модулю конфигурации может быть сопоставлен только один элемент модели. Данный элемент модели унаследовал все методы и свойства от com._1c.g5.v8.dt.bsl.model.Block

Методы и атрибуты элемента #

  • getOwner() - получение объекта метаданных, к которому относится данный модуль (Справочник, Документ и прочие)

  • setOwner(EObject value) - назначение модулю его владельца - объекта метаданных, к которому данный модуль относится. Внешние пользователи не должны использовать данный метод, так как владелец модуля определяется и проставляется автоматически.

  • getModuleType() - получение объекта типа com._1c.g5.v8.dt.bsl.model.ModuleType, определяющего тип модуля

  • setModuleType(ModuleType value) - заполняет тип модуля. Внешние пользователи не должны использовать данный метод, так как тип модуля определяется и проставляется автоматически. 

  • getDefaultPragmas() - возвращает набор значений по умолчанию типа com._1c.g5.v8.dt.bsl.model.Pragmaдля данного типа модуля. Внешним пользователем не следует изменять значения, возвращаемые данным методом.

  • allMethod() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.Method, соответствующие методам, определенным в программном модуле. Используйте этот метод, а не getMethod() для получения всех методов модуля. Внешние пользователи не должны изменять элементы в данной коллекции.

  • getPreprocessors() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.Preprocessor, которые соответствуют всем инструкциям препроцессора, объявленных непосредственно в модуле. Внешние пользователи не должны изменять элементы в данной коллекции.

  • getContextDef() возвращает объект типа com._1c.g5.v8.dt.mcore.ContextDef, который содержит в себе описание всех экспортируемых методов и атрибутов модуля. Внешние пользователи не должны изменять элементы в данной коллекции.

  • Только модули формы и команды имеют предопределенный набор значений, возвращаемых методом getDefaultPragmas(). Данный набор содержит в себе 1 элемент, в который включается директива компиляции “НаСервере”

Block #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Block

Абстрактный элемент модели, содержит в себе методы и атрибуты, которые одновременно присуще как com._1c.g5.v8.dt.bsl.model.Module, так и com._1c.g5.v8.dt.bsl.model.Method. Данный элемент модели унаследовал все методы и свойства от com._1c.g5.v8.dt.mcore.Environmental

Методы и атрибуты элемента #

  • allDeclareStatements() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.DeclareStatement, соответствующие переменным, лежащим в блоке, начинающимся с ключевого слова “Перем” (“Var”). Используйте этот метод, а не getDeclareStatement() для получения всех переменных. Внешние пользователи не должны изменять элементы в данной коллекции.
  • allStatements() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.Statement, соответствующие операторам языка. Используйте этот метод, а не getStatement() для получения всех переменных. Внешние пользователи не должны изменять элементы в данной коллекции.
  • getImplicitVariables() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.ImplicitVariable.  Внешние пользователи не должны изменять элементы в данной коллекции.

ModuleType #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ModuleType

Элемент модели, представляющий собой перечисление всех поддерживаемых типов модулей.

  • COMMON_MODULE - соответствует Общим программным модулям
  • ORDINARY_APP_MODULE - соответствует модулю обычного приложения конфигурации
  • MANAGED_APP_MODULE - соответствует модулю управляемого приложения конфигурации
  • EXTERNAL_CONN_MODULE - соответствует модулю внешнего соединения конфигурации
  • SESSION_MODULE - соответствует модулю сеанса конфигурации
  • OBJECT_MODULE - соответствует объектным модулям объектов конфигурации
  • MANAGER_MODULE - соответствует модулям менеджеров объектов конфигурации
  • VALUE_MANAGER_MODULE - соответствует модулю менеджеру значений для объекта метаданных “Константа”
  • RECORDSET_MODULE - соответствует модулям наборов записей объектов конфигурации
  • FORM_MODULE - соответствует модулям форм
  • COMMAND_MODULE - соответствует модулям команд
  • WEB_SERVICE_MODULE - соответствует модулям веб-сервисов

DeclareStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.DeclareStatement

Элемент модели, ассоциирующийся с грамматической конструкцией объявления переменных

Методы и атрибуты элемента #

  • getVariables() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.ExplicitVariable, соответствующие набору всех объявляемых переменных. Внешние пользователи не должны изменять элементы в данной коллекции.

Пример представления в языке #

...
Перем перем1, перем2, перем3 Экспорт, перем4
...

PragmaTarget #

Элемент модели: com._1c.g5.v8.dt.bsl.model.PragmaTarget

Элемент модели, хранящий набор элементов типа com._1c.g5.v8.dt.bsl.model.Pragma

Методы и атрибуты элемента #

  • getVariables() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.Pragma. Внешние пользователи не должны изменять элементы в данной коллекции.

Pragma #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Pragma

Элемент модели, который содержит в себе строковое представление директивы компиляции, которыми аннотируются методы и переменные

Методы и атрибуты элемента #

  • getSymbol() - возвращает строковое представление директивы компиляции (без символа “&")
  • setSymbol(String value) - заполнение строкового представления директивы компиляции. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически. 

Пример представления в языке #

&НаСервере
Процедура пример()
КонецПроцедуры

в данном примере, будет создан объект модели Pragma, в котором будет содержаться значение “НаСервере”

Variable #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Variable

Элемент модели, представляющий собой переменную во встроенном языке. Данный элемент является родительским для com._1c.g5.v8.dt.bsl.model.ExplicitVariable, com._1c.g5.v8.dt.bsl.model.ImplicitVariable, com._1c.g5.v8.dt.bsl.model.FormalParam. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.mcore.NamedElement.

ExplicitVariable #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ExplicitVariable

Элемент модели, представляющий собой переменную во встроенном языке, которая может быть экспортирована из модуля. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Variable

Методы и атрибуты элемента #

  • isExport() - возвращает “true”, когда переменная экспортируется
  • setExport() - задание свойства возможности экспорта переменной. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически. 

Пример представления в языке #

...
Перем перем1 Экспорт, перем2;
...

данный фрагмент порождает двух представителей ExplicitVariable. Причем, у представителя, соответствующего “перем1”, метод “isExport” вернет “true”

ImplicitVariable #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ImplicitVariable

Элемент модели, представляющий собой локальную переменную во встроенном языке, которая не требует специального объявления.Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Variable, com._1c.g5.v8.dt.mcore.Environmental.

Пример представления в языке #

Приведем пример создания представителей ImplicitVariable

Функция пример()
    локальнаяПеременная = 1;
    Возврат локальнаяПеременная;
КонецФункции

В этом примере будет создан представитель ImplicitVariable, соответсвующего “локальнаяПеременная”

Method #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Method

Элемент модели, представляющий собой пользовательский метод встроенного языка. Данный элемент является родительским для com._1c.g5.v8.dt.bsl.model.Procedure, com._1c.g5.v8.dt.bsl.model.Function. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.modelPragmaTarget, com._1c.g5.v8.dt.mcore.NamedElement, com._1c.g5.v8.dt.bsl.model.Block.

Методы и атрибуты элемента #

  • isExport() - возвращает “true”, когда метод экспортируется
  • setExport() - задание свойства возможности экспорта метода. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически. 
  • isUsed() - возвращает “true”, когда метод не экспортируется, и был найден вызов данного метода в модуле
  • setUsed() - задание свойства того, что был найден вызов данного метода в модуле.
  • isEvent() - возвращает “true”, когда метод является обработчиком события модуля.
  • setEvent() - задание свойства, что метод является обработчиком события модуля
  • getFormalParam() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.FormalParam. Возвращаемые элементы соответствуют объявленным параметрам методов. Внешние пользователи не должны изменять элементы в данной коллекции.

Procedure #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Procedure

Элемент модели, представляющий собой процедуру, объявленную в модуле встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Method.

Пример представления в языке #

Процедура пример(параметр)
    //код процедуры
КонецПроцедуры

Function #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Function

Элемент модели, представляющий собой функцию, объявленную в модуле встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Method.

Пример представления в языке #

Функция пример(параметр)
    //код функции
КонецФункции

FormalParam #

Элемент модели: com._1c.g5.v8.dt.bsl.model.FormalParam

Элемент модели, представляющий собой параметр пользовательского метода. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.mcore.Variable.

Методы и атрибуты элемента #

  • isByValue() - возвращает “true”, если описание параметра начинается со служебного слова “Знач” (“Val”). Говорит о том, как передается параметр в метод - по значению или по ссылке
  • setByValue() - задание свойства того, как передается параметр в метод.  Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getDefaultValue() - возвращает объект типа com._1c.g5.v8.dt.mcore.Literal, который был использован как значение по умолчанию для параметра
  • setDefaultValue() - задание свойства значения по умолчанию для параметра метода. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

Пример кода, когда isByValue() вернет “true”.

Процедура пример(Знач параметр)
    //код процедуры
КонецПроцедуры

Пример кода, когда getDefaultValue() вернет конкретное значение

Процедура пример(параметр = 1)
    //код процедуры

КонецПроцедуры

Label #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Label

Элемент модели, представляющий собой метку во встроенном языке. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.mcore.NamedElement

Пример представления в языке #

Приведем пример создания представителей данного элемента модели

...
~ИмяМетки : переменная = 1
...

В данном примере, будет создан представитель объекта модели Label, который будет в себе содержать имя метки - “ИмяМетки”

Statement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Statement

Элемент модели, от которого отнаследованы все операторы встроенного языка

LabeledStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.LabeledStatement

Элемент модели, представляющий собой оператор метки перехода. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Statement

Методы и атрибуты элемента #

  • getLabels() - возвращает все объекты типа com._1c.g5.v8.dt.bsl.model.Label, которые указаны в операторе. Внешние пользователи не должны изменять элементы в данной коллекции.
  • getStatement() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.UnlabeledStatement, на который указывает метка
  • setStatement() - задание оператора, на который указывает метка. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
~ИмяМетки : переменная = 1;
...

в данном примере будет создан объект LabeledStatement, у которого метод getLabel() вернет коллекцию с одним элементом, в которой будет элемент типа com._1c.g5.v8.dt.bsl.model.Label. А метод getStatement() вернет объект типа com._1c.g5.v8.dt.bsl.model.Statement, соответсвующий оператору “переменная = 1”

UnlabeledStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

Элемент модели, от которого отнаследованы все операторы встроенного языка, кроме com._1c.g5.v8.dt.bsl.model.LabeledStatement. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Statement.

SimpleStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.SimpleStatement

Элемент модели, представляющий собой оператор присваивания (или его редуцированный случай - не имеющий правой части). Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

Методы и атрибуты элемента #

  • getLeft() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который располагается в левой части оператора присваивания.
  • setLeft() - задание выражения левой части оператора присваивания. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getRight() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который располагается в правой части оператора присваивания (если правой части нет, то просто вернет “null”).
  • setRight() - задание выражения правой части оператора присваивания. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = 1;
...

getLeft() вернет выражение (com._1c.g5.v8.dt.bsl.model.Expression), соответствующее “переменная”.

getRight() вернет выражение (com._1c.g5.v8.dt.bsl.model.Expression), соответствующее “1”.

IfStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.IfStatement

Элемент модели, представляющий собой условный оператор встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

Методы и атрибуты элемента #

  • getIfPart() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Condition, который соответствует главной части условного оператора ("Если <Логическое выражение> Тогда")
  • setIfPart() - задание главной части условного оператора.Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getElsIfParts() - возвращает коллекцию объектов типа com._1c.g5.v8.dt.bsl.model.Condition, которые соответствуют частям вида “ИначеЕсли <Логическое выражение> Тогда”. Внешние пользователи не должны изменять элементы в данной коллекции.
  • getElseStatements() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Statement, которые соответствуют операторам, которые располагаются в части “Иначе” условного оператора. Внешние пользователи не должны изменять элементы в данной коллекции.

Conditional #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Conditional

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

Методы и атрибуты элемента #

  • getPredicate() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, которые соответствует условию в главной части условного оператора ("Если <Логическое выражение> Тогда"), и частям, соответствующим “ИначеЕсли <Логическое выражение> Тогда”.
  • setPredicate() - задание выражение, соответствующего логическим выражениям в условном операторе встроенного языка. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getStatements() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Statement, которые соответствуют операторам, которые располагаются в части после ключевого “Тогда” условного оператора. Внешние пользователи не должны изменять элементы в данной коллекции.

Пример представления в языке #

...
Если переменная1 < переменная2 Тогда
    переменная1 = 0;
ИначеЕсли переменная1 = переменная2 Тогда
    переменная1 = переменная2;
Иначе
    переменная2 = 0;
КонецЕсли;
...

В данном примере будут созданы два элемента Conditional. Первый будет соответствовать части “Если переменная1 < переменная2 Тогда переменная1 = 0;”.

А второй будет соответствовать части “ИначеЕсли переменная1 = переменная2 Тогда переменная1 = переменная2;

LoopStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.LoopStatement

Элемент модели, от которого отнаследованы все циклические операторы встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

Методы и атрибуты элемента #

  • getStatements() -возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Statement, которые соответствуют операторам, которые располагаются внутри циклического оператора. Внешние пользователи не должны изменять элементы в данной коллекции.

WhileStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.WhileStatement

Элемент модели, представляющий собой оператор встроенного языка “Пока <Логическое условие> Цикл”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.LoopStatement.

Методы и атрибуты элемента #

  • getPredicate() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, которые соответствует условию в данном операторе.
  • setPredicate() - задание выражения, соответствующего логическому выражению в данном операторе встроенного языка. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Пока (переменная1 < переменная2) Цикл
    //операторы
КонецЦикла;
...

getPredicate() - вернет выражение, соответствующее “(переменная1 < переменная2)

ForStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ForStatement

Элемент модели, от которого отнаследованы все циклические операторы “Для” встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.LoopStatement.

Методы и атрибуты элемента #

  • getVariableAccess() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess, который соответствует переменной, изменяющейся в цикле
  • setVariableAccess() - задает значение переменной, изменяющейся в цикле. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

ForToStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ForToStatement

Элемент модели, соответствующий оператору “Для … Цикл” встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.ForStatement.

Методы и атрибуты элемента #

  • getInitializer() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует начальному значению изменяющейся переменой.
  • setInitializer() - задает начальное значение переменной, изменяющейся в цикле. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getBound() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует конечному значению изменяющейся переменой.
  • setBound() - задает конечное значение переменной, изменяющейся в цикле. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Для счетчик = 1 По 5 Цикл
    //операторы
КонецЦикла;
...

getInitializer() вернет выражение, соответствующее “1”.

getBound() вернет выражение, соответствующее “5”

ForEachStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ForEachStatement

Элемент модели, соответствующий оператору “Для Каждого … Цикл” встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.ForStatement.

Методы и атрибуты элемента #

  • getCollection() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует коллекции, по которой итерируется изменяющаяся переменная.
  • setCollection() - задает коллекцию, по которой итерируется переменная, изменяющаяся в цикле. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Для Каждого счетчик Из Коллекция Цикл
    //операторы
КонецЦикла;
...

getCollection() вернет выражение, соответствующее “Коллекция”

TryExceptStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.TryExceptStatement

Элемент модели, соответствующий оператору “Попытка Исключение”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

Методы и атрибуты элемента #

  • getTryStatements() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Statement, которые соответствуют операторам, которые располагаются внутри секции “Попытка”. Внешние пользователи не должны изменять элементы в данной коллекции.
  • getExceptStatement() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Statement, которые соответствуют операторам, которые располагаются внутри секции “Обработки”. Внешние пользователи не должны изменять элементы в данной коллекции.

GotoStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.GotoStatement

Элемент модели, соответствующий оператору “Перейти”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

Методы и атрибуты элемента #

  • getLabel() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Label, который соответствует метке перехода.
  • setLabel() - задает метку перехода. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Перейти ~ИмяМетки;
...

getLabel() - вернет объект, соответствующий “~ИмяМетки

BreakStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.BreakStatement

Элемент модели, соответствующий оператору “Прервать”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement.

ContinueStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ContinueStatement

Элемент модели, соответствующий оператору “Продолжить”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

ReturnStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ReturnStatement

Элемент модели, соответствующий оператору “Возврат”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

Методы и атрибуты элемента #

  • getExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует возвращаемому объекту.
  • setExpression() - задает возвращаемый объект. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Возврат 1;
...

getExpression() - вернет объект, соответствующий “1”;

RaiseStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.RaiseStatement

Элемент модели, соответствующий оператору “ВызватьИсключение”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

Методы и атрибуты элемента #

  • getExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует выбрасываемому исключению.
  • setExpression() - задает объект, соответствующий выбрасываемому исклюению. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
ВызватьИсключение "Текст исключения";
...

getExpression() - вернет объект, соответствующий “Текст исключения”;

ExecuteStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.ExecuteStatement

Элемент модели, соответствующий оператору “Выполнить”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

Методы и атрибуты элемента #

  • getExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует выполняемому выражению.
  • setExpression() - задает объект, соответствующий выполняемому выражению. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
Выполнить действие;
...

getExpression() - вернет объект, соответствующий “действие”;

EventHandlerStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.EventHandlerStatement

Элемент модели, от которого отнаследованы все операторы для работы с событиями модуля и их обработчиками. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.UnlabeledStatement

Методы и атрибуты элемента #

  • getEventExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует выражению события.
  • setEventExpression() - задает объект, соответствующий выражению событию. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getHandlerExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует выражению обработчика события.
  • setHandlerExpression() - задает объект, соответствующий выражению обработчика события. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

AddHandlerStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.AddHandlerStatement

Элемент модели, соответствующий оператору “ДобавитьОбработчик”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.EventHandlerStatement

RemoveHandlerStatement #

Элемент модели: com._1c.g5.v8.dt.bsl.model.RemoveHandlerStatement

Элемент модели, соответствующий оператору “УдалитьОбработчик “. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.EventHandlerStatement

Expression #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Expression

Элемент модели, от которого отнаследованы все выражения встроенного языка.

BinaryExpression #

Элемент модели: com._1c.g5.v8.dt.bsl.model.BinaryExpression

Элемент модели, соответствующий выражению бинарному выражению. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getOperation() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.BinaryOperation, который соответствует типу бинарного выражения.
  • setOperation() - задает объект, соответствующий типу бинарного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getLeft() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует левой части бинарного выражения.
  • setLeft() - задает объект, соответствующий левой части бинарного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getRight() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует правой части бинарного выражения.
  • setRight() - задает объект, соответствующий правой части бинарного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = 1 + 2;
...

бинарное выражение - “1 + 2”

getOperation - вернет тип бинарного выражения, соответствующего “+”

getLeft() - вернет выражение, соответствующее “1”

getRight() - вернет выражение, соответствующее “2”

BinaryOperation #

Элемент модели: com._1c.g5.v8.dt.bsl.model.BinaryOperation

Элемент модели, соответствующий типу бинарного выражения.

Методы и атрибуты элемента #

  • OR - e1 OR e2
  • AND - e1 AND e2
  • LT - e1 < e2
  • LE - e1 <= e2
  • EQ - e1 = e2
  • GE - e1 >= e2
  • GT - e1 > e2
  • NE - e1 <> e2
  • PLUS - e1 + e2
  • MINUS - e1 - e2
  • MULTIPLY - e1 * e2
  • DIVIDE - e1 / e2
  • MODULO - e1 % e2

UnaryExpression #

Элемент модели: com._1c.g5.v8.dt.bsl.model.UnaryExpression

Элемент модели, соответствующий унарному выражению. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getOperation() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.BinaryOperation, который соответствует типу бинарного выражения.
  • setOperation() - задает объект, соответствующий типу унарного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getOperand() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который соответствует операнду унарного выражения.
  • setOperand() - задает объект, соответствующий операнду унарного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = -2;
...

унарное выражение - “-2”

getOperation() - вернет тип унарного выражения, соответствующего “-”

getOperand() - вернет выражение, соответствующее “2”

UnaryOperation #

Элемент модели: com._1c.g5.v8.dt.bsl.model.UnaryOperation

Элемент модели, соответствующий типу унарного выражения.

Методы и атрибуты элемента #

  • NOT - NOT e
  • MINUS - -e
  • PLUS - +e

FeatureAccess #

Элемент модели: com._1c.g5.v8.dt.bsl.model.FeatureAccess

Элемент модели, от которого отнаследованы все именованные выражения. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getName() - возвращает значение имени для именного выражения.
  • setName() - задает значение имени для именного выражения. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = Справочники.Товары;
...

в данном примере 3 именованных выражения:

  • “переменная” - com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess
  • “Справочники” - com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess
  • “Товары” - com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess

StaticFeatureAccess #

Элемент модели: com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess

Элемент модели, соответствующий именному выражению, к которому обращаются не через “точку”.  Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.FeatureAccess

Методы и атрибуты элемента #

  • getImplicitVariable() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.ImplicitVariable, если данный элемент порождает локальную переменную.
  • setImplicitVariable() - задает значение локальной переменной, связанной с этим выражением. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getFeatureEntry() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.FeatureEntry. Внешние пользователи не должны изменять элементы в данной коллекции.

FeatureEntry #

Элемент модели: com._1c.g5.v8.dt.bsl.model.FeatureEntry

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

Методы и атрибуты элемента #

  • getEnvironments() - возвращает объект com._1c.g5.v8.dt.mcore.Environments, который указывает для какого типа окружения создан данный объект
  • setEnvironments() - задает объект com._1c.g5.v8.dt.mcore.Environments, который указывает для какого типа окружения создан данный объект
  • getFeature() - возвращает объект, с которым связан данный элемент модели
  • setFeature() - задает объект, с которым связан данный элемент модели

DynamicFeatureAccess #

Элемент модели: com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess

Элемент модели, соответствующий именному выражению, к которому обращаются через “точку”.  Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.FeatureAccess

Методы и атрибуты элемента #

  • getSource() - возвращает объект, который стоит перед данным до “точки”.
  • setSource() - задает объект, который стоит перед данным до “точки”.Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getFeatureEntry() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.FeatureEntry. Внешние пользователи не должны изменять элементы в данной коллекции.

Invocation #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Invocation

Элемент модели, соответствующий именному выражению, которому передают набор параметров.  Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getMethodAccess() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.FeatureAccess, которому передаются параметры.
  • setMethodAccess() - задает объект, которому передаются параметры.Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getParams() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Expression, которые и являются передаваемыми параметрами. Внешние пользователи не должны изменять элементы в данной коллекции.
  • isServerCall() - возвращает “true”, если происходит вызов серверного метода из клиентского кода
  • setServerCall() - указывает на то, происходит или нет вызов серверного метода из клиентского кода

Пример представления в языке #

...
переменная = метод(1, "2");
...

“метод(1, “2”)” - com._1c.g5.v8.dt.bsl.model.Invocation

“метод” - getMethodAccess()

1, “2” - getParams()

IndexAccess #

Элемент модели: com._1c.g5.v8.dt.bsl.model.IndexAccess

Элемент модели, соответствующий выражению, к которому обращаются через оператор “[]”.  Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getSource() - возвращает объект, который стоит перед оператором “[]”.
  • setSource() - задает объект, который стоит перед оператором “[]”.Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getIndex() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который стоит внутри оператора “[]”.
  • setIndex() - задает выражение, которое стоит в операторе “[]”. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = Справочник["Товары"];
...

“Справочник[“Товары”]” - com._1c.g5.v8.dt.bsl.model.IndexAccess

“Справочник”- getSource()

“Товары” - getIndex()

OperatorStyleCreator #

Элемент модели: com._1c.g5.v8.dt.bsl.model.OperatorStyleCreator

Элемент модели, соответствующий конструктуру, операторного типа. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getType() - возвращает объект типа com._1c.g5.v8.dt.mcore.TypeItem- это реальный тип, на который указывает конструктор.
  • setType() - задает реальный тип, на который указывает конструктор. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getParams() - возвращает объекты типа com._1c.g5.v8.dt.bsl.model.Expression, которые являются параметрами конструктора. Внешние пользователи не должны изменять элементы в данной коллекции.

Пример представления в языке #

...
переменная = Новый Массив(1, 2, 3);
...
"Новый Массив(1, 2, 3)" - com._1c.g5.v8.dt.bsl.model.OperatorStyleCreator

"Массив" - имя реального типа, который вернет `getType()`

“1, 2, 3” - getParams()

FunctionStyleCreator #

Элемент модели: com._1c.g5.v8.dt.bsl.model.FunctionStyleCreator

Элемент модели, соответствующий конструктуру, функционального типа. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

Методы и атрибуты элемента #

  • getTypeNameExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который является именем создаваемого типа.
  • setTypeNameExpression() - задает выражение, которое является именем создаваемого типа. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.
  • getParamExpression() - возвращает объект типа com._1c.g5.v8.dt.bsl.model.Expression, который является параметром конструктора.
  • setParamExpression() - задает объект, который является параметром конструктора. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = Новый ("Массив", 2);
...
"Новый ("Массив", 2)" - com._1c.g5.v8.dt.bsl.model.FunctionStyleCreator

"Массив" - выражение, которое вернет `getTypeNameExpression()`

“2” - выражение, которое вернет getParamExpression()

Literal #

Элемент модели: com._1c.g5.v8.dt.bsl.model.Literal

Элемент модели, от которого отнаследованы все литеральные выражения встроенного языка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Expression

NullLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.NullLiteral

Элемент модели, соответствующий литералу “Null”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Пример представления в языке #

...
переменная = Null;
...

“Null” - com._1c.g5.v8.dt.bsl.model.NullLiteral

UndefinedLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.UndefinedLiteral

Элемент модели, соответствующий литералу “Неопределено”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Пример представления в языке #

...
переменная = Неопределено;
...

“Неопределенно” - com._1c.g5.v8.dt.bsl.model.UndefinedLiteral

BooleanLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.BooleanLiteral

Элемент модели, соответствующий литералу “Истина” и “Ложь”. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Методы и атрибуты элемента #

  • isIsTrue() - вернет истину, когда записано значение “Истина”
  • setIsTrue() - задает значение литерала. Внешние пользователи не должны использовать данный метод, так как заполнение происходит автоматически.

Пример представления в языке #

...
переменная = Истина;
...

“Истина” - com._1c.g5.v8.dt.bsl.model.BooleanLiteral

NumberLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.NumberLiteral

Элемент модели, соответствующий числовому литералу. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Методы и атрибуты элемента #

  • getValue() - возвращает набор строк, которые были записаны при написания числа. Внешние пользователи не должны изменять элементы в данной коллекции.

DateLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.DateLiteral

Элемент модели, соответствующий литералу типа дата. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Методы и атрибуты элемента #

  • getValue() - возвращает строку, которая была записана при написания даты. Внешние пользователи не должны изменять элементы в данной коллекции.

StringLiteral #

Элемент модели: com._1c.g5.v8.dt.bsl.model.StringLiteral

Элемент модели, соответствующий литералу типа строка. Данный элемент унаследовал все свойства и методы от com._1c.g5.v8.dt.bsl.model.Literal

Методы и атрибуты элемента #

  • getValue() - возвращает набор строк, которые были записаны при написания строкового литерала. Внешние пользователи не должны изменять элементы в данной коллекции.

4.Материалы #

http://www.eclipse.org/modeling/emf/docs/

http://www.eclipse.org/Xtext/documentation/index.html

http://wiki.eclipse.org/Xcore