fix: нейтральный текст при пустом маршруте в заявке 1С
Tests / frontend-test (push) Successful in 1m19s

This commit is contained in:
Тимур Городецкий
2026-09-25 09:33:38 +05:00
parent 1884007161
commit ab21683377
13 changed files with 61 additions and 22 deletions
+22 -4
View File
@@ -129,13 +129,14 @@ $SITE_COLUMN_GROUP = 'Портал заявок'
# Типы, которые НЕ делаем эталоном (столбцом сайта), а создаём столбцом списка:
# - Lookup (эталон привязан к одному списку, а Ticket у каждого свой);
# - Number с decimals и UserMulti (создаются через XML; web-level XML в PnP падает
# NRE, и это одноразовые поля конкретной формы — переиспользовать нечего).
# - Number с decimals, UserMulti и MultiChoice (создаются через XML; web-level XML
# в PnP падает NRE, и это одноразовые поля конкретной формы — переиспользовать нечего).
function Test-NeedsListColumn {
param($Col)
return ($Col.type -eq 'Lookup') `
-or ($Col.type -eq 'Number' -and $null -ne $Col.decimals) `
-or ($Col.type -eq 'User' -and $Col.allowMultiple)
-or ($Col.type -eq 'User' -and $Col.allowMultiple) `
-or ($Col.type -eq 'Choice' -and $Col.allowMultiple)
}
# Создаёт/обновляет СТОЛБЕЦ САЙТА (эталон) — один раз на весь сайт. Только простые
@@ -184,6 +185,14 @@ function Add-ListColumn {
param([string]$List, $Col)
if (Test-FieldExists -List $List -InternalName $Col.internalName) {
# Тип существующей колонки скрипт НЕ меняет (данные!) — одиночный выбор в
# множественный переключают вручную: параметры столбца → «флажки».
if ($Col.type -eq 'Choice' -and $Col.allowMultiple) {
$existingType = (Get-PnPField -List $List -Identity $Col.internalName).TypeAsString
if ($existingType -ne 'MultiChoice') {
Write-Warning " [!] $($Col.internalName): в списке одиночный выбор ($existingType), а нужен множественный — переключите столбец на «флажки» вручную"
}
}
if ($Col.type -eq 'Choice' -and $Col.choices) {
try {
Set-PnPField -List $List -Identity $Col.internalName -Values @{ Choices = [string[]]$Col.choices } | Out-Null
@@ -217,7 +226,16 @@ function Add-ListColumn {
Set-PnPField -List $List -Identity $Col.internalName -Values @{ SelectionMode = $mode } | Out-Null
}
}
'Choice' { Add-PnPField -List $List -InternalName $Col.internalName -DisplayName $Col.title -Type Choice -Choices $Col.choices -AddToDefaultView | Out-Null }
'Choice' {
if ($Col.allowMultiple) {
$choicesXml = ($Col.choices | ForEach-Object { "<CHOICE>$(ConvertTo-XmlSafe $_)</CHOICE>" }) -join ''
$xml = "<Field Type='MultiChoice' DisplayName='$(ConvertTo-XmlSafe $Col.title)' Name='$($Col.internalName)' FillInChoice='FALSE'><CHOICES>$choicesXml</CHOICES></Field>"
Add-PnPFieldFromXml -List $List -FieldXml $xml | Out-Null
}
else {
Add-PnPField -List $List -InternalName $Col.internalName -DisplayName $Col.title -Type Choice -Choices $Col.choices -AddToDefaultView | Out-Null
}
}
'Url' { Add-PnPField -List $List -InternalName $Col.internalName -DisplayName $Col.title -Type URL -AddToDefaultView | Out-Null }
'Number' {
if ($null -ne $Col.decimals) {