From 432cfd3413bb8dadbed19bdcfb248cefd2f2bda3 Mon Sep 17 00:00:00 2001 From: Roman Chesnokov Date: Fri, 15 May 2026 18:04:28 +0500 Subject: [PATCH] =?UTF-8?q?refactor(bitra-patch):=20email=20=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=20=D0=A0=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=A1=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8=D0=B9.=D0=9A=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D0=BA=D1=82=D0=BD=D0=B0=D1=8F=D0=98=D0=BD?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20=D0=91=D0=A1?= =?UTF-8?q?=D0=9F=20(1=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81,=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B8=D1=82=D1=8C?= =?UTF-8?q?=D0=9E=D0=B1=D1=8A=D0=B5=D0=BA=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bfd_IntegrationAPIHelpers/Module.bsl | 38 ------------------- .../bfd_IntegrationAPI/Module.bsl | 15 +++++++- 2 files changed, 13 insertions(+), 40 deletions(-) diff --git a/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl b/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl index 9cdc05a..e2ae501 100644 --- a/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl +++ b/bitra-patch/CommonModules/bfd_IntegrationAPIHelpers/Module.bsl @@ -129,44 +129,6 @@ КонецФункции -// Извлекает email из ТЧ КонтактнаяИнформация пользователя. -// -Функция ИзвлечьEmail(Знач Пользователь) Экспорт - - Если НЕ ЗначениеЗаполнено(Пользователь) Тогда - Возврат ""; - КонецЕсли; - - Попытка - Объект = Пользователь.ПолучитьОбъект(); - Исключение - Возврат ""; - КонецПопытки; - - Если Объект = Неопределено Тогда - Возврат ""; - КонецЕсли; - - Попытка - Для Каждого Стр Из Объект.КонтактнаяИнформация Цикл - ВидНаименование = ""; - Если ЗначениеЗаполнено(Стр.Вид) Тогда - ВидНаименование = Строка(Стр.Вид); - КонецЕсли; - Если СтрНайти(НРег(ВидНаименование), "email") > 0 ИЛИ СтрНайти(НРег(ВидНаименование), "почта") > 0 Тогда - Если ЗначениеЗаполнено(Стр.Представление) Тогда - Возврат Стр.Представление; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Исключение - Возврат ""; - КонецПопытки; - - Возврат ""; - -КонецФункции - // Лимит выборки из query-параметра. // Функция ПарсЛимит(Знач Запрос, Знач MaxDefault = 1000, Знач MaxAllowed = 10000) Экспорт diff --git a/bitra-patch/HTTPServices/bfd_IntegrationAPI/Module.bsl b/bitra-patch/HTTPServices/bfd_IntegrationAPI/Module.bsl index d653ef8..9316377 100644 --- a/bitra-patch/HTTPServices/bfd_IntegrationAPI/Module.bsl +++ b/bitra-patch/HTTPServices/bfd_IntegrationAPI/Module.bsl @@ -25,10 +25,14 @@ // GET /v1/employees // +// Email берётся одним запросом через РегистрСведений.КонтактнаяИнформация БСП +// (подзапрос с ПЕРВЫЕ 1 — если у пользователя несколько email-адресов, берём первый). +// Функция EmployeesGet(Запрос) Экспорт Попытка Запрос1С = Новый Запрос; + Запрос1С.УстановитьПараметр("ТипEmail", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); Запрос1С.Текст = "ВЫБРАТЬ | Пользователи.Ссылка КАК Ссылка, @@ -38,7 +42,14 @@ | Пользователи.Подразделение КАК Подразделение, | Пользователи.Ставка КАК Ставка, | Пользователи.Недействителен КАК Недействителен, - | Пользователи.ДолженЗаполнятьОтчет КАК ДолженЗаполнятьОтчет + | Пользователи.ДолженЗаполнятьОтчет КАК ДолженЗаполнятьОтчет, + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | КИ.Представление + | ИЗ + | РегистрСведений.КонтактнаяИнформация КАК КИ + | ГДЕ + | КИ.Объект = Пользователи.Ссылка + | И КИ.Тип = &ТипEmail) КАК Email |ИЗ | Справочник.Пользователи КАК Пользователи |ГДЕ @@ -53,7 +64,7 @@ Запись = Новый Структура; Запись.Вставить("id", bfd_IntegrationAPIHelpers.UUID(Выборка.Ссылка)); Запись.Вставить("full_name", Выборка.ФИО); - Запись.Вставить("email", НРег(bfd_IntegrationAPIHelpers.ИзвлечьEmail(Выборка.Ссылка))); + Запись.Вставить("email", НРег(?(Выборка.Email = Null, "", Строка(Выборка.Email)))); Запись.Вставить("eva_id", Выборка.EvaID); Запись.Вставить("office", Строка(Выборка.Офис)); Запись.Вставить("department", Строка(Выборка.Подразделение));