Имя: Пароль:
1C
1С v8
Смена пользователя в восьмерочных базах
0 membran
 
06.06.12
16:39
Ситуация следующая: имеется несколько баз на SQL. В каждой из них прописаны пользователи, аутентификация идет средствами windows. Уволился один из бухов и взяли нового. Как теперь поменять его аутентификационные данные во всех базах? Во все базы заходить через конфигуратор - очень много их.
1 qwerty09
 
06.06.12
16:43
(0) Да, во все заходить и менять...до чего же ленивые блин. Много это сколько?
2 fisher
 
06.06.12
16:45
(0) Пользователей (конфигураторских) можно как бы и программно редактировать.
3 vtolga
 
06.06.12
16:47
Заведи пользователя "очередной бухгалтер" (или текущий) :)
4 membran
 
06.06.12
16:47
баз 24 штуки
5 pumbaEO
 
06.06.12
16:48
(4) Надо 10 минут выяснять на форуме как сделать программно, 2 дня писать обработку, тестирование и фух наконец запустим ?
6 qwerty09
 
06.06.12
16:48
(4) ОАО "Газпром"?
7 МихаилМ
 
06.06.12
16:49
8 Maxus43
 
06.06.12
16:49
один бух сидит в 24-ёх базах?
9 fisher
 
06.06.12
16:50
(4) Если не найдешь готовую приблуду, то не проблема нарисовать с нуля. К каждой базе стучаться через COM и программно менять ПользователяОС у нужных пользователей.
10 Irek-kazan
 
06.06.12
16:51
а можно наверное напрямую в СУБД поменять запросом?
11 fisher
 
06.06.12
16:54
(10) Тоже вариант. v8users.OSName
Так даже быстрее и проще, хотя и не круто :)
12 membran
 
06.06.12
16:57
с инфостарта не дает качать без маней, а через v8users.osname как делать?
13 Defender aka LINN
 
06.06.12
16:58
(4) Всего-то? Иди руками меняй, уже бы поменял давно.
14 pumbaEO
 
06.06.12
16:58
(12) Ой, бл..я. На ИТС есть обработка ВыгрузкаЗагрузкаПользователей, или с ИТС тоже без маней не дают скачать?
15 membran
 
06.06.12
17:02
Руками меняю
16 fisher
 
06.06.12
17:04
(12) В (10) написано как.
(13) А ты бы менял руками? ;) Я бы заморочился автоматизировать. По времени то на то, зато в следующий раз в пол-пинка. И интереснее, чем мартышку изображать.
(14) Дык она ему не упростит нифига.
17 membran
 
06.06.12
17:07
Вот в след. раз еще кто-нить уволится и опять такой х... заниматься придеться. Как плохо што нельзя добавлять через группы домена, а только пользователями. А так бы добавил группу в 1С , а наполнение группы отслеживать через домен.
18 Maxus43
 
06.06.12
17:11
(17) можно, напиши. с Active Directory 1с можно скрестить
19 pumbaEO
 
06.06.12
17:12
(15) Слабак
20 membran
 
06.06.12
17:15
Каким образом если в списке пользователей только пользователи показываются, а группы домена нет.
21 fisher
 
06.06.12
17:18
(20) Тебе ж сказали - "напиши". Т.е. готового функционала нет.
А написать - какие проблемы? Вполне реально автоматом генерить нужных пользователей в нужных базах по данным Active Directory
22 Mashinist
 
06.06.12
23:12
ну вот кусок кода

   Если Тип = "0" Тогда
       СтрокаКоннекта = "File="""+СокрЛП(ПутьКБазе)+""";Usr="""+Пользователь+""";Pwd = """+Пароль+""";";        
   Иначе
       Разделитель = Найти(ПутьКБазе, "\");
       Сервер = Лев(ПутьКБазе, Разделитель - 1);
       База = Сред(ПутьКБазе, Разделитель + 1);
       СтрокаКоннекта = "Srvr="""+Сервер+""";Ref="""+База+""";Usr="""+Пользователь+""";Pwd = """+Пароль+""";";        
   КонецЕсли;
       
   Если База8.Connect(СтрокаКоннекта) Тогда
       ПользовательСуществует = База8.ПользователиИнформационнойБазы.НайтиПоИмени(Пользователь8);
       Если ПользовательСуществует = Неопределено Тогда
           НовыйПользователь = База8.ПользователиИнформационнойБазы.СоздатьПользователя();
           НовыйПользователь.Имя = Пользователь8;
           НовыйПользователь.ПолноеИмя = Пользователь8;
           НовыйПользователь.АутентификацияСтандартная = Истина;
           НовыйПользователь.Пароль = ПарольПользователя;
           ВсеРоли = База8.Метаданные.Роли;
           Для Каждого Роль Из ВсеРоли Цикл
               НовыйПользователь.Роли.Добавить(Роль);
           КонецЦикла;
           НовыйПользователь.Язык = База8.Метаданные.Языки.Русский;
           НовыйПользователь.Записать();
       Иначе    
           Если Режим = 4 Тогда
               ПользовательСуществует.Пароль = ПарольПользователя;
               ВсеРоли = База8.Метаданные.Роли;
               ПользовательСуществует.Роли.Очистить();
               Для Каждого Роль Из ВсеРоли Цикл
                   ПользовательСуществует.Роли.Добавить(Роль);
               КонецЦикла;
               ПользовательСуществует.Записать();
           КонецЕсли;
       КонецЕсли;
       
       
   Иначе
       Возврат 0; // ошибка работы с пользователями
   КонецЕсли;
   
совсем не долго писать. хотя с инфостарта реально проще купить :-)
23 Mikhail Volkov
 
07.06.12
04:14
(22) Не понял, а в конфигуратор только руками пользователей заносить? У меня нет столько баз как у (4), несколько баз на УТ10.3, УТ11 и консолидирующая УПП. И задача обратная, чтобы пользователи не размножались как кролики. Приходит новый пользователь, регишь его в базах УТ. А потом смотришь, в УПП он размножился...
Может в "кусок кода" еще ГУИД пользователя вставить?
24 Defender aka LINN
 
07.06.12
08:23
(16) Я - нет, у нас для этого другой отдел есть :Р
Но если бы отдела не было, я бы и на форум не полез, а мануал бы открыл.
25 membran
 
07.06.12
10:35
Эх все это хорошо писать коды и исполнять их через оболочку 1С, а все-таки не хватает обычного функционала 1С для создания групп среди пользователей. Например создал в списке пользователей доменную группу "users_baza8_buhi", а пользователей домена включил в эту группу по-желанию в AD и когда пользователь входит в базу, 1С проверяет его права, т.е. видит что он входит в группу разрешенную и пускает его и регистрирует там. И управлять пользователями проще через AD, а не писать и исполнять обработки и т.п.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой