Примеры использования расширений
Расширения позволяют решать разные задачи по доработке проектов. В данной статье приведены сценарии и рекомендации по их реализации.
Плагины
Плагин — это подключаемый модуль, который добавляет к системе дополнительную функциональность, но не работает самостоятельно. В «1С:Шине» плагины можно реализовать с помощью расширений.
Если вы разрабатываете приложение с плагинами, разместите проекты расширений, реализующих плагины, в одной группе проектов с проектом приложения. Это упростит разработку и позволит выпускать одновременно релизы приложения и плагины к нему.
Перед началом разработки продумайте архитектуру приложения — какую функциональность вы хотите подключать отдельно и как это сделать с учетом текущих ограничений механизма расширений. Логику плагина можно разместить в расширении или в приложении:
- в расширении — если функциональность можно реализовать с помощью поддерживаемых элементов;
- в приложении — если для работы плагина нужны элементы, которые расширение не поддерживает, тогда расширение отвечает за включение и выключение этой функциональности.
В расширении нельзя добавлять элементы, которые оно не поддерживает, но можно использовать уже существующие.
Например, нужно при установленном плагине дать доступ к справочнику, а без плагина — запретить работу с ним. В текущей версии справочник в расширение добавить нельзя, поэтому он включается в состав приложения. Доступ к справочнику в пользовательском интерфейсе становится возможным только при установленном расширении. Для этого подходят контракты сервисов:
- в приложении объявляется контракт сервиса с необязательной реализацией,
- реализация контракта делается в расширении,
- логика приложения в зависимости от наличия реализации контракта предоставляет или скрывает интерфейс справочника.
Тестирование
Расширение можно использовать для создания тестов расширяемого проекта. Тесты элементов из расширяемого проекта размещают в подсистемах-расширениях, так как они имеют доступ к элементам расширяемого проекта и методам расширяемой подсистемы с видимостью ВПодсистеме. Такие тесты могут вызывать методы расширяемого проекта и обращаться к его элементам, что позволяет проверять работу его функциональности без изменения исходных файлов проекта.
Для запуска тестов можно воспользоваться одним из следующих способов:
- добавить команду запуска в командный интерфейс приложения через расширение фрагмента командного интерфейса, которое позволяет добавлять, перемещать и изменять команды командного интерфейса;
- создать отдельное клиентское приложение с собственным URL;
- создать элемент проекта HTTP-сервис с разрешениями
РазрешеноВсем,РазрешеноАдминистраторамилиРазрешеноАутентифицированным, чтобы не нарушать ограничения на поддерживаемые элементы проекта. Тесты можно запускать программно через HTTP-запросы к сервису.