v1.14.0
Добавлено
-
Обратный поиск использований объекта метаданных В КОДЕ — новый хелпер
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. CLIindex build/updateпечатает строкуCodeUsages. -
Маршрутная карта/рецепты: домен
"ссылки"дополненfind_code_usages/include_code, новые алиасы («где используется в коде», «обращения к объекту», «code usages», «ТЧ в запросах»), пара разрешения неоднозначностиfind_references_to_object(метаданные-XML) vsfind_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