mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
fix(meta-info,meta-decompile): xs:base64Binary без квалификаторов — двоичные данные, не хранилище
Вчерашняя правка исходила из того, что xs:base64Binary без BinaryDataQualifiers — вторая форма ХранилищаЗначения. Спросили платформу: конфигурация с таким узлом загружается и выгружается обратно как xs:base64Binary с Length 0 / AllowedLength Variable, то есть как БЕЗЛИМИТНЫЕ двоичные данные. ХранилищеЗначения — отдельный узел v8:ValueStorage. - meta-info: xs:base64Binary снова всегда ДвоичныеДанные (правка отменена, замер записан в комментарий). - meta-decompile: узел без квалификаторов теперь возвращается как BinaryData(0), а не ValueStorage — раньше раундтрип молча менял тип реквизита. Проверено: пересборка из полученного DSL даёт байт в байт то же, что выгрузила платформа. - Кейс и фикстура переименованы по факту и стали полной конфигурацией: теперь кейс доезжает до платформы в verify-snapshots (раньше падал с «конфигурации для загрузки нет»). check-uuid-invariant: добавлен сценарий внешнего источника — правки идут в два файла, и пересборка файла источника дала бы ему новый uuid, осиротив существующие таблицы. Проверка не холостая: намеренная порча uuid источника гард роняет. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
co-authored by
Claude Opus 5
parent
b4bc02bc98
commit
11c0450d2a
@@ -1,4 +1,4 @@
|
|||||||
# meta-decompile v0.67 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
# meta-decompile v0.68 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
#
|
#
|
||||||
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document,
|
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document,
|
||||||
@@ -207,8 +207,9 @@ function Get-TypeShorthand {
|
|||||||
$parts += $fr; break # Date | DateTime
|
$parts += $fr; break # Date | DateTime
|
||||||
}
|
}
|
||||||
'(^|:)base64Binary$' {
|
'(^|:)base64Binary$' {
|
||||||
# xs:base64Binary — это ДвоичныеДанные, если рядом есть свои квалификаторы;
|
# xs:base64Binary — всегда ДвоичныеДанные (ХранилищеЗначения — это v8:ValueStorage).
|
||||||
# ХранилищеЗначения платформа пишет как v8:ValueStorage, но принимает и эту форму.
|
# Узел без квалификаторов встречается только в рукописном XML: замерено на 8.3.24.1691 —
|
||||||
|
# платформа читает его как безлимит (Length 0, Variable) и так же выгружает обратно.
|
||||||
$bq = $typeNode.SelectSingleNode('v8:BinaryDataQualifiers', $nsm)
|
$bq = $typeNode.SelectSingleNode('v8:BinaryDataQualifiers', $nsm)
|
||||||
if ($bq) {
|
if ($bq) {
|
||||||
$blen = $bq.SelectSingleNode('v8:Length', $nsm)
|
$blen = $bq.SelectSingleNode('v8:Length', $nsm)
|
||||||
@@ -220,7 +221,7 @@ function Get-TypeShorthand {
|
|||||||
if ($balVal -eq 'Variable' -and $blenVal) { $parts += "BinaryData($blenVal)" }
|
if ($balVal -eq 'Variable' -and $blenVal) { $parts += "BinaryData($blenVal)" }
|
||||||
elseif ($blenVal -and $blenVal -ne '4294967292') { $parts += "BinaryData($blenVal,fixed)" }
|
elseif ($blenVal -and $blenVal -ne '4294967292') { $parts += "BinaryData($blenVal,fixed)" }
|
||||||
else { $parts += 'BinaryData' }
|
else { $parts += 'BinaryData' }
|
||||||
} else { $parts += 'ValueStorage' }
|
} else { $parts += 'BinaryData(0)' }
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
default { $parts += (Strip-NsPrefix $raw) } # cfg:CatalogRef.X → CatalogRef.X
|
default { $parts += (Strip-NsPrefix $raw) } # cfg:CatalogRef.X → CatalogRef.X
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# meta-decompile v0.67 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
# meta-decompile v0.68 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
#
|
#
|
||||||
# Зеркало meta-decompile.ps1 (КАНОН). Структура 1:1 — те же имена функций, порядок, комментарии.
|
# Зеркало meta-decompile.ps1 (КАНОН). Структура 1:1 — те же имена функций, порядок, комментарии.
|
||||||
@@ -311,8 +311,9 @@ def get_type_shorthand(type_node):
|
|||||||
fr = _text(dn)
|
fr = _text(dn)
|
||||||
parts.append(fr) # Date | DateTime
|
parts.append(fr) # Date | DateTime
|
||||||
elif re.search(r'(^|:)base64Binary$', raw, re.I):
|
elif re.search(r'(^|:)base64Binary$', raw, re.I):
|
||||||
# xs:base64Binary — это ДвоичныеДанные, если рядом есть свои квалификаторы;
|
# xs:base64Binary — всегда ДвоичныеДанные (ХранилищеЗначения — это v8:ValueStorage).
|
||||||
# ХранилищеЗначения платформа пишет как v8:ValueStorage, но принимает и эту форму.
|
# Узел без квалификаторов встречается только в рукописном XML: замерено на 8.3.24.1691 —
|
||||||
|
# платформа читает его как безлимит (Length 0, Variable) и так же выгружает обратно.
|
||||||
bq = type_node.find('v8:BinaryDataQualifiers', NS)
|
bq = type_node.find('v8:BinaryDataQualifiers', NS)
|
||||||
if bq is not None:
|
if bq is not None:
|
||||||
blen = bq.find('v8:Length', NS)
|
blen = bq.find('v8:Length', NS)
|
||||||
@@ -328,7 +329,7 @@ def get_type_shorthand(type_node):
|
|||||||
else:
|
else:
|
||||||
parts.append('BinaryData')
|
parts.append('BinaryData')
|
||||||
else:
|
else:
|
||||||
parts.append('ValueStorage')
|
parts.append('BinaryData(0)')
|
||||||
else:
|
else:
|
||||||
parts.append(strip_ns_prefix(raw)) # cfg:CatalogRef.X → CatalogRef.X
|
parts.append(strip_ns_prefix(raw)) # cfg:CatalogRef.X → CatalogRef.X
|
||||||
elif ln == 'TypeSet':
|
elif ln == 'TypeSet':
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# meta-info v1.13 — Compact summary of 1C metadata object
|
# meta-info v1.14 — Compact summary of 1C metadata object
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
[CmdletBinding(PositionalBinding=$false)]
|
[CmdletBinding(PositionalBinding=$false)]
|
||||||
param(
|
param(
|
||||||
@@ -233,12 +233,10 @@ function Format-SingleType([string]$raw, $parentNode) {
|
|||||||
}
|
}
|
||||||
"v8:ValueStorage" { return "ХранилищеЗначения" }
|
"v8:ValueStorage" { return "ХранилищеЗначения" }
|
||||||
"v8:UUID" { return "УникальныйИдентификатор" }
|
"v8:UUID" { return "УникальныйИдентификатор" }
|
||||||
"xs:base64Binary" {
|
# xs:base64Binary — всегда ДвоичныеДанные, и без квалификаторов тоже: замерено
|
||||||
# ДвоичныеДанные только при своих квалификаторах: без них это вторая форма
|
# на 8.3.24.1691 — такой узел платформа загружает и выгружает обратно как безлимитные
|
||||||
# ХранилищаЗначения, которую платформа принимает (так же различает meta-decompile).
|
# двоичные данные (Length 0, AllowedLength Variable), а не как ХранилищеЗначения.
|
||||||
$bq = $parentNode.SelectSingleNode("v8:BinaryDataQualifiers", $ns)
|
"xs:base64Binary" { return "ДвоичныеДанные" }
|
||||||
if ($bq) { return "ДвоичныеДанные" } else { return "ХранилищеЗначения" }
|
|
||||||
}
|
|
||||||
"v8:Null" { return "Null" }
|
"v8:Null" { return "Null" }
|
||||||
default {
|
default {
|
||||||
# Normalize d5p1:/dNpN: -> cfg:
|
# Normalize d5p1:/dNpN: -> cfg:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# meta-info v1.13 — Compact summary of 1C metadata object (Python port)
|
# meta-info v1.14 — Compact summary of 1C metadata object (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
|
||||||
@@ -320,10 +320,10 @@ def format_single_type(raw, parent_node):
|
|||||||
if raw == "v8:UUID":
|
if raw == "v8:UUID":
|
||||||
return "УникальныйИдентификатор"
|
return "УникальныйИдентификатор"
|
||||||
if raw == "xs:base64Binary":
|
if raw == "xs:base64Binary":
|
||||||
# ДвоичныеДанные только при своих квалификаторах: без них это вторая форма
|
# xs:base64Binary — всегда ДвоичныеДанные, и без квалификаторов тоже: замерено
|
||||||
# ХранилищаЗначения, которую платформа принимает (так же различает meta-decompile).
|
# на 8.3.24.1691 — такой узел платформа загружает и выгружает обратно как безлимитные
|
||||||
bq = find(parent_node, "v8:BinaryDataQualifiers")
|
# двоичные данные (Length 0, AllowedLength Variable), а не как ХранилищеЗначения.
|
||||||
return "ДвоичныеДанные" if bq is not None else "ХранилищеЗначения"
|
return "ДвоичныеДанные"
|
||||||
if raw == "v8:Null":
|
if raw == "v8:Null":
|
||||||
return "Null"
|
return "Null"
|
||||||
# Normalize d5p1:/dNpN: → cfg: (both map to same namespace)
|
# Normalize d5p1:/dNpN: → cfg: (both map to same namespace)
|
||||||
|
|||||||
@@ -2096,9 +2096,12 @@ ChildObjects и модулей.
|
|||||||
сворачивает в неё только точное совпадение 4294967292/Fixed; любая другая длина возвращается
|
сворачивает в неё только точное совпадение 4294967292/Fixed; любая другая длина возвращается
|
||||||
со скобками. Посторонний текст в скобках (`BinaryData(abc)`) — ошибка компиляции.
|
со скобками. Посторонний текст в скобках (`BinaryData(abc)`) — ошибка компиляции.
|
||||||
|
|
||||||
`BinaryData` (ДвоичныеДанные) — **не** `ValueStorage`: платформа пишет его как `xs:base64Binary`
|
`BinaryData` (ДвоичныеДанные) — **не** `ValueStorage`: это разные типы и разные узлы XML —
|
||||||
с `BinaryDataQualifiers`, тогда как ХранилищеЗначения — как `v8:ValueStorage`. Декомпилятор
|
`xs:base64Binary` и `v8:ValueStorage` соответственно. Квалификаторы их НЕ различают: `xs:base64Binary`
|
||||||
различает их по наличию квалификаторов.
|
без `BinaryDataQualifiers` — тоже двоичные данные, просто безлимитные. Замерено на 8.3.24.1691:
|
||||||
|
такой узел загружается и выгружается обратно как `Length 0` / `AllowedLength Variable`, то есть
|
||||||
|
`BinaryData(0)` — именно так его возвращает декомпилятор. Рукописный XML — единственное место,
|
||||||
|
где узел без квалификаторов встречается: сама платформа их пишет всегда.
|
||||||
|
|
||||||
**Составной тип у поля платформа запрещает** — при загрузке отвечает «Поле не может иметь составной
|
**Составной тип у поля платформа запрещает** — при загрузке отвечает «Поле не может иметь составной
|
||||||
тип», хотя «Руководство разработчика» (17.5.2.3.4) его разрешает. Документация опережает реализацию.
|
тип», хотя «Руководство разработчика» (17.5.2.3.4) его разрешает. Документация опережает реализацию.
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "xs:base64Binary без квалификаторов — тоже ДвоичныеДанные (так читает платформа)",
|
||||||
|
"setup": "fixture:base64binary-no-qualifiers",
|
||||||
|
"params": { "objectPath": "Catalogs/Вложения.xml" },
|
||||||
|
"expect": {
|
||||||
|
"stdoutContains": ["ДвоичныеДанные"],
|
||||||
|
"stdoutNotContains": ["ХранилищеЗначения"]
|
||||||
|
}
|
||||||
|
}
|
||||||
+13
-13
@@ -1,26 +1,26 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<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">
|
||||||
<Catalog uuid="82e04ee9-222e-4bbc-bac8-1c10e85b1ec7">
|
<Catalog uuid="540dce4b-a115-4505-bad0-e1b14f1fba2a">
|
||||||
<InternalInfo>
|
<InternalInfo>
|
||||||
<xr:GeneratedType name="CatalogObject.Вложения" category="Object">
|
<xr:GeneratedType name="CatalogObject.Вложения" category="Object">
|
||||||
<xr:TypeId>a11e37c8-2444-4782-b7bd-8aea08cb9e59</xr:TypeId>
|
<xr:TypeId>530584ee-68fe-4c87-874b-31db5d632ed5</xr:TypeId>
|
||||||
<xr:ValueId>67e5e532-fae8-43f7-b462-e873cb74032b</xr:ValueId>
|
<xr:ValueId>151b840f-7889-44d7-abe6-f32230786b00</xr:ValueId>
|
||||||
</xr:GeneratedType>
|
</xr:GeneratedType>
|
||||||
<xr:GeneratedType name="CatalogRef.Вложения" category="Ref">
|
<xr:GeneratedType name="CatalogRef.Вложения" category="Ref">
|
||||||
<xr:TypeId>8f8a87cf-1986-4972-83eb-d7c86b9f53ab</xr:TypeId>
|
<xr:TypeId>97f676c1-ad3e-47db-ae76-7453f36679d7</xr:TypeId>
|
||||||
<xr:ValueId>26b89d83-cfca-4c88-85f3-7001585e4a9e</xr:ValueId>
|
<xr:ValueId>c89cba3e-afdd-404f-93f6-ad643fd24ed2</xr:ValueId>
|
||||||
</xr:GeneratedType>
|
</xr:GeneratedType>
|
||||||
<xr:GeneratedType name="CatalogSelection.Вложения" category="Selection">
|
<xr:GeneratedType name="CatalogSelection.Вложения" category="Selection">
|
||||||
<xr:TypeId>5f2cdd97-e03d-485d-ad58-a24996d3d050</xr:TypeId>
|
<xr:TypeId>8ce45d3d-4670-4bbd-af79-53bd8c2eff3e</xr:TypeId>
|
||||||
<xr:ValueId>5cb35f34-0105-4770-bb71-bfefe7c8dde0</xr:ValueId>
|
<xr:ValueId>433231d3-72ef-456b-a26b-e6f7bb6073d9</xr:ValueId>
|
||||||
</xr:GeneratedType>
|
</xr:GeneratedType>
|
||||||
<xr:GeneratedType name="CatalogList.Вложения" category="List">
|
<xr:GeneratedType name="CatalogList.Вложения" category="List">
|
||||||
<xr:TypeId>bc462ca1-8645-40de-8805-05528f49b77d</xr:TypeId>
|
<xr:TypeId>658db93d-1c94-4f7d-a61d-24d87a4481be</xr:TypeId>
|
||||||
<xr:ValueId>7a34ec0e-1899-4005-aab7-73f55df542cd</xr:ValueId>
|
<xr:ValueId>4bc9957e-9e0c-495a-8fde-86d0c6a28d59</xr:ValueId>
|
||||||
</xr:GeneratedType>
|
</xr:GeneratedType>
|
||||||
<xr:GeneratedType name="CatalogManager.Вложения" category="Manager">
|
<xr:GeneratedType name="CatalogManager.Вложения" category="Manager">
|
||||||
<xr:TypeId>772a6cd5-a420-46eb-89f9-580707183957</xr:TypeId>
|
<xr:TypeId>a80fe341-afcb-4dbd-9460-d88f2893090c</xr:TypeId>
|
||||||
<xr:ValueId>80c973c9-2823-40ee-8149-d6e4a8182a36</xr:ValueId>
|
<xr:ValueId>1c89452b-5baa-40e7-b4d2-005ad2bd73b9</xr:ValueId>
|
||||||
</xr:GeneratedType>
|
</xr:GeneratedType>
|
||||||
</InternalInfo>
|
</InternalInfo>
|
||||||
<Properties>
|
<Properties>
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
||||||
</Properties>
|
</Properties>
|
||||||
<ChildObjects>
|
<ChildObjects>
|
||||||
<Attribute uuid="d698b9a3-d512-4f22-9180-43da2f368708">
|
<Attribute uuid="0fd1ba10-9e6b-4ed1-90d6-1111b17c89e4">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Name>Данные</Name>
|
<Name>Данные</Name>
|
||||||
<Synonym>
|
<Synonym>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<DataHistory>Use</DataHistory>
|
<DataHistory>Use</DataHistory>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Attribute>
|
</Attribute>
|
||||||
<Attribute uuid="696051fc-6f36-4ff0-9e6c-9346fa46be51">
|
<Attribute uuid="a4002e49-971b-48c2-a27e-763aa3bc1f2b">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Name>Файл</Name>
|
<Name>Файл</Name>
|
||||||
<Synonym>
|
<Synonym>
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -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="ad929134-fc8e-4f0c-89c4-b939abc0e7f6">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
|
||||||
|
<xr:ObjectId>075ea794-2a38-43bd-9c37-64ff79e9f2b5</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
|
||||||
|
<xr:ObjectId>fdea22a7-0420-49e4-a9d1-28c2717b8b6f</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
|
||||||
|
<xr:ObjectId>3872cb5b-4cce-4b4e-8c10-d337e7d97448</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
|
||||||
|
<xr:ObjectId>5aed964c-3b0e-44c7-801a-5f018aeef7c2</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
|
||||||
|
<xr:ObjectId>4aad5a14-7415-4ce3-9fdd-7eb09a1019d9</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
|
||||||
|
<xr:ObjectId>19830fba-ec25-4015-bf5e-c440ac37185b</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
<xr:ContainedObject>
|
||||||
|
<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
|
||||||
|
<xr:ObjectId>6e22caf7-13bd-4ace-858f-8fd79049aa1e</xr:ObjectId>
|
||||||
|
</xr:ContainedObject>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>ПробаХранилища</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ПробаХранилища</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/>
|
||||||
|
<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>
|
||||||
|
<Catalog>Вложения</Catalog>
|
||||||
|
</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="e72a3a12-9d06-423e-8a7c-2801e8493661">
|
||||||
|
<uuid>cbab57f2-a0f3-4f0a-89ea-4cb19570ab75</uuid>
|
||||||
|
</panel>
|
||||||
|
</top>
|
||||||
|
<left>
|
||||||
|
<panel id="f088ae45-66d7-4f7e-b9b1-893a2045d673">
|
||||||
|
<uuid>b553047f-c9aa-4157-978d-448ecad24248</uuid>
|
||||||
|
</panel>
|
||||||
|
</left>
|
||||||
|
<panelDef id="b553047f-c9aa-4157-978d-448ecad24248"/>
|
||||||
|
<panelDef id="13322b22-3960-4d68-93a6-fe2dd7f28ca3"/>
|
||||||
|
<panelDef id="c933ac92-92cd-459d-81cc-e0c8a83ced99"/>
|
||||||
|
<panelDef id="cbab57f2-a0f3-4f0a-89ea-4cb19570ab75"/>
|
||||||
|
<panelDef id="b2735bd3-d822-4430-ba59-c9e869693b24"/>
|
||||||
|
</ClientApplicationInterface>
|
||||||
+16
@@ -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="2c92a665-9cad-4d95-9da3-21a081224653">
|
||||||
|
<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,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>ПробаХранилища</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ПробаХранилища</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/>
|
||||||
|
<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>
|
||||||
|
<Catalog>Вложения</Catalog>
|
||||||
|
</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>
|
||||||
+16
@@ -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>
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "xs:base64Binary без квалификаторов — ХранилищеЗначения, с ними — ДвоичныеДанные",
|
|
||||||
"setup": "fixture:valuestorage-base64",
|
|
||||||
"params": { "objectPath": "Catalogs/Вложения.xml" },
|
|
||||||
"expect": {
|
|
||||||
"stdoutContains": ["ХранилищеЗначения", "ДвоичныеДанные"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -125,6 +125,48 @@ for (const runtime of runtimes) {
|
|||||||
if (!predefAfter.has(id)) fail(`id предопределённого элемента ${id} пропал после добавления новых (перегенерирован?)`);
|
if (!predefAfter.has(id)) fail(`id предопределённого элемента ${id} пропал после добавления новых (перегенерирован?)`);
|
||||||
}
|
}
|
||||||
console.log(`[${runtime}] проверено ${checked} uuid объекта + ${predefBefore.size} id предопределённых (сохранены при add)`);
|
console.log(`[${runtime}] проверено ${checked} uuid объекта + ${predefBefore.size} id предопределённых (сохранены при add)`);
|
||||||
|
|
||||||
|
// 4. Внешний источник данных: правки идут в ДВА файла (источник и таблицу), причём таблицу
|
||||||
|
// навык создаёт сам. Уникальный для этого вида риск — пересборка файла источника целиком:
|
||||||
|
// она дала бы источнику новый uuid и осиротила бы уже существующие таблицы.
|
||||||
|
const edsInp = join(work, 'eds.json');
|
||||||
|
writeFileSync(edsInp, JSON.stringify({
|
||||||
|
type: 'ExternalDataSource', name: 'PG',
|
||||||
|
tables: { products: { keyFields: ['id'], fields: ['id: Number(10,0)', 'name: String(150)'] } },
|
||||||
|
functions: { total: { expression: 'public.f_total(&1)', returns: 'Number(15,2)' } },
|
||||||
|
}), 'utf8');
|
||||||
|
skill(runtime, 'meta-compile', ['-JsonPath', edsInp, '-OutputDir', work], work);
|
||||||
|
const srcXml = join(work, 'ExternalDataSources', 'PG.xml');
|
||||||
|
const tblXml = join(work, 'ExternalDataSources', 'PG', 'Tables', 'products.xml');
|
||||||
|
const edsBefore = new Set([...collectUuids(srcXml), ...collectUuids(tblXml)]);
|
||||||
|
|
||||||
|
const edsEdit1 = join(work, 'eds-e1.json');
|
||||||
|
writeFileSync(edsEdit1, JSON.stringify({
|
||||||
|
add: {
|
||||||
|
tables: { sales: { keyFields: ['id'], fields: ['id: Number(10,0)'] } },
|
||||||
|
functions: { nextKey: 'NEXT VALUE FOR public.seq_key' },
|
||||||
|
},
|
||||||
|
}), 'utf8');
|
||||||
|
skill(runtime, 'meta-edit', ['-ObjectPath', srcXml, '-DefinitionFile', edsEdit1, '-NoValidate'], work);
|
||||||
|
|
||||||
|
const edsEdit2 = join(work, 'eds-e2.json');
|
||||||
|
writeFileSync(edsEdit2, JSON.stringify({
|
||||||
|
add: { fields: ['barcode: String(20) | nullable'] },
|
||||||
|
modify: { fields: { name: { name: 'title', type: 'String(200)' } } },
|
||||||
|
}), 'utf8');
|
||||||
|
skill(runtime, 'meta-edit', ['-ObjectPath', tblXml, '-DefinitionFile', edsEdit2, '-NoValidate'], work);
|
||||||
|
|
||||||
|
const edsAfter = new Set([...collectUuids(srcXml), ...collectUuids(tblXml)]);
|
||||||
|
// Правка обязана быть применённой: без этого проверка uuid ничего не значит.
|
||||||
|
if (!readFileSync(tblXml, 'utf8').includes('<Name>title</Name>')) {
|
||||||
|
fail('поле не переименовано — сценарий внешнего источника проверил бы uuid вхолостую');
|
||||||
|
}
|
||||||
|
let edsChecked = 0;
|
||||||
|
for (const uuid of edsBefore) {
|
||||||
|
edsChecked++;
|
||||||
|
if (!edsAfter.has(uuid)) fail(`uuid ${uuid} внешнего источника пропал после правки (пересборка файла?)`);
|
||||||
|
}
|
||||||
|
console.log(`[${runtime}] проверено ${edsChecked} uuid внешнего источника и его таблицы`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
const detail = (e.stderr || e.message || '').toString();
|
const detail = (e.stderr || e.message || '').toString();
|
||||||
console.log(`[${runtime}] ОШИБКА прогона: ${detail.slice(0, 300)}`);
|
console.log(`[${runtime}] ОШИБКА прогона: ${detail.slice(0, 300)}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user