Adaptersoft : Пакетное создание пользователей

27.05.14

Разработка - Инструментарий разработчика

обработка для пакетного создания пользователей в 1С и в ActiveDirectory. На универсальность не претендую, делал под задачу, но вроде должна работать и в типовых конфигурациях.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
СоздатьПользователейПакет.epf
.1229511331 14,42Kb
385 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Может брать список из Екселя. Поля подхватываются по наименованию, диапазон задавать не надо - сам найдет.

В AD пользователи создаются через провайдер LDAP (ADSI).

Если в 1С задавать аутентификацию ОС, то сначала запустите с галкой "Создать в терминале", а потом второй раз с галкой "создать в 1С". Потому что пакетом юзвери в AD создаются медленно и поэтому не сразу находятся.

При повторном запуске пользователи пересоздаются. И в AD и в 1С.

 


Обработка устарела, вернее выросла в конфигурацию ServiceDesk1C

 

 

 

 

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

См. также

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

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

15500 руб.

02.09.2020    206797    1139    411    

1034

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    37239    213    111    

201

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    16923    73    39    

89

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24605    65    28    

93

Инструментарий разработчика Программист 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    35576    129    53    

172

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    2092    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107935    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GSoft 2237 17.12.08 14:28 Сейчас в теме
эх.. такую бы на семерке
3. adapter 418 17.12.08 14:34 Сейчас в теме
(1) LDAP думаю можно и на 7.7. поюзать, Ексель тоже. А вот создать юзверей в конфигураторе не выйдет.

(2) это название группы в моем AD. Если у вас все в корне - оставьте пустым
4. Abadonna 3974 17.12.08 14:53 Сейчас в теме
(3) 7.7. поюзать, Ексель тоже. А вот создать юзверей в конфигураторе не выйдет.
В 7.7 юзвери в конфигураторе (вернее, в конфигурации) никогда и не создавались. А для тех, кто знает структуру users.usr, насоздавать юзверей - как два байта отослать ;)
2. Fuego 463 17.12.08 14:29 Сейчас в теме
RostovoblgazService - А это зачем? :)
5. Fuego 463 17.12.08 15:15 Сейчас в теме
Код
Процедура СоздатьПользователя(Имя, Аккаунт, НачальныйПароль)

   ADS_UF_NORMAL_ACCOUNT = 512; 

   Попытка
      DSE = ПолучитьCOMОбъект("LDAP://rootDSE");
      
       мПользователи = ПолучитьCOMОбъект("LDAP://CN=Users," +  DSE.Get("defaultNamingContext"));
                         
       мНовыйПользователь = мПользователи.Create("user", "CN=" + Имя); 
         
       мНовыйПользователь.Put("sAMAccountName", Аккаунт);

       мНовыйПользователь.SetInfo(); 
 
       мНовыйПользователь.SetPassword(НачальныйПароль);
 
       мНовыйПользователь.Put("pwdLastSet", 0);

      мНовыйПользователь.Put("userAccountControl", ADS_UF_NORMAL_ACCOUNT);
      
       мНовыйПользователь.SetInfo();
   Исключение
      Сообщить(ОписаниеОшибки());
   КонецПопытки;
КонецПроцедуры
Показать полностью
6. Fuego 463 17.12.08 15:48 Сейчас в теме
И в догонку ещё одну процедурку:

Код
Процедура СоздатьПользователя_в_1С_с_АутентификациейОС(ИмяУчетнойЗаписи, Аккаунт)
   Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяУчетнойЗаписи);
   Если Пользователь <> Неопределено Тогда
      Если Пользователь.АутентификацияОС И Пользователь.ПользовательОС = Аккаунт Тогда
         Сообщить("Пользователь «"+ИмяУчетнойЗаписи+"» уже существует и имеет аутентификацию ОС");
         Возврат;
      КонецЕсли;
   Иначе
      Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
   КонецЕсли;
   Пользователь.АутентификацияОС = Истина;
   Пользователь.ПользовательОС = Аккаунт;
   Пользователь.Имя = ИмяУчетнойЗаписи;
   Пользователь.ПолноеИмя = ИмяУчетнойЗаписи;
   Попытка
       Пользователь.Записать();
   Исключение
      Сообщить(ОписаниеОшибки());
   КонецПопытки;
КонецПроцедуры
Показать полностью
7. sound 538 18.12.08 07:37 Сейчас в теме
А чтоб самому не париться с users.usr и "байты не отсылать", можно как вариант
для создания юзверей в 7-ке UsersDef.dll поюзать, так еще прошу будет
8. sound 538 18.12.08 07:52 Сейчас в теме
Извиняюсь, хотел написать "так еще проще будет"

ЗЫ: еще б уж тогда до кучи добавить чтоб у этих же юзеров заодно и почта на exchange прописывалась, чтоб админы ваще не работали :)
9. kgw@list.ru 18.12.08 09:23 Сейчас в теме
Подскажите, а если нет домена тогда как?
10. adapter 418 18.12.08 12:14 Сейчас в теме
через LDAP можно и локальных пользователей создавать. В мануале по ADSI описано. Выложить?
11. Zlodey 47 18.12.08 13:11 Сейчас в теме
В Висте 64 бита не работает, ругается:
{Форма.Форма(218)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Указанный домен не существует или к нему невозможно подключиться.
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE");

//домен для авторизации ОС
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE"); ---- вот тут
strDC = objRootLDAP.Get("defaultNamingContext"); //получаем имя домена формата LDAP
Домен = СтрЗаменить(strDC, ",DC=ru", "\");
Домен = СтрЗаменить(Домен, "DC=", "\\");
12. adapter 418 18.12.08 14:48 Сейчас в теме
видимо дело не в Висте, а в том что у вас домена нет
13. BaronDevil 27.01.09 10:56 Сейчас в теме
Выложите пожалуйста обработку с учетом того что нет домена. Большое спасибо)
14. Jacki 12.01.10 17:00 Сейчас в теме
а можно поподробнее объяснить следующий момент:
// для работы в AD от имени другого пользователя, не текущего
//Set objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "пароль", 0)

не понял как это использовать :oops:
если просто вставлять в код
strOU = "Admins";
strDC = "DC=test,DC=lan";
objRootLDAP = ПолучитьCOMОбъект("LDAP://" + strDC);
Set objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "123", 0);

то выдаётся сообщение об ошибке "Неопознанный оператор SET <<?>>objContainer"
если без SET:
strOU = "Admins";
strDC = "DC=test,DC=lan";
objRootLDAP = ПолучитьCOMОбъект("LDAP://" + strDC);
objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "123", 0);

то ругается "Метод объекта не обнаружен (OpenDSObject)"
Заранее спасибо!
15. adapter 418 12.01.10 23:34 Сейчас в теме
я конечно структуры ваших доменов не знаю, но думаю что вы напутали в этой строчке:
strDC = "DC=test,DC=lan";

посмотрите как вам возвращается ваш домен по умолчанию в
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE")
16. Jacki 13.01.10 00:41 Сейчас в теме
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE");
strDC = objRootLDAP.Get("defaultNamingContext");

strDC = "DC=test,DC=lan"
сам домен имеет вид test.lan
17. Jacki 15.01.10 11:58 Сейчас в теме
разобрался, чтобы получить доступ от имени другого пользователя
SuperUser = "admin";
SuperUserPWD = "123";
strOU = "OU=Admins,";
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE"); 
strDC = objRootLDAP.Get("defaultNamingContext");
DS = ПолучитьCOMОбъект("LDAP:");		
objContainer = DS.OpenDSObject("LDAP://" + strOU + strDC, SuperUser, SuperUserPwd, 0);
Показать

ещё раз спасибо за обработку и помощь! ;)
18. adapter 418 04.08.10 11:38 Сейчас в теме
обработка устарела. с конца 2008 года (когда я ее выкладывал) уже много воды утекло. переписал прилично, так что список изменений уже и весь не воспроизведу. Теперь обработка на 8.2 и в составе конфигурации ServiceDesk1С. На демке этот модуль кажется открыт - смотрите, колупайте кому надо.

На вскидку:
- может работать без домена (кто то просил)
- определяет права и группы из АД. Можно по умолчанию настроить для каждой базы или потом докинуть прав существующим пользователям AD
- расширенный поиск по АД - (по логину, части ФИО и пр.)
- все переписано под библиотеку универсальных запросов к AD (в составе конфы)
- может интегрироваться с любым сервисом, в том числе и не 1С. Процесс автоматизирован

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

А обработка - просто пример кода, "кирпичик"
19. Jacki 03.09.10 14:15 Сейчас в теме
(18) При попытке создать пользователя спотыкаюсь на установке пароля для пользователя
{Обработка.СозданиеПользователей.Форма.Форма.Форма(417)}: Ошибка при вызове метода контекста (SetPassword)
objUser.SetPassword(strPWD);
по причине:
Произошла исключительная ситуация (0x80072030)

учётка админа под которой создаётся учётная запись все необходимые права имеет, без пароля всё остальное создаётся на ура
пароль соответствует политике безопасности
objUser.userAccountControl = 65536;
objUser.pwdLastSet = 0;
strPWD = "7EdfmR!";
objUser.SetPassword(strPWD);

как думаете - в чём могут быть грабли?

P.S.: на 8.1 то же самое возвращает такую ошибку
{Форма.Форма(392)}: Ошибка при вызове метода контекста (SetPassword): Произошла исключительная ситуация (Active Directory): Один или более входных параметров неправильны

objUser.SetPassword(strPWD);
по причине:
Произошла исключительная ситуация (Active Directory): Один или более входных параметров неправильны
20. Jacki 03.09.10 17:04 Сейчас в теме
После многочисленных прогонов открылся интересный нюанс - с вероятностью 1/15 - 1/20 пароль таки задаётся...
Определённо проблемы на контроллере домена.
21. Massimo 1 22.12.11 12:17 Сейчас в теме
Спасибо за обработку, пригадилась
22. Гость 20.02.12 10:25
Спасибо за обработку, пригодилась
Оставьте свое сообщение