Получение информации из ЭУ "Записи справочника сотрудников"

Для выбора записей из Справочника сотрудников предназначен элемент управления "Записи справочника сотрудников". В зависимости от настроек пользователь может выбирать сотрудников, организации, подразделения, группы, роли и должности, а также поисковые слова.

Каждый из этих типов имеет свою модель данных:
  • Сотрудники: EmployeeDataModel.

  • Организации и подразделения: DepartmentModel.

  • Группы, роли, должности, поисковые слова: StaffDataModel

Поля, которые содержит каждая модель, можно посмотреть в справочнике по JavaScript API.

Чтобы корректно в коде обрабатывать полученные значения из ЭУ Записи справочника сотрудников нужно явно указывать тип. Если в области выбора элемента указан только один из типов, в коде достаточно прописать этот тип:

sender.layout.controls.get<StaffDirectoryItems<GenModels.EmployeeDataModel>>(название ЭУ);

Пример для ЭУ с множественным выбором:

sender.layout.controls.get<StaffDirectoryItems<GenModels.EmployeeDataModel[]>>(название ЭУ);

Если в области выбора указано несколько типов, необходимо написать логику, определяющую тип элемента. Пример такой функции приведён ниже:

function showName(sender: Layout) {
    const control = sender.layout.controls.get<StaffDirectoryItemsSingle>(Название ЭУ);

    if(control.value.dataType === GenModels.DirectoryDataType.Employee) {

        const value = control.value as GenModels.EmployeeDataModel;

        console.log(value.firstName + " " + value.lastName); (1)

    } else if (control.value.dataType === GenModels.DirectoryDataType.Department

        || control.value.dataType === GenModels.DirectoryDataType.Organization) {

            const value = control.value as GenModels.DepartmentModel;

            console.log(value.fullName); (2)
    } else {

        const value = control.value as GenModels.StaffDataModel;

        console.log(value.name); (3)
    }
}
1 Логика работы с value типа EmployeeDataModel.
2 Логика работы с value типа DepartmentModel.
3 Логика работы с value типа StaffDataModel.

Если установлен множественный выбор, код аналогичный. При получении элемента управления необходимо указать тип значения StaffDirectoryItemsMultiple вместо StaffDirectoryItemsSingle, далее циклом пройти все значения и в зависимости от типа совершить определенные действия с каждым из значений.