mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 09:09:41 +03:00
test(skills): smoke-кейсы form-remove/form-decompile/erf-validate + фикс form-remove (#30)
Добавлены runner-кейсы (из PR #31) для непокрытых навыков: form-remove, form-decompile, erf-validate (последний делегирует epf-validate — auto-detect ExternalReport). Сгенерированы канонические снапшоты → полноценные регрессы, зелёные на обоих портах. Генерация снапшотов вскрыла реальный баг form-remove: при удалении формы очищался только generic <DefaultForm>, а form-add пишет свойство по назначению (<DefaultObjectForm>/<DefaultListForm>/<DefaultChoiceForm>/<DefaultRecordForm>) — оставалась висячая ссылка на удалённую форму (невалидный конфиг). Фикс (оба порта): очищаем любой *Form-слот, указывающий на удаляемую форму. Бамп версий ps1+py (v1.3). Co-Authored-By: Korolev Pavel <korolev.vrn@gmail.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# form-remove v1.2 — Remove form from 1C object
|
||||
# form-remove v1.3 — Remove form from 1C object
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -68,10 +68,14 @@ foreach ($node in $formNodes) {
|
||||
}
|
||||
}
|
||||
|
||||
# Очистить DefaultForm если указывала на эту форму
|
||||
$defaultForm = $xmlDoc.SelectSingleNode("//md:DefaultForm", $nsMgr)
|
||||
if ($defaultForm -and $defaultForm.InnerText -match "Form\.$FormName$") {
|
||||
$defaultForm.InnerText = ""
|
||||
# Очистить любые Default*/Auxiliary* form-слоты, указывавшие на удалённую форму
|
||||
# (form-add пишет свойство по назначению: DefaultObjectForm/DefaultListForm/
|
||||
# DefaultChoiceForm/DefaultRecordForm/DefaultForm — не только generic DefaultForm).
|
||||
$formRefRe = "Form\.$([regex]::Escape($FormName))$"
|
||||
foreach ($node in $xmlDoc.SelectNodes("//md:*", $nsMgr)) {
|
||||
if ($node.LocalName -like "*Form" -and $node.InnerText -and $node.InnerText -match $formRefRe) {
|
||||
$node.InnerText = ""
|
||||
}
|
||||
}
|
||||
|
||||
# Сохранить с BOM
|
||||
|
||||
Reference in New Issue
Block a user