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): роундтрип TabularSection.Use + пустой FillValue v8:TypeDescription (v1.62/v0.53)
Два пре-существующих хвоста, вскрытых регистрочувствительным харнесом на 8.3.24.
A. Свойство Use табличной части (ForItem/ForFolder/ForFolderAndItem — иерархические
Catalog/ПВХ). Компилятор хардкодил ForItem, декомпилятор не захватывал. Фикс:
параметр tsUse в Emit-TabularSection (дефолт ForItem) + захват <Use> ТЧ + DSL-ключ
`use` объектной формы ТЧ (omit при ForItem). Оба порта.
B. Пустой типизированный FillValue стандартного реквизита ValueType ПВХ:
<xr:FillValue xsi:type="v8:TypeDescription"/> декомпилятор ловил как пустую строку →
компилятор писал xs:string. Фикс — маркер fillValue:{typeDescription:true} по образцу
emptyRef (SA-ридер захват + Emit-StandardAttribute эмиссия; только SA-уровень, на
реквизитах не встречается). Оба порта.
Валидация: корпус 8.3.24 (1765) roundtrip 1765/1765 byte-exact TOTAL 0 (было 6 diff).
Декомпилятор ps1==py. Регресс 511/511 ps+py (правки аддитивные, снэпшоты не поехали).
spec §5 (use) + §4.2 (typeDescription).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -308,9 +308,9 @@ JSON-**строка** → `xsi:type="xs:string"` (напр. год `"2000"`, к
|
||||
}
|
||||
```
|
||||
|
||||
Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `attributes` (колонки; синоним `columns`), `lineNumber` (кастомизация стандартного реквизита НомерСтроки, см. ниже).
|
||||
Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `fillChecking` (`DontCheck`|`ShowError`|`ShowWarning`), `use` (`ForItem`|`ForFolder`|`ForFolderAndItem`, только Catalog/ПВХ; omit при дефолте `ForItem`), `attributes` (колонки; синоним `columns`), `lineNumber` (кастомизация стандартного реквизита НомерСтроки, см. ниже).
|
||||
|
||||
Для Catalog добавляется `<Use>ForItem</Use>` в Properties табличной части. Для Document Use не применяется.
|
||||
Для Catalog/ChartOfCharacteristicTypes в Properties ТЧ пишется `<Use>` (дефолт `ForItem`; ключ `use` объектной формы → `ForFolder`/`ForFolderAndItem`). Document `<Use>` не имеет.
|
||||
|
||||
### 5.1 `lineNumber` — кастомизация стандартного реквизита НомерСтроки
|
||||
|
||||
@@ -426,6 +426,10 @@ LineNumber дефолтные. Ключ `lineNumber` на объектной ф
|
||||
> «Пустая ссылка» как значение заполнения (`<FillValue xsi:type="xr:DesignTimeRef"/>` без содержимого) — маркер
|
||||
> `fillValue: {emptyRef: true}` (декомпилятор проставляет его сам; тип из строки не выводится, т.к. `DefinedType.X`
|
||||
> непрозрачен). Применимо к реквизиту и стандартному реквизиту (в т.ч. `lineNumber` ТЧ поддерживает `fillValue`).
|
||||
>
|
||||
> Пустое типизированное значение (`<FillValue xsi:type="v8:TypeDescription"/>` без содержимого) — маркер
|
||||
> `fillValue: {typeDescription: true}` (стандартный реквизит `ValueType` ПВХ: его пустое значение — пустое
|
||||
> описание типов, а не пустая строка). Декомпилятор проставляет сам.
|
||||
|
||||
**Профиль материализованного блока** (значения, которые платформа заполняет автоматически — задавать их в DSL не нужно):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user