Имя: Пароль:
1C
1С v8
Помогите разобраться с обработкой
,
0 ikbokov
 
03.06.14
14:03
Недавно начал осваивать 1с.
Проблема такая: в УПП хочу всем пользователям в настройках проставить галочку "Запретить открытие нескольких сеансов"
Помогите разобраться, что не так написал, или что написал так?)
Выдает ошибку:
{ОбщийМодуль.УправлениеПользователями.Модуль(605)}: Ошибка при вызове метода контекста (Записать)
    МенеджерЗаписи.Записать();
по причине:
Запись не верна! Значение поля "Пользователь" не может быть пустым!: НастройкиПользователей: , Запретить открытие нескольких сеансов (Регистр сведений: Настройки пользователей)

Вот код обработки:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого Пользователь  из СписокПольЗователей цикл
     ТекПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(Пользователь.Имя);
     Если ТекПользователь.ПоказыватьВСпискеВыбора = Истина    Тогда
                    УправлениеПользователями.УстановитьЗначениеПоУмолчанию(Пользователь, "ЗапретитьОткрытиеНесколькихСеансов", Истина);
            //Сообщить (ТекПользователь.Имя);
            Сообщить (УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь.Имя, "ЗапретитьОткрытиеНесколькихСеансов"));
          
       КонецЕсли;
КонецЦикла;
    
    
    
КонецПроцедуры
1 Рэйв
 
03.06.14
14:06
>>ТекПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(Пользователь.Имя);

Это зачем? У тебя же есть Пользователь уже:-)
Из

Для Каждого Пользователь  из СписокПольЗователей цикл
2 Рэйв
 
03.06.14
14:08
Не в курсах что там у тебя в УправлениеПользователями.УстановитьЗначениеПоУмолчанию), но мне кажется там надо работать со справочником "Пользователи"
3 Поpyчик-4
 
03.06.14
14:09
(0) Пользователь, которого вы передаёте в процедуру УстановитьЗначениеПоУмолчанию, не тот пользователь, которого ожидает процедура.

(2) Не кажется, а точно надо работать со справочником "Пользователи".
4 ikbokov
 
03.06.14
14:44
А там как их вытащить всех? получить форму списка для начала?
5 Рэйв
 
03.06.14
14:46
(4)

Выборка=Справочники.Пользователи.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.ЭтоГруппа Тогда  
      Пробдолжить;
    КонецЕсли;
    Пользователь=Выборкассылка
КонецЦикла;
6 Рэйв
 
03.06.14
14:46
*Выборка.ссылка
7 ikbokov
 
03.06.14
14:52
Спасибо)

Это папки пропускать?
Если Выборка.ЭтоГруппа Тогда  
      Продолжить;
8 Поpyчик-4
 
03.06.14
14:53
(7) Так никогда не пиши. Пользуйся запросами.
9 Рэйв
 
03.06.14
15:15
(8)Я специально попроще написал:-)
10 Поpyчик-4
 
03.06.14
15:50
(9) А потом будет быдлокодить в типовых. Профи же посоветовал!
11 ikbokov
 
05.06.14
07:25
Вот так хорошо?)

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос("ВЫБРАТЬ
|      Пользователи.Ссылка Польз
|ИЗ
|      Справочник.Пользователи КАК Пользователи");

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
    Пользователь = Выборка.Польз;
    УправлениеПользователями.УстановитьЗначениеПоУмолчанию(Пользователь, "ЗапретитьОткрытиеНесколькихСеансов", Истина);
    
    Сообщить ("Запрет:" +УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Пользователь, "ЗапретитьОткрытиеНесколькихСеансов"));
    Сообщить("Пользователь: " + Пользователь);
КонецЦикла;
КонецПроцедуры
12 Мимохожий Однако
 
05.06.14
07:52
Настройки пользователей - это регистр сведений Настройки пользователей. Поэтому надо делать запрос к этому регистру и списку пользователей. Потом получить набор записей и установить требуемое значение
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший