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

27.05.14

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

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

Скачать файлы

Наименование Файл Версия Размер
СоздатьПользователейПакет.epf
.1229511331 14,42Kb
385
.1229511331 14,42Kb 385 Скачать

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

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

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

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

 


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

 

 

 

 

См. также

SALE! 20%

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122091    670    389    

714

SALE! 25%

Infostart PrintWizard

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

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7281    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3521    11    1    

34

SALE! 30%

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177733    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

5000 руб.

07.02.2018    99343    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18106    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28104    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23599    15    15    

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

(2) это название группы в моем AD. Если у вас все в корне - оставьте пустым
4. Abadonna 3958 17.12.08 14:53 Сейчас в теме
(3) 7.7. поюзать, Ексель тоже. А вот создать юзверей в конфигураторе не выйдет.
В 7.7 юзвери в конфигураторе (вернее, в конфигурации) никогда и не создавались. А для тех, кто знает структуру users.usr, насоздавать юзверей - как два байта отослать ;)
2. Fuego 462 17.12.08 14:29 Сейчас в теме
RostovoblgazService - А это зачем? :)
5. Fuego 462 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 462 17.12.08 15:48 Сейчас в теме
И в догонку ещё одну процедурку:

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

ЗЫ: еще б уж тогда до кучи добавить чтоб у этих же юзеров заодно и почта на exchange прописывалась, чтоб админы ваще не работали :)
9. kgw@list.ru 18.12.08 09:23 Сейчас в теме
Подскажите, а если нет домена тогда как?
10. adapter 417 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 417 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 417 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 417 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 22.12.11 12:17 Сейчас в теме
Спасибо за обработку, пригадилась
22. Гость 20.02.12 10:25
Спасибо за обработку, пригодилась
Оставьте свое сообщение