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", Строка(Выборка.Подразделение));