Имя: Пароль:
1C
 
Пользователи Информационной Базы
0 ivl19
 
06.06.23
17:22
Подскажите пожалуйста как циклом перебрать всех пользователей ИБ полученных из запроса? ПользователиИнформационнойБазы
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    СоставыГруппПользователей.Пользователь КАК Пользователь
|ИЗ
|    РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
|    СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей";
Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступаАдминистраторТБ);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
1 Волшебник
 
06.06.23
17:23
это не они
2 ivl19
 
06.06.23
17:29
В запросе получаю пользователей из нужной группы, далее нужно перебрать данных пользователей в ПользователиИнформационнойБазы
3 ivl19
 
06.06.23
17:39
требуется поставить пользователям "ПредупреждатьОбОпасныхДействиях" Ложь
4 Philix
 
06.06.23
17:47
(0) Если загадочная конфигурация похожа на какую-то, что использует БСП, то в справочнике пользователей (ссылка на которого получена в запросе) есть реквизит типа УникальныйИдентификатор, по которому идет сопоставление элемента справочника Пользователи с пользователями, которые видны в конфигураторе. Далее надо воспользоваться функцией НайтиПоУникальномуИдентификатору Менеджера Пользователей Информационной Базы. Это позволит получить пользователя информационной базы. И уже над ним производить магические действия.
Рекомендую попробовать на какой-нибудь копии :)
5 ivl19
 
06.06.23
17:53
База бух 8.3
ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(РезультатЗапроса[1].Пользователь.ИдентификаторПользователяИБ); так получаю одного пользователя, как их перебрать?) пользователей из РезультатЗапроса
6 ivl19
 
06.06.23
18:03
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    СоставыГруппПользователей.Пользователь КАК Пользователь
|ИЗ
|    РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
|    СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей";
Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступаАдминистраторТБ);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();


Для Каждого ПользователяИБ Из РезультатЗапроса Цикл
        ИдентификаторПОльзователя = ПользователяИБ.Пользователь.ИдентификаторПользователяИБ;
КонецЦикла;

А что дальше?
7 ivl19
 
06.06.23
18:34
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    СоставыГруппПользователей.Пользователь КАК Пользователь
|ИЗ
|    РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
|    СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей";
Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступаАдминистраторТБ);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Для Каждого ПользователяИБ Из РезультатЗапроса Цикл
        ИдентификаторПОльзователя = ПользователяИБ.Пользователь;
        Пользователь = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИдентификаторПОльзователя.ИдентификаторПользователяИБ) ;
        Пользователь.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
        Пользователь.Записать();
КонецЦикла;
8 Волшебник
 
06.06.23
20:20
у Вас переменные называются ложно.
Например РезультатЗапроса на самом деле таблица значений, а ПользователяИБ — строка таблицы значений.
9 AAA
 
06.06.23
20:35
Странная задача. Ну сколько в базе пользователей, 10, 20?
Гораздо быстрее - открыть конфигуратор и проставить руками галочки. Не все надо автоматизировать
10 Казуар
 
06.06.23
21:31
ЗащитаОтОпасныхДействий                 = Новый ОписаниеЗащитыОтОпасныхДействий;
ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
Пользователь.ЗащитаОтОпасныхДействий                     = ЗащитаОтОпасныхДействий;
11 Волшебник
 
07.06.23
08:30
(9) Наверное, здесь тестовая база, которая регулярно перезаливается, так что ручные редакции пропадают. Пишут скрипт, который будет запускаться после перезаливки.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший