Много гуглил, находил примеры, но ничего рабочего так и не нашел.
Тут, на форуме, есть даже обработки, которые мне, наверно подошли бы, но скачать их смогу ещё не скоро.
Есть такое:
Функция ПолучитьИнформациюОПрофилеAD(ИмяВДомене, Домен)
Профиль = Новый Структура;
Попытка
//создание COM-объекта:
Connection = ПолучитьCOMОбъект("","ADODB.Connection");
Connection.Provider = "ADSDSOObject";
Connection.Open("Active Directory Provider");
Исключение
Возврат Неопределено;
КонецПопытки;
Попытка
//создаем запрос для AD:
query = "SELECT ADsPath FROM ‘LDAP://DC="+Домен+",DC=root,DC=loc’ WHERE SAMAccountName=’"+ИмяВДомене+"‘";
rs = Connection.Execute(query);
Если НЕ rs.EOF() Тогда
obj = ПолучитьCOMОбъект(rs.Fields(0).Value);
Если obj.Class="user" Тогда
//если всё сделано верно – в объекте obj будет содержатся структура с данными пользователя
Профиль.Вставить("ПолноеИмя", obj.FullName);
Профиль.Вставить("АдресЭлектроннойПочты", obj.EmailAddress);
КонецЕсли;
КонецЕсли;
rs.MoveNext();
Исключение
Возврат Неопределено;
КонецПопытки;
Connection.Close();
Возврат Профиль;
КонецФункции
ADOCommand = Новый COMОбъект("ADODB.Command");
ADOConnection = Новый COMОбъект("ADODB.Connection");
ADOConnection.Provider = "ADsDSOObject";
ADOConnection.Open("Active Directory Provider");
ADOCommand.ActiveConnection = ADOConnection;
RootDSE = ПолучитьCOMОбъект("LDAP://RootDSE");
Domen = RootDSE.Get("defaultNamingContext");
База = "<LDAP://" + Domen + ">";
//Здесь можно задать произвольный фильтр для выборки пользователей из AD
Фильтр = "(&(CN=*))";
Реквизиты = "telephoneNumber, mail, cn, sAMAccountName";
ТекстЗапроса = База + ";" + Фильтр + ";" + Реквизиты + ";subtree";
ADOCommand.CommandText = ТекстЗапроса;
ADOCommand.Properties("Page Size").Value = 100;
ADOCommand.Properties("Timeout").Value = 30;
ADOCommand.Properties("Cache Results").Value = Ложь;
Выборка = ADOCommand.Execute();
ТаблицаРезультат = Новый ТаблицаЗначений;
КС = Новый КвалификаторыСтроки(100);
Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
ТаблицаРезультат.Колонки.Добавить("Логин", ОписаниеТиповС);
ТаблицаРезультат.Колонки.Добавить("Пользователь", ОписаниеТиповС);
ТаблицаРезультат.Колонки.Добавить("Телефон", ОписаниеТиповС);
ТаблицаРезультат.Колонки.Добавить("ЭлектроннаяПочта", ОписаниеТиповС);
Пока НЕ Выборка.EOF Цикл
Имя = Выборка.Fields("cn").Value;
Номера = СокрЛП(Выборка.Fields("telephoneNumber").Value);
Мыло = СокрЛП(Выборка.Fields("mail").Value);
Логин = СокрЛП(Выборка.Fields("sAMAccountName").Value);
//Если не указаны телефон и электронная почта, то не добавляем такого сотрудника
Если ПустаяСтрока(Номера) И ПустаяСтрока(Мыло) Тогда
Выборка.MoveNext();
Продолжить;
КонецЕсли;
Если ПустаяСтрока(Номера) Тогда
Номера = "---";
КонецЕсли;
Если ПустаяСтрока(Мыло) Тогда
Мыло = "---";
КонецЕсли;
//Сообщить("" + Имя + ": " + Номера + " : " + Мыло + " : " + Логин);
//Несколько номеров телефонов могут быть указаны через запятую, при необходимости
//можно добавлять их отдельными строками
//МассивНомеров = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Номера, ",");
//Для Каждого Номер Из МассивНомеров Цикл
Стр = ТаблицаРезультат.Добавить();
Стр.Логин = Логин;
Стр.Пользователь = Имя;
Стр.Телефон = Номера;
Стр.ЭлектроннаяПочта = Мыло;
//КонецЦикла;
Выборка.MoveNext();
КонецЦикла;
Выборка.Close();
ADOConnection.Close();
Возврат ТаблицаРезультат;