Files
cc-1c-skills/.claude/skills/meta-compile/reference/catalog.md
T
Nick ShirokovandClaude Opus 5 66d45d3654 fix(meta-compile): нормализация MDObjectRef — CatalogRef./русская запись → Catalog.
MDObjectRef ссылается на ОБЪЕКТ метаданных (Catalog.Валюты), а не на тип ссылки.
Эмиттеры пропускали значение как есть, если в нём была точка, поэтому
"CatalogRef.Валюты" доходил до XML без изменений → при загрузке конфигурации
платформа отвечала «Неизвестный объект метаданных».

Инструкция вела в баг сама: reference/catalog.md документировал
owners: ["CatalogRef.Контрагенты"]. Тестами не ловилось — все кейсы
использовали каноническую форму.

- Normalize-MDObjectRef расширена ссылочными формами (англ. *Ref + рус. *Ссылка);
  вида метаданных, оканчивающегося на Ref, не существует → схлопывание однозначно.
  В ТИПАХ реквизитов запись CatalogRef.X верна — там мапа не применяется.
- Добавлен параметр defaultRoot (голое имя без точки), инлайн-подстановка
  "Catalog.$ownerRef" в owners убрана — логика теперь в одном месте.
- Нормализация применена в 4 местах, где её не было: owners, basedOn,
  registerRecords, baseCalculationTypes.
- Кейс catalog-inputbystring-datalock переведён на неканонический вход:
  снэпшот не изменился ни на байт — прямое доказательство нормализации.

Регресс 73/73 ps1+py, полная сюита 566/566. Живая проверка на 8.3.27:
подчинённый справочник с owners CatalogRef./СправочникСсылка. грузится чисто.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 14:26:55 +03:00

4.2 KiB

Catalog (Справочник)

{ "type": "Catalog", "name": "Организации", "descriptionLength": 100,
  "attributes": ["ИНН: String(12)", "КПП: String(9)"] }

Свойства

Ключ Умолчание Значения
comment пусто строка
hierarchical false bool
hierarchyType HierarchyFoldersAndItems HierarchyFoldersAndItems / HierarchyOfItems
limitLevelCount false bool (ограничивать кол-во уровней)
levelCount 2 число уровней (при limitLevelCount)
foldersOnTop true bool (группы сверху)
owners [] массив владельцев: ["Catalog.Контрагенты"]
subordinationUse ToItems ToItems / ToFolders / ToFoldersAndItems (кому подчинён)
codeLength 9 длина кода (0 — без кода)
codeType String String / Number
codeAllowedLength Variable Variable / Fixed
codeSeries WholeCatalog WholeCatalog / WithinSubordination / WithinOwnerSubordination
autonumbering true bool (автонумерация)
checkUnique false bool (контроль уникальности кода)
descriptionLength 25 длина наименования
defaultPresentation AsDescription AsDescription / AsCode
quickChoice true bool (быстрый выбор)
choiceMode BothWays BothWays / QuickChoice / FromForm
editType InDialog InDialog / InList / BothWays
createOnInput Use Auto / Use / DontUse
choiceHistoryOnInput Auto Auto / DontUse
fullTextSearch Use Use / DontUse
fullTextSearchOnInputByString DontUse Use / DontUse
searchStringModeOnInputByString Begin Begin / AnyPart
predefinedDataUpdate Auto Auto / DontAutoUpdate / AutoUpdate
dataLockControlMode Managed Automatic / Managed
useStandardCommands true bool
includeHelpInContents false bool
attributes [] реквизиты (shorthand / объектная форма)
tabularSections {} табличные части

Формы. Ссылка на форму — Тип.Объект.Form.ИмяФормы (напр. Catalog.Организации.Form.ФормаЭлемента). Слоты основных форм: defaultObjectForm, defaultFolderForm, defaultListForm, defaultChoiceForm, defaultFolderChoiceForm; вспомогательных — те же имена с префиксом auxiliary (auxiliaryObjectForm, …).

predefined — предопределённые элементы

Массив предопределённых элементов → Ext/Predefined.xml. Элемент — строка (плоский случай) или объект (иерархия).

Строка: "(Код) Имя [Наименование]"Имя обязательно; (Код) и [Наименование] опциональны. Без [...] наименование выводится из имени; [] — пустое; [текст] — заданное.

"predefined": [
  "Основной",
  "(1) ДокументОПриемке [Документ о приемке]",
  { "name": "Группа1", "isFolder": true, "description": "Прочие",
    "childItems": ["Факс", "(7) Скайп"] }
]

Объект: name (обязательно), code, description (наименование), isFolder (признак группы), childItems (вложенные, рекурсивно). Тип кода — по свойству codeType.

Дополнительно

  • Свойства реквизитов и табличных частей — attributes.md.
  • Представления (objectPresentation, listPresentation, …), команды объекта, характеристики («ДопРеквизиты и сведения»), кастомизация стандартных реквизитов, inputByString / dataLockFields / basedOnblocks.md.