mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 17:19:42 +03:00
feat(form-decompile,form-compile): поле DataSet динсписка — useRestriction/attributeUseRestriction/inputParameters (остаток кластера C)
Обычное поле набора <Field DataSetFieldField> может нести ограничения использования и
связь по параметрам выбора:
- <dcssch:useRestriction> {field?,condition?,group?,order?} (54 формы) — где поле НЕ
использовать (отбор/группировка/порядок/как поле);
- <dcssch:attributeUseRestriction> та же структура (18) — ограничения для реквизитов поля;
- <dcssch:inputParameters> (6) — связь по параметрам выбора (как у параметра дин-списка).
DSL: settings.fields[].useRestriction / attributeUseRestriction (объект {field,condition,
group,order} bool | флаг-строка "#noField #noFilter #noGroup #noOrder" | массив) +
inputParameters. Общие хелперы Get-RestrictList/Emit-RestrictBlock (ps1) и parse_restrict/
emit_restrict_block (py); inputParameters переиспользует Emit-DLInputParameters. Декомпилятор
Build-RestrictObj + Build-DLInputParameters.
Порядок детей поля (из корпус-сигнатур, подтверждён загрузкой в 1С): dataPath, field,
title, useRestriction, attributeUseRestriction, presentationExpression, valueType,
appearance, inputParameters.
Выборка 69 форм с field-props: field-property потерь 0 (match 36→39, TOTAL 396→150,
cascade LOST 111→12). Кейс dynamic-list-form (+useRestriction/attributeUseRestriction
на поле Code) сертифицирован загрузкой в 1С. Регресс 43/43, ps1==py байт-в-байт.
Кластер C (DataSet динсписка) закрыт: Field valueType + CalculatedField + field
presentationExpression/appearance + field useRestriction/attributeUseRestriction/
inputParameters. Остаток (BACKLOG): нюансы пустого value (xs:string vs nil;
LocalStringType self-closing) + отдельный InputField multiple-value кластер.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
"parameters": [ { "name": "ВыборТовара", "type": "CatalogRef.Товары", "valueListAllowed": true, "value": null } ],
|
||||
"fields": [
|
||||
{ "field": "Code", "title": "Код", "presentationExpression": "\"№\" + Code",
|
||||
"useRestriction": { "condition": true, "group": true },
|
||||
"attributeUseRestriction": { "field": true },
|
||||
"appearance": { "Формат": "ДЛ=9", "ЦветТекста": "web:Gray" } }
|
||||
],
|
||||
"grouping": "Description > Code",
|
||||
|
||||
+7
@@ -109,6 +109,13 @@
|
||||
<v8:content>Код</v8:content>
|
||||
</v8:item>
|
||||
</dcssch:title>
|
||||
<dcssch:useRestriction>
|
||||
<dcssch:condition>true</dcssch:condition>
|
||||
<dcssch:group>true</dcssch:group>
|
||||
</dcssch:useRestriction>
|
||||
<dcssch:attributeUseRestriction>
|
||||
<dcssch:field>true</dcssch:field>
|
||||
</dcssch:attributeUseRestriction>
|
||||
<dcssch:presentationExpression>"№" + Code</dcssch:presentationExpression>
|
||||
<dcssch:appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
|
||||
Reference in New Issue
Block a user