Загрузка пользователей 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.2024: Небольшие 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 не будет опубликован. Обязательные поля помечены *