Получения информации о профиле из MS AD в 1С
Недавно была поставлена банальная задача — получить электронный адрес пользователя из MS Active Directory.
Как я решил данную задачу — ниже.
Получения данных из MS Active Directory в 1С
Моя функция возвращала структуру, содержащую полное имя пользователя и его электронный адрес. В качестве параметра из 1C передается логин пользователя и домен системы:
Функция ПолучитьИнформациюОПрофиле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();Возврат Профиль;
КонецФункции
С помощью этой функции можно получить не только email пользователя, но и другую информацию о пользователе.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Олег:
Копирование выводит кода производится в одну строку, на сайте ошибка, если это не ошибка, то зачем так делать?
Аноним:
А можно из 1С подключится к АД по логину и паролю?
Аноним:
не работает. Зачем вводить в заблужение.