first commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# Индекс метаданных конфигураций 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 по всей конфигурации, пока нет основания, что индекса недостаточно.
|
||||
Reference in New Issue
Block a user