feat(meta-compile,meta-decompile): поддержка BusinessProcess + Task (v1.48/v0.40)

Одиннадцатый и двенадцатый типы — ссылочные (БП/Задачи, 25+3 объекта). Оба закрыты modulo
принятый empty-DTR хвост: BusinessProcess 20/25 (остаток empty-DTR), Task 1/3 (остаток empty-DTR
на 2 объектах). Регресс 49/49 ps1+py, ps1==py identical (0/20 modulo GUID). 1С-cert ✓ оба.

BusinessProcess:
- Рерайт Emit-BusinessProcessProperties на общие хелперы в каноническом порядке (был легаси-хардкод:
  Comment/Characteristics/BasedOn/формы/DataLockFields пустые, порядок неверный, пропущены
  NumberPeriodicity/CreateTaskInPrivilegedMode). Class-2: DataLockControlMode Automatic→Managed.
- Декомпилятор: снят гейт; BP-блок (нумерация/task/createTaskInPrivilegedMode); basedOn/dataLockFields/
  characteristics/inputByString уже в общем слое; opt-out standardAttributes:"".
- Фикс ref-типа BusinessProcessRoutePointRef (не был в regex d5p1-префикса → терялся cfg:-префикс).

Task:
- Рерайт Emit-TaskProperties на общие хелперы (порядок + Addressing/MainAddressingAttribute/CurrentPerformer/
  TaskNumberAutoPrefix/DescriptionLength/DefaultPresentation). Class-2: DataLockControlMode→Managed.
- Новый вид дочернего AddressingAttribute: легаси-эмиттер выдавал 8 тегов вместо ~26 → делегирован на богатый
  Emit-Attribute (контекст task-addressing) + AddressingDimension. Декомпилятор: захват AddressingAttribute → addressingAttributes.

spec §7.6c/§7.6d, кейсы business-process/task.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-07 12:13:08 +03:00
parent 239499a3f8
commit 101ca6e371
6 changed files with 285 additions and 263 deletions
+16
View File
@@ -885,6 +885,22 @@ ExtDimension1..N связаны с Account через `linkByType` (в блок
Измерения РР несут `denyIncompleteValues`, `baseDimension` (bool), `scheduleLink` (ссылка на измерение графика);
реквизиты — `scheduleLink`; ресурсы — только `<FullTextSearch>` (без Indexing).
### 7.6c BusinessProcess (Бизнес-процесс)
Ссылочный тип с нумерацией (Document-стиль). Поля: `numberType`/`numberLength`/`numberAllowedLength`/`checkUnique`/
`autonumbering`/`numberPeriodicity` (нумерация); `task` (ссылка `Task.X`); `createTaskInPrivilegedMode` (bool, дефолт
true); `characteristics` (§7.1.4); `basedOn`/`inputByString`/`dataLockFields` (§7.1.5); `editType`/`createOnInput`/формы/
презентации; `dataLockControlMode` (дефолт **Managed**); DataHistory-триплет; `attributes`/`tabularSections`/`commands`.
Тип точки маршрута — `BusinessProcessRoutePointRef.X` (ссылка на маршрут самого БП).
### 7.6d Task (Задача)
Ссылочный тип адресных задач. Поля: нумерация (как БП) + `taskNumberAutoPrefix`/`descriptionLength`; `addressing`
(ссылка на регистр сведений исполнителей); `mainAddressingAttribute`/`currentPerformer` (ссылки); `defaultPresentation`;
`basedOn`/`characteristics`/`inputByString`/`dataLockFields`; формы/презентации; `dataLockControlMode` (дефолт **Managed**).
Дети: `attributes`, `commands` и **`addressingAttributes`** — реквизиты адресации (полный object-слой реквизита +
`addressingDimension`: ссылка на измерение регистра исполнителей).
### 7.7 DefinedType
| Поле JSON | Умолчание | XML элемент |