From 97e92e084be26207b6c337488225596af6cbd383 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 27 Sep 2026 13:49:12 +0300 Subject: [PATCH] =?UTF-8?q?fix(help-add):=20ObjectName=20=D1=81=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B0=D1=8E=D1=89=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D1=81=D0=BE=D0=B9=20=D1=87=D0=B5=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B9=20=E2=80=94=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D1=8F=D0=BB=D0=B0=D1=81=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve-Path сохраняет завершающий разделитель: для «Обработка/» дескриптор искался как «…\Обработка\.xml», не находился, и справка обработки 2.20 снова выходила 2.17. py-порт (os.path.abspath) разделитель отбрасывал, так что порты расходились. Путь объекта нормализуется. Co-Authored-By: Claude Opus 5.5 (1M context) --- .claude/skills/help-add/scripts/add-help.ps1 | 8 ++++-- .claude/skills/help-add/scripts/add-help.py | 2 +- .../help-to-epf-220-trailing-slash.json | 15 ++++++++++ .../Обработка220.xml | 28 +++++++++++++++++++ .../Обработка220/Ext/Help.xml | 4 +++ .../Обработка220/Ext/Help/ru.html | 11 ++++++++ .../Обработка220/Ext/ObjectModule.bsl | 11 ++++++++ 7 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 tests/skills/cases/help-add/help-to-epf-220-trailing-slash.json create mode 100644 tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220.xml create mode 100644 tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help.xml create mode 100644 tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help/ru.html create mode 100644 tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/ObjectModule.bsl diff --git a/.claude/skills/help-add/scripts/add-help.ps1 b/.claude/skills/help-add/scripts/add-help.ps1 index d4c3f49bb..102256a05 100644 --- a/.claude/skills/help-add/scripts/add-help.ps1 +++ b/.claude/skills/help-add/scripts/add-help.ps1 @@ -1,4 +1,4 @@ -# help-add v1.23 — Add built-in help to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) +# help-add v1.24 — Add built-in help to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -187,13 +187,15 @@ if (-not (Test-Path $extDir)) { # мержа веток), и только без него — подъёмом от каталога объекта. Не от SrcDir: у внешней обработки # корень <Имя>.xml лежит В SrcDir, подъём его не видел, и справка обработки 2.20 писалась 2.17. $formatVersion = $null -$ownerXml = "$((Resolve-Path $objectDir).Path).xml" +# Resolve-Path сохраняет завершающий разделитель («Обр/» → «…\Обр\»): без обрезки искался бы «…\Обр\.xml». +$objectFull = (Resolve-Path $objectDir).Path.TrimEnd('\', '/') +$ownerXml = "$objectFull.xml" if (Test-Path $ownerXml) { $ownerHead = [System.IO.File]::ReadAllText($ownerXml, [System.Text.Encoding]::UTF8) $ownerHead = $ownerHead.Substring(0, [Math]::Min(2000, $ownerHead.Length)) if ($ownerHead -match ']+version="(\d+\.\d+)"') { $formatVersion = $Matches[1] } } -if (-not $formatVersion) { $formatVersion = Detect-FormatVersion (Resolve-Path $objectDir).Path } +if (-not $formatVersion) { $formatVersion = Detect-FormatVersion $objectFull } # Код языка идёт и в текст XML, и в имя файла страницы, поэтому проверяем его до записи: # пустое значение дало бы файл «.html» и пустой , разделитель пути — запись мимо diff --git a/.claude/skills/help-add/scripts/add-help.py b/.claude/skills/help-add/scripts/add-help.py index c3c12086c..d60b61118 100644 --- a/.claude/skills/help-add/scripts/add-help.py +++ b/.claude/skills/help-add/scripts/add-help.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# help-add v1.23 — Add built-in help to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) +# help-add v1.24 — Add built-in help to 1C object (+write_xml_file/write_utf8_bom: общий эталон записи) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/tests/skills/cases/help-add/help-to-epf-220-trailing-slash.json b/tests/skills/cases/help-add/help-to-epf-220-trailing-slash.json new file mode 100644 index 000000000..92c0447f0 --- /dev/null +++ b/tests/skills/cases/help-add/help-to-epf-220-trailing-slash.json @@ -0,0 +1,15 @@ +{ + "name": "Справка к обработке 2.20 при ObjectName с косой чертой на конце — версия корня обработки", + "preRun": [ + { + "script": "epf-init/scripts/init", + "args": { "-Name": "Обработка220", "-SrcDir": "{workDir}", "-FormatVersion": "2.20" } + } + ], + "params": { "objectName": "Обработка220/" }, + "expect": { + "fileContains": [ + { "file": "Обработка220/Ext/Help.xml", "text": "version=\"2.20\"" } + ] + } +} diff --git a/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220.xml b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220.xml new file mode 100644 index 000000000..7f51edfd8 --- /dev/null +++ b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220.xml @@ -0,0 +1,28 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + Обработка220 + + + ru + Обработка220 + + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help.xml b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help.xml new file mode 100644 index 000000000..9d108f93c --- /dev/null +++ b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help/ru.html b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help/ru.html new file mode 100644 index 000000000..13b716c60 --- /dev/null +++ b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/Help/ru.html @@ -0,0 +1,11 @@ + + + + + + + +

Обработка220/

+

Описание.

+ + \ No newline at end of file diff --git a/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/ObjectModule.bsl b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/ObjectModule.bsl new file mode 100644 index 000000000..15543d277 --- /dev/null +++ b/tests/skills/cases/help-add/snapshots/help-to-epf-220-trailing-slash/Обработка220/Ext/ObjectModule.bsl @@ -0,0 +1,11 @@ +#Область ОписаниеПеременных + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file