From 027e6a4a895e4b6e2fa418dcc272ea5506722ff2 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 4 Jul 2026 19:03:26 +0300 Subject: [PATCH] =?UTF-8?q?feat(meta-compile,meta-decompile):=20=D0=BA?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D0=BE=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20LineNumber=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D1=87=D0=B0=D1=81=D1=82=D0=B8=20(v1.32/v0?= =?UTF-8?q?.22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit У каждой ТЧ ровно один стандартный реквизит — НомерСтроки (LineNumber), и его свойства (синоним/подсказка/полнотекстовый поиск/…) тоже переопределяемы. Раньше компилятор эмитил only-default блок, декомпилятор кастомизацию не ловил. DSL `lineNumber` на объектной форме ТЧ (omit-on-default по каждому свойству): synonym/comment/fullTextSearch/tooltip/format/editFormat/choiceHistoryOnInput. Emit-StandardAttribute расширен (Format/EditFormat через Emit-MLText, ChoiceHistoryOnInput из ov — были захардкожены); Emit-TabularStandardAttributes принимает spec и строит ov. Декомпилятор захватывает из xr:StandardAttribute[@name='LineNumber'] → ключ lineNumber. Покрыта КАСТОМИЗАЦИЯ (в корпусе 2/1728, только synonym — но задокументирован полный набор из 7 свойств). 44/1728 ТЧ блок вовсе ОПУСКАЮТ — правило опущения не выводится (FillChecking/Use не различают опускающие/имеющие), компилятор эмитит блок всегда → not-covered хвост (решение совместное). Аддитивно: all-default блок (1684/1728) эмитится идентично, регрессий нет (TOTAL 78 без изменений). Регресс 47/47 ps1+py, ps1↔py identical. spec §5.1, кейс catalog-ts-linenumber. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../meta-compile/scripts/meta-compile.ps1 | 40 ++- .../meta-compile/scripts/meta-compile.py | 44 ++- .../meta-decompile/scripts/meta-decompile.ps1 | 17 +- docs/meta-dsl-spec.md | 31 ++- .../meta-compile/catalog-ts-linenumber.json | 25 ++ .../catalog-ts-linenumber/Catalogs/Заказы.xml | 240 +++++++++++++++++ .../Catalogs/Заказы/Ext/ObjectModule.bsl | 0 .../catalog-ts-linenumber/Configuration.xml | 252 ++++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ 10 files changed, 657 insertions(+), 26 deletions(-) create mode 100644 tests/skills/cases/meta-compile/catalog-ts-linenumber.json create mode 100644 tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы.xml create mode 100644 tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Configuration.xml create mode 100644 tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Languages/Русский.xml diff --git a/.claude/skills/meta-compile/scripts/meta-compile.ps1 b/.claude/skills/meta-compile/scripts/meta-compile.ps1 index b4b2b4af..f6e08d1e 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.ps1 +++ b/.claude/skills/meta-compile/scripts/meta-compile.ps1 @@ -1,4 +1,4 @@ -# meta-compile v1.31 — Compile 1C metadata object from JSON +# meta-compile v1.32 — Compile 1C metadata object from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -1058,6 +1058,9 @@ function Emit-StandardAttribute { $cf = OvOr 'ChoiceForm' '' $cmt = OvOr 'Comment' '' $msk = OvOr 'Mask' '' + $fmt = OvOr 'Format' $null + $efmt = OvOr 'EditFormat' $null + $chi = OvOr 'ChoiceHistoryOnInput' 'Auto' X "$indent" X "$indent`t" X "$indent`t$fc" @@ -1067,11 +1070,11 @@ function Emit-StandardAttribute { X "$indent`t" Emit-MLText "$indent`t" "xr:ToolTip" $tt X "$indent`tfalse" - X "$indent`t" + Emit-MLText "$indent`t" "xr:Format" $fmt if ($cf) { X "$indent`t$(Esc-Xml "$cf")" } else { X "$indent`t" } X "$indent`tAuto" - X "$indent`tAuto" - X "$indent`t" + X "$indent`t$chi" + Emit-MLText "$indent`t" "xr:EditFormat" $efmt X "$indent`tfalse" X "$indent`t$dh" X "$indent`tfalse" @@ -1134,11 +1137,24 @@ function Emit-StandardAttributes { X "$indent" } -# TabularSection standard attributes (just LineNumber) +# TabularSection standard attributes (единственный — LineNumber/НомерСтроки). Блок эмитится всегда (платформа +# опускает его лишь у редкого хвоста ТЧ — правило не выведено, см. WORKFLOW). DSL `lineNumber` на объектной форме ТЧ +# переопределяет свойства (synonym/comment/fullTextSearch/tooltip/format/editFormat/choiceHistoryOnInput). function Emit-TabularStandardAttributes { - param([string]$indent) + param([string]$indent, $lineNumber = $null) + $ov = $null + if ($lineNumber) { + $ov = @{} + if ($null -ne $lineNumber.synonym) { $ov['Synonym'] = $lineNumber.synonym } + if ($lineNumber.comment) { $ov['Comment'] = "$($lineNumber.comment)" } + if ($lineNumber.fullTextSearch) { $ov['FullTextSearch'] = "$($lineNumber.fullTextSearch)" } + if ($null -ne $lineNumber.tooltip) { $ov['ToolTip'] = $lineNumber.tooltip } + if ($null -ne $lineNumber.format) { $ov['Format'] = $lineNumber.format } + if ($null -ne $lineNumber.editFormat) { $ov['EditFormat'] = $lineNumber.editFormat } + if ($lineNumber.choiceHistoryOnInput) { $ov['ChoiceHistoryOnInput'] = "$($lineNumber.choiceHistoryOnInput)" } + } X "$indent" - Emit-StandardAttribute "$indent`t" "LineNumber" + Emit-StandardAttribute "$indent`t" "LineNumber" $ov X "$indent" } @@ -1662,7 +1678,7 @@ function Emit-Command { # --- 9. TabularSection emitter --- function Emit-TabularSection { - param([string]$indent, [string]$tsName, $columns, [string]$objectType, [string]$objectName, $tsSynonymArg = $null, $tsTooltip = $null, $tsComment = $null) + param([string]$indent, [string]$tsName, $columns, [string]$objectType, [string]$objectName, $tsSynonymArg = $null, $tsTooltip = $null, $tsComment = $null, $tsLineNumber = $null) $uuid = New-Guid-String X "$indent" @@ -1689,7 +1705,7 @@ function Emit-TabularSection { if ($tsComment) { X "$indent`t`t$(Esc-XmlText $tsComment)" } else { X "$indent`t`t" } Emit-MLText "$indent`t`t" "ToolTip" $tsTooltip X "$indent`t`tDontCheck" - Emit-TabularStandardAttributes "$indent`t`t" + Emit-TabularStandardAttributes "$indent`t`t" $tsLineNumber # Use=ForItem only for Catalog tabular sections (Document does not have Use) if ($objectType -eq "Catalog") { X "$indent`t`tForItem" @@ -3478,10 +3494,10 @@ if ($objType -in $typesWithAttrTS) { # Нормализуем в $tsSections[name] = @{ columns; synonym; tooltip; comment }. function New-TsEntry { param($val) if ($val -is [array] -or $val.GetType().Name -eq 'Object[]') { - return @{ columns = @($val); synonym = $null; tooltip = $null; comment = $null } + return @{ columns = @($val); synonym = $null; tooltip = $null; comment = $null; lineNumber = $null } } $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 } } + return @{ columns = $cols; synonym = $val.synonym; tooltip = $val.tooltip; comment = if ($val.comment) { "$($val.comment)" } else { $null }; lineNumber = $val.lineNumber } } if ($def.tabularSections -is [array] -or $def.tabularSections.GetType().Name -eq "Object[]") { foreach ($ts in $def.tabularSections) { $tsSections[$ts.name] = New-TsEntry $ts } @@ -3529,7 +3545,7 @@ if ($objType -in $typesWithAttrTS) { } foreach ($tsName in $tsSections.Keys) { $tsE = $tsSections[$tsName] - Emit-TabularSection "`t`t`t" $tsName $tsE.columns $objType $objName $tsE.synonym $tsE.tooltip $tsE.comment + Emit-TabularSection "`t`t`t" $tsName $tsE.columns $objType $objName $tsE.synonym $tsE.tooltip $tsE.comment $tsE.lineNumber } foreach ($af in $acctFlags) { $afName = if ($af.name) { $af.name } else { "$af" } diff --git a/.claude/skills/meta-compile/scripts/meta-compile.py b/.claude/skills/meta-compile/scripts/meta-compile.py index 723840b1..345036e7 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.py +++ b/.claude/skills/meta-compile/scripts/meta-compile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# meta-compile v1.31 — Compile 1C metadata object from JSON +# meta-compile v1.32 — Compile 1C metadata object from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -1070,6 +1070,9 @@ def emit_standard_attribute(indent, attr_name, ov=None): cf = ov.get('ChoiceForm', '') cmt = ov.get('Comment', '') msk = ov.get('Mask', '') + fmt = ov.get('Format') + efmt = ov.get('EditFormat') + chi = ov.get('ChoiceHistoryOnInput', 'Auto') X(f'{indent}') X(f'{indent}\t') X(f'{indent}\t{fc}') @@ -1079,14 +1082,14 @@ def emit_standard_attribute(indent, attr_name, ov=None): X(f'{indent}\t') emit_mltext(f'{indent}\t', 'xr:ToolTip', tt) X(f'{indent}\tfalse') - X(f'{indent}\t') + emit_mltext(f'{indent}\t', 'xr:Format', fmt) if cf: X(f'{indent}\t{esc_xml(str(cf))}') else: X(f'{indent}\t') X(f'{indent}\tAuto') - X(f'{indent}\tAuto') - X(f'{indent}\t') + X(f'{indent}\t{chi}') + emit_mltext(f'{indent}\t', 'xr:EditFormat', efmt) X(f'{indent}\tfalse') X(f'{indent}\t{dh}') X(f'{indent}\tfalse') @@ -1160,9 +1163,28 @@ def emit_standard_attributes(indent, object_type): emit_standard_attribute(f'{indent}\t', a, ov) X(f'{indent}') -def emit_tabular_standard_attributes(indent): +def emit_tabular_standard_attributes(indent, line_number=None): + """LineNumber/НомерСтроки ТЧ. Блок эмитится всегда. DSL `lineNumber` переопределяет + synonym/comment/fullTextSearch/tooltip/format/editFormat/choiceHistoryOnInput.""" + ov = None + if line_number: + ov = {} + if line_number.get('synonym') is not None: + ov['Synonym'] = line_number['synonym'] + if line_number.get('comment'): + ov['Comment'] = str(line_number['comment']) + if line_number.get('fullTextSearch'): + ov['FullTextSearch'] = str(line_number['fullTextSearch']) + if line_number.get('tooltip') is not None: + ov['ToolTip'] = line_number['tooltip'] + if line_number.get('format') is not None: + ov['Format'] = line_number['format'] + if line_number.get('editFormat') is not None: + ov['EditFormat'] = line_number['editFormat'] + if line_number.get('choiceHistoryOnInput'): + ov['ChoiceHistoryOnInput'] = str(line_number['choiceHistoryOnInput']) X(f'{indent}') - emit_standard_attribute(f'{indent}\t', 'LineNumber') + emit_standard_attribute(f'{indent}\t', 'LineNumber', ov) X(f'{indent}') # --------------------------------------------------------------------------- @@ -1712,7 +1734,7 @@ def emit_command(indent, cmd_name, cmd): X(f'{indent}\t') X(f'{indent}') -def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_synonym_arg=None, ts_tooltip=None, ts_comment=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): uid = new_uuid() X(f'{indent}') type_prefix = f'{object_type}TabularSection' @@ -1737,7 +1759,7 @@ def emit_tabular_section(indent, ts_name, columns, object_type, object_name, ts_ X(f'{indent}\t\t') emit_mltext(f'{indent}\t\t', 'ToolTip', ts_tooltip) X(f'{indent}\t\tDontCheck') - emit_tabular_standard_attributes(f'{indent}\t\t') + emit_tabular_standard_attributes(f'{indent}\t\t', ts_line_number) if object_type == 'Catalog': X(f'{indent}\t\tForItem') X(f'{indent}\t') @@ -3265,10 +3287,10 @@ if obj_type in types_with_attr_ts: # Значение ТЧ: массив колонок (синоним авто) ЛИБО объект {attributes/columns, synonym, tooltip, comment}. def new_ts_entry(val): if isinstance(val, list): - return {'columns': val, 'synonym': None, 'tooltip': None, 'comment': None} + return {'columns': val, 'synonym': None, 'tooltip': None, 'comment': None, 'lineNumber': None} cols = _as_list(val.get('attributes') or val.get('columns') or []) return {'columns': cols, 'synonym': val.get('synonym'), 'tooltip': val.get('tooltip'), - 'comment': str(val['comment']) if val.get('comment') else None} + 'comment': str(val['comment']) if val.get('comment') else None, 'lineNumber': val.get('lineNumber')} if isinstance(ts_data, list): for ts in ts_data: ts_sections[ts['name']] = new_ts_entry(ts) @@ -3317,7 +3339,7 @@ if obj_type in types_with_attr_ts: emit_attribute('\t\t\t', a, context) for ts_name in ts_order: 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']) + emit_tabular_section('\t\t\t', ts_name, e['columns'], obj_type, obj_name, e['synonym'], e['tooltip'], e['comment'], e.get('lineNumber')) for af in acct_flags: af_name = af['name'] if isinstance(af, dict) else str(af) emit_accounting_flag('\t\t\t', af_name) diff --git a/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 b/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 index b621051c..5a19814d 100644 --- a/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 +++ b/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 @@ -1,4 +1,4 @@ -# meta-decompile v0.21 — XML объекта метаданных 1С → JSON-черновик формата meta-compile +# meta-decompile v0.22 — XML объекта метаданных 1С → JSON-черновик формата meta-compile # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # # Пилот: только Catalog. Инверс meta-compile (omit-on-default: ключ эмитим только @@ -573,11 +573,24 @@ if ($childObjs) { elseif ($null -ne $tsSyn) { $tsSynCustom = $true } $tsTt = Get-MLValue ($tsp.SelectSingleNode('md:ToolTip', $nsm)) $tsCmtN = $tsp.SelectSingleNode('md:Comment', $nsm); $tsCmt = if ($tsCmtN) { $tsCmtN.InnerText } else { '' } - if ($tsSynCustom -or ($null -ne $tsTt) -or $tsCmt) { + # Кастомизация стандартного реквизита LineNumber (НомерСтроки) — omit-on-default по каждому свойству. + $lnObj = [ordered]@{} + $lnNode = $tsp.SelectSingleNode("md:StandardAttributes/xr:StandardAttribute[@name='LineNumber']", $nsm) + if ($lnNode) { + $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 } + $lnFtsN = $lnNode.SelectSingleNode('xr:FullTextSearch', $nsm); if ($lnFtsN -and $lnFtsN.InnerText -ne 'Use') { $lnObj['fullTextSearch'] = $lnFtsN.InnerText } + $lnTt = Get-MLValue ($lnNode.SelectSingleNode('xr:ToolTip', $nsm)); if ($null -ne $lnTt) { $lnObj['tooltip'] = $lnTt } + $lnFmt = Get-MLValue ($lnNode.SelectSingleNode('xr:Format', $nsm)); if ($null -ne $lnFmt) { $lnObj['format'] = $lnFmt } + $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 } + } + if ($tsSynCustom -or ($null -ne $tsTt) -or $tsCmt -or $lnObj.Count -gt 0) { $to = [ordered]@{} if ($tsSynCustom) { $to['synonym'] = $tsSyn } if ($null -ne $tsTt) { $to['tooltip'] = $tsTt } if ($tsCmt) { $to['comment'] = $tsCmt } + if ($lnObj.Count -gt 0) { $to['lineNumber'] = $lnObj } $to['attributes'] = $cols $tsMap[$tsName] = $to } else { diff --git a/docs/meta-dsl-spec.md b/docs/meta-dsl-spec.md index d71952d5..9238748e 100644 --- a/docs/meta-dsl-spec.md +++ b/docs/meta-dsl-spec.md @@ -296,10 +296,39 @@ JSON-**строка** → `xsi:type="xs:string"` (напр. год `"2000"`, к } ``` -Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `attributes` (колонки; синоним `columns`). +Свойства объектной формы ТЧ: `synonym` (ML; нет ключа → авто из имени), `tooltip` (ML), `comment` (строка), `attributes` (колонки; синоним `columns`), `lineNumber` (кастомизация стандартного реквизита НомерСтроки, см. ниже). Для Catalog добавляется `ForItem` в Properties табличной части. Для Document Use не применяется. +### 5.1 `lineNumber` — кастомизация стандартного реквизита НомерСтроки + +У каждой ТЧ ровно один стандартный реквизит — **LineNumber** (НомерСтроки). Платформа материализует блок +`` с ним практически всегда (компилятор эмитит его безусловно), но по умолчанию все свойства +LineNumber дефолтные. Ключ `lineNumber` на объектной форме ТЧ переопределяет их (omit-on-default по каждому свойству): + +| Ключ | XML | Умолчание | Тип | +|------|-----|-----------|-----| +| `synonym` | Synonym | пусто | ML (строка/`{ru,en}`) | +| `comment` | Comment | пусто | строка | +| `fullTextSearch` | FullTextSearch | Use | Use/DontUse | +| `tooltip` | ToolTip | пусто | ML | +| `format` | Format | пусто | ML (форматная строка) | +| `editFormat` | EditFormat | пусто | ML | +| `choiceHistoryOnInput` | ChoiceHistoryOnInput | Auto | Auto/DontUse | + +```json +"tabularSections": { + "Строки": { + "lineNumber": { "synonym": "Номер п/п", "fullTextSearch": "DontUse" }, + "attributes": ["Товар: CatalogRef.Номенклатура"] + } +} +``` + +Прочие свойства LineNumber (FillChecking, CreateOnInput и т.п.) платформа не даёт переопределять — они всегда дефолтные. +Декомпилятор эмитит `lineNumber` только при отклонении ≥1 свойства от дефолта. NB: редкий хвост ТЧ (~2.5% корпуса) +блок `` вовсе опускает — правило не выведено; компилятор такие не воспроизводит (эмитит блок всегда). + --- ## 6. Значения перечислений diff --git a/tests/skills/cases/meta-compile/catalog-ts-linenumber.json b/tests/skills/cases/meta-compile/catalog-ts-linenumber.json new file mode 100644 index 00000000..1dba8b46 --- /dev/null +++ b/tests/skills/cases/meta-compile/catalog-ts-linenumber.json @@ -0,0 +1,25 @@ +{ + "name": "Кастомизация LineNumber табличной части", + "input": { + "type": "Catalog", + "name": "Заказы", + "tabularSections": { + "Строки": { + "synonym": "Строки заказа", + "lineNumber": { + "synonym": "Номер п/п", + "comment": "порядковый номер строки", + "fullTextSearch": "DontUse", + "tooltip": { "ru": "Порядковый номер", "en": "Sequence number" }, + "choiceHistoryOnInput": "DontUse" + }, + "attributes": [ + "Товар: CatalogRef.Номенклатура", + "Количество: Number(15,3)" + ] + } + } + }, + "validatePath": "Catalogs/Заказы", + "expect": { "files": ["Catalogs/Заказы.xml"] } +} diff --git a/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы.xml b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы.xml new file mode 100644 index 00000000..62975df2 --- /dev/null +++ b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы.xml @@ -0,0 +1,240 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Заказы + + + ru + Заказы + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Заказы.StandardAttribute.Description + Catalog.Заказы.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Automatic + Use + + + + + + Use + Auto + DontUse + false + false + + + + + + UUID-013 + UUID-014 + + + UUID-015 + UUID-016 + + + + Строки + + + ru + Строки заказа + + + + + DontCheck + + + + DontCheck + false + false + Auto + + + + ru + Порядковый номер + + + en + Sequence number + + + false + + + Auto + DontUse + + false + Use + false + + + + ru + Номер п/п + + + порядковый номер строки + DontUse + + + + + + + ForItem + + + + + Товар + + + ru + Товар + + + + + d5p1:CatalogRef.Номенклатура + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Количество + + + ru + Количество + + + + + xs:decimal + + 15 + 3 + Any + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + + + diff --git a/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы/Ext/ObjectModule.bsl b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Catalogs/Заказы/Ext/ObjectModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Configuration.xml b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Configuration.xml new file mode 100644 index 00000000..b68ca2ce --- /dev/null +++ b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Configuration.xml @@ -0,0 +1,252 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Заказы + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Ext/ClientApplicationInterface.xml new file mode 100644 index 00000000..3c1161b2 --- /dev/null +++ b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Languages/Русский.xml b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Languages/Русский.xml new file mode 100644 index 00000000..37c60d78 --- /dev/null +++ b/tests/skills/cases/meta-compile/snapshots/catalog-ts-linenumber/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file