Имя: Пароль:
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) Наверное, здесь тестовая база, которая регулярно перезаливается, так что ручные редакции пропадают. Пишут скрипт, который будет запускаться после перезаливки.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан