mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-26 22:51:03 +03:00
fix(xdto-compile,xdto-validate): признак фиксированного значения без самого значения
В модели XDTO fixed — булев признак, а значение лежит в default; в XML-схеме fixed="V" совмещает и признак, и значение. Компилятор оба идиома принимал, но не проверял принятое: зеркало xdto:fixed="true" без default собиралось молча в пакет, который платформа отвергает («Отсутствует фиксированное значение свойства»). Прощающий ввод был сделан наполовину. xdto-validate v1.1 — два ERROR: значение попало в признак (fixed не булев) и признак без значения. Формулировка второго повторяет платформенную дословно, чтобы отказ загрузки и наш вывод читались как одно и то же. xdto-compile v1.1 — то же условие предупреждением на сборке, то есть на шаг раньше db-update, где починить дешевле. Кейсы: оба идиома плюс только default и атрибут (загружается в базу); зеркало без значения — проверка диагностики, из платформенной верификации исключено штатным skipPlatformVerify, пакет невалиден by design. Правило откалибровано корпусом (760 пакетов, оба рантайма): 0 ложных срабатываний, состав предупреждений не изменился. Round-trip остался 760/760 байт-в-байт. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
20d86ae10f
commit
79beba2d1f
@@ -1,4 +1,4 @@
|
|||||||
# xdto-compile v1.0 — Build a 1C XDTO package from an XML Schema (XSD)
|
# xdto-compile v1.1 — Build a 1C XDTO package from an XML Schema (XSD)
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true, ParameterSetName='File')]
|
[Parameter(Mandatory=$true, ParameterSetName='File')]
|
||||||
@@ -465,6 +465,9 @@ function Build-Property([System.Xml.XmlElement]$el, [bool]$isAttribute) {
|
|||||||
if ($null -ne $mFixed) {
|
if ($null -ne $mFixed) {
|
||||||
Add-Attr $p "fixed" $mFixed
|
Add-Attr $p "fixed" $mFixed
|
||||||
Add-Attr $p "default" (XA $el "default")
|
Add-Attr $p "default" (XA $el "default")
|
||||||
|
if ($mFixed -ceq "true" -and $null -eq (XA $el "default")) {
|
||||||
|
Warn "Свойство `"$(XA $el 'name')`": xdto:fixed=`"true`" без default — платформа отвергнет пакет («Отсутствует фиксированное значение»). Значение задаётся атрибутом default, либо пишите XSD-форму fixed=`"значение`""
|
||||||
|
}
|
||||||
} elseif ($null -ne (XA $el "fixed")) {
|
} elseif ($null -ne (XA $el "fixed")) {
|
||||||
Add-Attr $p "fixed" "true"
|
Add-Attr $p "fixed" "true"
|
||||||
Add-Attr $p "default" (XA $el "fixed")
|
Add-Attr $p "default" (XA $el "fixed")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# xdto-compile v1.0 — Build a 1C XDTO package from an XML Schema (XSD) (Python port)
|
# xdto-compile v1.1 — Build a 1C XDTO package from an XML Schema (XSD) (Python port)
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
@@ -516,6 +516,10 @@ def build_property(el, is_attribute):
|
|||||||
if m_fixed is not None:
|
if m_fixed is not None:
|
||||||
add_attr(p, "fixed", m_fixed)
|
add_attr(p, "fixed", m_fixed)
|
||||||
add_attr(p, "default", el.get("default"))
|
add_attr(p, "default", el.get("default"))
|
||||||
|
if m_fixed == "true" and el.get("default") is None:
|
||||||
|
warn('Свойство "' + str(el.get("name")) + '": xdto:fixed="true" без default — '
|
||||||
|
"платформа отвергнет пакет («Отсутствует фиксированное значение»). "
|
||||||
|
'Значение задаётся атрибутом default, либо пишите XSD-форму fixed="значение"')
|
||||||
elif el.get("fixed") is not None:
|
elif el.get("fixed") is not None:
|
||||||
add_attr(p, "fixed", "true")
|
add_attr(p, "fixed", "true")
|
||||||
add_attr(p, "default", el.get("fixed"))
|
add_attr(p, "default", el.get("fixed"))
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# xdto-validate v1.0 — Validate a 1C XDTO package
|
# xdto-validate v1.1 — Validate a 1C XDTO package
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
@@ -363,9 +363,20 @@ foreach ($p in $pkg.SelectNodes("//*[local-name()='property']")) {
|
|||||||
if (-not $p.HasAttribute("name") -and -not $p.HasAttribute("ref")) {
|
if (-not $p.HasAttribute("name") -and -not $p.HasAttribute("ref")) {
|
||||||
Report-Error "Свойство без name и без ref"
|
Report-Error "Свойство без name и без ref"
|
||||||
}
|
}
|
||||||
|
# В модели XDTO fixed — булев признак, само значение лежит в default.
|
||||||
|
# В XML-схеме наоборот: fixed="V" совмещает признак и значение.
|
||||||
|
if ($p.HasAttribute("fixed")) {
|
||||||
|
$fx = $p.GetAttribute("fixed")
|
||||||
|
$pName = if ($p.HasAttribute("name")) { $p.GetAttribute("name") } else { $p.GetAttribute("ref") }
|
||||||
|
if (@("true", "false") -cnotcontains $fx) {
|
||||||
|
Report-Error "Свойство `"$pName`": fixed=`"$fx`" — в модели это булев признак, значение задаётся в default (в XML-схеме признак и значение совмещены в fixed)"
|
||||||
|
} elseif ($fx -ceq "true" -and -not $p.HasAttribute("default")) {
|
||||||
|
Report-Error "Отсутствует фиксированное значение свойства '$pName': есть fixed=`"true`", нет default"
|
||||||
|
}
|
||||||
|
}
|
||||||
if ($script:stopped) { break }
|
if ($script:stopped) { break }
|
||||||
}
|
}
|
||||||
if (-not $script:stopped) { Report-OK "Свойства: form и кратности корректны" }
|
if (-not $script:stopped) { Report-OK "Свойства: form, кратности и фиксированные значения корректны" }
|
||||||
|
|
||||||
# --- 10b. Structural consistency ---
|
# --- 10b. Structural consistency ---
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# xdto-validate v1.0 — Validate a 1C XDTO package (Python port)
|
# xdto-validate v1.1 — Validate a 1C XDTO package (Python port)
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
@@ -385,10 +385,25 @@ for p in pkg.iter():
|
|||||||
report_error(f'Свойство "{p.get("name")}": lowerBound ({lb}) больше upperBound ({ub})')
|
report_error(f'Свойство "{p.get("name")}": lowerBound ({lb}) больше upperBound ({ub})')
|
||||||
if p.get("name") is None and p.get("ref") is None:
|
if p.get("name") is None and p.get("ref") is None:
|
||||||
report_error("Свойство без name и без ref")
|
report_error("Свойство без name и без ref")
|
||||||
|
# В модели XDTO fixed — булев признак, само значение лежит в default.
|
||||||
|
# В XML-схеме наоборот: fixed="V" совмещает признак и значение.
|
||||||
|
fx = p.get("fixed")
|
||||||
|
if fx is not None:
|
||||||
|
p_name = p.get("name") if p.get("name") is not None else p.get("ref")
|
||||||
|
if fx not in ("true", "false"):
|
||||||
|
report_error(
|
||||||
|
f'Свойство "{p_name}": fixed="{fx}" — в модели это булев признак, '
|
||||||
|
"значение задаётся в default (в XML-схеме признак и значение совмещены в fixed)"
|
||||||
|
)
|
||||||
|
elif fx == "true" and p.get("default") is None:
|
||||||
|
report_error(
|
||||||
|
f"Отсутствует фиксированное значение свойства '{p_name}': "
|
||||||
|
'есть fixed="true", нет default'
|
||||||
|
)
|
||||||
if state["stopped"]:
|
if state["stopped"]:
|
||||||
break
|
break
|
||||||
if not state["stopped"]:
|
if not state["stopped"]:
|
||||||
report_ok("Свойства: form и кратности корректны")
|
report_ok("Свойства: form, кратности и фиксированные значения корректны")
|
||||||
|
|
||||||
# ── 10b. structural consistency ──────────────────────────────
|
# ── 10b. structural consistency ──────────────────────────────
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "оба идиома fixed: XSD-форма fixed=\"значение\" и модельное зеркало xdto:fixed",
|
||||||
|
"caseFiles": ["fixed-idioms.xsd"],
|
||||||
|
"params": { "xsdFile": "fixed-idioms.xsd" },
|
||||||
|
"validatePath": "XDTOPackages/fixed_idioms",
|
||||||
|
"expect": {
|
||||||
|
"files": ["XDTOPackages/fixed_idioms.xml", "XDTOPackages/fixed_idioms/Ext/Package.bin"]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:xdto="http://v8.1c.ru/8.1/xdto"
|
||||||
|
xmlns:tns="urn:test:fixed"
|
||||||
|
targetNamespace="urn:test:fixed">
|
||||||
|
<xs:complexType name="Позиция">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="ИзСхемы" type="xs:string" fixed="Р"/>
|
||||||
|
<xs:element name="Зеркало" type="xs:string" default="Р" xdto:fixed="false"/>
|
||||||
|
<xs:element name="ТолькоDefault" type="xs:string" default="Р"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="Атрибутом" type="xs:string" fixed="Р"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "зеркало xdto:fixed=\"true\" без default — предупреждение на сборке, а не отказ платформы на db-update",
|
||||||
|
"caseFiles": ["fixed-mirror-no-value.xsd"],
|
||||||
|
"params": { "xsdFile": "fixed-mirror-no-value.xsd" },
|
||||||
|
"expect": {
|
||||||
|
"files": ["XDTOPackages/fixed_mirror_no_value.xml", "XDTOPackages/fixed_mirror_no_value/Ext/Package.bin"],
|
||||||
|
"stdoutContains": [
|
||||||
|
"БезЗначения",
|
||||||
|
"xdto:fixed=\"true\" без default",
|
||||||
|
"Отсутствует фиксированное значение"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"noSnapshot": "проверяется диагностика сборки; заведомо невалидный пакет эталоном фиксировать нечего",
|
||||||
|
"skipPlatformVerify": "пакет невалиден by design — кейс проверяет, что о его невалидности предупредят на сборке; платформа отвергает его теми же словами («Отсутствует фиксированное значение свойства»)"
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:xdto="http://v8.1c.ru/8.1/xdto"
|
||||||
|
xmlns:tns="urn:test:fixedwarn"
|
||||||
|
targetNamespace="urn:test:fixedwarn">
|
||||||
|
<xs:complexType name="Позиция">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="БезЗначения" type="xs:string" xdto:fixed="true"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,252 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||||||
|
<Configuration uuid="UUID-001">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-002</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-003</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-004</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-005</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-006</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-007</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-008</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-009</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-010</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-011</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-012</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-013</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>UUID-014</xr:ClassId>
|
||||||
|
<xr:ObjectId>UUID-015</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>TestConfig</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>TestConfig</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment />
|
||||||
|
<NamePrefix />
|
||||||
|
<ConfigurationExtensionCompatibilityMode>Version8_3_24</ConfigurationExtensionCompatibilityMode>
|
||||||
|
<DefaultRunMode>ManagedApplication</DefaultRunMode>
|
||||||
|
<UsePurposes>
|
||||||
|
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||||||
|
</UsePurposes>
|
||||||
|
<ScriptVariant>Russian</ScriptVariant>
|
||||||
|
<DefaultRoles />
|
||||||
|
<Vendor></Vendor>
|
||||||
|
<Version></Version>
|
||||||
|
<UpdateCatalogAddress />
|
||||||
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
|
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
|
||||||
|
<UseOrdinaryFormInManagedApplication>false</UseOrdinaryFormInManagedApplication>
|
||||||
|
<AdditionalFullTextSearchDictionaries />
|
||||||
|
<CommonSettingsStorage />
|
||||||
|
<ReportsUserSettingsStorage />
|
||||||
|
<ReportsVariantsStorage />
|
||||||
|
<FormDataSettingsStorage />
|
||||||
|
<DynamicListsUserSettingsStorage />
|
||||||
|
<URLExternalDataStorage />
|
||||||
|
<Content />
|
||||||
|
<DefaultReportForm />
|
||||||
|
<DefaultReportVariantForm />
|
||||||
|
<DefaultReportSettingsForm />
|
||||||
|
<DefaultReportAppearanceTemplate />
|
||||||
|
<DefaultDynamicListSettingsForm />
|
||||||
|
<DefaultSearchForm />
|
||||||
|
<DefaultDataHistoryChangeHistoryForm />
|
||||||
|
<DefaultDataHistoryVersionDataForm />
|
||||||
|
<DefaultDataHistoryVersionDifferencesForm />
|
||||||
|
<DefaultCollaborationSystemUsersChoiceForm />
|
||||||
|
<RequiredMobileApplicationPermissions />
|
||||||
|
<UsedMobileApplicationFunctionalities>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Biometrics</app:functionality>
|
||||||
|
<app:use>true</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Location</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>BackgroundLocation</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>BluetoothPrinters</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>WiFiPrinters</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Contacts</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Calendars</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>PushNotifications</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>LocalNotifications</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>InAppPurchases</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>PersonalComputerFileExchange</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Ads</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>NumberDialing</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>CallProcessing</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>CallLog</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>AutoSendSMS</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>ReceiveSMS</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>SMSLog</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Camera</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Microphone</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>MusicLibrary</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>PictureAndVideoLibraries</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>AudioPlaybackAndVibration</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>BackgroundAudioPlaybackAndVibration</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>InstallPackages</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>OSBackup</app:functionality>
|
||||||
|
<app:use>true</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>ApplicationUsageStatistics</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>BarcodeScanning</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>BackgroundAudioRecording</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>AllFilesAccess</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Videoconferences</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>NFC</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>DocumentScanning</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>SpeechToText</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>Geofences</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>IncomingShareRequests</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
<app:functionality>
|
||||||
|
<app:functionality>AllIncomingShareRequestsTypesProcessing</app:functionality>
|
||||||
|
<app:use>false</app:use>
|
||||||
|
</app:functionality>
|
||||||
|
</UsedMobileApplicationFunctionalities>
|
||||||
|
<StandaloneConfigurationRestrictionRoles />
|
||||||
|
<MobileApplicationURLs />
|
||||||
|
<AllowedIncomingShareRequestTypes />
|
||||||
|
<MainClientApplicationWindowMode>Normal</MainClientApplicationWindowMode>
|
||||||
|
<DefaultInterface />
|
||||||
|
<DefaultStyle />
|
||||||
|
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||||
|
<BriefInformation />
|
||||||
|
<DetailedInformation />
|
||||||
|
<Copyright />
|
||||||
|
<VendorInformationAddress />
|
||||||
|
<ConfigurationInformationAddress />
|
||||||
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
|
<ObjectAutonumerationMode>NotAutoFree</ObjectAutonumerationMode>
|
||||||
|
<ModalityUseMode>DontUse</ModalityUseMode>
|
||||||
|
<SynchronousPlatformExtensionAndAddInCallUseMode>DontUse</SynchronousPlatformExtensionAndAddInCallUseMode>
|
||||||
|
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
|
||||||
|
<DatabaseTablespacesUseMode>DontUse</DatabaseTablespacesUseMode>
|
||||||
|
<CompatibilityMode>Version8_3_24</CompatibilityMode>
|
||||||
|
<DefaultConstantsForm />
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Language>Русский</Language>
|
||||||
|
<XDTOPackage>fixed_idioms</XDTOPackage>
|
||||||
|
</ChildObjects>
|
||||||
|
</Configuration>
|
||||||
|
</MetaDataObject>
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ClientApplicationInterface xmlns="http://v8.1c.ru/8.2/managed-application/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="InterfaceLayouter">
|
||||||
|
<top>
|
||||||
|
<panel id="UUID-001">
|
||||||
|
<uuid>UUID-002</uuid>
|
||||||
|
</panel>
|
||||||
|
</top>
|
||||||
|
<left>
|
||||||
|
<panel id="UUID-003">
|
||||||
|
<uuid>UUID-004</uuid>
|
||||||
|
</panel>
|
||||||
|
</left>
|
||||||
|
<panelDef id="UUID-004"/>
|
||||||
|
<panelDef id="UUID-005"/>
|
||||||
|
<panelDef id="UUID-006"/>
|
||||||
|
<panelDef id="UUID-002"/>
|
||||||
|
<panelDef id="UUID-007"/>
|
||||||
|
</ClientApplicationInterface>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||||||
|
<Language uuid="UUID-001">
|
||||||
|
<Properties>
|
||||||
|
<Name>Русский</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Русский</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<LanguageCode>ru</LanguageCode>
|
||||||
|
</Properties>
|
||||||
|
</Language>
|
||||||
|
</MetaDataObject>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||||||
|
<XDTOPackage uuid="UUID-001">
|
||||||
|
<Properties>
|
||||||
|
<Name>fixed_idioms</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>fixed_idioms</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Namespace>urn:test:fixed</Namespace>
|
||||||
|
</Properties>
|
||||||
|
</XDTOPackage>
|
||||||
|
</MetaDataObject>
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
<package xmlns="http://v8.1c.ru/8.1/xdto" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:test:fixed">
|
||||||
|
<objectType name="Позиция">
|
||||||
|
<property name="Атрибутом" type="xs:string" fixed="true" default="Р" form="Attribute"/>
|
||||||
|
<property name="ИзСхемы" type="xs:string" fixed="true" default="Р"/>
|
||||||
|
<property name="Зеркало" type="xs:string" fixed="false" default="Р"/>
|
||||||
|
<property name="ТолькоDefault" type="xs:string" default="Р"/>
|
||||||
|
</objectType>
|
||||||
|
</package>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:xdto="http://v8.1c.ru/8.1/xdto"
|
||||||
|
xmlns:tns="urn:test:fixed"
|
||||||
|
targetNamespace="urn:test:fixed">
|
||||||
|
<xs:complexType name="Позиция">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="ИзСхемы" type="xs:string" fixed="Р"/>
|
||||||
|
<xs:element name="Зеркало" type="xs:string" default="Р" xdto:fixed="false"/>
|
||||||
|
<xs:element name="ТолькоDefault" type="xs:string" default="Р"/>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="Атрибутом" type="xs:string" fixed="Р"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "fixed без значения и значение внутри fixed — платформа такой пакет отвергает",
|
||||||
|
"caseFiles": [
|
||||||
|
"pkg-fixed/XDTOPackages/fixedbad.xml",
|
||||||
|
"pkg-fixed/XDTOPackages/fixedbad/Ext/Package.bin"
|
||||||
|
],
|
||||||
|
"params": { "packagePath": "pkg-fixed/XDTOPackages/fixedbad" },
|
||||||
|
"expectError": true,
|
||||||
|
"expect": {
|
||||||
|
"stdoutContains": [
|
||||||
|
"Отсутствует фиксированное значение свойства 'БезЗначения'",
|
||||||
|
"Свойство \"ЗначениеВПризнаке\": fixed=\"Р\""
|
||||||
|
],
|
||||||
|
"stdoutNotContains": ["Правильное", "НеФиксированное"]
|
||||||
|
},
|
||||||
|
"noSnapshot": "навык только читает — сравнивать нечего, проверка через stdoutContains"
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core" version="2.17">
|
||||||
|
<XDTOPackage uuid="11111111-2222-3333-4444-555555555555">
|
||||||
|
<Properties>
|
||||||
|
<Name>fixedbad</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>fixedbad</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Namespace>urn:test:fixedbad</Namespace>
|
||||||
|
</Properties>
|
||||||
|
</XDTOPackage>
|
||||||
|
</MetaDataObject>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<package xmlns="http://v8.1c.ru/8.1/xdto" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:test:fixedbad">
|
||||||
|
<objectType name="Позиция">
|
||||||
|
<property name="БезЗначения" type="xs:string" fixed="true"/>
|
||||||
|
<property name="ЗначениеВПризнаке" type="xs:string" fixed="Р"/>
|
||||||
|
<property name="Правильное" type="xs:string" fixed="true" default="Р"/>
|
||||||
|
<property name="НеФиксированное" type="xs:string" fixed="false" default="Р"/>
|
||||||
|
</objectType>
|
||||||
|
</package>
|
||||||
Reference in New Issue
Block a user