fix: изменил заявку на подбор и заявку на прием согласно требованиям от 24.08.2026
Tests / frontend-test (push) Successful in 1m12s

This commit is contained in:
Тимур Городецкий
2026-08-24 15:12:42 +05:00
parent fd19ddc41a
commit 0b2961a741
23 changed files with 1016 additions and 79 deletions
+55
View File
@@ -0,0 +1,55 @@
<#
.SYNOPSIS
Пересоздаёт колонку с нужным типом, когда фактический тип на сайте разошёлся с
манифестом (провижинер сам тип существующей колонки не меняет). Колонка сначала
снимается со списка и удаляется как столбец сайта, затем создаётся заново нужного
типа и подключается к списку.
ВНИМАНИЕ: значения этой колонки в существующих элементах при удалении теряются.
.EXAMPLE
# Починить BusinessTrips: сделать Boolean вместо Note
./Fix-ColumnType.ps1 -SiteUrl "https://tnsukz.sharepoint.com/sites/requests" `
-ClientId "7459c965-5ed4-4673-8140-0ab8faf9db64" -Tenant "tnsukz.onmicrosoft.com" `
-Thumbprint "224B64C8E0CAB1E09AF373E92B3AF4AC33C1233C" `
-ListTitle "Заявка на подбор 1 — данные" `
-InternalName "BusinessTrips" -DisplayName "Командировки" -NewType Boolean
#>
param(
[Parameter(Mandatory = $true)][string]$SiteUrl,
[Parameter(Mandatory = $true)][string]$ClientId,
[Parameter(Mandatory = $true)][string]$Tenant,
[Parameter(Mandatory = $true)][string]$Thumbprint,
[Parameter(Mandatory = $true)][string]$ListTitle,
[Parameter(Mandatory = $true)][string]$InternalName,
[Parameter(Mandatory = $true)][string]$DisplayName,
[Parameter(Mandatory = $true)][ValidateSet('Boolean', 'Number', 'Text', 'Note', 'DateTime')][string]$NewType
)
$ErrorActionPreference = 'Stop'
Connect-PnPOnline -Url $SiteUrl -ClientId $ClientId -Tenant $Tenant -Thumbprint $Thumbprint
$group = 'Портал заявок'
# 1) Снять колонку со списка (если подключена).
try {
Remove-PnPField -List $ListTitle -Identity $InternalName -Force -ErrorAction Stop
Write-Host " [~] снята со списка: $InternalName" -ForegroundColor Yellow
} catch { Write-Host " [ ] на списке не было отдельной ссылки: $InternalName" -ForegroundColor DarkGray }
# 2) Удалить столбец сайта (каскадно снимает и оставшиеся ссылки).
try {
Remove-PnPField -Identity $InternalName -Force -ErrorAction Stop
Write-Host " [~] удалён столбец сайта: $InternalName" -ForegroundColor Yellow
} catch { Write-Host " [ ] столбца сайта не было: $InternalName" -ForegroundColor DarkGray }
# 3) Создать заново нужного типа как столбец сайта.
Add-PnPField -InternalName $InternalName -DisplayName $DisplayName -Type $NewType -Group $group | Out-Null
Write-Host " [+] создан заново: $InternalName [$NewType]" -ForegroundColor Green
# 4) Подключить к списку.
Add-PnPField -List $ListTitle -Field $InternalName | Out-Null
Write-Host " [+] подключён к списку «$ListTitle»" -ForegroundColor Green
Write-Host "`nГотово." -ForegroundColor Cyan
Disconnect-PnPOnline
+31
View File
@@ -0,0 +1,31 @@
<#
.SYNOPSIS
Диагностика: печатает фактический тип колонок списка данных в SharePoint —
чтобы поймать расхождение с манифестом (напр. Number-поле реально Text).
Только чтение, ничего не меняет.
.EXAMPLE
./Inspect-Fields.ps1 -SiteUrl "https://tnsukz.sharepoint.com/sites/requests" `
-ClientId "7459c965-5ed4-4673-8140-0ab8faf9db64" -Tenant "tnsukz.onmicrosoft.com" `
-Thumbprint "224B64C8E0CAB1E09AF373E92B3AF4AC33C1233C" `
-ListTitle "Заявка на подбор 1 — данные"
#>
param(
[Parameter(Mandatory = $true)][string]$SiteUrl,
[Parameter(Mandatory = $true)][string]$ClientId,
[Parameter(Mandatory = $true)][string]$Tenant,
[Parameter(Mandatory = $true)][string]$Thumbprint,
[Parameter(Mandatory = $true)][string]$ListTitle
)
$ErrorActionPreference = 'Stop'
Connect-PnPOnline -Url $SiteUrl -ClientId $ClientId -Tenant $Tenant -Thumbprint $Thumbprint
Write-Host "`nКолонки списка «$ListTitle»:`n" -ForegroundColor Cyan
Get-PnPField -List $ListTitle |
Where-Object { -not $_.Hidden -and $_.Group -ne '_Hidden' } |
Select-Object InternalName, TypeAsString, @{N='Mult';E={$_.TypeAsString -like '*Multi*'}} |
Sort-Object InternalName |
Format-Table -AutoSize
Disconnect-PnPOnline