Перейти к основному содержимому

Примеры использования расширений

Расширения позволяют решать разные задачи по доработке проектов. В данной статье приведены сценарии и рекомендации по их реализации.

Плагины​

Плагин — это подключаемый модуль, который добавляет к системе дополнительную функциональность, но не работает самостоятельно. В «1С:Шине» плагины можно реализовать с помощью расширений.

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

Перед началом разработки продумайте архитектуру приложения — какую функциональность вы хотите подключать отдельно и как это сделать с учетом текущих ограничений механизма расширений. Логику плагина можно разместить в расширении или в приложении:

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

В расширении нельзя добавлять элементы, которые оно не поддерживает, но можно использовать уже существующие.

Например, нужно при установленном плагине дать доступ к справочнику, а без плагина — запретить работу с ним. В текущей версии справочник в расширение добавить нельзя, поэтому он включается в состав приложения. Доступ к справочнику в пользовательском интерфейсе становится возможным только при установленном расширении. Для этого подходят контракты сервисов:

  • в приложении объявляется контракт сервиса с необязательной реализацией,
  • реализация контракта делается в расширении,
  • логика приложения в зависимости от наличия реализации контракта предоставляет или скрывает интерфейс справочника.

Тестирование​

Расширение можно использовать для создания тестов расширяемого проекта. Тесты элементов из расширяемого проекта размещают в подсистемах-расширениях, так как они имеют доступ к элементам расширяемого проекта и методам расширяемой подсистемы с видимостью ВПодсистеме. Такие тесты могут вызывать методы расширяемого проекта и обращаться к его элементам, что позволяет проверять работу его функциональности без изменения исходных файлов проекта.

Для запуска тестов можно воспользоваться одним из следующих способов:

  • добавить команду запуска в командный интерфейс приложения через расширение фрагмента командного интерфейса, которое позволяет добавлять, перемещать и изменять команды командного интерфейса;
  • создать отдельное клиентское приложение с собственным URL;
  • создать элемент проекта HTTP-сервис с разрешениями РазрешеноВсем, РазрешеноАдминистраторам или РазрешеноАутентифицированным, чтобы не нарушать ограничения на поддерживаемые элементы проекта. Тесты можно запускать программно через HTTP-запросы к сервису.