Files
cc-1c-skills/tests/skills/cases/cfe-validate/list-form-dangling-path.json
T
Nick ShirokovandClaude Opus 5 8366dd49de fix(cfe-validate): корень путей из основного реквизита формы
Проверки 12 (<AdditionalColumns table="...">) и 14 (пути против конфигурации-
источника) искали пути регуляркой, зашитой на корень «Объект». Он такой только
у формы объекта: у формы списка «Список», у формы записи регистра «Запись».
На таких формах регулярка не совпадала, и обе проверки молча не срабатывали —
валидатор рапортовал «чисто» на форме с висячим путём.

Корень теперь берётся из основного реквизита: сначала из <Attributes> самой
формы, затем из <BaseForm>. Нет его нигде — путей с корнем не бывает, проверка
пропускается. Имя подставляется и в регулярки, и в тексты сообщений: раньше в
сообщении стояло «Объект.X» независимо от формы, что дезинформировало.

Вместе с этим набор имён-кандидатов проверки 14 расширен с Attribute/
TabularSection до Dimension/Resource. Без этого замена корня превратила бы
тихий пропуск в ложные ошибки на форме записи регистра, где дочерние объекты —
измерения и ресурсы; отдельный кейс это фиксирует.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 15:42:41 +03:00

33 lines
2.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "С -ConfigPath ловится висячий путь формы списка (Список.НетТакогоРеквизита)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "Document", "name": "Расход", "attributes": [ "Склад: String(50)" ] },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/Documents/Расход.xml", "-FormName": "ФормаСписка" }
},
{
"writeFile": {
"path": "Documents/Расход/Forms/ФормаСписка/Ext/Form.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Form xmlns=\"http://v8.1c.ru/8.3/xcf/logform\" xmlns:cfg=\"http://v8.1c.ru/8.1/data/enterprise/current-config\" xmlns:v8=\"http://v8.1c.ru/8.1/data/core\" xmlns:xr=\"http://v8.1c.ru/8.3/xcf/readable\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"2.17\">\n\t<AutoTitle>false</AutoTitle>\n\t<AutoCommandBar name=\"ФормаКоманднаяПанель\" id=\"-1\"/>\n\t<ChildItems>\n\t\t<Table name=\"Список\" id=\"1\">\n\t\t\t<DataPath>Список</DataPath>\n\t\t\t<ChildItems>\n\t\t\t\t<InputField name=\"СписокСклад\" id=\"2\">\n\t\t\t\t\t<DataPath>Список.Склад</DataPath>\n\t\t\t\t\t<ExtendedTooltip name=\"СписокСкладРасширеннаяПодсказка\" id=\"3\"/>\n\t\t\t\t</InputField>\n\t\t\t\t<InputField name=\"СписокНетТакого\" id=\"4\">\n\t\t\t\t\t<DataPath>Список.НетТакогоРеквизита</DataPath>\n\t\t\t\t\t<ExtendedTooltip name=\"СписокНетТакогоРасширеннаяПодсказка\" id=\"5\"/>\n\t\t\t\t</InputField>\n\t\t\t</ChildItems>\n\t\t\t<ExtendedTooltip name=\"СписокРасширеннаяПодсказка\" id=\"6\"/>\n\t\t</Table>\n\t</ChildItems>\n\t<Attributes>\n\t\t<Attribute name=\"Список\" id=\"1\">\n\t\t\t<Type>\n\t\t\t\t<v8:Type>cfg:DynamicList</v8:Type>\n\t\t\t</Type>\n\t\t\t<MainAttribute>true</MainAttribute>\n\t\t\t<Settings xsi:type=\"DynamicList\">\n\t\t\t\t<ManualQuery>false</ManualQuery>\n\t\t\t\t<MainTable>Document.Расход</MainTable>\n\t\t\t</Settings>\n\t\t</Attribute>\n\t</Attributes>\n</Form>"
}
},
{
"script": "cfe-init/scripts/cfe-init",
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
},
{
"script": "cfe-borrow/scripts/cfe-borrow",
"args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "Document.Расход.Form.ФормаСписка", "-BorrowMainAttribute": "Form" }
}
],
"params": { "extensionPath": "ext" },
"args_extra": ["-ConfigPath", "{workDir}"],
"expectError": true,
"expect": { "stdoutContains": "Список.НетТакогоРеквизита" }
}