refactor(bitra-patch): email через РегистрСведений.КонтактнаяИнформация БСП (1 запрос, без ПолучитьОбъект)
This commit is contained in:
@@ -129,44 +129,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Извлекает email из ТЧ КонтактнаяИнформация пользователя.
|
|
||||||
//
|
|
||||||
Функция ИзвлечьEmail(Знач Пользователь) Экспорт
|
|
||||||
|
|
||||||
Если НЕ ЗначениеЗаполнено(Пользователь) Тогда
|
|
||||||
Возврат "";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Попытка
|
|
||||||
Объект = Пользователь.ПолучитьОбъект();
|
|
||||||
Исключение
|
|
||||||
Возврат "";
|
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
Если Объект = Неопределено Тогда
|
|
||||||
Возврат "";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Попытка
|
|
||||||
Для Каждого Стр Из Объект.КонтактнаяИнформация Цикл
|
|
||||||
ВидНаименование = "";
|
|
||||||
Если ЗначениеЗаполнено(Стр.Вид) Тогда
|
|
||||||
ВидНаименование = Строка(Стр.Вид);
|
|
||||||
КонецЕсли;
|
|
||||||
Если СтрНайти(НРег(ВидНаименование), "email") > 0 ИЛИ СтрНайти(НРег(ВидНаименование), "почта") > 0 Тогда
|
|
||||||
Если ЗначениеЗаполнено(Стр.Представление) Тогда
|
|
||||||
Возврат Стр.Представление;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
Исключение
|
|
||||||
Возврат "";
|
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
Возврат "";
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Лимит выборки из query-параметра.
|
// Лимит выборки из query-параметра.
|
||||||
//
|
//
|
||||||
Функция ПарсЛимит(Знач Запрос, Знач MaxDefault = 1000, Знач MaxAllowed = 10000) Экспорт
|
Функция ПарсЛимит(Знач Запрос, Знач MaxDefault = 1000, Знач MaxAllowed = 10000) Экспорт
|
||||||
|
|||||||
@@ -25,10 +25,14 @@
|
|||||||
|
|
||||||
// GET /v1/employees
|
// GET /v1/employees
|
||||||
//
|
//
|
||||||
|
// Email берётся одним запросом через РегистрСведений.КонтактнаяИнформация БСП
|
||||||
|
// (подзапрос с ПЕРВЫЕ 1 — если у пользователя несколько email-адресов, берём первый).
|
||||||
|
//
|
||||||
Функция EmployeesGet(Запрос) Экспорт
|
Функция EmployeesGet(Запрос) Экспорт
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Запрос1С = Новый Запрос;
|
Запрос1С = Новый Запрос;
|
||||||
|
Запрос1С.УстановитьПараметр("ТипEmail", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
|
||||||
Запрос1С.Текст =
|
Запрос1С.Текст =
|
||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
| Пользователи.Ссылка КАК Ссылка,
|
| Пользователи.Ссылка КАК Ссылка,
|
||||||
@@ -38,7 +42,14 @@
|
|||||||
| Пользователи.Подразделение КАК Подразделение,
|
| Пользователи.Подразделение КАК Подразделение,
|
||||||
| Пользователи.Ставка КАК Ставка,
|
| Пользователи.Ставка КАК Ставка,
|
||||||
| Пользователи.Недействителен КАК Недействителен,
|
| Пользователи.Недействителен КАК Недействителен,
|
||||||
| Пользователи.ДолженЗаполнятьОтчет КАК ДолженЗаполнятьОтчет
|
| Пользователи.ДолженЗаполнятьОтчет КАК ДолженЗаполнятьОтчет,
|
||||||
|
| (ВЫБРАТЬ ПЕРВЫЕ 1
|
||||||
|
| КИ.Представление
|
||||||
|
| ИЗ
|
||||||
|
| РегистрСведений.КонтактнаяИнформация КАК КИ
|
||||||
|
| ГДЕ
|
||||||
|
| КИ.Объект = Пользователи.Ссылка
|
||||||
|
| И КИ.Тип = &ТипEmail) КАК Email
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| Справочник.Пользователи КАК Пользователи
|
| Справочник.Пользователи КАК Пользователи
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
@@ -53,7 +64,7 @@
|
|||||||
Запись = Новый Структура;
|
Запись = Новый Структура;
|
||||||
Запись.Вставить("id", bfd_IntegrationAPIHelpers.UUID(Выборка.Ссылка));
|
Запись.Вставить("id", bfd_IntegrationAPIHelpers.UUID(Выборка.Ссылка));
|
||||||
Запись.Вставить("full_name", Выборка.ФИО);
|
Запись.Вставить("full_name", Выборка.ФИО);
|
||||||
Запись.Вставить("email", НРег(bfd_IntegrationAPIHelpers.ИзвлечьEmail(Выборка.Ссылка)));
|
Запись.Вставить("email", НРег(?(Выборка.Email = Null, "", Строка(Выборка.Email))));
|
||||||
Запись.Вставить("eva_id", Выборка.EvaID);
|
Запись.Вставить("eva_id", Выборка.EvaID);
|
||||||
Запись.Вставить("office", Строка(Выборка.Офис));
|
Запись.Вставить("office", Строка(Выборка.Офис));
|
||||||
Запись.Вставить("department", Строка(Выборка.Подразделение));
|
Запись.Вставить("department", Строка(Выборка.Подразделение));
|
||||||
|
|||||||
Reference in New Issue
Block a user