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