> For the complete documentation index, see [llms.txt](https://docs.onerpa.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onerpa.ru/mcp-servery-1c/servery/code-metadata-search/podgotovka-dannyh.md).

# Подготовка данных

CodeMetadataSearchServer требует данные, выгруженные из Конфигуратора 1С.

## Необходимые выгрузки

| Выгрузка              | Назначение          | Как получить                         |
| --------------------- | ------------------- | ------------------------------------ |
| Отчет из конфигурации | Метаданные объектов | Конфигурация → Отчет из конфигурации |
| Выгрузка в файлы      | Код модулей         | Конфигурация → Выгрузить в файлы     |

## Шаг 1: Создание папок

```powershell
New-Item -ItemType Directory -Force -Path @(
    "E:\1C_Export\Report",
    "E:\1C_Export\Files"
)
```

## Шаг 2: Отчет из конфигурации

1. Откройте конфигурацию в Конфигураторе
2. Меню **Конфигурация** → **Отчет из конфигурации**
3. Настройте параметры:
   * Включите все разделы (справочники, документы, регистры и т.д.)
   * Формат: текстовый файл
4. Сохраните в папку `E:\1C_Export\Report`

### Рекомендуемые настройки

* ✅ Справочники
* ✅ Документы
* ✅ Регистры сведений
* ✅ Регистры накопления
* ✅ Регистры бухгалтерии
* ✅ Обработки
* ✅ Отчёты
* ✅ Общие модули
* ✅ Перечисления
* ✅ Планы видов характеристик

## Шаг 3: Выгрузка в файлы

1. Меню **Конфигурация** → **Выгрузить конфигурацию в файлы**
2. Укажите папку `E:\1C_Export\Files`
3. Дождитесь завершения выгрузки

### Альтернатива: EDT

Если вы используете 1C:EDT, укажите путь к рабочей директории проекта вместо выгрузки.

## Структура после выгрузки

```
E:\1C_Export\
├── Report\
│   └── Report.txt          # Отчет по метаданным
└── Files\
    ├── Catalogs\           # Справочники
    ├── Documents\          # Документы
    ├── CommonModules\      # Общие модули
    ├── DataProcessors\     # Обработки
    ├── Reports\            # Отчёты
    └── ...
```

## Оптимизация: выборочная индексация

{% hint style="info" %}
**Не обязательно индексировать всё!** Если вам не нужен поиск по определённым объектам конфигурации, просто удалите соответствующие папки из выгрузки перед запуском индексации.
{% endhint %}

### Пример: индексация только общих модулей и обработок

```powershell
# После выгрузки удалите ненужные папки
Remove-Item -Recurse -Force "E:\1C_Export\Files\Catalogs"
Remove-Item -Recurse -Force "E:\1C_Export\Files\Documents"
Remove-Item -Recurse -Force "E:\1C_Export\Files\InformationRegisters"
# ... оставьте только нужные папки
```

### Преимущества выборочной индексации

* **Ускорение индексации** — меньше файлов = быстрее
* **Экономия дискового пространства** — меньший размер векторной БД
* **Более точный поиск** — меньше шума в результатах

### Что обычно можно исключить

* `ExternalDataSources` — внешние источники данных
* `WebServices` — веб-сервисы (если не используете)
* `HTTPServices` — HTTP-сервисы (если не используете)
* Папки с формами, если вам нужен только поиск по коду

## Проверка выгрузки

### Проверка отчета

```powershell
# Должен существовать текстовый файл
Get-ChildItem "E:\1C_Export\Report" -Filter "*.txt"
```

### Проверка файлов

```powershell
# Должны быть папки с модулями
Get-ChildItem "E:\1C_Export\Files" -Directory
```

## Обновление данных

При изменении конфигурации:

1. Повторите выгрузку из Конфигуратора
2. Перезапустите контейнер с `RESET_DATABASE=true`

```powershell
docker rm -f 1c_code_metadata_mcp

docker run -d -p 8000:8000 `
  --name 1c_code_metadata_mcp `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -e RESET_DATABASE=true `
  -e METADATA_PATH="/app/metadata" `
  -e CODE_PATH="/app/code" `
  -v "E:/1C_Export/Report:/app/metadata" `
  -v "E:/1C_Export/Files:/app/code" `
  -v "E:/bases/mcp_codemetadata:/app/chroma_db" `
  comol/1c_code_metadata_mcp:latest
```

## Частые проблемы

### Файлы в неправильной кодировке

Убедитесь, что выгрузка выполнена в UTF-8.

### Пустой отчет

Проверьте настройки отчета — должны быть включены все разделы.

### Ошибка "path not found"

Проверьте пути в команде Docker — используйте прямые слеши.
