From 13ba9c9e3753935cfaeeeeb66654efdaa5f6a81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D1=83=D1=80=20=D0=93=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D1=86=D0=BA=D0=B8=D0=B9?= Date: Mon, 28 Sep 2026 16:28:37 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B2=20=D0=BA=D0=BE=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B5=20=C2=AB=D0=90=D0=B2=D1=82=D0=BE=D1=80=C2=BB=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=81=D0=BE=D0=B7=D0=B4?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20=D0=B7=D0=B0=D1=8F=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В «Все заявки», «Моих заявках» и «Поиске» ФИО бралось из поискового свойства Author, где SharePoint перечисляет через «;» всех, кто правил элемент. У заявки, которую поправил согласующий, в «Авторе» оказывалось «Инициатор;Согласующий». Теперь ФИО берётся из AuthorOWSUSER — того же поля «Создано», откуда и почта. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../features/myRequests/myRequests.service.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/webparts/requestPortal/features/myRequests/myRequests.service.ts b/src/webparts/requestPortal/features/myRequests/myRequests.service.ts index 8983a23..85a46c4 100644 --- a/src/webparts/requestPortal/features/myRequests/myRequests.service.ts +++ b/src/webparts/requestPortal/features/myRequests/myRequests.service.ts @@ -101,9 +101,9 @@ const MP_CODE = 'RequestUniqueCodeOWSTEXT'; // (см. комментарий у MP_REQUEST_STATUS), пришлось перепроверять отдельно на // то, что значение вообще приходит в ответе. Пришло — все поля, что нужны для // строки таблицы «Мои заявки» (title/created — стандартные MP 'Title'/'Created', -// их так же безусловно отдаёт любой список). 'Author' (без суффикса) отдаёт -// готовое отображаемое имя — короче и надёжнее выковыривать его из -// MP_AUTHOR/parseAuthorOwsUser, там он нужен только ради почты. +// их так же безусловно отдаёт любой список). 'Author' (без суффикса) — только +// запасной источник ФИО: в нём через «;» все, кто правил элемент, а не один +// создатель (см. toMyRequestFromSearch); основной — MP_AUTHOR/parseAuthorOwsUser. const OWN_SELECT_PROPERTIES = ['ListItemID', 'Path', 'Title', 'Created', 'Author', MP_AUTHOR, MP_REQUEST_STATUS, MP_CODE]; /** @@ -1176,9 +1176,12 @@ function toMyRequestFromSearch(entry: ISearchEntry, kind: 'own' | 'other' = 'own title: (r.Title as string) || '', status: (r[MP_REQUEST_STATUS] as string) || '', authorEmail: author.email, - // 'Author' без суффикса — готовое отображаемое имя (см. OWN_SELECT_PROPERTIES); - // из MP_AUTHOR парсим только как запасной вариант, если 'Author' пуст. - authorName: ((r.Author as string) || author.name || '').trim(), + // ФИО — из MP_AUTHOR, того же поля «Создано», откуда и почта. Встроенное + // свойство 'Author' НЕ годится основным источником: Search собирает в нём + // через «;» всех, кто правил элемент, и у заявки, которую поправил + // согласующий, в колонке «Автор» оказывалось «Инициатор;Согласующий». + // 'Author' — только запасной вариант, и из него берём первое имя. + authorName: (author.name || ((r.Author as string) || '').split(';')[0] || '').trim(), created: (r.Created as string) || '', requestTypeId: entry.type.id, requestTypeName: entry.type.name,