mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-30 14:05:53 +03:00
fix(skd-validate): видимый пропуск XSD, булево без схем, корень со строчной
По итогам прогона задачи «платформа пишет: нарушен порядок» субагентом в проекте без схем: навык отвечал «Validation OK», и модель докладывала бы, что схема в порядке. - Итоговая строка говорит, что XSD-проверка не выполнялась и почему: «XSD not checked: no schemas (/v8-xsd-fetch)» / «template outside a dump». - xs:boolean только true/false/1/0 — собственная проверка значений, без схем; в XSD-проходе та же ошибка второй раз не выводится. - Корень dataCompositionSchema (строчная): PS молча пропускал (-ne без регистра), py считал ошибкой. Платформа такой файл загружает, а конфигуратор пишет DataCompositionSchema — теперь предупреждение в обоих портах. Фикстура drilldown-base приведена к виду конфигуратора. - SKILL.md: когда скачивать схемы, как читать подсказки, когда нарушение — дефект навыка. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018dc2yLQfw6wppbopM1Y4Ps
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
21ebd814de
commit
292b6c97de
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>Источник</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -94,4 +94,4 @@
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:settings />
|
||||
</settingsVariant>
|
||||
</dataCompositionSchema>
|
||||
</DataCompositionSchema>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>Источник</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -118,4 +118,4 @@
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:settings />
|
||||
</settingsVariant>
|
||||
</dataCompositionSchema>
|
||||
</DataCompositionSchema>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "Булево True/False без схем — ловит собственная проверка значений",
|
||||
"setup": "fixture:xsd-bad-220",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": ".v8-project.json",
|
||||
"content": {
|
||||
"xsdPath": "нет-такого-каталога"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Reports/Отчет/Templates/Схема/Ext/Template.xml"
|
||||
},
|
||||
"expect": {
|
||||
"stdoutContains": "<value xsi:type=\"xs:boolean\">False</value> — boolean must be true or false (lowercase)"
|
||||
},
|
||||
"noSnapshot": "результат — только вывод",
|
||||
"expectError": true
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>Источник</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Основной</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Ресурс1</dataPath>
|
||||
<field>Ресурс1</field>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Ресурс2</dataPath>
|
||||
<field>Ресурс2</field>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Счет</dataPath>
|
||||
<field>Счет</field>
|
||||
</field>
|
||||
<dataSource>Источник</dataSource>
|
||||
<query>ВЫБРАТЬ 1</query>
|
||||
</dataSet>
|
||||
<template>
|
||||
<name>Макет1</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Заголовок</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
</template>
|
||||
<template>
|
||||
<name>Макет3</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="dcscor:Parameter">Счет</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="dcscor:Parameter">Рес1</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="dcscor:Parameter">Рес2</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
|
||||
<dcsat:name>Счет</dcsat:name>
|
||||
<dcsat:expression>Представление(Счет)</dcsat:expression>
|
||||
</parameter>
|
||||
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
|
||||
<dcsat:name>Рес1</dcsat:name>
|
||||
<dcsat:expression>Ресурс1</dcsat:expression>
|
||||
</parameter>
|
||||
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
|
||||
<dcsat:name>Рес2</dcsat:name>
|
||||
<dcsat:expression>Ресурс2</dcsat:expression>
|
||||
</parameter>
|
||||
</template>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:settings />
|
||||
</settingsVariant>
|
||||
</dataCompositionSchema>
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">False</value>
|
||||
<value xsi:type="xs:boolean">false</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Число</dataPath>
|
||||
<field>Число</field>
|
||||
<presentationExpression>Формат(Число, "ЧГ=")</presentationExpression>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
@@ -17,7 +18,6 @@
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<presentationExpression>Формат(Число, "ЧГ=")</presentationExpression>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Флаг</dataPath>
|
||||
@@ -32,6 +32,9 @@
|
||||
<calculatedField>
|
||||
<dataPath>Удвоенное</dataPath>
|
||||
<expression>Число * 2</expression>
|
||||
<useRestriction>
|
||||
<group>true</group>
|
||||
</useRestriction>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
@@ -40,16 +43,13 @@
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<useRestriction>
|
||||
<group>true</group>
|
||||
</useRestriction>
|
||||
</calculatedField>
|
||||
<parameter>
|
||||
<name>П</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">False</value>
|
||||
<value xsi:type="xs:boolean">false</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
@@ -73,6 +73,13 @@
|
||||
<dcsset:right xsi:type="xs:boolean">true</dcsset:right>
|
||||
</dcsset:item>
|
||||
</dcsset:filter>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>П</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:boolean">false</dcscor:value>
|
||||
<dcsset:userSettingID>0eb70b37-3a01-40a0-81c1-98028ef06a05</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:outputParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Заголовок</dcscor:parameter>
|
||||
@@ -84,13 +91,6 @@
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:outputParameters>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>П</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:boolean">false</dcscor:value>
|
||||
<dcsset:userSettingID>0930043f-cf2a-42c1-ae8c-4accf2fd2604</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "Корень dataCompositionSchema со строчной — предупреждение: платформа загружает, конфигуратор пишет с заглавной",
|
||||
"setup": "fixture:root-lowercase",
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"expect": {
|
||||
"stdoutContains": "[WARN] Root element is 'dataCompositionSchema' — the platform loads it, but the Designer writes 'DataCompositionSchema'",
|
||||
"stdoutNotContains": "[ERROR]"
|
||||
},
|
||||
"noSnapshot": "результат — только вывод"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "XSD точной версии: подсказки по порядку и сжатый текст без пространств имён",
|
||||
"name": "XSD точной версии: подсказки по порядку; False — один раз, собственной проверкой",
|
||||
"setup": "fixture:xsd-bad-220",
|
||||
"requires": ".v8-xsd/2.20",
|
||||
"preRun": [
|
||||
@@ -20,10 +20,14 @@
|
||||
"stdoutContains": [
|
||||
"[ERROR] XSD 2.20, line 20: field/presentationExpression: must come before <valueType>",
|
||||
"[ERROR] XSD 2.20, line 43: calculatedField/useRestriction: must come before <valueType>",
|
||||
"[ERROR] XSD 2.20, line 52: parameter/value:",
|
||||
"[ERROR] XSD 2.20, line 87: settings/dataParameters: must come before <outputParameters>"
|
||||
"[ERROR] XSD 2.20, line 87: settings/dataParameters: must come before <outputParameters>",
|
||||
"<value xsi:type=\"xs:boolean\">False</value> — boolean must be true or false (lowercase)",
|
||||
"=== Result: 4 errors"
|
||||
],
|
||||
"stdoutNotContains": "http://v8.1c.ru"
|
||||
"stdoutNotContains": [
|
||||
"http://v8.1c.ru",
|
||||
"parameter/value"
|
||||
]
|
||||
},
|
||||
"noSnapshot": "результат — только вывод; схемы 1С не должны попасть в эталон"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "Шаблон вне выгрузки — версия формата неизвестна, проверка не выполняется",
|
||||
"name": "Шаблон вне выгрузки — версия формата неизвестна, пометка в итоговой строке",
|
||||
"setup": "fixture:xsd-no-anchor",
|
||||
"preRun": [
|
||||
{
|
||||
@@ -24,7 +24,7 @@
|
||||
"-Detailed"
|
||||
],
|
||||
"expect": {
|
||||
"stdoutContains": "[OK] XSD: format version unknown (template outside a dump) — not checked",
|
||||
"stdoutContains": "checks; XSD not checked: template outside a dump) ===",
|
||||
"stdoutNotContains": [
|
||||
"[ERROR]",
|
||||
"[WARN]"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Каталога схем нет, -Detailed — строка о пропуске",
|
||||
"setup": "fixture:xsd-bad-220",
|
||||
"name": "Каталога схем нет, -Detailed — пометка в итоговой строке",
|
||||
"setup": "fixture:xsd-good-220",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
@@ -18,7 +18,7 @@
|
||||
"-Detailed"
|
||||
],
|
||||
"expect": {
|
||||
"stdoutContains": "[OK] XSD: no schemas in project — not checked",
|
||||
"stdoutContains": "checks; XSD not checked: no schemas (/v8-xsd-fetch)) ===",
|
||||
"stdoutNotContains": [
|
||||
"[ERROR]",
|
||||
"[WARN]"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Каталога схем нет — проверки нет, строк XSD в выводе нет",
|
||||
"setup": "fixture:xsd-bad-220",
|
||||
"name": "Каталога схем нет — проверки нет, итоговая строка говорит об этом",
|
||||
"setup": "fixture:xsd-good-220",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
@@ -15,8 +15,14 @@
|
||||
"templatePath": "Reports/Отчет/Templates/Схема/Ext/Template.xml"
|
||||
},
|
||||
"expect": {
|
||||
"stdoutContains": "=== Validation OK",
|
||||
"stdoutNotContains": "XSD"
|
||||
"stdoutContains": [
|
||||
"=== Validation OK: Template.xml (",
|
||||
"checks; XSD not checked: no schemas (/v8-xsd-fetch)) ==="
|
||||
],
|
||||
"stdoutNotContains": [
|
||||
"[ERROR]",
|
||||
"[WARN]"
|
||||
]
|
||||
},
|
||||
"noSnapshot": "результат — только вывод"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "В каталоге схем только старшие версии — предупреждение, проверка не выполняется",
|
||||
"setup": "fixture:xsd-bad-220",
|
||||
"setup": "fixture:xsd-good-220",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
|
||||
Reference in New Issue
Block a user