mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-28 07:31:00 +03:00
feat(meta-compile,meta-decompile): поддержка типа Document (Документы) (v1.43/v0.32)
Шестой тип. Базовый роундтрип 151-выборки acc+erp: TOTAL 11450→166 (−98.5%),
match 0→109/151, 0 крашей. Регресс 49/49 ps1+py, ps1==py identical. 1С-cert ✓.
Emit-DocumentProperties переписан на общие хелперы (был легаси-хардкод): выбило
Characteristics/формы/BasedOn/InputByString/презентации — декомпилятор их уже
захватывал, баг был чисто компиляторный. SA-conditional + профиль {Date:ShowError}.
Декомпилятор: Document-блок — нумерация, проведение, RegisterRecords (движения),
Numerator, DataHistory-триплет, checkUnique-дефолт.
Class-2 дефолт-фиксы (рассинхрон компилятор↔декомпилятор↔корпус): createOnInput
DontUse→Use, registerRecordsWritingOnPost WriteModified→WriteSelected,
dataLockControlMode Automatic→Managed.
Новые/исправленные ключи (общее для реквизитов, всплыло на Document): markNegatives,
choiceForm/choiceFoldersAndItems, format/editFormat станд.реквизита (SA-override),
TS fillChecking. TS-суппресс `lineNumber: ""` — opt-out наличия TS-блока стандартных
реквизитов (~6% ТЧ его опускают, правило не выводимо; чинит и хвост Catalog).
verify-snapshots: getStructuralDeps стабит регистры registerRecords по MDObjectRef.
Остаток (~166, 2 узких хвоста): choiceParameters FixedArray data-specific edge +
FillValue станд.реквизита decimal/DTR/пробелы. spec §7.2, кейс document-full.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4e6c8311d8
commit
10933e7386
@@ -1,4 +1,4 @@
|
|||||||
# meta-compile v1.42 — Compile 1C metadata object from JSON
|
# meta-compile v1.43 — Compile 1C metadata object from JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
@@ -828,6 +828,9 @@ function Parse-AttributeShorthand {
|
|||||||
editFormat = $val.editFormat
|
editFormat = $val.editFormat
|
||||||
mask = if ($val.mask) { "$($val.mask)" } else { "" }
|
mask = if ($val.mask) { "$($val.mask)" } else { "" }
|
||||||
extendedEdit = if ($val.extendedEdit -eq $true) { $true } else { $false }
|
extendedEdit = if ($val.extendedEdit -eq $true) { $true } else { $false }
|
||||||
|
markNegatives = if ($val.markNegatives -eq $true) { $true } else { $false }
|
||||||
|
choiceForm = if ($val.choiceForm) { "$($val.choiceForm)" } else { "" }
|
||||||
|
choiceFoldersAndItems = if ($val.choiceFoldersAndItems) { "$($val.choiceFoldersAndItems)" } else { "" }
|
||||||
minValue = $val.minValue
|
minValue = $val.minValue
|
||||||
maxValue = $val.maxValue
|
maxValue = $val.maxValue
|
||||||
hasFillValue = ($val.PSObject -and $val.PSObject.Properties -and ($val.PSObject.Properties.Name -contains 'fillValue'))
|
hasFillValue = ($val.PSObject -and $val.PSObject.Properties -and ($val.PSObject.Properties.Name -contains 'fillValue'))
|
||||||
@@ -1060,6 +1063,10 @@ $script:stdAttrProfile = @{
|
|||||||
"ChartOfCalculationTypes" = @{
|
"ChartOfCalculationTypes" = @{
|
||||||
"Description" = @{ FillChecking = "ShowError" }
|
"Description" = @{ FillChecking = "ShowError" }
|
||||||
}
|
}
|
||||||
|
# Document: Дата → FillChecking=ShowError (974/1010 доков acc+erp; дата обязательна).
|
||||||
|
"Document" = @{
|
||||||
|
"Date" = @{ FillChecking = "ShowError" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# $ov — hashtable переопределений (профиль + DSL) для полей: FillChecking, FillFromFillingValue,
|
# $ov — hashtable переопределений (профиль + DSL) для полей: FillChecking, FillFromFillingValue,
|
||||||
@@ -1120,7 +1127,7 @@ function Emit-StandardAttribute {
|
|||||||
# Прочие типы (не в множестве) → блок эмитится всегда (текущее поведение, пока их правило не выведено).
|
# Прочие типы (не в множестве) → блок эмитится всегда (текущее поведение, пока их правило не выведено).
|
||||||
# - stdAttrProfile[тип]: профиль материализованного блока (пусто = schema-дефолт), поверх — DSL-override.
|
# - stdAttrProfile[тип]: профиль материализованного блока (пусто = schema-дефолт), поверх — DSL-override.
|
||||||
# Миграция типа = добавить его в stdAttrConditionalTypes + stdAttrProfile и переснять снэпшоты; КОД НЕ ТРОГАЕМ.
|
# Миграция типа = добавить его в stdAttrConditionalTypes + stdAttrProfile и переснять снэпшоты; КОД НЕ ТРОГАЕМ.
|
||||||
$script:stdAttrConditionalTypes = @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes')
|
$script:stdAttrConditionalTypes = @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Document')
|
||||||
function Emit-StandardAttributes {
|
function Emit-StandardAttributes {
|
||||||
param([string]$indent, [string]$objectType)
|
param([string]$indent, [string]$objectType)
|
||||||
$attrs = $script:standardAttributesByType[$objectType]
|
$attrs = $script:standardAttributesByType[$objectType]
|
||||||
@@ -1151,6 +1158,8 @@ function Emit-StandardAttributes {
|
|||||||
if ($null -ne $d.choiceParameters) { $ov['ChoiceParameters'] = $d.choiceParameters }
|
if ($null -ne $d.choiceParameters) { $ov['ChoiceParameters'] = $d.choiceParameters }
|
||||||
if ($d.comment) { $ov['Comment'] = "$($d.comment)" }
|
if ($d.comment) { $ov['Comment'] = "$($d.comment)" }
|
||||||
if ($d.mask) { $ov['Mask'] = "$($d.mask)" }
|
if ($d.mask) { $ov['Mask'] = "$($d.mask)" }
|
||||||
|
if ($null -ne $d.format) { $ov['Format'] = $d.format } # строка ИЛИ {ru,en}
|
||||||
|
if ($null -ne $d.editFormat) { $ov['EditFormat'] = $d.editFormat }
|
||||||
if ($d.choiceForm) { $ov['ChoiceForm'] = "$($d.choiceForm)" }
|
if ($d.choiceForm) { $ov['ChoiceForm'] = "$($d.choiceForm)" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1581,7 +1590,7 @@ function Emit-Attribute {
|
|||||||
Emit-MLText "$indent`t`t" "Format" $parsed.format
|
Emit-MLText "$indent`t`t" "Format" $parsed.format
|
||||||
Emit-MLText "$indent`t`t" "EditFormat" $parsed.editFormat
|
Emit-MLText "$indent`t`t" "EditFormat" $parsed.editFormat
|
||||||
Emit-MLText "$indent`t`t" "ToolTip" $parsed.tooltip
|
Emit-MLText "$indent`t`t" "ToolTip" $parsed.tooltip
|
||||||
X "$indent`t`t<MarkNegatives>false</MarkNegatives>"
|
X "$indent`t`t<MarkNegatives>$(if ($parsed.markNegatives -eq $true) { 'true' } else { 'false' })</MarkNegatives>"
|
||||||
if ($parsed.mask) { X "$indent`t`t<Mask>$(Esc-XmlText $parsed.mask)</Mask>" } else { X "$indent`t`t<Mask/>" }
|
if ($parsed.mask) { X "$indent`t`t<Mask>$(Esc-XmlText $parsed.mask)</Mask>" } else { X "$indent`t`t<Mask/>" }
|
||||||
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
||||||
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
||||||
@@ -1608,14 +1617,14 @@ function Emit-Attribute {
|
|||||||
if ($parsed.fillChecking) { $fillChecking = $parsed.fillChecking }
|
if ($parsed.fillChecking) { $fillChecking = $parsed.fillChecking }
|
||||||
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
||||||
|
|
||||||
X "$indent`t`t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>"
|
X "$indent`t`t<ChoiceFoldersAndItems>$(if ($parsed.choiceFoldersAndItems) { "$($parsed.choiceFoldersAndItems)" } else { 'Items' })</ChoiceFoldersAndItems>"
|
||||||
Emit-ChoiceParameterLinks "$indent`t`t" $parsed.choiceParameterLinks
|
Emit-ChoiceParameterLinks "$indent`t`t" $parsed.choiceParameterLinks
|
||||||
Emit-ChoiceParameters "$indent`t`t" $parsed.choiceParameters
|
Emit-ChoiceParameters "$indent`t`t" $parsed.choiceParameters
|
||||||
$qc = if ($parsed.quickChoice) { $parsed.quickChoice } else { "Auto" }
|
$qc = if ($parsed.quickChoice) { $parsed.quickChoice } else { "Auto" }
|
||||||
X "$indent`t`t<QuickChoice>$qc</QuickChoice>"
|
X "$indent`t`t<QuickChoice>$qc</QuickChoice>"
|
||||||
$coi = if ($parsed.createOnInput) { $parsed.createOnInput } else { "Auto" }
|
$coi = if ($parsed.createOnInput) { $parsed.createOnInput } else { "Auto" }
|
||||||
X "$indent`t`t<CreateOnInput>$coi</CreateOnInput>"
|
X "$indent`t`t<CreateOnInput>$coi</CreateOnInput>"
|
||||||
X "$indent`t`t<ChoiceForm/>"
|
if ($parsed.choiceForm) { X "$indent`t`t<ChoiceForm>$(Esc-Xml "$($parsed.choiceForm)")</ChoiceForm>" } else { X "$indent`t`t<ChoiceForm/>" }
|
||||||
Emit-LinkByType "$indent`t`t" $parsed.linkByType
|
Emit-LinkByType "$indent`t`t" $parsed.linkByType
|
||||||
$chi = if ($parsed.choiceHistoryOnInput) { $parsed.choiceHistoryOnInput } else { "Auto" }
|
$chi = if ($parsed.choiceHistoryOnInput) { $parsed.choiceHistoryOnInput } else { "Auto" }
|
||||||
X "$indent`t`t<ChoiceHistoryOnInput>$chi</ChoiceHistoryOnInput>"
|
X "$indent`t`t<ChoiceHistoryOnInput>$chi</ChoiceHistoryOnInput>"
|
||||||
@@ -1712,7 +1721,7 @@ function Emit-Command {
|
|||||||
# --- 9. TabularSection emitter ---
|
# --- 9. TabularSection emitter ---
|
||||||
|
|
||||||
function Emit-TabularSection {
|
function Emit-TabularSection {
|
||||||
param([string]$indent, [string]$tsName, $columns, [string]$objectType, [string]$objectName, $tsSynonymArg = $null, $tsTooltip = $null, $tsComment = $null, $tsLineNumber = $null)
|
param([string]$indent, [string]$tsName, $columns, [string]$objectType, [string]$objectName, $tsSynonymArg = $null, $tsTooltip = $null, $tsComment = $null, $tsLineNumber = $null, $tsFillChecking = $null)
|
||||||
$uuid = New-Guid-String
|
$uuid = New-Guid-String
|
||||||
X "$indent<TabularSection uuid=`"$uuid`">"
|
X "$indent<TabularSection uuid=`"$uuid`">"
|
||||||
|
|
||||||
@@ -1738,8 +1747,13 @@ function Emit-TabularSection {
|
|||||||
Emit-MLText "$indent`t`t" "Synonym" $tsSynonym
|
Emit-MLText "$indent`t`t" "Synonym" $tsSynonym
|
||||||
if ($tsComment) { X "$indent`t`t<Comment>$(Esc-XmlText $tsComment)</Comment>" } else { X "$indent`t`t<Comment/>" }
|
if ($tsComment) { X "$indent`t`t<Comment>$(Esc-XmlText $tsComment)</Comment>" } else { X "$indent`t`t<Comment/>" }
|
||||||
Emit-MLText "$indent`t`t" "ToolTip" $tsTooltip
|
Emit-MLText "$indent`t`t" "ToolTip" $tsTooltip
|
||||||
X "$indent`t`t<FillChecking>DontCheck</FillChecking>"
|
$tsFc = if ($tsFillChecking) { "$tsFillChecking" } else { "DontCheck" }
|
||||||
Emit-TabularStandardAttributes "$indent`t`t" $tsLineNumber
|
X "$indent`t`t<FillChecking>$tsFc</FillChecking>"
|
||||||
|
# TS-блок стандартных реквизитов (LineNumber) эмитим ВСЕГДА, кроме подавления `lineNumber: ""` (дом-конвенция
|
||||||
|
# суппресса): ~6% ТЧ исторически опускают блок (правило не выводимо — Товары all-default его имеет, соседи нет).
|
||||||
|
if (-not ($tsLineNumber -is [string] -and $tsLineNumber -eq '')) {
|
||||||
|
Emit-TabularStandardAttributes "$indent`t`t" $tsLineNumber
|
||||||
|
}
|
||||||
# Use=ForItem у ТЧ иерархических ссылочных типов (Catalog, ChartOfCharacteristicTypes); Document не имеет Use.
|
# Use=ForItem у ТЧ иерархических ссылочных типов (Catalog, ChartOfCharacteristicTypes); Document не имеет Use.
|
||||||
if ($objectType -in @("Catalog", "ChartOfCharacteristicTypes")) {
|
if ($objectType -in @("Catalog", "ChartOfCharacteristicTypes")) {
|
||||||
X "$indent`t`t<Use>ForItem</Use>"
|
X "$indent`t`t<Use>ForItem</Use>"
|
||||||
@@ -1796,7 +1810,7 @@ function Emit-Dimension {
|
|||||||
X "$indent`t`t<Format/>"
|
X "$indent`t`t<Format/>"
|
||||||
X "$indent`t`t<EditFormat/>"
|
X "$indent`t`t<EditFormat/>"
|
||||||
X "$indent`t`t<ToolTip/>"
|
X "$indent`t`t<ToolTip/>"
|
||||||
X "$indent`t`t<MarkNegatives>false</MarkNegatives>"
|
X "$indent`t`t<MarkNegatives>$(if ($parsed.markNegatives -eq $true) { 'true' } else { 'false' })</MarkNegatives>"
|
||||||
X "$indent`t`t<Mask/>"
|
X "$indent`t`t<Mask/>"
|
||||||
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
||||||
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
||||||
@@ -1816,12 +1830,12 @@ function Emit-Dimension {
|
|||||||
if ($parsed.flags -contains "req") { $fillChecking = "ShowError" }
|
if ($parsed.flags -contains "req") { $fillChecking = "ShowError" }
|
||||||
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
||||||
|
|
||||||
X "$indent`t`t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>"
|
X "$indent`t`t<ChoiceFoldersAndItems>$(if ($parsed.choiceFoldersAndItems) { "$($parsed.choiceFoldersAndItems)" } else { 'Items' })</ChoiceFoldersAndItems>"
|
||||||
X "$indent`t`t<ChoiceParameterLinks/>"
|
X "$indent`t`t<ChoiceParameterLinks/>"
|
||||||
X "$indent`t`t<ChoiceParameters/>"
|
X "$indent`t`t<ChoiceParameters/>"
|
||||||
X "$indent`t`t<QuickChoice>Auto</QuickChoice>"
|
X "$indent`t`t<QuickChoice>Auto</QuickChoice>"
|
||||||
X "$indent`t`t<CreateOnInput>Auto</CreateOnInput>"
|
X "$indent`t`t<CreateOnInput>Auto</CreateOnInput>"
|
||||||
X "$indent`t`t<ChoiceForm/>"
|
if ($parsed.choiceForm) { X "$indent`t`t<ChoiceForm>$(Esc-Xml "$($parsed.choiceForm)")</ChoiceForm>" } else { X "$indent`t`t<ChoiceForm/>" }
|
||||||
X "$indent`t`t<LinkByType/>"
|
X "$indent`t`t<LinkByType/>"
|
||||||
X "$indent`t`t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>"
|
X "$indent`t`t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>"
|
||||||
|
|
||||||
@@ -1891,7 +1905,7 @@ function Emit-Resource {
|
|||||||
X "$indent`t`t<Format/>"
|
X "$indent`t`t<Format/>"
|
||||||
X "$indent`t`t<EditFormat/>"
|
X "$indent`t`t<EditFormat/>"
|
||||||
X "$indent`t`t<ToolTip/>"
|
X "$indent`t`t<ToolTip/>"
|
||||||
X "$indent`t`t<MarkNegatives>false</MarkNegatives>"
|
X "$indent`t`t<MarkNegatives>$(if ($parsed.markNegatives -eq $true) { 'true' } else { 'false' })</MarkNegatives>"
|
||||||
X "$indent`t`t<Mask/>"
|
X "$indent`t`t<Mask/>"
|
||||||
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
$multiLine = if ($parsed.multiLine -eq $true -or $parsed.flags -contains "multiline") { "true" } else { "false" }
|
||||||
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
X "$indent`t`t<MultiLine>$multiLine</MultiLine>"
|
||||||
@@ -1910,12 +1924,12 @@ function Emit-Resource {
|
|||||||
if ($parsed.flags -contains "req") { $fillChecking = "ShowError" }
|
if ($parsed.flags -contains "req") { $fillChecking = "ShowError" }
|
||||||
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
X "$indent`t`t<FillChecking>$fillChecking</FillChecking>"
|
||||||
|
|
||||||
X "$indent`t`t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>"
|
X "$indent`t`t<ChoiceFoldersAndItems>$(if ($parsed.choiceFoldersAndItems) { "$($parsed.choiceFoldersAndItems)" } else { 'Items' })</ChoiceFoldersAndItems>"
|
||||||
X "$indent`t`t<ChoiceParameterLinks/>"
|
X "$indent`t`t<ChoiceParameterLinks/>"
|
||||||
X "$indent`t`t<ChoiceParameters/>"
|
X "$indent`t`t<ChoiceParameters/>"
|
||||||
X "$indent`t`t<QuickChoice>Auto</QuickChoice>"
|
X "$indent`t`t<QuickChoice>Auto</QuickChoice>"
|
||||||
X "$indent`t`t<CreateOnInput>Auto</CreateOnInput>"
|
X "$indent`t`t<CreateOnInput>Auto</CreateOnInput>"
|
||||||
X "$indent`t`t<ChoiceForm/>"
|
if ($parsed.choiceForm) { X "$indent`t`t<ChoiceForm>$(Esc-Xml "$($parsed.choiceForm)")</ChoiceForm>" } else { X "$indent`t`t<ChoiceForm/>" }
|
||||||
X "$indent`t`t<LinkByType/>"
|
X "$indent`t`t<LinkByType/>"
|
||||||
X "$indent`t`t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>"
|
X "$indent`t`t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>"
|
||||||
|
|
||||||
@@ -2049,14 +2063,15 @@ function Emit-DocumentProperties {
|
|||||||
|
|
||||||
X "$i<Name>$(Esc-Xml $objName)</Name>"
|
X "$i<Name>$(Esc-Xml $objName)</Name>"
|
||||||
Emit-MLText $i "Synonym" $synonym
|
Emit-MLText $i "Synonym" $synonym
|
||||||
X "$i<Comment/>"
|
if ($def.comment) { X "$i<Comment>$(Esc-XmlText "$($def.comment)")</Comment>" } else { X "$i<Comment/>" }
|
||||||
X "$i<UseStandardCommands>true</UseStandardCommands>"
|
$useStdCmd = if (Get-BoolProp "useStandardCommands" $true) { "true" } else { "false" }
|
||||||
X "$i<Numerator/>"
|
X "$i<UseStandardCommands>$useStdCmd</UseStandardCommands>"
|
||||||
|
if ($def.numerator) { X "$i<Numerator>$(Esc-Xml "$($def.numerator)")</Numerator>" } else { X "$i<Numerator/>" }
|
||||||
|
|
||||||
$numberType = Get-EnumProp "NumberType" "numberType" "String"
|
$numberType = Get-EnumProp "NumberType" "numberType" "String"
|
||||||
$numberLength = if ($null -ne $def.numberLength) { "$($def.numberLength)" } else { "11" }
|
$numberLength = if ($null -ne $def.numberLength) { "$($def.numberLength)" } else { "11" }
|
||||||
$numberAllowedLength = Get-EnumProp "NumberAllowedLength" "numberAllowedLength" "Variable"
|
$numberAllowedLength = Get-EnumProp "NumberAllowedLength" "numberAllowedLength" "Variable"
|
||||||
$numberPeriodicity = if ($def.numberPeriodicity) { "$($def.numberPeriodicity)" } else { "Year" }
|
$numberPeriodicity = Get-EnumProp "NumberPeriodicity" "numberPeriodicity" "Year"
|
||||||
$checkUnique = if ($def.checkUnique -eq $false) { "false" } else { "true" }
|
$checkUnique = if ($def.checkUnique -eq $false) { "false" } else { "true" }
|
||||||
$autonumbering = if ($def.autonumbering -eq $false) { "false" } else { "true" }
|
$autonumbering = if ($def.autonumbering -eq $false) { "false" } else { "true" }
|
||||||
|
|
||||||
@@ -2068,87 +2083,77 @@ function Emit-DocumentProperties {
|
|||||||
X "$i<Autonumbering>$autonumbering</Autonumbering>"
|
X "$i<Autonumbering>$autonumbering</Autonumbering>"
|
||||||
|
|
||||||
Emit-StandardAttributes $i "Document"
|
Emit-StandardAttributes $i "Document"
|
||||||
X "$i<Characteristics/>"
|
Emit-Characteristics $i $def.characteristics
|
||||||
|
Emit-BasedOn $i $def.basedOn
|
||||||
|
|
||||||
X "$i<BasedOn/>"
|
# InputByString: override `inputByString` ЛИБО дефолт [Номер].
|
||||||
X "$i<InputByString>"
|
if (Test-DefKey 'inputByString') {
|
||||||
X "$i`t<xr:Field>Document.$objName.StandardAttribute.Number</xr:Field>"
|
$ibFields = @($def.inputByString | ForEach-Object { Expand-DataPath "$_" })
|
||||||
X "$i</InputByString>"
|
} else {
|
||||||
X "$i<CreateOnInput>DontUse</CreateOnInput>"
|
$ibFields = @("Document.$objName.StandardAttribute.Number")
|
||||||
X "$i<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>"
|
}
|
||||||
|
Emit-FieldBlock $i "InputByString" $ibFields
|
||||||
|
X "$i<CreateOnInput>$(Get-EnumProp 'CreateOnInput' 'createOnInput' 'Use')</CreateOnInput>"
|
||||||
|
X "$i<SearchStringModeOnInputByString>$(Get-EnumProp 'SearchStringModeOnInputByString' 'searchStringModeOnInputByString' 'Begin')</SearchStringModeOnInputByString>"
|
||||||
X "$i<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>"
|
X "$i<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>"
|
||||||
X "$i<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>"
|
X "$i<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>"
|
||||||
X "$i<DefaultObjectForm/>"
|
Emit-FormRef $i "DefaultObjectForm" $def.defaultObjectForm
|
||||||
X "$i<DefaultListForm/>"
|
Emit-FormRef $i "DefaultListForm" $def.defaultListForm
|
||||||
X "$i<DefaultChoiceForm/>"
|
Emit-FormRef $i "DefaultChoiceForm" $def.defaultChoiceForm
|
||||||
X "$i<AuxiliaryObjectForm/>"
|
Emit-FormRef $i "AuxiliaryObjectForm" $def.auxiliaryObjectForm
|
||||||
X "$i<AuxiliaryListForm/>"
|
Emit-FormRef $i "AuxiliaryListForm" $def.auxiliaryListForm
|
||||||
X "$i<AuxiliaryChoiceForm/>"
|
Emit-FormRef $i "AuxiliaryChoiceForm" $def.auxiliaryChoiceForm
|
||||||
|
|
||||||
$posting = Get-EnumProp "Posting" "posting" "Allow"
|
X "$i<Posting>$(Get-EnumProp 'Posting' 'posting' 'Allow')</Posting>"
|
||||||
$realTimePosting = Get-EnumProp "RealTimePosting" "realTimePosting" "Deny"
|
X "$i<RealTimePosting>$(Get-EnumProp 'RealTimePosting' 'realTimePosting' 'Deny')</RealTimePosting>"
|
||||||
$registerRecordsDeletion = Get-EnumProp "RegisterRecordsDeletion" "registerRecordsDeletion" "AutoDelete"
|
X "$i<RegisterRecordsDeletion>$(Get-EnumProp 'RegisterRecordsDeletion' 'registerRecordsDeletion' 'AutoDelete')</RegisterRecordsDeletion>"
|
||||||
$registerRecordsWritingOnPost = Get-EnumProp "RegisterRecordsWritingOnPost" "registerRecordsWritingOnPost" "WriteModified"
|
X "$i<RegisterRecordsWritingOnPost>$(Get-EnumProp 'RegisterRecordsWritingOnPost' 'registerRecordsWritingOnPost' 'WriteSelected')</RegisterRecordsWritingOnPost>"
|
||||||
$sequenceFilling = if ($def.sequenceFilling) { "$($def.sequenceFilling)" } else { "AutoFill" }
|
X "$i<SequenceFilling>$(Get-EnumProp 'SequenceFilling' 'sequenceFilling' 'AutoFill')</SequenceFilling>"
|
||||||
$postInPrivilegedMode = if ($def.postInPrivilegedMode -eq $false) { "false" } else { "true" }
|
|
||||||
$unpostInPrivilegedMode = if ($def.unpostInPrivilegedMode -eq $false) { "false" } else { "true" }
|
|
||||||
|
|
||||||
X "$i<Posting>$posting</Posting>"
|
# RegisterRecords — движения (список MDObjectRef, синонимы типов резолвятся).
|
||||||
X "$i<RealTimePosting>$realTimePosting</RealTimePosting>"
|
|
||||||
X "$i<RegisterRecordsDeletion>$registerRecordsDeletion</RegisterRecordsDeletion>"
|
|
||||||
X "$i<RegisterRecordsWritingOnPost>$registerRecordsWritingOnPost</RegisterRecordsWritingOnPost>"
|
|
||||||
X "$i<SequenceFilling>$sequenceFilling</SequenceFilling>"
|
|
||||||
|
|
||||||
# RegisterRecords
|
|
||||||
$regRecords = @()
|
$regRecords = @()
|
||||||
if ($def.registerRecords) {
|
if ($def.registerRecords) {
|
||||||
foreach ($rr in $def.registerRecords) {
|
foreach ($rr in $def.registerRecords) {
|
||||||
$rrStr = "$rr"
|
$rrStr = "$rr"
|
||||||
# Resolve Russian synonyms in register records
|
|
||||||
if ($rrStr.Contains('.')) {
|
if ($rrStr.Contains('.')) {
|
||||||
$dotIdx = $rrStr.IndexOf('.')
|
$dotIdx = $rrStr.IndexOf('.')
|
||||||
$rrPrefix = $rrStr.Substring(0, $dotIdx)
|
$rrPrefix = $rrStr.Substring(0, $dotIdx)
|
||||||
$rrSuffix = $rrStr.Substring($dotIdx + 1)
|
$rrSuffix = $rrStr.Substring($dotIdx + 1)
|
||||||
if ($script:objectTypeSynonyms.ContainsKey($rrPrefix)) {
|
if ($script:objectTypeSynonyms.ContainsKey($rrPrefix)) { $rrPrefix = $script:objectTypeSynonyms[$rrPrefix] }
|
||||||
$rrPrefix = $script:objectTypeSynonyms[$rrPrefix]
|
|
||||||
}
|
|
||||||
$regRecords += "$rrPrefix.$rrSuffix"
|
$regRecords += "$rrPrefix.$rrSuffix"
|
||||||
} else {
|
} else { $regRecords += $rrStr }
|
||||||
$regRecords += $rrStr
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($regRecords.Count -gt 0) {
|
if ($regRecords.Count -gt 0) {
|
||||||
X "$i<RegisterRecords>"
|
X "$i<RegisterRecords>"
|
||||||
foreach ($rr in $regRecords) {
|
foreach ($rr in $regRecords) { X "$i`t<xr:Item xsi:type=`"xr:MDObjectRef`">$rr</xr:Item>" }
|
||||||
X "$i`t<xr:Item xsi:type=`"xr:MDObjectRef`">$rr</xr:Item>"
|
|
||||||
}
|
|
||||||
X "$i</RegisterRecords>"
|
X "$i</RegisterRecords>"
|
||||||
} else {
|
} else {
|
||||||
X "$i<RegisterRecords/>"
|
X "$i<RegisterRecords/>"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$postInPrivilegedMode = if ($def.postInPrivilegedMode -eq $false) { "false" } else { "true" }
|
||||||
|
$unpostInPrivilegedMode = if ($def.unpostInPrivilegedMode -eq $false) { "false" } else { "true" }
|
||||||
X "$i<PostInPrivilegedMode>$postInPrivilegedMode</PostInPrivilegedMode>"
|
X "$i<PostInPrivilegedMode>$postInPrivilegedMode</PostInPrivilegedMode>"
|
||||||
X "$i<UnpostInPrivilegedMode>$unpostInPrivilegedMode</UnpostInPrivilegedMode>"
|
X "$i<UnpostInPrivilegedMode>$unpostInPrivilegedMode</UnpostInPrivilegedMode>"
|
||||||
X "$i<IncludeHelpInContents>false</IncludeHelpInContents>"
|
$inclHelp = if (Get-BoolProp "includeHelpInContents" $false) { "true" } else { "false" }
|
||||||
X "$i<DataLockFields/>"
|
X "$i<IncludeHelpInContents>$inclHelp</IncludeHelpInContents>"
|
||||||
|
$dlFields = if (Test-DefKey 'dataLockFields') { @($def.dataLockFields | ForEach-Object { Expand-DataPath "$_" }) } else { @() }
|
||||||
$dataLockControlMode = Get-EnumProp "DataLockControlMode" "dataLockControlMode" "Automatic"
|
Emit-FieldBlock $i "DataLockFields" $dlFields
|
||||||
X "$i<DataLockControlMode>$dataLockControlMode</DataLockControlMode>"
|
X "$i<DataLockControlMode>$(Get-EnumProp 'DataLockControlMode' 'dataLockControlMode' 'Managed')</DataLockControlMode>"
|
||||||
|
X "$i<FullTextSearch>$(Get-EnumProp 'FullTextSearch' 'fullTextSearch' 'Use')</FullTextSearch>"
|
||||||
$fullTextSearch = Get-EnumProp "FullTextSearch" "fullTextSearch" "Use"
|
|
||||||
X "$i<FullTextSearch>$fullTextSearch</FullTextSearch>"
|
|
||||||
|
|
||||||
Emit-MLText $i "ObjectPresentation" $def.objectPresentation
|
Emit-MLText $i "ObjectPresentation" $def.objectPresentation
|
||||||
Emit-MLText $i "ExtendedObjectPresentation" $def.extendedObjectPresentation
|
Emit-MLText $i "ExtendedObjectPresentation" $def.extendedObjectPresentation
|
||||||
Emit-MLText $i "ListPresentation" $def.listPresentation
|
Emit-MLText $i "ListPresentation" $def.listPresentation
|
||||||
Emit-MLText $i "ExtendedListPresentation" $def.extendedListPresentation
|
Emit-MLText $i "ExtendedListPresentation" $def.extendedListPresentation
|
||||||
Emit-MLText $i "Explanation" $def.explanation
|
Emit-MLText $i "Explanation" $def.explanation
|
||||||
X "$i<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>"
|
X "$i<ChoiceHistoryOnInput>$(Get-EnumProp 'ChoiceHistoryOnInput' 'choiceHistoryOnInput' 'Auto')</ChoiceHistoryOnInput>"
|
||||||
X "$i<DataHistory>DontUse</DataHistory>"
|
X "$i<DataHistory>$(Get-EnumProp 'DataHistory' 'dataHistory' 'DontUse')</DataHistory>"
|
||||||
X "$i<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>"
|
$updDH = if (Get-BoolProp "updateDataHistoryImmediatelyAfterWrite" $false) { "true" } else { "false" }
|
||||||
X "$i<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>"
|
X "$i<UpdateDataHistoryImmediatelyAfterWrite>$updDH</UpdateDataHistoryImmediatelyAfterWrite>"
|
||||||
|
$execDH = if (Get-BoolProp "executeAfterWriteDataHistoryVersionProcessing" $false) { "true" } else { "false" }
|
||||||
|
X "$i<ExecuteAfterWriteDataHistoryVersionProcessing>$execDH</ExecuteAfterWriteDataHistoryVersionProcessing>"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Emit-EnumProperties {
|
function Emit-EnumProperties {
|
||||||
@@ -3531,10 +3536,10 @@ if ($objType -in $typesWithAttrTS) {
|
|||||||
# Нормализуем в $tsSections[name] = @{ columns; synonym; tooltip; comment }.
|
# Нормализуем в $tsSections[name] = @{ columns; synonym; tooltip; comment }.
|
||||||
function New-TsEntry { param($val)
|
function New-TsEntry { param($val)
|
||||||
if ($val -is [array] -or $val.GetType().Name -eq 'Object[]') {
|
if ($val -is [array] -or $val.GetType().Name -eq 'Object[]') {
|
||||||
return @{ columns = @($val); synonym = $null; tooltip = $null; comment = $null; lineNumber = $null }
|
return @{ columns = @($val); synonym = $null; tooltip = $null; comment = $null; lineNumber = $null; fillChecking = $null }
|
||||||
}
|
}
|
||||||
$cols = if ($val.attributes) { @($val.attributes) } elseif ($val.columns) { @($val.columns) } else { @() }
|
$cols = if ($val.attributes) { @($val.attributes) } elseif ($val.columns) { @($val.columns) } else { @() }
|
||||||
return @{ columns = $cols; synonym = $val.synonym; tooltip = $val.tooltip; comment = if ($val.comment) { "$($val.comment)" } else { $null }; lineNumber = $val.lineNumber }
|
return @{ columns = $cols; synonym = $val.synonym; tooltip = $val.tooltip; comment = if ($val.comment) { "$($val.comment)" } else { $null }; lineNumber = $val.lineNumber; fillChecking = $val.fillChecking }
|
||||||
}
|
}
|
||||||
if ($def.tabularSections -is [array] -or $def.tabularSections.GetType().Name -eq "Object[]") {
|
if ($def.tabularSections -is [array] -or $def.tabularSections.GetType().Name -eq "Object[]") {
|
||||||
foreach ($ts in $def.tabularSections) { $tsSections[$ts.name] = New-TsEntry $ts }
|
foreach ($ts in $def.tabularSections) { $tsSections[$ts.name] = New-TsEntry $ts }
|
||||||
@@ -3584,7 +3589,7 @@ if ($objType -in $typesWithAttrTS) {
|
|||||||
}
|
}
|
||||||
foreach ($tsName in $tsSections.Keys) {
|
foreach ($tsName in $tsSections.Keys) {
|
||||||
$tsE = $tsSections[$tsName]
|
$tsE = $tsSections[$tsName]
|
||||||
Emit-TabularSection "`t`t`t" $tsName $tsE.columns $objType $objName $tsE.synonym $tsE.tooltip $tsE.comment $tsE.lineNumber
|
Emit-TabularSection "`t`t`t" $tsName $tsE.columns $objType $objName $tsE.synonym $tsE.tooltip $tsE.comment $tsE.lineNumber $tsE.fillChecking
|
||||||
}
|
}
|
||||||
foreach ($af in $acctFlags) {
|
foreach ($af in $acctFlags) {
|
||||||
Emit-Attribute "`t`t`t" $af "account-flag" "AccountingFlag"
|
Emit-Attribute "`t`t`t" $af "account-flag" "AccountingFlag"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# meta-compile v1.42 — Compile 1C metadata object from JSON
|
# meta-compile v1.43 — Compile 1C metadata object from JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -855,6 +855,9 @@ def parse_attribute_shorthand(val):
|
|||||||
'editFormat': val.get('editFormat'),
|
'editFormat': val.get('editFormat'),
|
||||||
'mask': str(val['mask']) if val.get('mask') else '',
|
'mask': str(val['mask']) if val.get('mask') else '',
|
||||||
'extendedEdit': True if val.get('extendedEdit') is True else False,
|
'extendedEdit': True if val.get('extendedEdit') is True else False,
|
||||||
|
'markNegatives': True if val.get('markNegatives') is True else False,
|
||||||
|
'choiceForm': str(val['choiceForm']) if val.get('choiceForm') else '',
|
||||||
|
'choiceFoldersAndItems': str(val['choiceFoldersAndItems']) if val.get('choiceFoldersAndItems') else '',
|
||||||
'minValue': val.get('minValue'),
|
'minValue': val.get('minValue'),
|
||||||
'maxValue': val.get('maxValue'),
|
'maxValue': val.get('maxValue'),
|
||||||
'hasFillValue': ('fillValue' in val),
|
'hasFillValue': ('fillValue' in val),
|
||||||
@@ -1075,6 +1078,10 @@ std_attr_profile = {
|
|||||||
'ChartOfCalculationTypes': {
|
'ChartOfCalculationTypes': {
|
||||||
'Description': {'FillChecking': 'ShowError'},
|
'Description': {'FillChecking': 'ShowError'},
|
||||||
},
|
},
|
||||||
|
# Document: Дата → FillChecking=ShowError (974/1010 доков acc+erp; дата обязательна).
|
||||||
|
'Document': {
|
||||||
|
'Date': {'FillChecking': 'ShowError'},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
# ov — dict переопределений (профиль + DSL): FillChecking, FillFromFillingValue, Synonym,
|
# ov — dict переопределений (профиль + DSL): FillChecking, FillFromFillingValue, Synonym,
|
||||||
@@ -1140,7 +1147,7 @@ def emit_standard_attribute(indent, attr_name, ov=None):
|
|||||||
# Единый эмиттер блока StandardAttributes — поведение правят ДАННЫЕ, не форк кода (см. коммент в .ps1).
|
# Единый эмиттер блока StandardAttributes — поведение правят ДАННЫЕ, не форк кода (см. коммент в .ps1).
|
||||||
# std_attr_conditional_types: типы, где блок только при кастомизации (DSL-ключ standardAttributes).
|
# std_attr_conditional_types: типы, где блок только при кастомизации (DSL-ключ standardAttributes).
|
||||||
# Прочие типы → блок всегда (текущее поведение). Миграция типа = +строчка в оба справочника + снэпшоты.
|
# Прочие типы → блок всегда (текущее поведение). Миграция типа = +строчка в оба справочника + снэпшоты.
|
||||||
std_attr_conditional_types = {'Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes'}
|
std_attr_conditional_types = {'Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Document'}
|
||||||
def emit_standard_attributes(indent, object_type):
|
def emit_standard_attributes(indent, object_type):
|
||||||
attrs = standard_attributes_by_type.get(object_type)
|
attrs = standard_attributes_by_type.get(object_type)
|
||||||
if not attrs:
|
if not attrs:
|
||||||
@@ -1181,6 +1188,10 @@ def emit_standard_attributes(indent, object_type):
|
|||||||
ov['Comment'] = str(d['comment'])
|
ov['Comment'] = str(d['comment'])
|
||||||
if d.get('mask'):
|
if d.get('mask'):
|
||||||
ov['Mask'] = str(d['mask'])
|
ov['Mask'] = str(d['mask'])
|
||||||
|
if d.get('format') is not None:
|
||||||
|
ov['Format'] = d['format'] # строка ИЛИ {ru,en}
|
||||||
|
if d.get('editFormat') is not None:
|
||||||
|
ov['EditFormat'] = d['editFormat']
|
||||||
if d.get('choiceForm'):
|
if d.get('choiceForm'):
|
||||||
ov['ChoiceForm'] = str(d['choiceForm'])
|
ov['ChoiceForm'] = str(d['choiceForm'])
|
||||||
emit_standard_attribute(f'{indent}\t', a, ov)
|
emit_standard_attribute(f'{indent}\t', a, ov)
|
||||||
@@ -1650,7 +1661,7 @@ def emit_attribute(indent, parsed, context, elem_tag='Attribute'):
|
|||||||
emit_mltext(f'{indent}\t\t', 'Format', parsed.get('format'))
|
emit_mltext(f'{indent}\t\t', 'Format', parsed.get('format'))
|
||||||
emit_mltext(f'{indent}\t\t', 'EditFormat', parsed.get('editFormat'))
|
emit_mltext(f'{indent}\t\t', 'EditFormat', parsed.get('editFormat'))
|
||||||
emit_mltext(f'{indent}\t\t', 'ToolTip', parsed.get('tooltip'))
|
emit_mltext(f'{indent}\t\t', 'ToolTip', parsed.get('tooltip'))
|
||||||
X(f'{indent}\t\t<MarkNegatives>false</MarkNegatives>')
|
X(f'{indent}\t\t<MarkNegatives>{"true" if parsed.get("markNegatives") is True else "false"}</MarkNegatives>')
|
||||||
if parsed.get('mask'):
|
if parsed.get('mask'):
|
||||||
X(f'{indent}\t\t<Mask>{esc_xml_text(parsed["mask"])}</Mask>')
|
X(f'{indent}\t\t<Mask>{esc_xml_text(parsed["mask"])}</Mask>')
|
||||||
else:
|
else:
|
||||||
@@ -1674,12 +1685,12 @@ def emit_attribute(indent, parsed, context, elem_tag='Attribute'):
|
|||||||
if parsed.get('fillChecking'):
|
if parsed.get('fillChecking'):
|
||||||
fill_checking = parsed['fillChecking']
|
fill_checking = parsed['fillChecking']
|
||||||
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
||||||
X(f'{indent}\t\t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>')
|
X(f'{indent}\t\t<ChoiceFoldersAndItems>{parsed.get("choiceFoldersAndItems") or "Items"}</ChoiceFoldersAndItems>')
|
||||||
emit_choice_parameter_links(f'{indent}\t\t', parsed.get('choiceParameterLinks'))
|
emit_choice_parameter_links(f'{indent}\t\t', parsed.get('choiceParameterLinks'))
|
||||||
emit_choice_parameters(f'{indent}\t\t', parsed.get('choiceParameters'))
|
emit_choice_parameters(f'{indent}\t\t', parsed.get('choiceParameters'))
|
||||||
X(f'{indent}\t\t<QuickChoice>{parsed.get("quickChoice") or "Auto"}</QuickChoice>')
|
X(f'{indent}\t\t<QuickChoice>{parsed.get("quickChoice") or "Auto"}</QuickChoice>')
|
||||||
X(f'{indent}\t\t<CreateOnInput>{parsed.get("createOnInput") or "Auto"}</CreateOnInput>')
|
X(f'{indent}\t\t<CreateOnInput>{parsed.get("createOnInput") or "Auto"}</CreateOnInput>')
|
||||||
X(f'{indent}\t\t<ChoiceForm/>')
|
X(f'{indent}\t\t<ChoiceForm>{esc_xml(str(parsed["choiceForm"]))}</ChoiceForm>' if parsed.get('choiceForm') else f'{indent}\t\t<ChoiceForm/>')
|
||||||
emit_link_by_type(f'{indent}\t\t', parsed.get('linkByType'))
|
emit_link_by_type(f'{indent}\t\t', parsed.get('linkByType'))
|
||||||
chi = parsed.get('choiceHistoryOnInput') or 'Auto'
|
chi = parsed.get('choiceHistoryOnInput') or 'Auto'
|
||||||
X(f'{indent}\t\t<ChoiceHistoryOnInput>{chi}</ChoiceHistoryOnInput>')
|
X(f'{indent}\t\t<ChoiceHistoryOnInput>{chi}</ChoiceHistoryOnInput>')
|
||||||
@@ -1770,7 +1781,7 @@ def emit_command(indent, cmd_name, cmd):
|
|||||||
X(f'{indent}\t</Properties>')
|
X(f'{indent}\t</Properties>')
|
||||||
X(f'{indent}</Command>')
|
X(f'{indent}</Command>')
|
||||||
|
|
||||||
def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_synonym_arg=None, ts_tooltip=None, ts_comment=None, ts_line_number=None):
|
def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_synonym_arg=None, ts_tooltip=None, ts_comment=None, ts_line_number=None, ts_fill_checking=None):
|
||||||
uid = new_uuid()
|
uid = new_uuid()
|
||||||
X(f'{indent}<TabularSection uuid="{uid}">')
|
X(f'{indent}<TabularSection uuid="{uid}">')
|
||||||
type_prefix = f'{object_type}TabularSection'
|
type_prefix = f'{object_type}TabularSection'
|
||||||
@@ -1794,8 +1805,11 @@ def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_
|
|||||||
else:
|
else:
|
||||||
X(f'{indent}\t\t<Comment/>')
|
X(f'{indent}\t\t<Comment/>')
|
||||||
emit_mltext(f'{indent}\t\t', 'ToolTip', ts_tooltip)
|
emit_mltext(f'{indent}\t\t', 'ToolTip', ts_tooltip)
|
||||||
X(f'{indent}\t\t<FillChecking>DontCheck</FillChecking>')
|
X(f'{indent}\t\t<FillChecking>{ts_fill_checking if ts_fill_checking else "DontCheck"}</FillChecking>')
|
||||||
emit_tabular_standard_attributes(f'{indent}\t\t', ts_line_number)
|
# TS-блок стандартных реквизитов (LineNumber) эмитим ВСЕГДА, кроме подавления `lineNumber: ""` (дом-конвенция
|
||||||
|
# суппресса): ~6% ТЧ исторически опускают блок (правило не выводимо — Товары all-default его имеет, соседи нет).
|
||||||
|
if not (isinstance(ts_line_number, str) and ts_line_number == ''):
|
||||||
|
emit_tabular_standard_attributes(f'{indent}\t\t', ts_line_number)
|
||||||
if object_type in ('Catalog', 'ChartOfCharacteristicTypes'):
|
if object_type in ('Catalog', 'ChartOfCharacteristicTypes'):
|
||||||
X(f'{indent}\t\t<Use>ForItem</Use>')
|
X(f'{indent}\t\t<Use>ForItem</Use>')
|
||||||
X(f'{indent}\t</Properties>')
|
X(f'{indent}\t</Properties>')
|
||||||
@@ -1843,7 +1857,7 @@ def emit_dimension(indent, parsed, register_type):
|
|||||||
X(f'{indent}\t\t<Format/>')
|
X(f'{indent}\t\t<Format/>')
|
||||||
X(f'{indent}\t\t<EditFormat/>')
|
X(f'{indent}\t\t<EditFormat/>')
|
||||||
X(f'{indent}\t\t<ToolTip/>')
|
X(f'{indent}\t\t<ToolTip/>')
|
||||||
X(f'{indent}\t\t<MarkNegatives>false</MarkNegatives>')
|
X(f'{indent}\t\t<MarkNegatives>{"true" if parsed.get("markNegatives") is True else "false"}</MarkNegatives>')
|
||||||
X(f'{indent}\t\t<Mask/>')
|
X(f'{indent}\t\t<Mask/>')
|
||||||
multi_line = 'true' if (parsed.get('multiLine') is True or 'multiline' in parsed.get('flags', [])) else 'false'
|
multi_line = 'true' if (parsed.get('multiLine') is True or 'multiline' in parsed.get('flags', [])) else 'false'
|
||||||
X(f'{indent}\t\t<MultiLine>{multi_line}</MultiLine>')
|
X(f'{indent}\t\t<MultiLine>{multi_line}</MultiLine>')
|
||||||
@@ -1860,12 +1874,12 @@ def emit_dimension(indent, parsed, register_type):
|
|||||||
if 'req' in flags:
|
if 'req' in flags:
|
||||||
fill_checking = 'ShowError'
|
fill_checking = 'ShowError'
|
||||||
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
||||||
X(f'{indent}\t\t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>')
|
X(f'{indent}\t\t<ChoiceFoldersAndItems>{parsed.get("choiceFoldersAndItems") or "Items"}</ChoiceFoldersAndItems>')
|
||||||
X(f'{indent}\t\t<ChoiceParameterLinks/>')
|
X(f'{indent}\t\t<ChoiceParameterLinks/>')
|
||||||
X(f'{indent}\t\t<ChoiceParameters/>')
|
X(f'{indent}\t\t<ChoiceParameters/>')
|
||||||
X(f'{indent}\t\t<QuickChoice>Auto</QuickChoice>')
|
X(f'{indent}\t\t<QuickChoice>Auto</QuickChoice>')
|
||||||
X(f'{indent}\t\t<CreateOnInput>Auto</CreateOnInput>')
|
X(f'{indent}\t\t<CreateOnInput>Auto</CreateOnInput>')
|
||||||
X(f'{indent}\t\t<ChoiceForm/>')
|
X(f'{indent}\t\t<ChoiceForm>{esc_xml(str(parsed["choiceForm"]))}</ChoiceForm>' if parsed.get('choiceForm') else f'{indent}\t\t<ChoiceForm/>')
|
||||||
X(f'{indent}\t\t<LinkByType/>')
|
X(f'{indent}\t\t<LinkByType/>')
|
||||||
X(f'{indent}\t\t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>')
|
X(f'{indent}\t\t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>')
|
||||||
if register_type == 'InformationRegister':
|
if register_type == 'InformationRegister':
|
||||||
@@ -1918,7 +1932,7 @@ def emit_resource(indent, parsed, register_type):
|
|||||||
X(f'{indent}\t\t<Format/>')
|
X(f'{indent}\t\t<Format/>')
|
||||||
X(f'{indent}\t\t<EditFormat/>')
|
X(f'{indent}\t\t<EditFormat/>')
|
||||||
X(f'{indent}\t\t<ToolTip/>')
|
X(f'{indent}\t\t<ToolTip/>')
|
||||||
X(f'{indent}\t\t<MarkNegatives>false</MarkNegatives>')
|
X(f'{indent}\t\t<MarkNegatives>{"true" if parsed.get("markNegatives") is True else "false"}</MarkNegatives>')
|
||||||
X(f'{indent}\t\t<Mask/>')
|
X(f'{indent}\t\t<Mask/>')
|
||||||
multi_line = 'true' if (parsed.get('multiLine') is True or 'multiline' in parsed.get('flags', [])) else 'false'
|
multi_line = 'true' if (parsed.get('multiLine') is True or 'multiline' in parsed.get('flags', [])) else 'false'
|
||||||
X(f'{indent}\t\t<MultiLine>{multi_line}</MultiLine>')
|
X(f'{indent}\t\t<MultiLine>{multi_line}</MultiLine>')
|
||||||
@@ -1934,12 +1948,12 @@ def emit_resource(indent, parsed, register_type):
|
|||||||
if 'req' in flags:
|
if 'req' in flags:
|
||||||
fill_checking = 'ShowError'
|
fill_checking = 'ShowError'
|
||||||
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
X(f'{indent}\t\t<FillChecking>{fill_checking}</FillChecking>')
|
||||||
X(f'{indent}\t\t<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>')
|
X(f'{indent}\t\t<ChoiceFoldersAndItems>{parsed.get("choiceFoldersAndItems") or "Items"}</ChoiceFoldersAndItems>')
|
||||||
X(f'{indent}\t\t<ChoiceParameterLinks/>')
|
X(f'{indent}\t\t<ChoiceParameterLinks/>')
|
||||||
X(f'{indent}\t\t<ChoiceParameters/>')
|
X(f'{indent}\t\t<ChoiceParameters/>')
|
||||||
X(f'{indent}\t\t<QuickChoice>Auto</QuickChoice>')
|
X(f'{indent}\t\t<QuickChoice>Auto</QuickChoice>')
|
||||||
X(f'{indent}\t\t<CreateOnInput>Auto</CreateOnInput>')
|
X(f'{indent}\t\t<CreateOnInput>Auto</CreateOnInput>')
|
||||||
X(f'{indent}\t\t<ChoiceForm/>')
|
X(f'{indent}\t\t<ChoiceForm>{esc_xml(str(parsed["choiceForm"]))}</ChoiceForm>' if parsed.get('choiceForm') else f'{indent}\t\t<ChoiceForm/>')
|
||||||
X(f'{indent}\t\t<LinkByType/>')
|
X(f'{indent}\t\t<LinkByType/>')
|
||||||
X(f'{indent}\t\t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>')
|
X(f'{indent}\t\t<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>')
|
||||||
if register_type == 'InformationRegister':
|
if register_type == 'InformationRegister':
|
||||||
@@ -2057,13 +2071,20 @@ def emit_document_properties(indent):
|
|||||||
i = indent
|
i = indent
|
||||||
X(f'{i}<Name>{esc_xml(obj_name)}</Name>')
|
X(f'{i}<Name>{esc_xml(obj_name)}</Name>')
|
||||||
emit_mltext(i, 'Synonym', synonym)
|
emit_mltext(i, 'Synonym', synonym)
|
||||||
X(f'{i}<Comment/>')
|
if defn.get('comment'):
|
||||||
X(f'{i}<UseStandardCommands>true</UseStandardCommands>')
|
X(f'{i}<Comment>{esc_xml_text(str(defn["comment"]))}</Comment>')
|
||||||
X(f'{i}<Numerator/>')
|
else:
|
||||||
|
X(f'{i}<Comment/>')
|
||||||
|
use_std_cmd = 'true' if get_bool_prop('useStandardCommands', True) else 'false'
|
||||||
|
X(f'{i}<UseStandardCommands>{use_std_cmd}</UseStandardCommands>')
|
||||||
|
if defn.get('numerator'):
|
||||||
|
X(f'{i}<Numerator>{esc_xml(str(defn["numerator"]))}</Numerator>')
|
||||||
|
else:
|
||||||
|
X(f'{i}<Numerator/>')
|
||||||
number_type = get_enum_prop('NumberType', 'numberType', 'String')
|
number_type = get_enum_prop('NumberType', 'numberType', 'String')
|
||||||
number_length = str(defn['numberLength']) if defn.get('numberLength') is not None else '11'
|
number_length = str(defn['numberLength']) if defn.get('numberLength') is not None else '11'
|
||||||
number_allowed_length = get_enum_prop('NumberAllowedLength', 'numberAllowedLength', 'Variable')
|
number_allowed_length = get_enum_prop('NumberAllowedLength', 'numberAllowedLength', 'Variable')
|
||||||
number_periodicity = get_enum_prop('InformationRegisterPeriodicity', 'numberPeriodicity', 'Year')
|
number_periodicity = get_enum_prop('NumberPeriodicity', 'numberPeriodicity', 'Year')
|
||||||
check_unique = 'false' if defn.get('checkUnique') is False else 'true'
|
check_unique = 'false' if defn.get('checkUnique') is False else 'true'
|
||||||
autonumbering = 'false' if defn.get('autonumbering') is False else 'true'
|
autonumbering = 'false' if defn.get('autonumbering') is False else 'true'
|
||||||
X(f'{i}<NumberType>{number_type}</NumberType>')
|
X(f'{i}<NumberType>{number_type}</NumberType>')
|
||||||
@@ -2073,34 +2094,30 @@ def emit_document_properties(indent):
|
|||||||
X(f'{i}<CheckUnique>{check_unique}</CheckUnique>')
|
X(f'{i}<CheckUnique>{check_unique}</CheckUnique>')
|
||||||
X(f'{i}<Autonumbering>{autonumbering}</Autonumbering>')
|
X(f'{i}<Autonumbering>{autonumbering}</Autonumbering>')
|
||||||
emit_standard_attributes(i, 'Document')
|
emit_standard_attributes(i, 'Document')
|
||||||
X(f'{i}<Characteristics/>')
|
emit_characteristics(i, defn.get('characteristics'))
|
||||||
X(f'{i}<BasedOn/>')
|
emit_based_on(i, defn.get('basedOn'))
|
||||||
X(f'{i}<InputByString>')
|
# InputByString: override `inputByString` ЛИБО дефолт [Номер].
|
||||||
X(f'{i}\t<xr:Field>Document.{obj_name}.StandardAttribute.Number</xr:Field>')
|
if 'inputByString' in defn:
|
||||||
X(f'{i}</InputByString>')
|
ib_fields = [expand_data_path(str(x)) for x in (defn.get('inputByString') or [])]
|
||||||
X(f'{i}<CreateOnInput>DontUse</CreateOnInput>')
|
else:
|
||||||
X(f'{i}<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>')
|
ib_fields = [f'Document.{obj_name}.StandardAttribute.Number']
|
||||||
|
emit_field_block(i, 'InputByString', ib_fields)
|
||||||
|
X(f'{i}<CreateOnInput>{get_enum_prop("CreateOnInput", "createOnInput", "Use")}</CreateOnInput>')
|
||||||
|
X(f'{i}<SearchStringModeOnInputByString>{get_enum_prop("SearchStringModeOnInputByString", "searchStringModeOnInputByString", "Begin")}</SearchStringModeOnInputByString>')
|
||||||
X(f'{i}<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>')
|
X(f'{i}<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>')
|
||||||
X(f'{i}<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>')
|
X(f'{i}<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>')
|
||||||
X(f'{i}<DefaultObjectForm/>')
|
emit_form_ref(i, 'DefaultObjectForm', defn.get('defaultObjectForm'))
|
||||||
X(f'{i}<DefaultListForm/>')
|
emit_form_ref(i, 'DefaultListForm', defn.get('defaultListForm'))
|
||||||
X(f'{i}<DefaultChoiceForm/>')
|
emit_form_ref(i, 'DefaultChoiceForm', defn.get('defaultChoiceForm'))
|
||||||
X(f'{i}<AuxiliaryObjectForm/>')
|
emit_form_ref(i, 'AuxiliaryObjectForm', defn.get('auxiliaryObjectForm'))
|
||||||
X(f'{i}<AuxiliaryListForm/>')
|
emit_form_ref(i, 'AuxiliaryListForm', defn.get('auxiliaryListForm'))
|
||||||
X(f'{i}<AuxiliaryChoiceForm/>')
|
emit_form_ref(i, 'AuxiliaryChoiceForm', defn.get('auxiliaryChoiceForm'))
|
||||||
posting = get_enum_prop('Posting', 'posting', 'Allow')
|
X(f'{i}<Posting>{get_enum_prop("Posting", "posting", "Allow")}</Posting>')
|
||||||
real_time_posting = get_enum_prop('RealTimePosting', 'realTimePosting', 'Deny')
|
X(f'{i}<RealTimePosting>{get_enum_prop("RealTimePosting", "realTimePosting", "Deny")}</RealTimePosting>')
|
||||||
reg_records_deletion = get_enum_prop('RegisterRecordsDeletion', 'registerRecordsDeletion', 'AutoDelete')
|
X(f'{i}<RegisterRecordsDeletion>{get_enum_prop("RegisterRecordsDeletion", "registerRecordsDeletion", "AutoDelete")}</RegisterRecordsDeletion>')
|
||||||
reg_records_writing = get_enum_prop('RegisterRecordsWritingOnPost', 'registerRecordsWritingOnPost', 'WriteModified')
|
X(f'{i}<RegisterRecordsWritingOnPost>{get_enum_prop("RegisterRecordsWritingOnPost", "registerRecordsWritingOnPost", "WriteSelected")}</RegisterRecordsWritingOnPost>')
|
||||||
sequence_filling = str(defn['sequenceFilling']) if defn.get('sequenceFilling') else 'AutoFill'
|
X(f'{i}<SequenceFilling>{get_enum_prop("SequenceFilling", "sequenceFilling", "AutoFill")}</SequenceFilling>')
|
||||||
post_in_priv = 'false' if defn.get('postInPrivilegedMode') is False else 'true'
|
# RegisterRecords — движения (список MDObjectRef, синонимы типов резолвятся).
|
||||||
unpost_in_priv = 'false' if defn.get('unpostInPrivilegedMode') is False else 'true'
|
|
||||||
X(f'{i}<Posting>{posting}</Posting>')
|
|
||||||
X(f'{i}<RealTimePosting>{real_time_posting}</RealTimePosting>')
|
|
||||||
X(f'{i}<RegisterRecordsDeletion>{reg_records_deletion}</RegisterRecordsDeletion>')
|
|
||||||
X(f'{i}<RegisterRecordsWritingOnPost>{reg_records_writing}</RegisterRecordsWritingOnPost>')
|
|
||||||
X(f'{i}<SequenceFilling>{sequence_filling}</SequenceFilling>')
|
|
||||||
# RegisterRecords
|
|
||||||
reg_records = []
|
reg_records = []
|
||||||
if defn.get('registerRecords'):
|
if defn.get('registerRecords'):
|
||||||
for rr in defn['registerRecords']:
|
for rr in defn['registerRecords']:
|
||||||
@@ -2121,23 +2138,27 @@ def emit_document_properties(indent):
|
|||||||
X(f'{i}</RegisterRecords>')
|
X(f'{i}</RegisterRecords>')
|
||||||
else:
|
else:
|
||||||
X(f'{i}<RegisterRecords/>')
|
X(f'{i}<RegisterRecords/>')
|
||||||
|
post_in_priv = 'false' if defn.get('postInPrivilegedMode') is False else 'true'
|
||||||
|
unpost_in_priv = 'false' if defn.get('unpostInPrivilegedMode') is False else 'true'
|
||||||
X(f'{i}<PostInPrivilegedMode>{post_in_priv}</PostInPrivilegedMode>')
|
X(f'{i}<PostInPrivilegedMode>{post_in_priv}</PostInPrivilegedMode>')
|
||||||
X(f'{i}<UnpostInPrivilegedMode>{unpost_in_priv}</UnpostInPrivilegedMode>')
|
X(f'{i}<UnpostInPrivilegedMode>{unpost_in_priv}</UnpostInPrivilegedMode>')
|
||||||
X(f'{i}<IncludeHelpInContents>false</IncludeHelpInContents>')
|
incl_help = 'true' if get_bool_prop('includeHelpInContents', False) else 'false'
|
||||||
X(f'{i}<DataLockFields/>')
|
X(f'{i}<IncludeHelpInContents>{incl_help}</IncludeHelpInContents>')
|
||||||
data_lock_control_mode = get_enum_prop('DataLockControlMode', 'dataLockControlMode', 'Automatic')
|
dl_fields = [expand_data_path(str(x)) for x in (defn.get('dataLockFields') or [])] if 'dataLockFields' in defn else []
|
||||||
X(f'{i}<DataLockControlMode>{data_lock_control_mode}</DataLockControlMode>')
|
emit_field_block(i, 'DataLockFields', dl_fields)
|
||||||
full_text_search = get_enum_prop('FullTextSearch', 'fullTextSearch', 'Use')
|
X(f'{i}<DataLockControlMode>{get_enum_prop("DataLockControlMode", "dataLockControlMode", "Managed")}</DataLockControlMode>')
|
||||||
X(f'{i}<FullTextSearch>{full_text_search}</FullTextSearch>')
|
X(f'{i}<FullTextSearch>{get_enum_prop("FullTextSearch", "fullTextSearch", "Use")}</FullTextSearch>')
|
||||||
emit_mltext(i, 'ObjectPresentation', defn.get('objectPresentation'))
|
emit_mltext(i, 'ObjectPresentation', defn.get('objectPresentation'))
|
||||||
emit_mltext(i, 'ExtendedObjectPresentation', defn.get('extendedObjectPresentation'))
|
emit_mltext(i, 'ExtendedObjectPresentation', defn.get('extendedObjectPresentation'))
|
||||||
emit_mltext(i, 'ListPresentation', defn.get('listPresentation'))
|
emit_mltext(i, 'ListPresentation', defn.get('listPresentation'))
|
||||||
emit_mltext(i, 'ExtendedListPresentation', defn.get('extendedListPresentation'))
|
emit_mltext(i, 'ExtendedListPresentation', defn.get('extendedListPresentation'))
|
||||||
emit_mltext(i, 'Explanation', defn.get('explanation'))
|
emit_mltext(i, 'Explanation', defn.get('explanation'))
|
||||||
X(f'{i}<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>')
|
X(f'{i}<ChoiceHistoryOnInput>{get_enum_prop("ChoiceHistoryOnInput", "choiceHistoryOnInput", "Auto")}</ChoiceHistoryOnInput>')
|
||||||
X(f'{i}<DataHistory>DontUse</DataHistory>')
|
X(f'{i}<DataHistory>{get_enum_prop("DataHistory", "dataHistory", "DontUse")}</DataHistory>')
|
||||||
X(f'{i}<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>')
|
upd_dh = 'true' if get_bool_prop('updateDataHistoryImmediatelyAfterWrite', False) else 'false'
|
||||||
X(f'{i}<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>')
|
X(f'{i}<UpdateDataHistoryImmediatelyAfterWrite>{upd_dh}</UpdateDataHistoryImmediatelyAfterWrite>')
|
||||||
|
exec_dh = 'true' if get_bool_prop('executeAfterWriteDataHistoryVersionProcessing', False) else 'false'
|
||||||
|
X(f'{i}<ExecuteAfterWriteDataHistoryVersionProcessing>{exec_dh}</ExecuteAfterWriteDataHistoryVersionProcessing>')
|
||||||
|
|
||||||
def emit_enum_properties(indent):
|
def emit_enum_properties(indent):
|
||||||
i = indent
|
i = indent
|
||||||
@@ -3336,10 +3357,10 @@ if obj_type in types_with_attr_ts:
|
|||||||
# Значение ТЧ: массив колонок (синоним авто) ЛИБО объект {attributes/columns, synonym, tooltip, comment}.
|
# Значение ТЧ: массив колонок (синоним авто) ЛИБО объект {attributes/columns, synonym, tooltip, comment}.
|
||||||
def new_ts_entry(val):
|
def new_ts_entry(val):
|
||||||
if isinstance(val, list):
|
if isinstance(val, list):
|
||||||
return {'columns': val, 'synonym': None, 'tooltip': None, 'comment': None, 'lineNumber': None}
|
return {'columns': val, 'synonym': None, 'tooltip': None, 'comment': None, 'lineNumber': None, 'fillChecking': None}
|
||||||
cols = _as_list(val.get('attributes') or val.get('columns') or [])
|
cols = _as_list(val.get('attributes') or val.get('columns') or [])
|
||||||
return {'columns': cols, 'synonym': val.get('synonym'), 'tooltip': val.get('tooltip'),
|
return {'columns': cols, 'synonym': val.get('synonym'), 'tooltip': val.get('tooltip'),
|
||||||
'comment': str(val['comment']) if val.get('comment') else None, 'lineNumber': val.get('lineNumber')}
|
'comment': str(val['comment']) if val.get('comment') else None, 'lineNumber': val.get('lineNumber'), 'fillChecking': val.get('fillChecking')}
|
||||||
if isinstance(ts_data, list):
|
if isinstance(ts_data, list):
|
||||||
for ts in ts_data:
|
for ts in ts_data:
|
||||||
ts_sections[ts['name']] = new_ts_entry(ts)
|
ts_sections[ts['name']] = new_ts_entry(ts)
|
||||||
@@ -3391,7 +3412,7 @@ if obj_type in types_with_attr_ts:
|
|||||||
emit_attribute('\t\t\t', a, context)
|
emit_attribute('\t\t\t', a, context)
|
||||||
for ts_name in ts_order:
|
for ts_name in ts_order:
|
||||||
e = ts_sections[ts_name]
|
e = ts_sections[ts_name]
|
||||||
emit_tabular_section('\t\t\t', ts_name, e['columns'], obj_type, obj_name, e['synonym'], e['tooltip'], e['comment'], e.get('lineNumber'))
|
emit_tabular_section('\t\t\t', ts_name, e['columns'], obj_type, obj_name, e['synonym'], e['tooltip'], e['comment'], e.get('lineNumber'), e.get('fillChecking'))
|
||||||
for af in acct_flags:
|
for af in acct_flags:
|
||||||
emit_attribute('\t\t\t', af, 'account-flag', 'AccountingFlag')
|
emit_attribute('\t\t\t', af, 'account-flag', 'AccountingFlag')
|
||||||
for edf in ext_dim_flags:
|
for edf in ext_dim_flags:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# meta-decompile v0.31 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
# meta-decompile v0.32 — 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. Инверс meta-compile (omit-on-default: ключ эмитим только
|
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document. Инверс meta-compile (omit-on-default: ключ эмитим только
|
||||||
# когда значение в XML отличается от умолчания компилятора). Неподдерживаемый тип / не-MetaDataObject
|
# когда значение в XML отличается от умолчания компилятора). Неподдерживаемый тип / не-MetaDataObject
|
||||||
# root → exit 3 (ring3, как form-decompile).
|
# root → exit 3 (ring3, как form-decompile).
|
||||||
param(
|
param(
|
||||||
@@ -91,8 +91,8 @@ foreach ($c in $rootEl.ChildNodes) { if ($c.NodeType -eq 'Element') { $objNode =
|
|||||||
if (-not $objNode) { [Console]::Error.WriteLine("meta-decompile: пустой MetaDataObject"); exit 3 }
|
if (-not $objNode) { [Console]::Error.WriteLine("meta-decompile: пустой MetaDataObject"); exit 3 }
|
||||||
$objType = $objNode.LocalName
|
$objType = $objNode.LocalName
|
||||||
|
|
||||||
if ($objType -notin @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes')) {
|
if ($objType -notin @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Document')) {
|
||||||
[Console]::Error.WriteLine("meta-decompile: тип '$objType' пока не поддержан (Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes)"); exit 3
|
[Console]::Error.WriteLine("meta-decompile: тип '$objType' пока не поддержан (Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document)"); exit 3
|
||||||
}
|
}
|
||||||
|
|
||||||
$props = $objNode.SelectSingleNode('md:Properties', $nsm)
|
$props = $objNode.SelectSingleNode('md:Properties', $nsm)
|
||||||
@@ -290,6 +290,9 @@ function Attr-ToDsl {
|
|||||||
$v = & $en 'ChoiceHistoryOnInput'; if ($v -and $v -ne 'Auto') { $extra['choiceHistoryOnInput'] = $v }
|
$v = & $en 'ChoiceHistoryOnInput'; if ($v -and $v -ne 'Auto') { $extra['choiceHistoryOnInput'] = $v }
|
||||||
$v = & $en 'FillChecking'; if ($v -eq 'ShowWarning') { $extra['fillChecking'] = 'ShowWarning' }
|
$v = & $en 'FillChecking'; if ($v -eq 'ShowWarning') { $extra['fillChecking'] = 'ShowWarning' }
|
||||||
$v = & $en 'ExtendedEdit'; if ($v -eq 'true') { $extra['extendedEdit'] = $true }
|
$v = & $en 'ExtendedEdit'; if ($v -eq 'true') { $extra['extendedEdit'] = $true }
|
||||||
|
$v = & $en 'MarkNegatives'; if ($v -eq 'true') { $extra['markNegatives'] = $true }
|
||||||
|
$v = & $en 'ChoiceFoldersAndItems'; if ($v -and $v -ne 'Items') { $extra['choiceFoldersAndItems'] = $v }
|
||||||
|
$v = & $en 'ChoiceForm'; if ($v) { $extra['choiceForm'] = $v }
|
||||||
# MinValue/MaxValue — граница диапазона (omit при nil). Тип сохраняем: xs:string→строка, xs:decimal→число.
|
# MinValue/MaxValue — граница диапазона (omit при nil). Тип сохраняем: xs:string→строка, xs:decimal→число.
|
||||||
foreach ($mm in @('MinValue','MaxValue')) {
|
foreach ($mm in @('MinValue','MaxValue')) {
|
||||||
$mn = $ap.SelectSingleNode("md:$mm", $nsm)
|
$mn = $ap.SelectSingleNode("md:$mm", $nsm)
|
||||||
@@ -394,10 +397,10 @@ Add-EnumProp 'subordinationUse' 'SubordinationUse' 'ToItems'
|
|||||||
# Тип-зависимые дефолты (компилятор задаёт их по типу — декомпилятор обязан зеркалить, иначе omit ≠ значению).
|
# Тип-зависимые дефолты (компилятор задаёт их по типу — декомпилятор обязан зеркалить, иначе omit ≠ значению).
|
||||||
$descrLenDef = switch ($objType) { 'ExchangePlan' { 150 } 'ChartOfCharacteristicTypes' { 100 } 'ChartOfCalculationTypes' { 100 } default { 25 } }
|
$descrLenDef = switch ($objType) { 'ExchangePlan' { 150 } 'ChartOfCharacteristicTypes' { 100 } 'ChartOfCalculationTypes' { 100 } default { 25 } }
|
||||||
$codeLenDef = if ($objType -eq 'ChartOfCalculationTypes') { 5 } else { 9 }
|
$codeLenDef = if ($objType -eq 'ChartOfCalculationTypes') { 5 } else { 9 }
|
||||||
$createInpDef = if ($objType -eq 'Catalog') { 'Use' } else { 'DontUse' }
|
$createInpDef = if ($objType -in @('Catalog', 'Document')) { 'Use' } else { 'DontUse' }
|
||||||
$dataLockDef = if ($objType -in @('Catalog', 'ChartOfAccounts', 'ChartOfCalculationTypes')) { 'Automatic' } else { 'Managed' }
|
$dataLockDef = if ($objType -in @('Catalog', 'ChartOfAccounts', 'ChartOfCalculationTypes')) { 'Automatic' } else { 'Managed' }
|
||||||
$codeSeriesDef = switch ($objType) { 'ChartOfCharacteristicTypes' { 'WholeCharacteristicKind' } 'ChartOfAccounts' { 'WholeChartOfAccounts' } default { 'WholeCatalog' } }
|
$codeSeriesDef = switch ($objType) { 'ChartOfCharacteristicTypes' { 'WholeCharacteristicKind' } 'ChartOfAccounts' { 'WholeChartOfAccounts' } default { 'WholeCatalog' } }
|
||||||
$checkUniqueDef = ($objType -in @('ChartOfCharacteristicTypes', 'ChartOfAccounts')) # ПВХ/ПС дефолт true, Catalog false
|
$checkUniqueDef = ($objType -in @('ChartOfCharacteristicTypes', 'ChartOfAccounts', 'Document')) # ПВХ/ПС/Документ дефолт true, Catalog false
|
||||||
$defPresDef = if ($objType -eq 'ChartOfAccounts') { 'AsCode' } else { 'AsDescription' } # ПС по умолчанию AsCode
|
$defPresDef = if ($objType -eq 'ChartOfAccounts') { 'AsCode' } else { 'AsDescription' } # ПС по умолчанию AsCode
|
||||||
Add-IntProp 'codeLength' 'CodeLength' $codeLenDef
|
Add-IntProp 'codeLength' 'CodeLength' $codeLenDef
|
||||||
Add-IntProp 'descriptionLength' 'DescriptionLength' $descrLenDef
|
Add-IntProp 'descriptionLength' 'DescriptionLength' $descrLenDef
|
||||||
@@ -465,6 +468,31 @@ if ($objType -eq 'ChartOfCalculationTypes') {
|
|||||||
Add-BoolProp 'updateDataHistoryImmediatelyAfterWrite' 'UpdateDataHistoryImmediatelyAfterWrite' $false
|
Add-BoolProp 'updateDataHistoryImmediatelyAfterWrite' 'UpdateDataHistoryImmediatelyAfterWrite' $false
|
||||||
Add-BoolProp 'executeAfterWriteDataHistoryVersionProcessing' 'ExecuteAfterWriteDataHistoryVersionProcessing' $false
|
Add-BoolProp 'executeAfterWriteDataHistoryVersionProcessing' 'ExecuteAfterWriteDataHistoryVersionProcessing' $false
|
||||||
}
|
}
|
||||||
|
# Document-специфичные свойства: нумерация, проведение, движения, DataHistory-триплет.
|
||||||
|
if ($objType -eq 'Document') {
|
||||||
|
$numRef = P 'Numerator'; if ($numRef) { $dsl['numerator'] = $numRef }
|
||||||
|
Add-EnumProp 'numberType' 'NumberType' 'String'
|
||||||
|
Add-IntProp 'numberLength' 'NumberLength' 11
|
||||||
|
Add-EnumProp 'numberAllowedLength' 'NumberAllowedLength' 'Variable'
|
||||||
|
Add-EnumProp 'numberPeriodicity' 'NumberPeriodicity' 'Year'
|
||||||
|
# CheckUnique/Autonumbering у Document уже покрыты общим блоком (дефолты true/true совпадают).
|
||||||
|
Add-EnumProp 'posting' 'Posting' 'Allow'
|
||||||
|
Add-EnumProp 'realTimePosting' 'RealTimePosting' 'Deny'
|
||||||
|
Add-EnumProp 'registerRecordsDeletion' 'RegisterRecordsDeletion' 'AutoDelete'
|
||||||
|
Add-EnumProp 'registerRecordsWritingOnPost' 'RegisterRecordsWritingOnPost' 'WriteSelected'
|
||||||
|
Add-EnumProp 'sequenceFilling' 'SequenceFilling' 'AutoFill'
|
||||||
|
Add-BoolProp 'postInPrivilegedMode' 'PostInPrivilegedMode' $true
|
||||||
|
Add-BoolProp 'unpostInPrivilegedMode' 'UnpostInPrivilegedMode' $true
|
||||||
|
# RegisterRecords — движения (список MDObjectRef, omit-on-empty, verbatim).
|
||||||
|
$rrNode = $props.SelectSingleNode('md:RegisterRecords', $nsm)
|
||||||
|
if ($rrNode) {
|
||||||
|
$rrItems = @($rrNode.SelectNodes('xr:Item', $nsm) | ForEach-Object { $_.InnerText })
|
||||||
|
if ($rrItems.Count -gt 0) { $dsl['registerRecords'] = [System.Collections.ArrayList]@($rrItems) }
|
||||||
|
}
|
||||||
|
Add-EnumProp 'dataHistory' 'DataHistory' 'DontUse'
|
||||||
|
Add-BoolProp 'updateDataHistoryImmediatelyAfterWrite' 'UpdateDataHistoryImmediatelyAfterWrite' $false
|
||||||
|
Add-BoolProp 'executeAfterWriteDataHistoryVersionProcessing' 'ExecuteAfterWriteDataHistoryVersionProcessing' $false
|
||||||
|
}
|
||||||
|
|
||||||
# Короткая форма поля: <Type>.<Name>.StandardAttribute.X / .Attribute.X → StandardAttribute.X / Attribute.X
|
# Короткая форма поля: <Type>.<Name>.StandardAttribute.X / .Attribute.X → StandardAttribute.X / Attribute.X
|
||||||
# (Expand-DataPath компилятора разворачивает частичную форму обратно — dogfood резолвера).
|
# (Expand-DataPath компилятора разворачивает частичную форму обратно — dogfood резолвера).
|
||||||
@@ -593,6 +621,9 @@ $stdProfileByType = @{
|
|||||||
'ChartOfCalculationTypes' = @{
|
'ChartOfCalculationTypes' = @{
|
||||||
'Description' = @{ fillChecking = 'ShowError' }
|
'Description' = @{ fillChecking = 'ShowError' }
|
||||||
}
|
}
|
||||||
|
'Document' = @{
|
||||||
|
'Date' = @{ fillChecking = 'ShowError' }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$catStdProfile = if ($stdProfileByType.ContainsKey($objType)) { $stdProfileByType[$objType] } else { @{} }
|
$catStdProfile = if ($stdProfileByType.ContainsKey($objType)) { $stdProfileByType[$objType] } else { @{} }
|
||||||
# Фикс-список стандартных реквизитов типа (зеркало standardAttributesByType компилятора) — чтобы отличать
|
# Фикс-список стандартных реквизитов типа (зеркало standardAttributesByType компилятора) — чтобы отличать
|
||||||
@@ -603,11 +634,12 @@ $stdFixedByType = @{
|
|||||||
'ChartOfCharacteristicTypes' = @('PredefinedDataName','Predefined','Ref','DeletionMark','Description','Code','Parent','ValueType')
|
'ChartOfCharacteristicTypes' = @('PredefinedDataName','Predefined','Ref','DeletionMark','Description','Code','Parent','ValueType')
|
||||||
'ChartOfAccounts' = @('PredefinedDataName','Order','OffBalance','Type','Description','Code','Parent','Predefined','DeletionMark','Ref')
|
'ChartOfAccounts' = @('PredefinedDataName','Order','OffBalance','Type','Description','Code','Parent','Predefined','DeletionMark','Ref')
|
||||||
'ChartOfCalculationTypes' = @('PredefinedDataName','Predefined','Ref','DeletionMark','ActionPeriodIsBasic','Description','Code')
|
'ChartOfCalculationTypes' = @('PredefinedDataName','Predefined','Ref','DeletionMark','ActionPeriodIsBasic','Description','Code')
|
||||||
|
'Document' = @('Ref','DeletionMark','Date','Number','Posted')
|
||||||
}
|
}
|
||||||
$stdFixed = if ($stdFixedByType.ContainsKey($objType)) { $stdFixedByType[$objType] } else { @() }
|
$stdFixed = if ($stdFixedByType.ContainsKey($objType)) { $stdFixedByType[$objType] } else { @() }
|
||||||
# Условные типы: блок эмитим-как-триггер даже пустым (материализуется при отклонении ≥1 реквизита от schema-default;
|
# Условные типы: блок эмитим-как-триггер даже пустым (материализуется при отклонении ≥1 реквизита от schema-default;
|
||||||
# у ExchangePlan это почти всегда — Description/Code=ShowError; редкий all-default EP блок опускает).
|
# у ExchangePlan это почти всегда — Description/Code=ShowError; редкий all-default EP блок опускает).
|
||||||
$stdConditionalTypes = @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes')
|
$stdConditionalTypes = @('Catalog', 'ExchangePlan', 'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Document')
|
||||||
$saNode = $props.SelectSingleNode('md:StandardAttributes', $nsm)
|
$saNode = $props.SelectSingleNode('md:StandardAttributes', $nsm)
|
||||||
if ($saNode) {
|
if ($saNode) {
|
||||||
$saMap = [ordered]@{}
|
$saMap = [ordered]@{}
|
||||||
@@ -636,6 +668,8 @@ if ($saNode) {
|
|||||||
if ($fvN -and $fvN.GetAttribute('nil', 'http://www.w3.org/2001/XMLSchema-instance') -ne 'true') { $ov['fillValue'] = Convert-ChScalarNode $fvN }
|
if ($fvN -and $fvN.GetAttribute('nil', 'http://www.w3.org/2001/XMLSchema-instance') -ne 'true') { $ov['fillValue'] = Convert-ChScalarNode $fvN }
|
||||||
$saCmt = $sa.SelectSingleNode('xr:Comment', $nsm); if ($saCmt -and $saCmt.InnerText) { $ov['comment'] = $saCmt.InnerText }
|
$saCmt = $sa.SelectSingleNode('xr:Comment', $nsm); if ($saCmt -and $saCmt.InnerText) { $ov['comment'] = $saCmt.InnerText }
|
||||||
$saMsk = $sa.SelectSingleNode('xr:Mask', $nsm); if ($saMsk -and $saMsk.InnerText) { $ov['mask'] = $saMsk.InnerText }
|
$saMsk = $sa.SelectSingleNode('xr:Mask', $nsm); if ($saMsk -and $saMsk.InnerText) { $ov['mask'] = $saMsk.InnerText }
|
||||||
|
$saFmt = Get-MLValue ($sa.SelectSingleNode('xr:Format', $nsm)); if ($null -ne $saFmt) { $ov['format'] = $saFmt }
|
||||||
|
$saEfmt = Get-MLValue ($sa.SelectSingleNode('xr:EditFormat', $nsm)); if ($null -ne $saEfmt) { $ov['editFormat'] = $saEfmt }
|
||||||
$saCf = $sa.SelectSingleNode('xr:ChoiceForm', $nsm); if ($saCf -and $saCf.InnerText) { $ov['choiceForm'] = $saCf.InnerText }
|
$saCf = $sa.SelectSingleNode('xr:ChoiceForm', $nsm); if ($saCf -and $saCf.InnerText) { $ov['choiceForm'] = $saCf.InnerText }
|
||||||
$saCpl = Parse-ChoiceParameterLinks $sa 'xr:ChoiceParameterLinks'; if ($null -ne $saCpl) { $ov['choiceParameterLinks'] = $saCpl }
|
$saCpl = Parse-ChoiceParameterLinks $sa 'xr:ChoiceParameterLinks'; if ($null -ne $saCpl) { $ov['choiceParameterLinks'] = $saCpl }
|
||||||
$saCp = Parse-ChoiceParameters $sa 'xr:ChoiceParameters'; if ($null -ne $saCp) { $ov['choiceParameters'] = $saCp }
|
$saCp = Parse-ChoiceParameters $sa 'xr:ChoiceParameters'; if ($null -ne $saCp) { $ov['choiceParameters'] = $saCp }
|
||||||
@@ -685,9 +719,15 @@ if ($childObjs) {
|
|||||||
elseif ($null -ne $tsSyn) { $tsSynCustom = $true }
|
elseif ($null -ne $tsSyn) { $tsSynCustom = $true }
|
||||||
$tsTt = Get-MLValue ($tsp.SelectSingleNode('md:ToolTip', $nsm))
|
$tsTt = Get-MLValue ($tsp.SelectSingleNode('md:ToolTip', $nsm))
|
||||||
$tsCmtN = $tsp.SelectSingleNode('md:Comment', $nsm); $tsCmt = if ($tsCmtN) { $tsCmtN.InnerText } else { '' }
|
$tsCmtN = $tsp.SelectSingleNode('md:Comment', $nsm); $tsCmt = if ($tsCmtN) { $tsCmtN.InnerText } else { '' }
|
||||||
# Кастомизация стандартного реквизита LineNumber (НомерСтроки) — omit-on-default по каждому свойству.
|
# FillChecking ТЧ (обязательность заполнения; omit при DontCheck).
|
||||||
|
$tsFcN = $tsp.SelectSingleNode('md:FillChecking', $nsm); $tsFc = if ($tsFcN -and $tsFcN.InnerText -ne 'DontCheck') { $tsFcN.InnerText } else { '' }
|
||||||
|
# TS-блок стандартных реквизитов (LineNumber). Наличие блока — пер-ТЧ артефакт (~6% ТЧ его опускают,
|
||||||
|
# правило не выводимо). Faithful roundtrip: нет блока → маркер подавления `lineNumber: ""` (дом-конвенция);
|
||||||
|
# есть блок → захват кастомизации LineNumber (omit-on-default по свойству), all-default → без ключа.
|
||||||
$lnObj = [ordered]@{}
|
$lnObj = [ordered]@{}
|
||||||
$lnNode = $tsp.SelectSingleNode("md:StandardAttributes/xr:StandardAttribute[@name='LineNumber']", $nsm)
|
$saTsNode = $tsp.SelectSingleNode('md:StandardAttributes', $nsm)
|
||||||
|
$hasBlock = ($saTsNode -and @($saTsNode.SelectNodes('xr:StandardAttribute', $nsm)).Count -gt 0)
|
||||||
|
$lnNode = if ($hasBlock) { $saTsNode.SelectSingleNode("xr:StandardAttribute[@name='LineNumber']", $nsm) } else { $null }
|
||||||
if ($lnNode) {
|
if ($lnNode) {
|
||||||
$lnSyn = Get-MLValue ($lnNode.SelectSingleNode('xr:Synonym', $nsm)); if ($null -ne $lnSyn) { $lnObj['synonym'] = $lnSyn }
|
$lnSyn = Get-MLValue ($lnNode.SelectSingleNode('xr:Synonym', $nsm)); if ($null -ne $lnSyn) { $lnObj['synonym'] = $lnSyn }
|
||||||
$lnCmtN = $lnNode.SelectSingleNode('xr:Comment', $nsm); if ($lnCmtN -and $lnCmtN.InnerText) { $lnObj['comment'] = $lnCmtN.InnerText }
|
$lnCmtN = $lnNode.SelectSingleNode('xr:Comment', $nsm); if ($lnCmtN -and $lnCmtN.InnerText) { $lnObj['comment'] = $lnCmtN.InnerText }
|
||||||
@@ -697,12 +737,13 @@ if ($childObjs) {
|
|||||||
$lnEfmt = Get-MLValue ($lnNode.SelectSingleNode('xr:EditFormat', $nsm)); if ($null -ne $lnEfmt) { $lnObj['editFormat'] = $lnEfmt }
|
$lnEfmt = Get-MLValue ($lnNode.SelectSingleNode('xr:EditFormat', $nsm)); if ($null -ne $lnEfmt) { $lnObj['editFormat'] = $lnEfmt }
|
||||||
$lnChiN = $lnNode.SelectSingleNode('xr:ChoiceHistoryOnInput', $nsm); if ($lnChiN -and $lnChiN.InnerText -ne 'Auto') { $lnObj['choiceHistoryOnInput'] = $lnChiN.InnerText }
|
$lnChiN = $lnNode.SelectSingleNode('xr:ChoiceHistoryOnInput', $nsm); if ($lnChiN -and $lnChiN.InnerText -ne 'Auto') { $lnObj['choiceHistoryOnInput'] = $lnChiN.InnerText }
|
||||||
}
|
}
|
||||||
if ($tsSynCustom -or ($null -ne $tsTt) -or $tsCmt -or $lnObj.Count -gt 0) {
|
if ($tsSynCustom -or ($null -ne $tsTt) -or $tsCmt -or $tsFc -or $lnObj.Count -gt 0 -or (-not $hasBlock)) {
|
||||||
$to = [ordered]@{}
|
$to = [ordered]@{}
|
||||||
if ($tsSynCustom) { $to['synonym'] = $tsSyn }
|
if ($tsSynCustom) { $to['synonym'] = $tsSyn }
|
||||||
if ($null -ne $tsTt) { $to['tooltip'] = $tsTt }
|
if ($null -ne $tsTt) { $to['tooltip'] = $tsTt }
|
||||||
if ($tsCmt) { $to['comment'] = $tsCmt }
|
if ($tsCmt) { $to['comment'] = $tsCmt }
|
||||||
if ($lnObj.Count -gt 0) { $to['lineNumber'] = $lnObj }
|
if ($tsFc) { $to['fillChecking'] = $tsFc }
|
||||||
|
if (-not $hasBlock) { $to['lineNumber'] = '' } elseif ($lnObj.Count -gt 0) { $to['lineNumber'] = $lnObj }
|
||||||
$to['attributes'] = $cols
|
$to['attributes'] = $cols
|
||||||
$tsMap[$tsName] = $to
|
$tsMap[$tsName] = $to
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+25
-6
@@ -572,28 +572,47 @@ LineNumber дефолтные. Ключ `lineNumber` на объектной ф
|
|||||||
Декомпилятор: `inputByString` — только при отличии от выведенного дефолта (иначе опущен); `dataLockFields`/`basedOn` —
|
Декомпилятор: `inputByString` — только при отличии от выведенного дефолта (иначе опущен); `dataLockFields`/`basedOn` —
|
||||||
omit-on-empty. Поля пишутся частичной формой (`StandardAttribute.X`/`Attribute.X`).
|
omit-on-empty. Поля пишутся частичной формой (`StandardAttribute.X`/`Attribute.X`).
|
||||||
|
|
||||||
### 7.2 Document
|
### 7.2 Document (Документ)
|
||||||
|
|
||||||
|
Общий с Catalog слой: `synonym`, `comment`, `useStandardCommands`, `inputByString` (§7.1.5, дефолт [Номер]),
|
||||||
|
формы (`defaultObjectForm`/`defaultListForm`/`defaultChoiceForm`/`auxiliary*`), `standardAttributes` (§7.1.1),
|
||||||
|
`characteristics` (§7.1.4), `basedOn`, `dataLockFields`, презентации, `createOnInput`, `choiceHistoryOnInput`,
|
||||||
|
`includeHelpInContents`. Стандартные реквизиты Document: Ref, DeletionMark, Date, Number, Posted. Блок SA
|
||||||
|
**условный** (профиль материализованного: **Дата → FillChecking=ShowError**, 974/1010 доков); опускается лишь у
|
||||||
|
редкого all-default дока.
|
||||||
|
|
||||||
| Поле JSON | Умолчание | XML элемент |
|
| Поле JSON | Умолчание | XML элемент |
|
||||||
|-----------|----------|-------------|
|
|-----------|----------|-------------|
|
||||||
|
| `numerator` | `""` | Numerator (ссылка `DocumentNumerator.X`, omit-on-empty) |
|
||||||
| `numberType` | `String` | NumberType |
|
| `numberType` | `String` | NumberType |
|
||||||
| `numberLength` | `11` | NumberLength |
|
| `numberLength` | `11` | NumberLength |
|
||||||
| `numberAllowedLength` | `Variable` | NumberAllowedLength |
|
| `numberAllowedLength` | `Variable` | NumberAllowedLength |
|
||||||
| `numberPeriodicity` | `Year` | NumberPeriodicity |
|
| `numberPeriodicity` | `Year` | NumberPeriodicity *(корпусная мода; платформа-свежий `Nonperiodical`)* |
|
||||||
| `checkUnique` | `true` | CheckUnique |
|
| `checkUnique` | `true` | CheckUnique |
|
||||||
| `autonumbering` | `true` | Autonumbering |
|
| `autonumbering` | `true` | Autonumbering |
|
||||||
| `posting` | `Allow` | Posting |
|
| `posting` | `Allow` | Posting |
|
||||||
| `realTimePosting` | `Deny` | RealTimePosting |
|
| `realTimePosting` | `Deny` | RealTimePosting |
|
||||||
| `registerRecordsDeletion` | `AutoDelete` | RegisterRecordsDeletion |
|
| `registerRecordsDeletion` | `AutoDelete` | RegisterRecordsDeletion *(безопасный дефолт для авторства; в корпусе редкий)* |
|
||||||
| `registerRecordsWritingOnPost` | `WriteModified` | RegisterRecordsWritingOnPost |
|
| `registerRecordsWritingOnPost` | `WriteSelected` | RegisterRecordsWritingOnPost |
|
||||||
|
| `sequenceFilling` | `AutoFill` | SequenceFilling |
|
||||||
| `postInPrivilegedMode` | `true` | PostInPrivilegedMode |
|
| `postInPrivilegedMode` | `true` | PostInPrivilegedMode |
|
||||||
| `unpostInPrivilegedMode` | `true` | UnpostInPrivilegedMode |
|
| `unpostInPrivilegedMode` | `true` | UnpostInPrivilegedMode |
|
||||||
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
|
| `createOnInput` | `Use` | CreateOnInput |
|
||||||
|
| `dataLockControlMode` | `Managed` | DataLockControlMode |
|
||||||
| `fullTextSearch` | `Use` | FullTextSearch |
|
| `fullTextSearch` | `Use` | FullTextSearch |
|
||||||
| `registerRecords` | `[]` | RegisterRecords |
|
| `dataHistory` | `DontUse` | DataHistory (+ триплет Update/Execute) |
|
||||||
|
| `registerRecords` | `[]` | RegisterRecords (список MDObjectRef движений; рус.синонимы типов резолвятся) |
|
||||||
| `attributes` | `[]` | → Attribute в ChildObjects |
|
| `attributes` | `[]` | → Attribute в ChildObjects |
|
||||||
| `tabularSections` | `{}` | → TabularSection в ChildObjects |
|
| `tabularSections` | `{}` | → TabularSection в ChildObjects |
|
||||||
|
|
||||||
|
**Реквизит** (общее для всех типов, всплыло на Document): `markNegatives` (bool, выделять отрицательные красным),
|
||||||
|
`choiceForm` (ссылка на форму выбора), `choiceFoldersAndItems` (Items|Folders|FoldersAndItems, дефолт Items),
|
||||||
|
`format`/`editFormat` стандартного реквизита (в `standardAttributes`-override, ML).
|
||||||
|
|
||||||
|
**Табличная часть** (объектная форма): `fillChecking` (обязательность заполнения ТЧ, дефолт DontCheck);
|
||||||
|
`lineNumber: ""` — **подавляет** эмиссию TS-блока стандартных реквизитов (LineNumber). Наличие блока — пер-ТЧ
|
||||||
|
исторический артефакт (~6% доковых ТЧ его опускают, правило не выводимо); по умолчанию блок эмитится (opt-out).
|
||||||
|
|
||||||
### 7.2a ExchangePlan (План обмена)
|
### 7.2a ExchangePlan (План обмена)
|
||||||
|
|
||||||
Близок к Catalog (без иерархии/владельцев/кодогенерации), плюс два своих флага. Общий с Catalog слой: `synonym`,
|
Близок к Catalog (без иерархии/владельцев/кодогенерации), плюс два своих флага. Общий с Catalog слой: `synonym`,
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"name": "Документ: движения, проведение, нумерация, кастомизация ТЧ/реквизитов",
|
||||||
|
"input": {
|
||||||
|
"type": "Document",
|
||||||
|
"name": "РеализацияУслуг",
|
||||||
|
"comment": "полный документ",
|
||||||
|
"numberType": "String",
|
||||||
|
"numberLength": 9,
|
||||||
|
"posting": "Allow",
|
||||||
|
"realTimePosting": "Allow",
|
||||||
|
"registerRecordsWritingOnPost": "WriteModified",
|
||||||
|
"registerRecords": ["AccumulationRegister.Продажи"],
|
||||||
|
"standardAttributes": { "Date": { "fillChecking": "ShowError" }, "Number": { "synonym": "Номер документа" } },
|
||||||
|
"attributes": [
|
||||||
|
"Контрагент: CatalogRef.Контрагенты",
|
||||||
|
{ "name": "Сумма", "type": "Number(15,2)", "markNegatives": true },
|
||||||
|
{ "name": "Ответственный", "type": "CatalogRef.Пользователи" }
|
||||||
|
],
|
||||||
|
"tabularSections": [
|
||||||
|
{
|
||||||
|
"name": "Услуги",
|
||||||
|
"fillChecking": "ShowError",
|
||||||
|
"attributes": ["Номенклатура: CatalogRef.Номенклатура", "Количество: Number(10,3)"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Комментарии",
|
||||||
|
"lineNumber": "",
|
||||||
|
"attributes": ["Текст: String(200)"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"validatePath": "Documents/РеализацияУслуг",
|
||||||
|
"expect": {
|
||||||
|
"files": [
|
||||||
|
"Documents/РеализацияУслуг.xml",
|
||||||
|
"Documents/РеализацияУслуг/Ext/ObjectModule.bsl"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-135
@@ -40,144 +40,12 @@
|
|||||||
<NumberPeriodicity>Year</NumberPeriodicity>
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
<CheckUnique>true</CheckUnique>
|
<CheckUnique>true</CheckUnique>
|
||||||
<Autonumbering>true</Autonumbering>
|
<Autonumbering>true</Autonumbering>
|
||||||
<StandardAttributes>
|
|
||||||
<xr:StandardAttribute name="Posted">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Ref">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="DeletionMark">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Date">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Number">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
</StandardAttributes>
|
|
||||||
<Characteristics/>
|
<Characteristics/>
|
||||||
<BasedOn/>
|
<BasedOn/>
|
||||||
<InputByString>
|
<InputByString>
|
||||||
<xr:Field>Document.ПриходнаяНакладная.StandardAttribute.Number</xr:Field>
|
<xr:Field>Document.ПриходнаяНакладная.StandardAttribute.Number</xr:Field>
|
||||||
</InputByString>
|
</InputByString>
|
||||||
<CreateOnInput>DontUse</CreateOnInput>
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||||
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
@@ -190,14 +58,14 @@
|
|||||||
<Posting>Allow</Posting>
|
<Posting>Allow</Posting>
|
||||||
<RealTimePosting>Deny</RealTimePosting>
|
<RealTimePosting>Deny</RealTimePosting>
|
||||||
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||||
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
<RegisterRecordsWritingOnPost>WriteSelected</RegisterRecordsWritingOnPost>
|
||||||
<SequenceFilling>AutoFill</SequenceFilling>
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
<RegisterRecords/>
|
<RegisterRecords/>
|
||||||
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||||
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<DataLockFields/>
|
<DataLockFields/>
|
||||||
<DataLockControlMode>Automatic</DataLockControlMode>
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
<FullTextSearch>Use</FullTextSearch>
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
<ObjectPresentation/>
|
<ObjectPresentation/>
|
||||||
<ExtendedObjectPresentation/>
|
<ExtendedObjectPresentation/>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
<Document>РеализацияУслуг</Document>
|
||||||
|
</ChildObjects>
|
||||||
|
</Configuration>
|
||||||
|
</MetaDataObject>
|
||||||
+544
@@ -0,0 +1,544 @@
|
|||||||
|
<?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">
|
||||||
|
<Document uuid="UUID-001">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:GeneratedType name="DocumentObject.РеализацияУслуг" category="Object">
|
||||||
|
<xr:TypeId>UUID-002</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-003</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentRef.РеализацияУслуг" category="Ref">
|
||||||
|
<xr:TypeId>UUID-004</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-005</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentSelection.РеализацияУслуг" category="Selection">
|
||||||
|
<xr:TypeId>UUID-006</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-007</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentList.РеализацияУслуг" category="List">
|
||||||
|
<xr:TypeId>UUID-008</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-009</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentManager.РеализацияУслуг" category="Manager">
|
||||||
|
<xr:TypeId>UUID-010</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-011</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>РеализацияУслуг</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Реализация услуг</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment>полный документ</Comment>
|
||||||
|
<UseStandardCommands>true</UseStandardCommands>
|
||||||
|
<Numerator/>
|
||||||
|
<NumberType>String</NumberType>
|
||||||
|
<NumberLength>9</NumberLength>
|
||||||
|
<NumberAllowedLength>Variable</NumberAllowedLength>
|
||||||
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
|
<CheckUnique>true</CheckUnique>
|
||||||
|
<Autonumbering>true</Autonumbering>
|
||||||
|
<StandardAttributes>
|
||||||
|
<xr:StandardAttribute name="Posted">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Ref">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="DeletionMark">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Date">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>ShowError</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Number">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Номер документа</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</xr:Synonym>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
</StandardAttributes>
|
||||||
|
<Characteristics/>
|
||||||
|
<BasedOn/>
|
||||||
|
<InputByString>
|
||||||
|
<xr:Field>Document.РеализацияУслуг.StandardAttribute.Number</xr:Field>
|
||||||
|
</InputByString>
|
||||||
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
|
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||||
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
|
<DefaultObjectForm/>
|
||||||
|
<DefaultListForm/>
|
||||||
|
<DefaultChoiceForm/>
|
||||||
|
<AuxiliaryObjectForm/>
|
||||||
|
<AuxiliaryListForm/>
|
||||||
|
<AuxiliaryChoiceForm/>
|
||||||
|
<Posting>Allow</Posting>
|
||||||
|
<RealTimePosting>Allow</RealTimePosting>
|
||||||
|
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||||
|
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
||||||
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
|
<RegisterRecords>
|
||||||
|
<xr:Item xsi:type="xr:MDObjectRef">AccumulationRegister.Продажи</xr:Item>
|
||||||
|
</RegisterRecords>
|
||||||
|
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||||
|
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||||
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
|
<DataLockFields/>
|
||||||
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<ObjectPresentation/>
|
||||||
|
<ExtendedObjectPresentation/>
|
||||||
|
<ListPresentation/>
|
||||||
|
<ExtendedListPresentation/>
|
||||||
|
<Explanation/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<DataHistory>DontUse</DataHistory>
|
||||||
|
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
|
||||||
|
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Attribute uuid="UUID-012">
|
||||||
|
<Properties>
|
||||||
|
<Name>Контрагент</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Контрагент</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Контрагенты</v8:Type>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillFromFillingValue>false</FillFromFillingValue>
|
||||||
|
<FillValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<Attribute uuid="UUID-013">
|
||||||
|
<Properties>
|
||||||
|
<Name>Сумма</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Сумма</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:decimal</v8:Type>
|
||||||
|
<v8:NumberQualifiers>
|
||||||
|
<v8:Digits>15</v8:Digits>
|
||||||
|
<v8:FractionDigits>2</v8:FractionDigits>
|
||||||
|
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||||
|
</v8:NumberQualifiers>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>true</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillFromFillingValue>false</FillFromFillingValue>
|
||||||
|
<FillValue xsi:type="xs:decimal">0</FillValue>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<Attribute uuid="UUID-014">
|
||||||
|
<Properties>
|
||||||
|
<Name>Ответственный</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Ответственный</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Пользователи</v8:Type>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillFromFillingValue>false</FillFromFillingValue>
|
||||||
|
<FillValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<TabularSection uuid="UUID-015">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSection.РеализацияУслуг.Услуги" category="TabularSection">
|
||||||
|
<xr:TypeId>UUID-016</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-017</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSectionRow.РеализацияУслуг.Услуги" category="TabularSectionRow">
|
||||||
|
<xr:TypeId>UUID-018</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-019</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>Услуги</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Услуги</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<ToolTip/>
|
||||||
|
<FillChecking>ShowError</FillChecking>
|
||||||
|
<StandardAttributes>
|
||||||
|
<xr:StandardAttribute name="LineNumber">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
</StandardAttributes>
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Attribute uuid="UUID-020">
|
||||||
|
<Properties>
|
||||||
|
<Name>Номенклатура</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Номенклатура</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Номенклатура</v8:Type>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
<Attribute uuid="UUID-021">
|
||||||
|
<Properties>
|
||||||
|
<Name>Количество</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Количество</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:decimal</v8:Type>
|
||||||
|
<v8:NumberQualifiers>
|
||||||
|
<v8:Digits>10</v8:Digits>
|
||||||
|
<v8:FractionDigits>3</v8:FractionDigits>
|
||||||
|
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||||
|
</v8:NumberQualifiers>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
</ChildObjects>
|
||||||
|
</TabularSection>
|
||||||
|
<TabularSection uuid="UUID-022">
|
||||||
|
<InternalInfo>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSection.РеализацияУслуг.Комментарии" category="TabularSection">
|
||||||
|
<xr:TypeId>UUID-023</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-024</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
<xr:GeneratedType name="DocumentTabularSectionRow.РеализацияУслуг.Комментарии" category="TabularSectionRow">
|
||||||
|
<xr:TypeId>UUID-025</xr:TypeId>
|
||||||
|
<xr:ValueId>UUID-026</xr:ValueId>
|
||||||
|
</xr:GeneratedType>
|
||||||
|
</InternalInfo>
|
||||||
|
<Properties>
|
||||||
|
<Name>Комментарии</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Комментарии</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<ToolTip/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
</Properties>
|
||||||
|
<ChildObjects>
|
||||||
|
<Attribute uuid="UUID-027">
|
||||||
|
<Properties>
|
||||||
|
<Name>Текст</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Текст</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:string</v8:Type>
|
||||||
|
<v8:StringQualifiers>
|
||||||
|
<v8:Length>200</v8:Length>
|
||||||
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
|
</v8:StringQualifiers>
|
||||||
|
</Type>
|
||||||
|
<PasswordMode>false</PasswordMode>
|
||||||
|
<Format/>
|
||||||
|
<EditFormat/>
|
||||||
|
<ToolTip/>
|
||||||
|
<MarkNegatives>false</MarkNegatives>
|
||||||
|
<Mask/>
|
||||||
|
<MultiLine>false</MultiLine>
|
||||||
|
<ExtendedEdit>false</ExtendedEdit>
|
||||||
|
<MinValue xsi:nil="true"/>
|
||||||
|
<MaxValue xsi:nil="true"/>
|
||||||
|
<FillChecking>DontCheck</FillChecking>
|
||||||
|
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||||
|
<ChoiceParameterLinks/>
|
||||||
|
<ChoiceParameters/>
|
||||||
|
<QuickChoice>Auto</QuickChoice>
|
||||||
|
<CreateOnInput>Auto</CreateOnInput>
|
||||||
|
<ChoiceForm/>
|
||||||
|
<LinkByType/>
|
||||||
|
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||||
|
<Indexing>DontIndex</Indexing>
|
||||||
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
|
<DataHistory>Use</DataHistory>
|
||||||
|
</Properties>
|
||||||
|
</Attribute>
|
||||||
|
</ChildObjects>
|
||||||
|
</TabularSection>
|
||||||
|
</ChildObjects>
|
||||||
|
</Document>
|
||||||
|
</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>
|
||||||
+3
-135
@@ -40,144 +40,12 @@
|
|||||||
<NumberPeriodicity>Year</NumberPeriodicity>
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
<CheckUnique>true</CheckUnique>
|
<CheckUnique>true</CheckUnique>
|
||||||
<Autonumbering>true</Autonumbering>
|
<Autonumbering>true</Autonumbering>
|
||||||
<StandardAttributes>
|
|
||||||
<xr:StandardAttribute name="Posted">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Ref">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="DeletionMark">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Date">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Number">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
</StandardAttributes>
|
|
||||||
<Characteristics/>
|
<Characteristics/>
|
||||||
<BasedOn/>
|
<BasedOn/>
|
||||||
<InputByString>
|
<InputByString>
|
||||||
<xr:Field>Document.ПриходнаяНакладная.StandardAttribute.Number</xr:Field>
|
<xr:Field>Document.ПриходнаяНакладная.StandardAttribute.Number</xr:Field>
|
||||||
</InputByString>
|
</InputByString>
|
||||||
<CreateOnInput>DontUse</CreateOnInput>
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||||
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
@@ -190,14 +58,14 @@
|
|||||||
<Posting>Allow</Posting>
|
<Posting>Allow</Posting>
|
||||||
<RealTimePosting>Deny</RealTimePosting>
|
<RealTimePosting>Deny</RealTimePosting>
|
||||||
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||||
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
<RegisterRecordsWritingOnPost>WriteSelected</RegisterRecordsWritingOnPost>
|
||||||
<SequenceFilling>AutoFill</SequenceFilling>
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
<RegisterRecords/>
|
<RegisterRecords/>
|
||||||
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||||
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<DataLockFields/>
|
<DataLockFields/>
|
||||||
<DataLockControlMode>Automatic</DataLockControlMode>
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
<FullTextSearch>Use</FullTextSearch>
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
<ObjectPresentation/>
|
<ObjectPresentation/>
|
||||||
<ExtendedObjectPresentation/>
|
<ExtendedObjectPresentation/>
|
||||||
|
|||||||
+3
-135
@@ -40,144 +40,12 @@
|
|||||||
<NumberPeriodicity>Year</NumberPeriodicity>
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
<CheckUnique>true</CheckUnique>
|
<CheckUnique>true</CheckUnique>
|
||||||
<Autonumbering>true</Autonumbering>
|
<Autonumbering>true</Autonumbering>
|
||||||
<StandardAttributes>
|
|
||||||
<xr:StandardAttribute name="Posted">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Ref">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="DeletionMark">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Date">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Number">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
</StandardAttributes>
|
|
||||||
<Characteristics/>
|
<Characteristics/>
|
||||||
<BasedOn/>
|
<BasedOn/>
|
||||||
<InputByString>
|
<InputByString>
|
||||||
<xr:Field>Document.РасходнаяНакладная.StandardAttribute.Number</xr:Field>
|
<xr:Field>Document.РасходнаяНакладная.StandardAttribute.Number</xr:Field>
|
||||||
</InputByString>
|
</InputByString>
|
||||||
<CreateOnInput>DontUse</CreateOnInput>
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||||
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
@@ -190,14 +58,14 @@
|
|||||||
<Posting>Allow</Posting>
|
<Posting>Allow</Posting>
|
||||||
<RealTimePosting>Deny</RealTimePosting>
|
<RealTimePosting>Deny</RealTimePosting>
|
||||||
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||||
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
<RegisterRecordsWritingOnPost>WriteSelected</RegisterRecordsWritingOnPost>
|
||||||
<SequenceFilling>AutoFill</SequenceFilling>
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
<RegisterRecords/>
|
<RegisterRecords/>
|
||||||
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||||
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<DataLockFields/>
|
<DataLockFields/>
|
||||||
<DataLockControlMode>Automatic</DataLockControlMode>
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
<FullTextSearch>Use</FullTextSearch>
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
<ObjectPresentation/>
|
<ObjectPresentation/>
|
||||||
<ExtendedObjectPresentation/>
|
<ExtendedObjectPresentation/>
|
||||||
|
|||||||
+3
-135
@@ -40,144 +40,12 @@
|
|||||||
<NumberPeriodicity>Year</NumberPeriodicity>
|
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||||
<CheckUnique>true</CheckUnique>
|
<CheckUnique>true</CheckUnique>
|
||||||
<Autonumbering>true</Autonumbering>
|
<Autonumbering>true</Autonumbering>
|
||||||
<StandardAttributes>
|
|
||||||
<xr:StandardAttribute name="Posted">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Ref">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="DeletionMark">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Date">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
<xr:StandardAttribute name="Number">
|
|
||||||
<xr:LinkByType/>
|
|
||||||
<xr:FillChecking>DontCheck</xr:FillChecking>
|
|
||||||
<xr:MultiLine>false</xr:MultiLine>
|
|
||||||
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
|
||||||
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
|
||||||
<xr:MaxValue xsi:nil="true"/>
|
|
||||||
<xr:ToolTip/>
|
|
||||||
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
|
||||||
<xr:Format/>
|
|
||||||
<xr:ChoiceForm/>
|
|
||||||
<xr:QuickChoice>Auto</xr:QuickChoice>
|
|
||||||
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
|
||||||
<xr:EditFormat/>
|
|
||||||
<xr:PasswordMode>false</xr:PasswordMode>
|
|
||||||
<xr:DataHistory>Use</xr:DataHistory>
|
|
||||||
<xr:MarkNegatives>false</xr:MarkNegatives>
|
|
||||||
<xr:MinValue xsi:nil="true"/>
|
|
||||||
<xr:Synonym/>
|
|
||||||
<xr:Comment/>
|
|
||||||
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
|
||||||
<xr:ChoiceParameterLinks/>
|
|
||||||
<xr:FillValue xsi:nil="true"/>
|
|
||||||
<xr:Mask/>
|
|
||||||
<xr:ChoiceParameters/>
|
|
||||||
</xr:StandardAttribute>
|
|
||||||
</StandardAttributes>
|
|
||||||
<Characteristics/>
|
<Characteristics/>
|
||||||
<BasedOn/>
|
<BasedOn/>
|
||||||
<InputByString>
|
<InputByString>
|
||||||
<xr:Field>Document.РеализацияТоваров.StandardAttribute.Number</xr:Field>
|
<xr:Field>Document.РеализацияТоваров.StandardAttribute.Number</xr:Field>
|
||||||
</InputByString>
|
</InputByString>
|
||||||
<CreateOnInput>DontUse</CreateOnInput>
|
<CreateOnInput>Use</CreateOnInput>
|
||||||
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||||
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||||
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||||
@@ -190,14 +58,14 @@
|
|||||||
<Posting>Allow</Posting>
|
<Posting>Allow</Posting>
|
||||||
<RealTimePosting>Deny</RealTimePosting>
|
<RealTimePosting>Deny</RealTimePosting>
|
||||||
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||||
<RegisterRecordsWritingOnPost>WriteModified</RegisterRecordsWritingOnPost>
|
<RegisterRecordsWritingOnPost>WriteSelected</RegisterRecordsWritingOnPost>
|
||||||
<SequenceFilling>AutoFill</SequenceFilling>
|
<SequenceFilling>AutoFill</SequenceFilling>
|
||||||
<RegisterRecords/>
|
<RegisterRecords/>
|
||||||
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||||
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<DataLockFields/>
|
<DataLockFields/>
|
||||||
<DataLockControlMode>Automatic</DataLockControlMode>
|
<DataLockControlMode>Managed</DataLockControlMode>
|
||||||
<FullTextSearch>Use</FullTextSearch>
|
<FullTextSearch>Use</FullTextSearch>
|
||||||
<ObjectPresentation/>
|
<ObjectPresentation/>
|
||||||
<ExtendedObjectPresentation/>
|
<ExtendedObjectPresentation/>
|
||||||
|
|||||||
@@ -169,6 +169,21 @@ function getStructuralDeps(input) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'Document':
|
||||||
|
// RegisterRecords (движения) ссылаются на регистры по MDObjectRef — 1С требует их существования. Стабим.
|
||||||
|
if (inp.registerRecords) {
|
||||||
|
const regSyn = { 'РегистрСведений': 'InformationRegister', 'РегистрНакопления': 'AccumulationRegister', 'РегистрБухгалтерии': 'AccountingRegister', 'РегистрРасчета': 'CalculationRegister' };
|
||||||
|
for (const rr of inp.registerRecords) {
|
||||||
|
const ref = String(rr).split(':')[0].trim();
|
||||||
|
const dot = ref.indexOf('.');
|
||||||
|
if (dot < 0) continue;
|
||||||
|
const t = regSyn[ref.substring(0, dot)] || ref.substring(0, dot);
|
||||||
|
const n = ref.substring(dot + 1);
|
||||||
|
const dsl = makeStubDSL(t, n);
|
||||||
|
if (dsl) deps.push({ type: t, name: n, dsl });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'DocumentJournal':
|
case 'DocumentJournal':
|
||||||
if (inp.registeredDocuments) {
|
if (inp.registeredDocuments) {
|
||||||
for (const docRef of inp.registeredDocuments) {
|
for (const docRef of inp.registeredDocuments) {
|
||||||
|
|||||||
Reference in New Issue
Block a user