Исходный текст
Option Explicit
Call ShowUserList()
'==============================================================================
'Показать в диалоге выбора список пользователей, работающих в указанном отделе
'==============================================================================
Sub ShowUserList()
Dim ArDept, DeptCol, Dept, UsersCol, user, SelDlg, RetVal, i, count
'Получить ссылку на коллекцию вложенных классификаторов узла "Отдел"
Set DeptCol = ThisApplication.Departments.Classifiers
count = DeptCol.Count
'Если ни одного отдела пока не создано, выйти из процедуры
If count=0 Then Exit Sub
'Заполнить массив ссылками на классификаторы-подразделения
ReDim ArDept(count)
For i=0 To count-1
Set ArDept(i) = DeptCol.Item(i)
Next
'Открыть диалог выбора, передав на вход массив ссылок на подразделения
Set SelDlg = ThisApplication.Dialogs.SelectDlg
SelDlg.SelectFrom = ArDept
SelDlg.Caption = "Список подразделений"
SelDlg.Prompt = "Выберите подразделение:"
RetVal = SelDlg.Show
'Если пользователь отменил диалог или выбрал не один отдел, выйти из процедуры
If (Not RetVal) Or (UBound(SelDlg.Objects)<>0) Then Exit Sub
'Получить ссылку на выбранный отдел; если в нем не зарегистрировано ни
'одного пользователя - выйти из процедуры
DeptCol = SelDlg.Objects
If DeptCol(0).AssignedUsers.Count = 0 Then Exit Sub
'Передать на вход диалога выбора коллекцию пользователей выбранного отдела
SelDlg.SelectFrom = DeptCol(0).AssignedUsers
SelDlg.Show
End Sub
'==============================================================================