commit 7f9d198f79816c8409917f191bc973556048cf69 Author: mihailkudravcev Date: Wed Jul 15 17:02:06 2026 +0300 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..7a5bc19 --- /dev/null +++ b/README.md @@ -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` | сводка по конфигурациям | +| `/objects.jsonl` | объекты (машиночитаемо) | +| `/fields.jsonl` | плоский список полей | +| `/refs.jsonl` | связи по ссылочным типам | +| `/search.sqlite` | FTS5 полнотекстовый поиск | +| `/objects.md` | человекочитаемый перечень | +| `/refs.md` | обратный индекс ссылок | +| `/by_type/*.md` | краткие списки для `@` в Cursor | +| `/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//by_type/Document.md` или CLI `search` / `show` / `refs`. +3. Не Grep'ить сырой XML по всей конфигурации, пока нет основания, что индекса недостаточно.