1с и Active Directory

Проводя собеседования на должность программиста 1с, часто задавал такой простой вопрос: Каким образом на прошлом месте работы вы создавали пользователей в 1с? Очень немного соискателей упоминали “Active Directory” (далее по тексту AD). Кто-то говорил что всегда создает их руками, кто-то что это делает бизнес аналитик и т.д. Про AD половина из них даже и не слышала. Значит пора сделать заметку и показать простые примеры работы с этим механизмом.

Microsoft Active Directory – простыми словами это пакет средств, позволяющий проводить различные действия с пользователями в сети. Т.е. пользователь, под которым вы авторизуетесь входя в систему – это и есть элемент AD. Обычно этим инструментом владеет системный администратор.

Получается, когда приходит в компанию новый пользователь, то администратор создает для него учетную запись в AD и после этого он сможет войти в систему на компьютере. Мы можем этим воспользоваться, создав загрузку пользователей в базу 1с из этого места.

Рассмотрим для примера простой шаблон загрузки (данный механизм работает в моей сети, для вашей сети возможны какие-то поправки в плане подключения к AD).

Для начала узнаем у системного администратора где находится данные механизм и знакомимся с ним – просмотрев там все что возможно. Из всего этого нам будут интересные только доступные свойства у пользователей:

Редактор атрибутов в AD
Редактор атрибутов в AD
  • name – Имя пользователя: Иванов Чак Норрис;
  • samaccountname – Имя авторизация в домене: IChakNorris
  • mail – почтовый ящик: IChakNorris@man.ru
  • userAccountControl – свойство, отвечающие за активность аккаунта. В моем домене значения: “514” или “66050” говорят о том что пользователь заблокирован. В вашем может быть немного по другому (читай на https://support.microsoft.com/ru-kz/help/305144. или http://jackstromberg.com/2013/01/useraccountcontrol-attributeflag-values/).
Значения userAccountControl
Значения userAccountControl

Далее с помощью нехитрого кода считываем эти данные из AD (заметьте что отбираем записи только определенной категории (“Person”) и класса “user”):

Обращение к полям выборки необходимо так ВыборкаАДО.Fields(“name”).Value:

Имея этот мощный инструмент, мы без проблем сможем загружать/блокировать/обновлять любого пользователя системы в базе 1с.

Пример алгоритма загрузки пользователей, реализованный в прикрепленной обработке:

  • Загружаем пользователей из AD;
  • Далее в “ПользователиИнформационнойБазы” я делаю поиск существующего пользователя по доменному имени и затем если не нашел, то по имени:
Поля поиска в
ПользователиИнформационнойБазы
Поля поиска в
ПользователиИнформационнойБазы
  • Если пользователь найден, то можно выполнять с ним необходимые действия (обновить информацию, заблокировать);
  • Если пользователь не найден, то создаем его:
  • Обратите внимание! После того как вы создали нового пользователя ИБ, необходимо так же создать и пользователя в справочнике “Пользователи”. Для привязки этих элементов используйте реквизит справочника “ИдентификаторПользователяИБ
Реквизит связка " ИдентификаторПользователяИБ"
Реквизит связка “ИдентификаторПользователяИБ

В этой статье я попытался дать основы работы с AD и 1с. Это лишь малая часть существующих возможностей. Этой базы должно думаю вам хватить, что бы хоть немного быть в теме.

Качаем обработку по ссылке https://yadi.sk/d/oaFq7KgdK4ynOQ. В ней реализована загрузка из AD в таблицу на форме и отдельно описан механизм загрузки пользователей ИБ. Пользуемся, дорабатываем, улучшаем!

П.С. Если у вас подключение к AD происходит другим способом, то просьба написать в комментах – ну очень уж интересны другие варианты.

Спасибо! Ваш Иванов Чак Норрис!

Сайт как пазл, который собирают программисты, верстальщики, дизайнеры, интернетмаркетологи.

Оставить комментарий

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