Files
index/README.md
T
mihailkudravcev 7f9d198f79 first commit
2026-07-15 17:02:06 +03:00

69 lines
3.5 KiB
Markdown

# Индекс метаданных конфигураций 1С
Скрипты в `tools/index/` строят кэш для быстрого поиска имён, синонимов, полей и ссылок по XML-выгрузкам EDT — без полного обхода тысяч `.xml` в Cursor.
## Быстрый старт
```bash
source .venv-nt-041/bin/activate # опционально (используется stdlib)
python tools/index/index_1c.py reindex
python tools/index/index_1c.py search "ЗаказКлиента"
python tools/index/index_1c.py refs Catalog.Партнеры --config crm3-26
python tools/index/index_1c.py show Document.ЗаказКлиента --config crm3-26
python tools/index/index_1c.py status
```
## Что индексируется
Для каждого объекта метаданных верхнего уровня (`src/<Тип>/*.xml`):
- имя, синоним, комментарий, подсказка;
- реквизиты / измерения / ресурсы / колонки ТЧ / значения перечислений;
- типы полей и ссылки (`cfg:CatalogRef.*`, `cfg:DocumentRef.*`, …);
- владельцы, движения регистров, «ввод на основании» (если есть в Properties).
По умолчанию пропускаются шумные типы: `CommonPicture`, `StyleItem`, `XDTOPackage`, `CommonTemplate`, `Language`, `Bot`.
## Выборочная переиндексация
```bash
# только целевая конфигурация
python tools/index/index_1c.py reindex --config crm3-26
# только документы и справочники
python tools/index/index_1c.py reindex -c crm3-26 -t Documents,Catalogs
# регистры (русские/короткие алиасы)
python tools/index/index_1c.py reindex -c crm3-26 -t рс,рн
# расширения
python tools/index/index_1c.py reindex -c crm3-26.rhana -c ws-rhana
# параллельный разбор XML
python tools/index/index_1c.py reindex -c crm3-26 -j 8
```
## Куда пишется кэш
`cache/1c_meta/``.gitignore`):
| Путь | Назначение |
|------|------------|
| `INDEX.md` | сводка по конфигурациям |
| `<config>/objects.jsonl` | объекты (машиночитаемо) |
| `<config>/fields.jsonl` | плоский список полей |
| `<config>/refs.jsonl` | связи по ссылочным типам |
| `<config>/search.sqlite` | FTS5 полнотекстовый поиск |
| `<config>/objects.md` | человекочитаемый перечень |
| `<config>/refs.md` | обратный индекс ссылок |
| `<config>/by_type/*.md` | краткие списки для `@` в Cursor |
| `<config>/manifest.json` | статистика прогона |
Конфигурации по умолчанию: `crm3-26`, `crm3-26.rhana`, `crm3-dev`, `crm3-dev.rhana`, `crm3-dev.docs`, `ws-rhana`, `bu-corp`, `bu-corp.rhana`, `diadoc.ext.rhana` (если есть `src/`).
## Использование в Cursor
1. Переиндексировать после обновления выгрузки из EDT/конфигуратора.
2. Для уточнения метаданных — `@cache/1c_meta/<config>/by_type/Document.md` или CLI `search` / `show` / `refs`.
3. Не Grep'ить сырой XML по всей конфигурации, пока нет основания, что индекса недостаточно.