refactor(bitra-patch): email через РегистрСведений.КонтактнаяИнформация БСП (1 запрос, без ПолучитьОбъект)

This commit is contained in:
Roman Chesnokov
2026-05-15 18:04:28 +05:00
parent 252c5e38a7
commit 432cfd3413
2 changed files with 13 additions and 40 deletions
@@ -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", Строка(Выборка.Подразделение));