Release 0.3.0: movements — регистратор ↔ регистры движений

Таблица register_records, мягкая миграция схемы 2→3 и команда query_1c.py movements в обе стороны.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
7 changed files with 463 additions and 10 deletions
+20 -2
View File
@@ -1,6 +1,6 @@
# Индекс метаданных и модулей конфигураций 1С
**Версия:** см. [`VERSION`](VERSION) (текущая: **0.2.0**) · [CHANGELOG](CHANGELOG.md)
**Версия:** см. [`VERSION`](VERSION) (текущая: **0.3.0**) · [CHANGELOG](CHANGELOG.md)
Единый кэш проекта: **`cache/1c_meta/index.sqlite`** — все выгрузки 1С в одной БД (SQLite FTS5).
@@ -28,6 +28,7 @@ python tools/index/query_1c.py --version
| Найти объект по имени/синониму | `query_1c.py search` / `object` |
| Структура реквизитов, обязательность, типы | `query_1c.py object` |
| Кто ссылается на справочник/документ | `query_1c.py refs` |
| Документ ↔ регистры движений | `query_1c.py movements` |
| Найти процедуру/фрагмент в BSL | `query_1c.py modules` |
| Сравнить целевую и исходную конфигурацию | `-b target` / `-b source` |
@@ -84,8 +85,9 @@ python tools/index/query_1c.py --version
### Что индексируется
- **Метаданные** `src/<Тип>/*.xml`: имя, синоним, комментарий, реквизиты / измерения / ресурсы / ТЧ, типы (в т.ч. `TypeSet`), ссылки, `FillChecking`.
- **Метаданные** `src/<Тип>/*.xml`: имя, синоним, комментарий, реквизиты / измерения / ресурсы / ТЧ, типы (в т.ч. `TypeSet`), ссылки, `FillChecking`, `RegisterRecords` (документ → регистры движений).
- **Модули** `**/*.bsl`: путь, owner (`Document.X`), вид модуля, имена процедур/функций, тело (до 200 КБ в FTS).
- **Связи движений** — таблица `register_records` (обратный индекс регистраторов).
По умолчанию пропускаются: `CommonPicture`, `StyleItem`, `XDTOPackage`, `CommonTemplate`, `Language`, `Bot`.
@@ -119,6 +121,7 @@ python tools/index/index_1c.py list
| `object` | имя/синоним объекта **или** реквизита | дерево структуры | `-b`, `--type`, `--clear`, `--limit` |
| `show` | имя объекта | полная карточка JSON | `-b` |
| `refs` | `Catalog.Партнеры` / `ЗаказКлиента` | обратные ссылки полей | `-b`, `--limit` (на каждую baseconf) |
| `movements` | документ или регистр | регистратор ↔ регистры движений | `-b`, `--type`, `--limit` |
| `modules` | строка | поиск по BSL | `-b`, `-n` / `--names-only`, `--limit` |
| `module` | путь или owner | символы модуля, строки | `-b` |
@@ -159,6 +162,21 @@ python tools/index/query_1c.py refs Document.ЗаказКлиента -b source
Без `-b` — все конфигурации в индексе; `--limit` действует **на каждую**.
Составной тип поля: `→ DocumentRef.ЗаказКлиента (среди прочего: DocumentRef.…)`.
### `movements` — регистратор ↔ регистры движений
```bash
# документ → регистры, в которых он регистратор
python tools/index/query_1c.py movements ЗаказКлиента -b target
python tools/index/query_1c.py movements Document.РеализацияТоваровУслуг -b target
# регистр → документы-регистраторы
python tools/index/query_1c.py movements AccumulationRegister.ТоварыНаСкладах -b target
python tools/index/query_1c.py movements ТоварыНаСкладах -b target --type AccumulationRegister
```
Данные из свойства метаданных `RegisterRecords` (таблица `register_records` в индексе).
При первом запуске утилиты v0.3+ схема индекса мигрирует 2→3 автоматически (без полного `reindex`).
### `modules` / `module`
```bash