Skip to content

v1.14.0

Choose a tag to compare

@github-actions github-actions released this 30 May 17:07
· 14 commits to master since this release

Добавлено

  • Обратный поиск использований объекта метаданных В КОДЕ — новый хелпер find_code_usages(object_ref, kind=None, limit=1000) и индексная таблица metadata_code_usages (схема builder v13). Дополняет find_references_to_object (который покрывает только декларативные ссылки из метаданных-XML): теперь «найди все места использования документа X, обращения к его реквизитам/ТЧ» закрывается одним дешёвым indexed-запросом. Лёгкий источник-aware regex-слой ловит три вида обращений:

    • manager — обращение к менеджеру коллекции Документы.X / Documents.X (ищется в коде, строки и комментарии сняты);
    • ref_type — тип в строковом литерале "ДокументСсылка.X" (RU) / "DocumentRef.X" (EN);
    • query — путь метаданных в тексте запроса Документ.X и Документ.X.Товары (3-я группа = имя ТЧ → поле member).

    Не ловит (осознанно, документировано): доступ к реквизитам/ТЧ через локальные переменные (Док = Документы.X; Док.Товары… — требует инференса типов) и код расширений (вне индекса основной конфигурации).

  • find_references_to_object(..., include_code=True) — метаданные-XML ссылки и обращения в коде одним вызовом; in-code результат раскладывается в отдельные top-level ключи code_usages/code_total/code_by_kind/code_truncated/code_partial/code_meta (секция метаданных не меняется).

  • get_index_info: has_metadata_code_usages (capability, builder >= 13) + metadata_code_usages_count. CLI index build/update печатает строку CodeUsages.

  • Маршрутная карта/рецепты: домен "ссылки" дополнен find_code_usages/include_code, новые алиасы («где используется в коде», «обращения к объекту», «code usages», «ТЧ в запросах»), пара разрешения неоднозначности find_references_to_object (метаданные-XML) vs find_code_usages (код).

Исправлено

  • Рассинхрон сигнатуры find_callers_context в стратегии/реестре: фактический параметр — module_hint, а в нескольких текстовых местах значился hint. Приведено к module_hint (реестр хелперов, bsl_knowledge.py, bsl_strategy_data.py, тест-фикстура).
  • Нормализация префикса объекта (_normalize_object_ref) теперь регистронезависима к RU-префиксу: ДОКУМЕНТ.X / документ.X нормализуются так же, как Документ.X (через casefold). Раньше нестандартный регистр русского префикса давал ложный «не найдено» (total=0) в find_code_usages и find_references_to_object. Регистр имени объекта и EN-префиксы и так работали.

Тесты

  • Контракт-tripwire’ы: get_object_full_structure (ключи {name, synonym, type} для реквизитов/измерений/ресурсов и {name, synonym, columns} для ТЧ), search (бросает ValueError со списком scope) — фиксируют корректное поведение (мисъюз в e2e — не баги).
  • Builder/Reader/Helper/инкремент для metadata_code_usages (manager/ref_type/query + member ТЧ, источник-aware, регистронезависимость по кириллице, JOIN-shape, empty-table=valid), паритет маппинга _RU_META_FORMS, EDT-паритет на EDT-раскладке.

Обратная совместимость

  • Таблица metadata_code_usages код-производная — её нельзя дозаполнить инкрементом, поэтому первый update/rlm_start на индексе старее v13 делает разовый полный rebuild (как при добавлении regions/module_headers в v8). После этого версия схемы = 13 → git-fast-path и инкремент снова активны.

Полный список изменений: CHANGELOG.md