mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
fix(skd-compile): всегда эмитить useRestriction для параметра
Платформа эмитит <useRestriction>true|false</useRestriction> у каждого параметра безусловно. Раньше compile эмитил только если =true, что приводило к LOST <useRestriction>false</useRestriction> в roundtrip. Эффект на sample30: −84 строки diff. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# skd-compile v1.49 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.50 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$DefinitionFile,
|
||||
@@ -1257,10 +1257,11 @@ function Emit-SingleParam {
|
||||
$parsed.useRestriction = $true
|
||||
}
|
||||
|
||||
# UseRestriction
|
||||
if ($parsed.useRestriction -eq $true -or ($p -isnot [string] -and $p.useRestriction -eq $true)) {
|
||||
X "`t`t<useRestriction>true</useRestriction>"
|
||||
}
|
||||
# UseRestriction — платформа всегда эмитит этот тег у параметра (true/false)
|
||||
$urEmit = $false
|
||||
if ($parsed.useRestriction -eq $true) { $urEmit = $true }
|
||||
elseif ($p -isnot [string] -and $p.useRestriction -eq $true) { $urEmit = $true }
|
||||
X ("`t`t<useRestriction>" + $(if ($urEmit) { 'true' } else { 'false' }) + "</useRestriction>")
|
||||
|
||||
# Expression
|
||||
if ($parsed.expression) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# skd-compile v1.49 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.50 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import json
|
||||
@@ -1078,9 +1078,12 @@ def emit_single_param(lines, p, parsed):
|
||||
parsed['availableAsField'] = False
|
||||
parsed['useRestriction'] = True
|
||||
|
||||
# UseRestriction
|
||||
if parsed.get('useRestriction') is True or (p is not None and not isinstance(p, str) and p.get('useRestriction') is True):
|
||||
lines.append('\t\t<useRestriction>true</useRestriction>')
|
||||
# UseRestriction — платформа всегда эмитит этот тег у параметра (true/false)
|
||||
ur_emit = (
|
||||
parsed.get('useRestriction') is True
|
||||
or (p is not None and not isinstance(p, str) and p.get('useRestriction') is True)
|
||||
)
|
||||
lines.append(f'\t\t<useRestriction>{"true" if ur_emit else "false"}</useRestriction>')
|
||||
|
||||
# Expression
|
||||
if parsed.get('expression'):
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -87,6 +88,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Флаг</name>
|
||||
@@ -94,6 +96,7 @@
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">true</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Сумма</name>
|
||||
@@ -106,6 +109,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Ставка</name>
|
||||
@@ -118,6 +122,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">13.5</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Метка</name>
|
||||
@@ -129,6 +134,7 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string">ТестовоеЗначение</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПустаяСтрока</name>
|
||||
@@ -140,6 +146,7 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Валюта</name>
|
||||
@@ -147,6 +154,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Валюты</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Справочник.Валюты.EmptyRef</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
|
||||
@@ -123,6 +123,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрЦелое</name>
|
||||
@@ -135,6 +136,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрКоличество</name>
|
||||
@@ -147,6 +149,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<parameter>
|
||||
<name>Параметр1</name>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Параметр2</name>
|
||||
@@ -42,12 +43,14 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСписок</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.СтатусТеста</v8:Type>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
@@ -56,6 +59,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ПлоскийПростой</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрДата</name>
|
||||
@@ -66,6 +70,7 @@
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрЧисло</name>
|
||||
@@ -78,6 +83,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрБулево</name>
|
||||
@@ -85,6 +91,7 @@
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">false</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтандартныйПериод</name>
|
||||
@@ -96,10 +103,12 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрТипНеЗадан</name>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСписокСтрок</name>
|
||||
@@ -110,6 +119,7 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
@@ -121,6 +131,7 @@
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T12:30:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрВремяПусто</name>
|
||||
@@ -131,6 +142,7 @@
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтрокаФиксСЗначением</name>
|
||||
@@ -142,6 +154,7 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string">АБВ</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтрокаФиксПусто</name>
|
||||
@@ -153,6 +166,7 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СоставнойТип</name>
|
||||
@@ -165,6 +179,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ПлоскийПростой</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
|
||||
+1
@@ -40,6 +40,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -105,6 +106,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -148,12 +149,14 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СписокДокументов</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Документы</v8:Type>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
@@ -175,6 +178,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -126,6 +127,7 @@
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">true</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<template>
|
||||
<name>Шапка</name>
|
||||
|
||||
Reference in New Issue
Block a user