Проект расширения конфигурации

Расширение конфигурации

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

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

Часто заказчик хочет что-то добавить или что-то изменить в типовой конфигурации «под себя». Стратегия, предлагаемая расширениями, заключается в том, что изменять типовую конфигурацию не нужно. Все изменения выполняются в расширении, которое, по сути, тоже является конфигурацией.

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

Когда поставщик выпускает новую версию типовой конфигурации, выполняется ее автоматическое обновление, поскольку режим поддержки типовой конфигурации не менялся. Она осталась на полной поддержке поставщика. А при запуске обновленного приложения платформа снова автоматически объединит измененную типовую конфигурацию с расширением. И заказчик продолжит работать с измененным, по его желаниям, типовым решением.

Расширения незаменимы тогда, когда приложение работает в режиме разделения данных (см. «Механизм разделения данных»).

Например, в модели сервиса (см. «1С:Облачная подсистема Фреш»). Один из абонентов хочет иметь пару дополнительных отчетов. В то время как остальные абоненты хотят работать с исходной типовой конфигурацией.

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

Другая ситуация - это доработки типовой конфигурации под конкретного заказчика у него на внедрении. Или же доработки типовой конфигурации, которые выполняют для себя IT специалисты заказчика собственными силами. Если все эти доработки выполнить в расширении, то типовая конфигурация останется на полной поддержке, что значительно упростит ее дальнейшее сопровождение.

Подробнее о расширении — см. «Расширение конфигурации».

Проект расширения конфигурации

В проекте расширения конфигурации содержится одно расширение. Такой проект желательно связать с проектом конфигурации (свойство Базовый проект). Тогда контекст конфигурации будет доступен вам при разработке этого расширения, а при запуске конфигурации будет применяться и это расширение.

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

Но можно импортировать из базы только одно или несколько расширений. И связать их с проектом другой конфигурации. Или вовсе не связывать, а разрабатывать независимо.

Создать новый проект для разработки расширения конфигурации

Чтобы создать новый проект для разработки расширения, в панели Навигатор нажмите Новый > Проект расширения конфигурации в контекстном меню пустой области.

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

Кроме того, можно задать имя проекта, отличное от имени расширения. Это может понадобиться в том случае, когда имя расширения длинное, а в панели Навигатор вам хочется использовать короткие имена.
Важно: Будьте внимательны. После создания проекта его имя изменить нельзя.

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

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

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

Импортировать расширение конфигурации из информационной базы в новый проект

Можно импортировать расширения из информационной базы двумя способами:

Устранить ошибки применения расширения

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

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

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

Изменить свойства проекта расширения конфигурации

Чтобы изменить свойства проекта расширения, нажмите Открыть редактор проекта в контекстном меню проекта.

Открыть свойства проекта

В панели Навигатор нажмите Открыть редактор проекта в контекстном меню проекта.

Назначение полей
  • Общее:
    • Версия платформы — маска версии платформы «1С:Предприятия».
      Платформа, соответствующая этой маске, будет использоваться для автоматической проверки конфигурации, для взаимодействия с автоматически обновляемыми информационными базами и для запуска приложения (в качестве стандартного значения).
      По умолчанию 1C:EDT выберет самую старшую из установленных на компьютере версий платформы, соответствующую этой маске. Если вы не хотите, чтобы использовалась самая старшая версия, соответствующая маске, можно указать конкретную версию платформы, которая будет использоваться при выборе этой маски. Подробнее смотрите в разделе Назначение конкретной версии маске.
      Важно: После создания проекта маску версии платформы изменить нельзя.
    • Оптимизировать формат хранения данных проектаоптимизирует внутренний формат .xml-файлов проекта
  • Связь с базовым проектом:
    • Базовый проект — имя базового проекта, который связан с проектом расширения. Базовый проект — это один из проектов в рабочей области, содержащий конфигурацию, для работы с которой создается расширение и вместе с которой оно будет запускаться и отлаживаться. Контекст базового проекта будет доступен при разработке расширения. Если указан базовый проект, то имя проекта расширения формируется автоматически по принципу: <имя базового проекта>.<имя проекта расширения>. Таким образом, все проекты расширений будут находиться рядом с базовым проектом;