# Свои шаблоны

Добавление собственных шаблонов кода в TemplatesSearchServer.

## Способы добавления

### 1. Через MCP-инструмент (из чата с ИИ)

ИИ может добавлять шаблоны программно через инструмент `add_template`. Шаблон автоматически сохраняется в базу и индексируется — становится доступен для поиска сразу, без перезапуска.

| Параметр      | Описание                                         |
| ------------- | ------------------------------------------------ |
| `description` | Подробное описание шаблона (минимум 10 символов) |
| `code`        | Исходный код на языке 1С (минимум 10 символов)   |

Пример запроса в чате:

> "Добавь шаблон для асинхронного оповещения пользователя с кодом ПоказатьОповещениеПользователя..."

ИИ вызовет `add_template` и шаблон будет доступен для поиска через `templatesearch`.

### 2. Через веб-интерфейс

1. Откройте `http://localhost:8004/extend/`
2. Заполните поля «Описание» и «Код»
3. Сохраните

Шаблон автоматически индексируется для поиска.

### 3. Через файлы

Шаблоны хранятся в SQLite-базе в папке `/app/data` (на хосте `E:\bases\mcp_templates`).

## Рекомендации по созданию

### Название

* Краткое и понятное
* Описывает суть шаблона
* Пример: "Обход выборки запроса"

### Описание

* Когда использовать
* Особенности
* Ограничения

### Код

* Рабочий код на языке 1С
* Комментарии в ключевых местах
* Плейсхолдеры для параметров

## Пример хорошего шаблона

**Название:** Асинхронное оповещение пользователя

**Описание:** Показывает оповещение пользователю с картинкой и навигационной ссылкой.

**Код:**

```bsl
// Асинхронное оповещение
ПоказатьОповещениеПользователя(
    НСтр("ru = 'Заголовок оповещения'"),           // Заголовок
    "e1cib/data/Справочник.Номенклатура?ref=",    // Навигационная ссылка
    НСтр("ru = 'Текст оповещения'"),              // Текст
    БиблиотекаКартинок.Информация,                // Картинка
    СтатусОповещенияПользователя.Информация       // Статус
);
```

**Теги:** оповещение, уведомление, пользователь, асинхронный

## Организация шаблонов

### Категории

Создавайте шаблоны по категориям:

* Шаблоны вашей команды
* Шаблоны по проекту
* Типовые конструкции

### Именование

Используйте префиксы:

* `[ПРОЕКТ]` — для проектных шаблонов
* `[КОМАНДА]` — для командных стандартов

## Индексация

Шаблоны, добавленные через MCP-инструмент `add_template` или веб-интерфейс, индексируются автоматически и сразу доступны для поиска. Перезапуск контейнера **не требуется**.

### Принудительная переиндексация

Если необходимо полностью перестроить векторный индекс (например, после смены embedding-модели):

```powershell
docker rm -f template_search_mcp

docker run -d -p 8004:8004 `
  --name template_search_mcp `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -e RESET_DATABASE=true `
  -v "E:/bases/mcp_templates:/app/data" `
  comol/template-search-mcp:latest
```

`RESET_DATABASE=true` перестраивает только векторный индекс (ChromaDB). SQLite-база с шаблонами и заметками сохраняется.

## Импорт/Экспорт

### Экспорт шаблонов

```powershell
# Архивирование шаблонов
Compress-Archive -Path "E:\bases\mcp_templates\*" -DestinationPath "E:\backup\templates.zip"
```

### Импорт шаблонов

```powershell
# Распаковка в папку данных
Expand-Archive -Path "E:\backup\templates.zip" -DestinationPath "E:\bases\mcp_templates" -Force
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onerpa.ru/mcp-servery-1c/servery/templates-search-server/svoi-shablony.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
