Загрузка пользователей 1С из Active Directory



Обработка для пакетного создания пользователей в 1С по данным Active Directory.

Простая обработка для пакетного создания пользователей в 1С по данным Active Directory. Из AD берется имя пользователя, данные для аутентификации, адрес электронной почты.

Особенности:

— возможность выбора контейнера AD из дерева, включающего все домены (субдомены);
— список контейнеров и пользователей формируется субъективно намного быстрее, чем при выборе пользователя Windows в стандартном диалоге настройки пользователя БД;
— возможность пакетного создания пользователей.

Ограничения:
— в версии на управляемых формах поддерживается только так называемый "упрощенный" режим управления доступом (без разграничения прав на уровне записей);

Полезные ссылки:
— http://www.script-coding.com/Python/LDAP.html — содержательная статья по LDAP;
— http://support.microsoft.com/kb/315071 — информация по настройке политики LDAP (в т.ч. выше упомянутый параметр MaxPageSize);
— //infostart.ru/public/293755/ — полезная разработка от adapter;
— http://www.ldapadmin.org/ — при разработке и отладке очень пригодился этот LDAP-браузер.

Проверялось на БП 2.0, 3.0 (КОРП), ЗУП 2.5, УТ 10.3.

Если найдете ошибки или есть какие-то вопросы — пишите. Спасибо за Ваши "плюсы" и отзывы! 🙂


UPD 05.02.2026: Небольшие fix-ы в процедурах получения данных LDAP

UPD 21.10.2014: В обеих версиях обработки решена проблема с невозможностью прочитать из AD количество записей, превышающее MaxPageSize, заданное в политиках LDAP (как правило 1000 записей). Теперь чтение производится постранично по 100 записей. Кому интересно, суть проблемы и решение см. здесь.
Обновлена версия на управляемых формах под сравнительно свежий релиз типовой конфигурации (тестировалось на Бухгалтерии 3.0.34.14): небольшой fix перемещенных процедур общих модулей; модальные окна переделаны под новую идеологию 8.3.

34 Comments

  1. www2000

    (1) comol, ага только заплати 320 USD, а здесь решение подешевле будет)

    Reply ↓
  2. KAPACEB.AA

    (1) comol, спасибо за мнение.

    ITIL, кстати, давно-давно у нас в компании собирались внедрять, но как-то не сложилось — по-возможности постараюсь познакомиться с аналогичным функционалом в ITIL.

    p.s. Повторюсь, что публикация ни на что не претендует. Если кому пригодится — здорово, не пригодится — тоже не беда 🙂 Как я говорил, делал под себя, а, точнее, под администраторов, которые заведуют у нас в компании 1С-ными учетками. Нужно было что-то достаточно простое, с возможностью выбирать из понятного админам дерева AD. На момент разработки, видимо, ничего подходящего не нашел — решил написать самопал.

    Reply ↓
  3. iov

    (0) плюс.

    Reply ↓
  4. Kyrales

    Пожелания

    Сделай возможность еще вытягивания фоток из АД, тогда это будет вообще айс.

    Reply ↓
  5. Bacemo

    Для большого количества актуально.

    Reply ↓
  6. Новенький_2209

    (1) comol, соглашусь с Вами. Сам когда смотрел что там есть пользователь из Итилиума, недоумевал, зачем нужна сторонняя обработка.

    Автору рекомендую на нее одним глазком взглянуть 🙂

    Reply ↓
  7. angele

    + однозначно. Зачем покупать ITIL за 9000, если нужна только одна эта обработка. Да и при чем здесь баян, если автор писал этот «самопал» для себя как отдельную обработку, а не часть конфы выложил…

    Reply ↓
  8. katunya88

    ув. автор, подскажите, работает ли под управляемым приложением 8.2?

    Reply ↓
  9. KAPACEB.AA

    (10) katunya88,

    нет, в управляемом не работает.

    Добавил тестовую версию на управляемых формах.

    Reply ↓
  10. tehas

    спасибо за обработку, возьму себе за основу

    Reply ↓
  11. alex_davydov

    А у кого-нибудь есть обработка не чтения из АД в 1С, а записи из 1С в АД?

    Reply ↓
  12. nano1c

    а в итиле, так вами любимом, реализовано ли это в тонком клиенте?

    если да, то как? У меня на сервере никак LDAP запрос не хочет выполнятся..

    Reply ↓
  13. adapter

    в качестве бесплатного начинания шутка хорошая и как демо-код работы с LDAP на 1С тоже кому то пригодится. Но на практике применить сложновато будет, потому что база одна, настройки прав RLS не поддерживаются, создание в AD нету и пр. Поэтому всегда и существуют платные версии, в которых вопросы проработаны и все готово к использованию. Итилиум ведь не за одну обработку создания денег требует, а за весь продукт в целом.

    Reply ↓
  14. dock

    (13) alex_davydov, на инфостарте есть такие. поищи. если не забуду — скину ссыль

    Reply ↓
  15. mc1c80

    Выложите кто-нибудь код обработки.

    Reply ↓
  16. Mogilnikova

    Есть в обработке возможность считывать GUID пользователя в читабельном виде?

    Reply ↓
  17. KAPACEB.AA

    (18) Mogilnikova,

    Если Вы про AD-шный GUID пользователя, то нет — он при загрузке никак не обрабатывается. Хотя в-принципе, при небольшой доработке, можно считать все поля, доступные для чтения через протокол LDAP.

    Reply ↓
  18. severnyj

    При открытии в 1С: Документооборот 8 КОРП выдается ошибка «Метод объекта не обнаружен (УпрощенныйИнтерфейсНастройкиПравДоступа)». Если есть возможность просьба доработать обработку и под эту конфигурацию.

    Reply ↓
  19. KAPACEB.AA

    (20) severnyj,

    К сожалению, нет под рукой такой конфигурации. Если скинете cf, попробую помочь (пишите в личку).

    Reply ↓
  20. atroxa

    Немного допилил запрос, чтобы была возможность получить employeeid из AD. А возвращает NULL. Если смотрю через ADExplorer — заполнен.

    Кто-то может объяснить как побороть? В чём причина? Спасибо!

    Reply ↓
  21. KAPACEB.AA

    (22)

    Алексей, не увидев Ваш запрос сложно что-то советовать.

    Reply ↓
  22. atroxa

    (23)Александр, всё стандартно, только добавил employeeid

    <GC://OU=&&&&,DC=&&&&,DC=root,DC=corp>;(&(objectCategory=person)(objectClass=user)); ADsPath, Name, DisplayName, Mail, sAMAccountName, employeeid;onelevel

    получаю всю информацию по имени mail а employeeid = NULL

    Reply ↓
  23. KAPACEB.AA

    (24)

    Да, запрос отрабатывает. Может быть, с правами что-то… Насколько я знаю, в AD можно ограничить доступ к конкретному атрибуту объекта.

    Reply ↓
  24. atroxa

    А у Вас тоже NULL возвращает? Если бы было ограничение доступа к конкретному атрибуту, то я его под своей учеткой и в ADExplorer не смог увидеть. И ещё запрос через командную строку выполнял с помощью Dsquery- возвращает заполненный employeeid. А вот через ADODB.Command NULL. Второй день ничего не получается.

    Reply ↓
  25. KAPACEB.AA

    (26)

    У меня возвращает значения (не NULL). Запрос и через консоль LDAP-запросов выполнял и через обработку загрузки из AD (смотрел во отладчике).

    Кстати, если Вы используете версию на управляемых формах в клиент-серверной среде, то запрос может выполняться на сервере, тогда надо учитывать права того пользователя, под которым запущены сервисы 1С.

    Reply ↓
  26. atroxa

    (27)Спасибо за ответы! Буду дальше копать. Радует уже то, что со стороны 1с все настройки и запрос верны, раз у Вас возвращает значение.

    Reply ↓
  27. Puk2

    Спасибо за обработку. Скачал пару лет назад, сейчас после доработок сделали следующее с ДО: со всех баз ЗУП (2.5 и 3.1) выгружаются пользователи в Документооборот. В документообороте регламентным заданием на основе кода данной обработки заполняются из домена контакты пользователя (логин, почта, телефон). У нас несколько городов, у каждого свой поддомен, которому соответствует «рабочая группа» (группа пользователей) в 1С, с правами по умолчанию (возможность создавать заявки и служебки по собственной организации). Скоро «уговорим» админов и будем обновлять данными из ДО в AD, что бы исключить текущий двойной ввод информации.

    Reply ↓
  28. Программулькин

    Ошибка! Для упр форм.

    1С:Предприятие 8.3 (8.3.9.1850)

    Документооборот 8 ПРОФ, редакция 2.1 (2.1.7.9)

    Reply ↓
  29. KAPACEB.AA

    (30)

    Тестировалось только на БП 2.0, 3.0 (КОРП), ЗУП 2.5, УТ 10.3 (об этом сказано в описании к обработке).

    Для других конфигураций, вполне возможно, понадобится напильник.

    Reply ↓
  30. awk

    (2) Что гугл уже не отображает результаты ODBC LDAP Driver?

    Reply ↓
  31. Diversus
    В обеих версиях обработки решена проблема с невозможностью прочитать из AD количество записей, превышающее MaxPageSize, заданное в политиках LDAP (как правило 1000 записей). Теперь чтение производится постранично по 100 записей. Кому интересно, суть проблемы и решение см. здесь

    И там где предполагается решение не указана ссылка.

    Если не сложно добавьте пожалуйста. Интересно, почитать решение.

    Спасибо.

    Reply ↓
  32. KAPACEB.AA

    Оригинальную ссылку не нашел, добавил ссылку на аналогичное решение.

    https://www.oreilly.com/library/view/active-directory-cookbook/0596004648/ch04s08.html

    Reply ↓
  33. burstmashine

    А есть что то типо Загрузка пользователей 1С в Active Directory ? нашёл только https://infostart.ru/public/275916/, но это мало

    Reply ↓
  34. Туки Туки

    (35) У меня есть создание из сотрудника https://infostart.ru/public/972510/

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *