mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-28 05:59:41 +03:00
feat(form-validate,cfe-borrow): проверка висячих привязок + идемпотентность re-borrow + добор по Field
Три доработки по форме, полезные модели, использующей навыки. form-validate v1.7→v1.8 (5a): Check 5 генерализован с одного <DataPath> на все 8 тегов-привязок (DataPath/TitleDataPath/FooterDataPath/HeaderDataPath/ MultipleValue*DataPath/RowPicture*). Висячая привязка (корень не в <Attributes>) теперь ловится при validate, а не всплывает на дорогом db-load. Skip-правила (companion-элементы, базовые элементы id<1000000 в BaseForm, opaque-формы) сохранены без изменений. Заодно фикс бага Check 12 в py-порте (type_invalid → type_error_count, краш на невалидном cfg:-типе в config-контексте). cfe-borrow v1.4→v1.5: - #4: borrow_form переиспользует uuid обёртки Forms/<Name>.xml, если файл уже существует, вместо генерации нового → повторное заимствование формы байт-идемпотентно (агент может ретраить без дрейфа identity). - #1: collect для -BorrowMainAttribute дополнен сканом <Field>Объект.X</Field> (поля фильтров/условного оформления/динсписков) — набор заимствованных реквизитов теперь совпадает с Конфигуратором (добавился УдалитьЮрФизЛицо). Тесты: form-validate/dangling-binding (фикстура broken-dangling-binding, expectError+stdoutContains); cfe-borrow/form-bindings + idempotent:true. Регресс 6/6 cfe-borrow + 11/11 form-validate на обоих рантаймах, E2E-load OK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4767800fce
commit
36c2fd9233
@@ -37,5 +37,6 @@
|
||||
}
|
||||
],
|
||||
"params": { "extensionPath": "ext", "object": "Catalog.Товары.Form.ФормаЭлемента" },
|
||||
"args_extra": ["-BorrowMainAttribute", "Form"]
|
||||
"args_extra": ["-BorrowMainAttribute", "Form"],
|
||||
"idempotent": true
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "Ошибка: висячая привязка данных (MultipleValueDataPath без реквизита)",
|
||||
"setup": "fixture:broken-dangling-binding",
|
||||
"params": { "formPath": "DataProcessors/Тест/Forms/Форма" },
|
||||
"expectError": true,
|
||||
"expect": { "stdoutContains": "MultipleValueDataPath" }
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
|
||||
<Autofill>true</Autofill>
|
||||
</AutoCommandBar>
|
||||
<ChildItems>
|
||||
<InputField name="ПолеМеток" id="2">
|
||||
<DataPath>Метки</DataPath>
|
||||
<MultipleValueDataPath>Метки.Значение</MultipleValueDataPath>
|
||||
<MultipleValuePresentDataPath>Метки.Представление</MultipleValuePresentDataPath>
|
||||
<ContextMenu name="ПолеМетокКонтекстноеМеню" id="3"/>
|
||||
<ExtendedTooltip name="ПолеМетокРасширеннаяПодсказка" id="4"/>
|
||||
</InputField>
|
||||
</ChildItems>
|
||||
<Attributes>
|
||||
<Attribute name="Объект" id="1">
|
||||
<Type>
|
||||
<v8:Type>cfg:DataProcessorObject.Тест</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
<SavedData>true</SavedData>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Form>
|
||||
Reference in New Issue
Block a user