7f9d198f79816c8409917f191bc973556048cf69
Индекс метаданных конфигураций 1С
Скрипты в tools/index/ строят кэш для быстрого поиска имён, синонимов, полей и ссылок по XML-выгрузкам EDT — без полного обхода тысяч .xml в Cursor.
Быстрый старт
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.
Выборочная переиндексация
# только целевая конфигурация
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
- Переиндексировать после обновления выгрузки из EDT/конфигуратора.
- Для уточнения метаданных —
@cache/1c_meta/<config>/by_type/Document.mdили CLIsearch/show/refs. - Не Grep'ить сырой XML по всей конфигурации, пока нет основания, что индекса недостаточно.
Languages
Python
100%