---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
  - property: og:type
    content: article
  - property: article:section
    content: Платформа плагинов
  - property: og:title
    content: Добавить плагин в выбор формы создания задачи
  - property: article:tag
    content: Техническая инструкция
alternate:
  - https://yandex.ru/support/tracker/ru/plugins/slots/issue-create-form.md
  - href: https://yandex.ru/support/tracker/ru/plugins/slots/issue-create-form.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/support/tracker/ru/llms.txt?revision=r21880163
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt?revision=r21880163


# Добавить плагин в выбор формы создания задачи

Слот `issue.create.form` добавляет карточку плагина в выбор формы для выбранной очереди на странице создания задачи. При нажатии на карточку плагин открывается на отдельной странице и может предложить свой способ создания задачи.

![Карточка плагина среди форм создания задачи](../../_assets/plugins/slots/issue-create-form-picker.png){width=900}

Для боковой панели создания задачи предусмотрен отдельный слот `drawer.issue.create.form`. Его карточка также появляется среди форм, но плагин открывается внутри панели. Если плагин должен работать в обоих местах, объявите оба слота в манифесте.

Слот `issue.create.form` работает на десктопной странице создания задачи. В мобильной версии карточка плагина не показывается. Компактный выбор формы `/issueCard/create` также не показывает плагины.

## Подключите слоты {#connect-slots}

Создайте проект командой `weavix create` и выберите шаблон `issue.create.form`. Шаблон добавит оба слота. Если проект уже существует, добавьте нужные слоты в `manifest.json`:

```json
{
  "permissions": {
    "data": ["tracker:issues:write"]
  },
  "slots": {
    "tracker": {
      "issue.create.form": [
        {
          "entrypoint": "index.html",
          "contextLevel": "full",
          "title": {"ru": "Создать задачу с плагином", "en": "Create an issue with a plugin"}
        }
      ],
      "drawer.issue.create.form": [
        {
          "entrypoint": "index.html",
          "contextLevel": "full",
          "title": {"ru": "Создать задачу с плагином", "en": "Create an issue with a plugin"}
        }
      ]
    }
  }
}
```

Это фрагмент манифеста: сохраните остальные обязательные поля вашего проекта. Для создания задачи через API Трекера плагину нужно разрешение `tracker:issues:write`. Оно не расширяет права пользователя: задача создается в пределах его доступа. Подробнее о полях манифеста — в разделе [Конфигурация плагина](https://yandex.ru/support/tracker/ru/plugins/common.md#manifest).

Шаблон содержит заготовку интерфейса, но не создает задачу. Добавьте необходимые поля и вызов API в код плагина.

Подключите плагин к очереди и откройте страницу создания задачи с этой очередью. Карточка плагина появится рядом с обычными формами. В заголовке открытого плагина показаны его название и метка «Плагин». Подробнее о подключении — в разделе [Публикация плагина](https://yandex.ru/support/tracker/ru/plugins/publish.md).

![Страница плагина после выбора его карточки](../../_assets/plugins/slots/issue-create-form-page.png){width=600}

## Получите контекст выбранной очереди {#slot-context}

При открытии плагина задача еще не создана. В базовом контексте ключ выбранной очереди доступен как `entityId`. Если в манифесте указан `contextLevel: "full"`, получите ключ через `slotContext.queue`:

```tsx
const { slotContext } = useTrackerPluginContext<'issue.create.form'>('full');
const queue = slotContext?.queue;
```

Для `drawer.issue.create.form` полный контекст дополнительно содержит необязательные поля:

- `defaultFields?: Record<string, string>` — значения полей, переданные при открытии боковой панели;
- `sourceUrlParams?: Record<string, unknown>` — параметры, которые вызывающий экран передает обычной форме создания задачи. Например, календарь проекта может передать проект.

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

## Завершите работу плагина {#close-plugin}

Создайте задачу через API Трекера. Для слота боковой панели после успешного создания передайте ключ задачи в `hostApi.close({ issueKey })`: вызывающий экран получит результат и закроет панель. Вызов `hostApi.close()` без результата вернет пользователя к выбору формы.

На отдельной странице `issue.create.form` вызов `hostApi.close()` возвращает к выбору формы; специальный результат создания для этого слота не предусмотрен. Если в плагине есть несохраненные данные, вызовите `hostApi.preventClose(true)`. При попытке уйти со страницы, сменить очередь или закрыть панель Трекер запросит подтверждение.

