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): кастомизация LineNumber табличной части (v1.32/v0.22)
У каждой ТЧ ровно один стандартный реквизит — НомерСтроки (LineNumber), и его свойства (синоним/подсказка/полнотекстовый поиск/…) тоже переопределяемы. Раньше компилятор эмитил only-default блок, декомпилятор кастомизацию не ловил. DSL `lineNumber` на объектной форме ТЧ (omit-on-default по каждому свойству): synonym/comment/fullTextSearch/tooltip/format/editFormat/choiceHistoryOnInput. Emit-StandardAttribute расширен (Format/EditFormat через Emit-MLText, ChoiceHistoryOnInput из ov — были захардкожены); Emit-TabularStandardAttributes принимает spec и строит ov. Декомпилятор захватывает из xr:StandardAttribute[@name='LineNumber'] → ключ lineNumber. Покрыта КАСТОМИЗАЦИЯ (в корпусе 2/1728, только synonym — но задокументирован полный набор из 7 свойств). 44/1728 ТЧ блок вовсе ОПУСКАЮТ — правило опущения не выводится (FillChecking/Use не различают опускающие/имеющие), компилятор эмитит блок всегда → not-covered хвост (решение совместное). Аддитивно: all-default блок (1684/1728) эмитится идентично, регрессий нет (TOTAL 78 без изменений). Регресс 47/47 ps1+py, ps1↔py identical. spec §5.1, кейс catalog-ts-linenumber. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+30
-1
@@ -296,10 +296,39 @@ JSON-**строка** → `xsi:type="xs:string"` (напр. год `"2000"`, к
|
||||
}
|
||||
```
|
||||
|
||||
Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `attributes` (колонки; синоним `columns`).
|
||||
Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `attributes` (колонки; синоним `columns`), `lineNumber` (кастомизация стандартного реквизита НомерСтроки, см. ниже).
|
||||
|
||||
Для Catalog добавляется `<Use>ForItem</Use>` в Properties табличной части. Для Document Use не применяется.
|
||||
|
||||
### 5.1 `lineNumber` — кастомизация стандартного реквизита НомерСтроки
|
||||
|
||||
У каждой ТЧ ровно один стандартный реквизит — **LineNumber** (НомерСтроки). Платформа материализует блок
|
||||
`<StandardAttributes>` с ним практически всегда (компилятор эмитит его безусловно), но по умолчанию все свойства
|
||||
LineNumber дефолтные. Ключ `lineNumber` на объектной форме ТЧ переопределяет их (omit-on-default по каждому свойству):
|
||||
|
||||
| Ключ | XML | Умолчание | Тип |
|
||||
|------|-----|-----------|-----|
|
||||
| `synonym` | Synonym | пусто | ML (строка/`{ru,en}`) |
|
||||
| `comment` | Comment | пусто | строка |
|
||||
| `fullTextSearch` | FullTextSearch | Use | Use/DontUse |
|
||||
| `tooltip` | ToolTip | пусто | ML |
|
||||
| `format` | Format | пусто | ML (форматная строка) |
|
||||
| `editFormat` | EditFormat | пусто | ML |
|
||||
| `choiceHistoryOnInput` | ChoiceHistoryOnInput | Auto | Auto/DontUse |
|
||||
|
||||
```json
|
||||
"tabularSections": {
|
||||
"Строки": {
|
||||
"lineNumber": { "synonym": "Номер п/п", "fullTextSearch": "DontUse" },
|
||||
"attributes": ["Товар: CatalogRef.Номенклатура"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Прочие свойства LineNumber (FillChecking, CreateOnInput и т.п.) платформа не даёт переопределять — они всегда дефолтные.
|
||||
Декомпилятор эмитит `lineNumber` только при отклонении ≥1 свойства от дефолта. NB: редкий хвост ТЧ (~2.5% корпуса)
|
||||
блок `<StandardAttributes>` вовсе опускает — правило не выведено; компилятор такие не воспроизводит (эмитит блок всегда).
|
||||
|
||||
---
|
||||
|
||||
## 6. Значения перечислений
|
||||
|
||||
Reference in New Issue
Block a user