From 04563a69737c1b0381f0fa735fc2aa3be2449774 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 22 Sep 2026 17:19:57 +0300 Subject: [PATCH] =?UTF-8?q?feat(template-add):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D1=8B=20=D0=BC=D0=B0=D0=BA=D0=B5=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=BC=20=D1=8F?= =?UTF-8?q?=D0=B7=D1=8B=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Повторный вызов на существующем макете безусловно отказывал, поэтому второй язык приходилось добавлять руками — дописывать в дескриптор и заводить файл страницы. Случай не редкий: в выгрузке ERP 54 макета из 70 двуязычные. Теперь при -TemplateType HTML существующий макет — повод добавить страницу, а не отказать. Порядок — по коду языка (в ERP так во всех 54). Версия формата берётся из самого дескриптора, чтобы правка чужой выгрузки не меняла формат. Метаданные макета и ChildObjects не трогаются: перезапись сменила бы UUID. Отказ остался там, где он по делу: тот же язык повторно, нехтмловый макет под тем же именем, любой не-HTML тип. Макет в старой раскладке (Ext/Template.html) мигрируется с громким [WARN]: платформа такую раскладку игнорирует, то есть состояние и так нерабочее, а создать её могла только версия навыка без -Lang — значит это страница на языке по умолчанию. Проверено на 8.3.27.1859: двуязычный макет доходит до базы и возвращается обратно байт в байт — и дескриптор, и обе страницы. Попутно измерено: страницу на языке, не объявленном в Languages/, платформа принимает — поэтому состав языков не проверяем. Co-Authored-By: Claude Opus 5 (1M context) --- .claude/skills/template-add/SKILL.md | 2 +- .../template-add/scripts/add-template.ps1 | 94 ++++++++++++++-- .../template-add/scripts/add-template.py | 100 ++++++++++++++++-- .../template-add/html-lang-duplicate.json | 20 ++++ .../template-add/html-legacy-migrate.json | 36 +++++++ .../cases/template-add/html-second-lang.json | 43 ++++++++ .../html-legacy-migrate/МояОбработка.xml | 30 ++++++ .../МояОбработка/Ext/ObjectModule.bsl | 11 ++ .../МояОбработка/Templates/МакетHTML.xml | 16 +++ .../Templates/МакетHTML/Ext/Template.xml | 5 + .../Templates/МакетHTML/Ext/Template/en.html | 2 + .../Templates/МакетHTML/Ext/Template/ru.html | 4 + .../html-second-lang/МояОбработка.xml | 30 ++++++ .../МояОбработка/Ext/ObjectModule.bsl | 11 ++ .../МояОбработка/Templates/МакетHTML.xml | 16 +++ .../Templates/МакетHTML/Ext/Template.xml | 5 + .../Templates/МакетHTML/Ext/Template/en.html | 2 + .../Templates/МакетHTML/Ext/Template/ru.html | 2 + 18 files changed, 407 insertions(+), 22 deletions(-) create mode 100644 tests/skills/cases/template-add/html-lang-duplicate.json create mode 100644 tests/skills/cases/template-add/html-legacy-migrate.json create mode 100644 tests/skills/cases/template-add/html-second-lang.json create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/en.html create mode 100644 tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template.xml create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/en.html create mode 100644 tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html diff --git a/.claude/skills/template-add/SKILL.md b/.claude/skills/template-add/SKILL.md index 7e057517a..e144f7f7d 100644 --- a/.claude/skills/template-add/SKILL.md +++ b/.claude/skills/template-add/SKILL.md @@ -27,7 +27,7 @@ allowed-tools: | TemplateName | да | — | Имя макета | | TemplateType | да | — | Тип: HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema | | Synonym | нет | = TemplateName | Синоним макета | -| Lang | нет | `ru` | Код языка страницы — только для типа HTML | +| Lang | нет | `ru` | Код языка страницы — только для типа HTML. Повторный вызов с другим языком добавляет страницу в существующий макет | | SrcDir | нет | `src` | Путь к папке типа объектов (`Reports`, `DataProcessors`, `Catalogs`, `Documents`...), внутри которой лежит `.xml`. Дефолт `src` подходит для каталогов с внешними обработками/отчётами, лежащими рядом | | -SetMainSKD | нет | — | Принудительно установить MainDataCompositionSchema | diff --git a/.claude/skills/template-add/scripts/add-template.ps1 b/.claude/skills/template-add/scripts/add-template.ps1 index 5a9f3de6b..082ade526 100644 --- a/.claude/skills/template-add/scripts/add-template.ps1 +++ b/.claude/skills/template-add/scripts/add-template.ps1 @@ -1,4 +1,4 @@ -# template-add v1.24 — Add template to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) +# template-add v1.25 — Add template to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -201,9 +201,24 @@ $processorDir = Join-Path $SrcDir $ObjectName $templatesDir = Join-Path $processorDir "Templates" $templateMetaPath = Join-Path $templatesDir "$TemplateName.xml" +# Существующий HTML-макет — не всегда повод отказать: в один макет платформа кладёт +# несколько языков ( на каждый, страницы рядом), и повторный вызов с другим -Lang +# добавляет страницу. Для остальных типов поведение прежнее — отказ. +$addLangMode = $false if (Test-Path $templateMetaPath) { - Write-Error "Макет уже существует: $templateMetaPath" - exit 1 + $existingType = $null + $metaText = [System.IO.File]::ReadAllText((Resolve-Path $templateMetaPath).Path, [System.Text.Encoding]::UTF8) + if ($metaText -match '([^<]+)') { $existingType = $Matches[1] } + + if ($TemplateType -eq "HTML" -and $existingType -eq "HTMLDocument") { + $addLangMode = $true + } elseif ($TemplateType -eq "HTML") { + Write-Error "Макет уже существует: $templateMetaPath`nЕго тип — $existingType, страницу на языке можно добавить только к HTML-макету" + exit 1 + } else { + Write-Error "Макет уже существует: $templateMetaPath" + exit 1 + } } Assert-EditAllowed $rootXmlPath 'editable' @@ -217,6 +232,14 @@ New-Item -ItemType Directory -Path $templateExtDir -Force | Out-Null $encBom = New-Object System.Text.UTF8Encoding($true) +# Скелет HTML-страницы макета — в том же виде, в каком его пишет редактор платформы +# (одной строкой, парный ): первое сохранение в Конфигураторе даст минимальный +# дифф. Нужен в двух местах (новый макет и добавление языка) — поэтому одной переменной. +$htmlSkeleton = @" + + +"@ + # --- Detect format version --- function Detect-FormatVersion([string]$dir) { @@ -305,6 +328,63 @@ function Write-XmlFile([string]$path, [string]$text, $encoding) { [System.IO.File]::WriteAllText($path, $t.TrimEnd("`r", "`n"), $encoding) } +# --- 1a. Добавление страницы на другом языке в существующий HTML-макет --- +# Метаданные макета и ChildObjects здесь НЕ трогаем: и то и другое уже на месте, +# перезапись сменила бы UUID. Язык, не объявленный в Languages/ конфигурации, платформа +# принимает и возвращает при выгрузке (проверено на 8.3.27) — состав языков не проверяем. +if ($addLangMode) { + $descPath = Join-Path $templateExtDir "Template.xml" + $pageDir = Join-Path $templateExtDir "Template" + $legacyPagePath = Join-Path $templateExtDir "Template.html" + $langs = @() + $descVersion = $formatVersion + + if (Test-Path $descPath) { + $descText = [System.IO.File]::ReadAllText((Resolve-Path $descPath).Path, [System.Text.Encoding]::UTF8) + # Версию берём из самого дескриптора: правка чужой выгрузки не должна менять формат. + if ($descText -match ']+version="(\d+\.\d+)"') { $descVersion = $Matches[1] } + $langs = @([regex]::Matches($descText, '([^<]+)') | ForEach-Object { $_.Groups[1].Value }) + } elseif (Test-Path $legacyPagePath) { + # Раскладка до v1.24 — одиночный Ext/Template.html, который платформа молча игнорирует. + # Языка у него нет, но создать его могла только версия навыка без параметра -Lang, + # то есть это страница на языке по умолчанию. Переносим и говорим об этом вслух. + New-Item -ItemType Directory -Path $pageDir -Force | Out-Null + Move-Item -LiteralPath $legacyPagePath -Destination (Join-Path $pageDir "ru.html") -Force + $langs = @("ru") + Write-Host "[WARN] Макет был в старой раскладке (Ext/Template.html) — платформа её игнорирует." + Write-Host " Страница считана как ru и перенесена в Template/ru.html, создан дескриптор." + } + + $pagePath = Join-Path $pageDir "$Lang.html" + if ($langs -contains $Lang) { + Write-Error "Страница макета на языке '$Lang' уже существует: $pagePath" + exit 1 + } + + # Порядок страниц — по коду языка (в выгрузке ERP так во всех 54 двуязычных макетах). + # Сравнение ordinal, а не культурное: иначе порты разойдутся на ровном месте. + $langs = @($langs + $Lang) + [Array]::Sort($langs, [System.StringComparer]::Ordinal) + + $pagesXml = ($langs | ForEach-Object { "`t$_" }) -join "`n" + $descXml = @" + + +$pagesXml + +"@ + Write-XmlFile $descPath $descXml $encBom + + New-Item -ItemType Directory -Path $pageDir -Force | Out-Null + $pageContent = ($htmlSkeleton -replace "`r`n", "`n") + [System.IO.File]::WriteAllText($pagePath, $pageContent, $encBom) + + Write-Host "[OK] Добавлена страница макета: $TemplateName ($Lang)" + Write-Host " Содержимое: $pagePath" + Write-Host " Дескриптор: $descPath" + exit 0 +} + Write-XmlFile $templateMetaPath $templateMetaXml $encBom # --- 2. Содержимое макета (Templates//Ext/Template.) --- @@ -332,14 +412,8 @@ switch ($TemplateType) { New-Item -ItemType Directory -Path $pageDir -Force | Out-Null $templateBodyPath = Join-Path $pageDir "$Lang.html" - # Шапка — в том же виде, в каком её пишет редактор платформы (одной строкой, - # парный ): первое сохранение в Конфигураторе даст минимальный дифф. - $content = @" - - -"@ # Страница — с LF: платформа хранит HTML именно так. - $content = ($content -replace "`r`n", "`n") + $content = ($htmlSkeleton -replace "`r`n", "`n") [System.IO.File]::WriteAllText($templateBodyPath, $content, $encBom) } "Text" { diff --git a/.claude/skills/template-add/scripts/add-template.py b/.claude/skills/template-add/scripts/add-template.py index bcc3c56b6..9f9c6fcc8 100644 --- a/.claude/skills/template-add/scripts/add-template.py +++ b/.claude/skills/template-add/scripts/add-template.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# template-add v1.24 — Add template to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) +# template-add v1.25 — Add template to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -379,9 +379,25 @@ def main(): templates_dir = os.path.join(processor_dir, "Templates") template_meta_path = os.path.join(templates_dir, f"{template_name}.xml") + # Существующий HTML-макет — не всегда повод отказать: в один макет платформа кладёт + # несколько языков ( на каждый, страницы рядом), и повторный вызов с другим -Lang + # добавляет страницу. Для остальных типов поведение прежнее — отказ. + add_lang_mode = False if os.path.exists(template_meta_path): - print(f"Макет уже существует: {template_meta_path}", file=sys.stderr) - sys.exit(1) + with open(template_meta_path, "r", encoding="utf-8-sig") as f: + meta_text = f.read() + m_type = re.search(r"([^<]+)", meta_text) + existing_type = m_type.group(1) if m_type else None + + if template_type == "HTML" and existing_type == "HTMLDocument": + add_lang_mode = True + elif template_type == "HTML": + print(f"Макет уже существует: {template_meta_path}", file=sys.stderr) + print(f"Его тип — {existing_type}, страницу на языке можно добавить только к HTML-макету", file=sys.stderr) + sys.exit(1) + else: + print(f"Макет уже существует: {template_meta_path}", file=sys.stderr) + sys.exit(1) assert_edit_allowed(root_xml_path, "editable") @@ -431,6 +447,75 @@ def main(): template_ext_dir = os.path.join(templates_dir, template_name, "Ext") os.makedirs(template_ext_dir, exist_ok=True) + # Скелет HTML-страницы макета — в том же виде, в каком его пишет редактор платформы + # (одной строкой, парный ): первое сохранение в Конфигураторе даст минимальный + # дифф. Нужен в двух местах (новый макет и добавление языка) — поэтому одной переменной. + html_skeleton = ( + '' + '' + '' + '\n' + '' + ) + + # --- 1a. Добавление страницы на другом языке в существующий HTML-макет --- + # Метаданные макета и ChildObjects здесь НЕ трогаем: и то и другое уже на месте, + # перезапись сменила бы UUID. Язык, не объявленный в Languages/ конфигурации, платформа + # принимает и возвращает при выгрузке (проверено на 8.3.27) — состав языков не проверяем. + if add_lang_mode: + desc_path = os.path.join(template_ext_dir, "Template.xml") + page_dir = os.path.join(template_ext_dir, "Template") + legacy_page_path = os.path.join(template_ext_dir, "Template.html") + langs = [] + desc_version = format_version + + if os.path.exists(desc_path): + with open(desc_path, "r", encoding="utf-8-sig") as f: + desc_text = f.read() + # Версию берём из самого дескриптора: правка чужой выгрузки не должна менять формат. + m_dv = re.search(r']+version="(\d+\.\d+)"', desc_text) + if m_dv: + desc_version = m_dv.group(1) + langs = re.findall(r"([^<]+)", desc_text) + elif os.path.exists(legacy_page_path): + # Раскладка до v1.24 — одиночный Ext/Template.html, который платформа молча игнорирует. + # Языка у него нет, но создать его могла только версия навыка без параметра -Lang, + # то есть это страница на языке по умолчанию. Переносим и говорим об этом вслух. + os.makedirs(page_dir, exist_ok=True) + os.replace(legacy_page_path, os.path.join(page_dir, "ru.html")) + langs = ["ru"] + print("[WARN] Макет был в старой раскладке (Ext/Template.html) — платформа её игнорирует.") + print(" Страница считана как ru и перенесена в Template/ru.html, создан дескриптор.") + + page_path = os.path.join(page_dir, f"{lang}.html") + # Сравнение без учёта регистра — зеркало -contains в PS, который регистр не различает. + if lang.lower() in [x.lower() for x in langs]: + print(f"Страница макета на языке '{lang}' уже существует: {page_path}", file=sys.stderr) + sys.exit(1) + + # Порядок страниц — по коду языка (в выгрузке ERP так во всех 54 двуязычных макетах). + langs = sorted(langs + [lang]) + + pages_xml = '\n'.join(f"\t{x}" for x in langs) + desc_xml = ( + '\n' + '\n' + f'{pages_xml}\n' + '' + ) + write_xml_file(desc_path, desc_xml) + + os.makedirs(page_dir, exist_ok=True) + write_utf8_bom(page_path, html_skeleton) + + print(f"[OK] Добавлена страница макета: {template_name} ({lang})") + print(f" Содержимое: {page_path}") + print(f" Дескриптор: {desc_path}") + sys.exit(0) + # --- 1. Template metadata (Templates/.xml) --- template_uuid = str(uuid.uuid4()) @@ -486,14 +571,7 @@ def main(): # Шапка — в том же виде, в каком её пишет редактор платформы (одной строкой, # парный ): первое сохранение в Конфигураторе даст минимальный дифф. # Страница — с LF: платформа хранит HTML именно так. - content = ( - '' - '' - '' - '\n' - '' - ) - write_utf8_bom(template_body_path, content) + write_utf8_bom(template_body_path, html_skeleton) elif template_type == "Text": write_utf8_bom(template_file_path, "") diff --git a/tests/skills/cases/template-add/html-lang-duplicate.json b/tests/skills/cases/template-add/html-lang-duplicate.json new file mode 100644 index 000000000..8565e1802 --- /dev/null +++ b/tests/skills/cases/template-add/html-lang-duplicate.json @@ -0,0 +1,20 @@ +{ + "name": "HTML-макет: страница на том же языке — отказ", + "preRun": [ + { + "script": "epf-init/scripts/init", + "args": { "-Name": "МояОбработка", "-SrcDir": "{workDir}" } + }, + { + "script": "template-add/scripts/add-template", + "args": { + "-ObjectName": "МояОбработка", + "-TemplateName": "МакетHTML", + "-TemplateType": "HTML", + "-SrcDir": "{workDir}" + } + } + ], + "params": { "objectName": "МояОбработка", "templateName": "МакетHTML", "templateType": "HTML" }, + "expectError": "Страница макета на языке 'ru' уже существует" +} diff --git a/tests/skills/cases/template-add/html-legacy-migrate.json b/tests/skills/cases/template-add/html-legacy-migrate.json new file mode 100644 index 000000000..b4510ad30 --- /dev/null +++ b/tests/skills/cases/template-add/html-legacy-migrate.json @@ -0,0 +1,36 @@ +{ + "name": "HTML-макет в старой раскладке: страница переносится, язык добавляется", + "preRun": [ + { + "script": "epf-init/scripts/init", + "args": { "-Name": "МояОбработка", "-SrcDir": "{workDir}" } + }, + { + "script": "template-add/scripts/add-template", + "args": { + "-ObjectName": "МояОбработка", + "-TemplateName": "МакетHTML", + "-TemplateType": "HTML", + "-SrcDir": "{workDir}" + } + }, + { "deletePath": "МояОбработка/Templates/МакетHTML/Ext/Template" }, + { "deletePath": "МояОбработка/Templates/МакетHTML/Ext/Template.xml" }, + { + "writeFile": { + "path": "МояОбработка/Templates/МакетHTML/Ext/Template.html", + "content": "\n\nСТАРОЕ_СОДЕРЖИМОЕ\n" + } + } + ], + "params": { "objectName": "МояОбработка", "templateName": "МакетHTML", "templateType": "HTML" }, + "args_extra": ["-Lang", "en"], + "expect": { + "stdoutContains": ["[WARN]", "старой раскладке", "Добавлена страница макета"], + "filesAbsent": ["МояОбработка/Templates/МакетHTML/Ext/Template.html"], + "fileContains": { + "file": "МояОбработка/Templates/МакетHTML/Ext/Template/ru.html", + "text": "СТАРОЕ_СОДЕРЖИМОЕ" + } + } +} diff --git a/tests/skills/cases/template-add/html-second-lang.json b/tests/skills/cases/template-add/html-second-lang.json new file mode 100644 index 000000000..6242df896 --- /dev/null +++ b/tests/skills/cases/template-add/html-second-lang.json @@ -0,0 +1,43 @@ +{ + "name": "HTML-макет: добавление страницы на втором языке", + "preRun": [ + { + "script": "epf-init/scripts/init", + "args": { "-Name": "МояОбработка", "-SrcDir": "{workDir}" } + }, + { + "script": "template-add/scripts/add-template", + "args": { + "-ObjectName": "МояОбработка", + "-TemplateName": "МакетHTML", + "-TemplateType": "HTML", + "-SrcDir": "{workDir}" + } + } + ], + "params": { "objectName": "МояОбработка", "templateName": "МакетHTML", "templateType": "HTML" }, + "args_extra": ["-Lang", "en"], + "expect": { + "stdoutContains": ["Добавлена страница макета", "en.html"], + "fileContains": { + "file": "МояОбработка/Templates/МакетHTML/Ext/Template.xml", + "text": "en\r\n\tru" + }, + "preserves": [ + { + "file": "МояОбработка/Templates/МакетHTML/Ext/Template.xml", + "bom": true, + "eol": "crlf", + "encoding": "UTF-8", + "finalNewline": false, + "noCR13": true + }, + { + "file": "МояОбработка/Templates/МакетHTML/Ext/Template/en.html", + "bom": true, + "eol": "lf", + "finalNewline": false + } + ] + } +} diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка.xml b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка.xml new file mode 100644 index 000000000..281f29338 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка.xml @@ -0,0 +1,30 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + МояОбработка + + + ru + МояОбработка + + + + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Ext/ObjectModule.bsl b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Ext/ObjectModule.bsl new file mode 100644 index 000000000..15543d277 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Ext/ObjectModule.bsl @@ -0,0 +1,11 @@ +#Область ОписаниеПеременных + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML.xml b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML.xml new file mode 100644 index 000000000..b05945a1a --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template.xml b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template.xml new file mode 100644 index 000000000..67df2f067 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template.xml @@ -0,0 +1,5 @@ + + + en + ru + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/en.html b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/en.html new file mode 100644 index 000000000..9433caa59 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/en.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html new file mode 100644 index 000000000..f1d8180b8 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-legacy-migrate/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html @@ -0,0 +1,4 @@ + + +СТАРОЕ_СОДЕРЖИМОЕ + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка.xml b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка.xml new file mode 100644 index 000000000..281f29338 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка.xml @@ -0,0 +1,30 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + МояОбработка + + + ru + МояОбработка + + + + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Ext/ObjectModule.bsl b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Ext/ObjectModule.bsl new file mode 100644 index 000000000..15543d277 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Ext/ObjectModule.bsl @@ -0,0 +1,11 @@ +#Область ОписаниеПеременных + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML.xml b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML.xml new file mode 100644 index 000000000..b05945a1a --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template.xml b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template.xml new file mode 100644 index 000000000..67df2f067 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template.xml @@ -0,0 +1,5 @@ + + + en + ru + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/en.html b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/en.html new file mode 100644 index 000000000..9433caa59 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/en.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html new file mode 100644 index 000000000..9433caa59 --- /dev/null +++ b/tests/skills/cases/template-add/snapshots/html-second-lang/МояОбработка/Templates/МакетHTML/Ext/Template/ru.html @@ -0,0 +1,2 @@ + + \ No newline at end of file