Cервисы общего назначения #
Этот раздел описывает сервисы общего назначения, а также содержит примеры их использования. Сервисы общего назначения позволяют решать разнообразные наиболее часто встречающиеся задачи:
- получение конфигурации по объектам модели,
- получение BM-модели,
- получение версии платформы, связанной с объектами модели и т. д.
IV8ProjectManager #
com._1c.g5.v8.dt.core.platform.IV8ProjectManager
IV8ProjectManager
— это менеджер V8-проектов.
IV8Project (V8-проект) — это абстракция верхнего уровня, представляющая собой проект в 1C:EDT.
Менеджер V8-проектов позволяет получать V8-проекты, а также прослушивать события, связанные с V8-проектами. Он предоставляет вам свойства проекта, такие как версия проекта, вариант встроенного языка, Eclipse-проект, который содержит объекты метаданных, и т. д.
Класс IV8Project
имеет несколько наследников, предоставляющих вам более конкретные, специфичные для проекта вещи:
IConfigurationProject
иIExtensionProject
— предоставляют вам свои конфигурации,IExtensionObjectProject
— предоставляет вам внешние отчеты и обработки, которые он содержит.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Получение варианта встроенного языка
|
|
Получение внешней обработки
|
|
IConfigurationProjectManager, IExtensionProjectManager, IExternalObjectProjectManager #
com._1c.g5.v8.dt.core.platform.IConfigurationProjectManager com._1c.g5.v8.dt.core.platform.IExtensionProjectManager com._1c.g5.v8.dt.core.platform.IExternalObjectProjectManager
Менеджеры специфичных V8-проектов позволяют создавать конкретные типы V8-проектов в 1C:EDT, а также совершать некоторые дополнительные действия, такие как, например, изменение родительского проекта для проекта внешних отчетов и обработок или для проекта расширения конфигурации.
Это публичные сервисы, которые доступны через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Создание проекта конфигурации
|
|
IConfigurationProvider #
com._1c.g5.v8.dt.core.platform.IConfigurationProvider
Провайдер конфигураций позволяет управлять конфигурациями и проектами конфигураций в 1C:EDT. Он позволяет получать конфигурации по проектам, объектам модели или их URI.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Получение конфигурации по объекту
|
|
IBmModelManager #
com._1c.g5.v8.dt.core.platform.IBmModelManager
Данный менеджер отвечает за интеграцию платформы БМ в 1C:EDT. В частности, в его обязанности входит:
- открытие и закрытие платформы БМ при открытии и закрытии 1C:EDT,
- создание и удаление пространств имен и хранилищ БМ при создании и удалении проектов,
- синхронизация содержимого ресурсов проекта и его объектной модели,
- редактирование объектной модели,
- рассылка событий.
Соответственно, интерфейс IBmModelManager
предоставляет методы для:
- получения платформы БМ,
- получения пространств имен,
- получения глобального контекста редактирования,
- создания локальных контекстов редактирования,
- выполнения задач вне контекстов редактирования,
- подписки на события.
Подробнее про пространства имен и проекты, контексты редактирования, выполнение задач и события см. в разделе, посвященном интеграции платформы БМ и 1C:EDT.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
ITopObjectFqnGenerator #
com._1c.g5.v8.dt.core.naming.ITopObjectFqnGenerator
Сервис позволяет сгенерировать FQN (квалифицированное имя) различным объектам модели:
- получить квалифицированное имя объектов модели верхнего уровня,
- получить квалифицированное имя внешних свойств объектов модели. Это может быть полезно для подключения объектов модели к BM-модели проектов в 1C:EDT.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Генерация FQN для подключения объекта к BM-модели
|
|
IResourceLookup #
com._1c.g5.v8.dt.core.platform.IResourceLookup
Сервис позволяет производить поиск ресурсов рабочей области по объектам модели, EMF-ресурсам модели или их URI. Полученные ресурсы рабочей области будут содержать передаваемые объекты модели:
- поиск
IFile
, в котором содержится искомый объект, - поиск
IProject
, в котором содержится искомый объект.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Получение workspace-ресурса
|
|
Получение проекта
|
|
IRuntimeVersionSupport #
com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport
Сервис позволяет получить версию платформы, связанную с передаваемым проектом, с передаваемым объектом модели конфигурации проекта или с передаваемым ресурсом. Его удобно использовать, чтобы определить версионно-зависимые действия с объектом.
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Получение версии проекта
|
|
IRuntimeRegistry #
com._1c.g5.v8.dt.platform.IRuntimeRegistry
Сервис позволяет получить все поддерживаемые (зарегистрированные в точках расширения) версии платформы «1С:Предприятия». Его удобно использовать для определения своих сервисов и своих точек расширения, которые зависят от версии «1С:Предприятия».
Это публичный сервис, который доступен через AbstractServiceAwareModule
или ServiceAccess
(см.
как использовать публичные сервисы).
Возможно вы хотите создать свою точку расширения, в которой можно будет определять версионно-зависимые события. Например, чтобы можно было зарегистрировать для версии 8.3.7 один компонент, обрабатывающий какое-то событие, а для версии 8.3.8 — другой компонент. Тогда вы можете сослаться в определении точки расширения на зарегистрированные версии «1С:Предприятия»:
Фрагмент описания сервиса myServiceContributors.exsd
|
|
Затем вы можете зарегистрировать свои компоненты для интересующих вас версий «1С:Предприятия» и через registry-класс «собрать» все зарегистрированные компоненты:
Пример использования
|
|