mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 06:45:17 +03:00
feat(meta-compile,meta-decompile): поддержка типа ChartOfCharacteristicTypes (ПВХ) (v1.35/v0.24)
Третий тип после Catalog/ExchangePlan. Декомпилятор расширен на ПВХ. Компилятор
Emit-ChartOfCharacteristicTypesProperties переписан на общие хелперы в каноническом
порядке; новое — блок Type (тип значения характеристики, составной) и
CharacteristicExtValues; иерархия папки+элементы. StandardAttributes-профиль ПВХ
(Наименование=ShowError, Родитель=FFV=true), блок условный.
Крупная новая фича — предопределённые виды несут ТИП НА ЭЛЕМЕНТ: ключ `type` в
объектной форме predefined (строка/массив; '' → пустой <Type/>). Root-элемент
PlanOfCharacteristicKindPredefinedItems.
Общие фиксы (не только ПВХ):
• Get-TypeShorthand ищет квалификаторы String/Number/Date по всему typeNode —
составной тип значения группирует квалификаторы в конце, не сразу за типом.
• Expand-DataPath гард [:/]: спец-путь 0:GUID/0:GUID (зависимости ПВХ) не разворачивается.
• Контекст реквизита ПВХ = catalog (у него полные Use/FillFromFillingValue/DataHistory).
• TabularSection Use, GeneratedType Characteristic-префикс, CodeSeries +WholeCharacteristicKind.
Роундтрип 24 ПВХ: match 0→16, TOTAL 4929→52 (−99%). Остаток (8) — принятые хвосты
(FillValue-пробелы, TS-LineNumber-опущение). Catalog/EP не регрессировали
(108/120, 39/42). Регресс 47/47 ps1+py, ps1↔py identical (6/6 ПВХ). spec §7.2b,
кейс chart-of-characteristic-types (+valueType/predefined-with-type/standardAttributes).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -619,6 +619,32 @@ omit-on-empty. Поля пишутся частичной формой (`Standar
|
||||
ключ `standardAttributes`. Опциональный легаси-реквизит `ExchangeDate` (часть планов) поддержан как «доп.» член
|
||||
`standardAttributes` (эмитится по факту наличия ключа, вне фикс-списка).
|
||||
|
||||
### 7.2b ChartOfCharacteristicTypes (План видов характеристик)
|
||||
|
||||
Иерархический ссылочный тип (папки+элементы, без уровней/подчинения). Общий с Catalog слой: `synonym`, `comment`,
|
||||
`useStandardCommands`, `includeHelpInContents`, `hierarchical`/`foldersOnTop`, коды (`codeLength`/`codeAllowedLength`/
|
||||
`descriptionLength`/`checkUnique`/`autonumbering`), `defaultPresentation`, `standardAttributes` (§7.1.1),
|
||||
`characteristics` (§7.1.4), `inputByString` (§7.1.5), формы (вкл. `*Folder*`), `basedOn`, `dataLockFields`, презентации,
|
||||
`predefined` (§7.1.2) — предопределённые виды характеристик.
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `valueType` | *(любой примитив)* | Type (тип значения характеристики, составной — строка `"A + B"` или массив `valueTypes`) |
|
||||
| `characteristicExtValues` | пусто | CharacteristicExtValues (ссылка на справочник доп. значений) |
|
||||
| `createOnInput` | `DontUse` | CreateOnInput *(≠ Catalog `Use`)* |
|
||||
| `dataLockControlMode` | `Managed` | DataLockControlMode *(≠ Catalog `Automatic`)* |
|
||||
| `codeSeries` | `WholeCharacteristicKind` | CodeSeries *(≠ Catalog `WholeCatalog`)* |
|
||||
| `checkUnique` | `true` | CheckUnique *(≠ Catalog `false`)* |
|
||||
| `descriptionLength` | `100` | DescriptionLength *(≠ Catalog `25`)* |
|
||||
| `dataHistory` + `updateDataHistoryImmediatelyAfterWrite` + `executeAfterWriteDataHistoryVersionProcessing` | `DontUse`/`false`/`false` | DataHistory-триплет |
|
||||
|
||||
Стандартные реквизиты ПВХ: PredefinedDataName, Predefined, Ref, DeletionMark, Description, Code, Parent, ValueType
|
||||
(профиль: Наименование → FillChecking=ShowError, Родитель → FillFromFillingValue=true). Блок **условный** (`standardAttributes`).
|
||||
|
||||
**Предопределённые виды** несут **тип значения на элемент** — ключ `type` в объектной форме `predefined`-элемента
|
||||
(строка `"A + B"` или массив; `""` → пустой `<Type/>`; отсутствие ключа → без блока). Пример:
|
||||
`{"name": "Цвет", "code": "000001", "type": "CatalogRef.Цвета"}`.
|
||||
|
||||
### 7.3 Enum
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|
||||
Reference in New Issue
Block a user