Работа c AD. Получение данных запросом, с получением необходимых данных в запросе.

21.07.14

Разработка - Запросы

Получать все нужные данные из AD запросом - просто.

На инфостарте полно примеров с получением данных из AD запросом. Например, получение почтового адреса пользователя:

query = "SEL ECT ADsPath FR OM 'LDAP://DC="+СокрЛП(Домен.Код)+"' WHERE SAMAccountName='"+Стр.Логин+"'";    
rs = conn.Execute(query);    
Пока НЕ rs.EOF() Цикл     
    obj = ПолучитьCOMОбъект(rs.Fields(0).Value);     
    Если obj.Class="user" Тогда      
	Стр.НоваяПочта=СокрЛП(obj.EmailAddress);      
	Если Стр.НоваяПочта<>Стр.СтараяПочта Тогда       
             Стр.Установить=Истина;      
	КонецЕсли;     
    КонецЕсли;     
    rs.MoveNext();    
КонецЦикла; 

Все данные можно получить запросом, однако мы получаем только ADsPath, потом получаем com-объект и уже из его свойств
достаем класс объекта и адрес электронной почты. Тут может быть засада с получением некоторых com-объектов, может
просто не хватить прав.
Я бы сделал так:

query = "SEL ECT objectClass,mail FR OM 'LDAP://DC="+СокрЛП(Домен.Код)+"' WHERE SAMAccountName='"+Стр.Логин+"'"; rs = conn.Execute(query); Пока НЕ rs.EOF() Цикл Если rs.Fields("objectClass").Value="user" Тогда Стр.НоваяПочта=СокрЛП(rs.Fields("mail").Value); Если Стр.НоваяПочта<>Стр.СтараяПочта Тогда Стр.Установить=Истина; КонецЕсли; КонецЕсли; rs.MoveNext(); КонецЦикла;

Не понятно почему, возможность получать поле по имени нигде в примерах я не встречал.

P.S.

Вопрос:

Можно-ли получить поле по номеру?

Ответ: Можно. Но если полей несколько, мы не сможем только по номеру поля сказать какие данные мы получили из поля.
Поскольку порядок полей, результата запроса, произвольный.

Вступайте в нашу телеграмм-группу Инфостарт

AD LDAP

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    259192    1430    421    

1165

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    2248    68    priem_nv    23    

65

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    1800    kalyaka    16    

24

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    11269    148    zup_dev    30    

83

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

В данной публикации рассказывается о решении, которое позволяет находить сразу все ошибки в тексте запроса за раз, а не только самую первую.

2 стартмани

05.03.2025    6536    21    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    5805    36    XilDen    26    

42

Запросы Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    13044    artemusII    11    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KroVladS 35 04.06.14 09:21 Сейчас в теме
(0)

Если я не ошибаюсь то переменная conn присваивается как раз COM соединением, выше по коду вы должны были написать
		conn = ПолучитьCOMОбъект("","ADODB.Connection");  
		conn.Provider = "ADSDSOObject";  
		conn.Open("Active Directory Provider"); 


Так где ж здесь "Получение данных запросом, без получения com-объекта."

З.Ы. Жёлты заголовок. надеялся увидеть способ работы с LDAP из под linux.
filkindy88; Akio; aexeel; +3 Ответить
2. brr 184 04.06.14 09:49 Сейчас в теме
(1) KroVladS, согласен в заголовке желтизна присутствует, прошу прощения. Просто хотелось привлечь внимание.
3. soap 67 05.06.14 10:31 Сейчас в теме
Действительно как то не похоже, что без com-а
4. brr 184 05.06.14 14:59 Сейчас в теме
(3) soap, com-объект по ADsPath не создается. см. obj = ПолучитьCOMОбъект(rs.Fields(0).Value); из первого примера
5. пользователь 09.07.14 14:42
Сообщение было скрыто модератором.
...
6. brr 184 21.07.14 16:20 Сейчас в теме
Отправил новый заголовок на модерацию
Для отправки сообщения требуется регистрация/авторизация