8.х Не открывается список пользователей УТ 10.3

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем pitgtn, 24 окт 2012.

  1. TopicStarter Overlay
    pitgtn
    Offline

    pitgtn

    Регистрация:
    27 фев 2011
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    При попытке открыть Сервис -> Пользователи -> Список пользователей, в самой конфигурации (не конфигуратор), выдает ошибку

    Код:
    {Обработка.СписокПользователейИБ(37)}: Поле объекта недоступно для записи (Пользователь)<br>Для Каждого Пользователь Из Пользователи Цикл
    Просмотреть список можно только при смене пользователя для регламентных заданий.
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    1. Этот режим называется 1С: Предприятие, есть в каждом тесте на профессионала 1С
    2. В обработке есть ошибка, открывайте на отладку и смотрите в чем конкретно ошибка. Это не пользователи информационной базы, а справочник пользователей 1С, ничего страшного в этом нет, отладьте ошибку и все будет пучечком. Удачи!
  3. TopicStarter Overlay
    pitgtn
    Offline

    pitgtn

    Регистрация:
    27 фев 2011
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Про режим извиняюсь.
    Как я понял ошибка из-за переменной "Пользователь". Замена на "Пользователи" помогает, но тогда не работают стандартные обработки, например "КонсольЗаданий.epf" с диска ИТС. Откуда берется переменная "Пользователь"? При отладке Значение: не присвоено, Тип: ОбщийМодуль
    Так было.
    Код:
    Процедура СформироватьИменаРолейДляВыводаПользователю(Знач Пользователь, РезультатИмена, РезультатПредставление)
    
    РезультатИмена		 = "";
    РезультатПредставление = "";
    
    РезультатРоли = Новый СписокЗначений;
    Для Каждого Роль Из Пользователь.Роли Цикл
    РезультатРоли.Добавить(Роль.Имя,Роль);
    КонецЦикла;
    РезультатРоли.СортироватьПоЗначению();
    
    Для Каждого Роль Из РезультатРоли Цикл
    РезультатИмена		 = РезультатИмена + Роль.Значение + ", ";
    РезультатПредставление = РезультатПредставление + Роль.Представление + ", ";
    КонецЦикла;
    
    РезультатИмена = Сред(РезультатИмена, 1, СтрДлина(РезультатИмена) - 2);
    РезультатПредставление = Сред(РезультатПредставление, 1, СтрДлина(РезультатПредставление) - 2);	
    
    КонецПроцедуры
    
    // заполнить список пользователей ИБ
    Процедура ЗаполнитьСписокПользователейИБ(ОтборСтрок) Экспорт
    
    ТабличнаяЧастьПользователей.Очистить();
    
    Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
    
    Для Каждого Пользователь Из Пользователи Цикл
    
    ТекущиеДанные = ТабличнаяЧастьПользователей.Добавить();
    ТекущиеДанные.Имя = Пользователь.Имя;
    ТекущиеДанные.ПолноеИмя = Пользователь.ПолноеИмя;
    
    ТекущиеДанные.ПарольУстановлен = Пользователь.ПарольУстановлен;
    ТекущиеДанные.ПоказыватьВСпискеВыбора = Пользователь.ПоказыватьВСпискеВыбора;
    ТекущиеДанные.АутентификацияСтандартная = Пользователь.АутентификацияСтандартная;
    ТекущиеДанные.АутентификацияОС = Пользователь.АутентификацияОС;
    Попытка
    ТекущиеДанные.ПользовательОС = Пользователь.ПользовательОС;
    Исключение
    ТекущиеДанные.ПользовательОС = "<Неверные данные>";
    КонецПопытки;
    
    Если Пользователь.Язык = Неопределено Тогда
    ТекущиеДанные.Язык = "";
    ТекущиеДанные.ЯзыкПредставление = "";
    Иначе
    ТекущиеДанные.Язык = Пользователь.Язык.Имя;
    ТекущиеДанные.ЯзыкПредставление = Пользователь.Язык;
    КонецЕсли;
    
    Если Пользователь.ОсновнойИнтерфейс = Неопределено Тогда
    ТекущиеДанные.ОсновнойИнтерфейс = "";
    ТекущиеДанные.ОсновнойИнтерфейсПредставление = "";
    Иначе
    ТекущиеДанные.ОсновнойИнтерфейс = Пользователь.ОсновнойИнтерфейс.Имя;
    ТекущиеДанные.ОсновнойИнтерфейсПредставление = Пользователь.ОсновнойИнтерфейс;
    КонецЕсли;
    
    РезультатИмена		 = "";
    РезультатПредставление = "";
    СформироватьИменаРолейДляВыводаПользователю(Пользователь, РезультатИмена, РезультатПредставление);
    ТекущиеДанные.Роли = РезультатИмена;
    ТекущиеДанные.РолиПредставление = РезультатПредставление;
    
    ТекущиеДанные.УникальныйИдентификатор = Пользователь.УникальныйИдентификатор;	
    УстановитьОтборПоРолям(ТекущиеДанные, ОтборСтрок);
    
    КонецЦикла;
    
    ТабличнаяЧастьПользователей.Сортировать("Имя");
    
    КонецПроцедуры
    
    
    Так у меня получился рабочий вариант
    Код:
    Процедура СформироватьИменаРолейДляВыводаПользователю(Знач Пользователь, РезультатИмена, РезультатПредставление)
    
    РезультатИмена		 = "";
    РезультатПредставление = "";
    ПользователиСписок = ПользователиИнформационнойБазы.ПолучитьПользователей();
    РезультатРоли = Новый СписокЗначений;
    Для Каждого Роль Из ПользователиСписок Цикл
    РезультатРоли.Добавить(Роль.Имя,Роль);
    КонецЦикла;
    РезультатРоли.СортироватьПоЗначению();
    
    Для Каждого Роль Из РезультатРоли Цикл
    РезультатИмена		 = РезультатИмена + Роль.Значение + ", ";
    РезультатПредставление = РезультатПредставление + Роль.Представление + ", ";
    КонецЦикла;
    
    РезультатИмена = Сред(РезультатИмена, 1, СтрДлина(РезультатИмена) - 2);
    РезультатПредставление = Сред(РезультатПредставление, 1, СтрДлина(РезультатПредставление) - 2);	
    
    КонецПроцедуры
    
    // заполнить список пользователей ИБ
    Процедура ЗаполнитьСписокПользователейИБ(ОтборСтрок) Экспорт
    
    ТабличнаяЧастьПользователей.Очистить();
    
    ПользователиСписок = ПользователиИнформационнойБазы.ПолучитьПользователей();
    
    Для Каждого Пользователи Из ПользователиСписок Цикл
    
    ТекущиеДанные = ТабличнаяЧастьПользователей.Добавить();
    ТекущиеДанные.Имя = Пользователи.Имя;
    ТекущиеДанные.ПолноеИмя = Пользователи.ПолноеИмя;
    
    ТекущиеДанные.ПарольУстановлен = Пользователи.ПарольУстановлен;
    ТекущиеДанные.ПоказыватьВСпискеВыбора = Пользователи.ПоказыватьВСпискеВыбора;
    ТекущиеДанные.АутентификацияСтандартная = Пользователи.АутентификацияСтандартная;
    ТекущиеДанные.АутентификацияОС = Пользователи.АутентификацияОС;
    Попытка
    ТекущиеДанные.ПользовательОС = Пользователи.ПользовательОС;
    Исключение
    ТекущиеДанные.ПользовательОС = "<Неверные данные>";
    КонецПопытки;
    
    Если Пользователи.Язык = Неопределено Тогда
    ТекущиеДанные.Язык = "";
    ТекущиеДанные.ЯзыкПредставление = "";
    Иначе
    ТекущиеДанные.Язык = Пользователи.Язык.Имя;
    ТекущиеДанные.ЯзыкПредставление = Пользователи.Язык;
    КонецЕсли;
    
    Если Пользователи.ОсновнойИнтерфейс = Неопределено Тогда
    ТекущиеДанные.ОсновнойИнтерфейс = "";
    ТекущиеДанные.ОсновнойИнтерфейсПредставление = "";
    Иначе
    ТекущиеДанные.ОсновнойИнтерфейс = Пользователи.ОсновнойИнтерфейс.Имя;
    ТекущиеДанные.ОсновнойИнтерфейсПредставление = Пользователи.ОсновнойИнтерфейс;
    КонецЕсли;
    
    РезультатИмена		 = "";
    РезультатПредставление = "";
    СформироватьИменаРолейДляВыводаПользователю(Пользователь, РезультатИмена, РезультатПредставление);
    ТекущиеДанные.Роли = РезультатИмена;
    ТекущиеДанные.РолиПредставление = РезультатПредставление;
    
    ТекущиеДанные.УникальныйИдентификатор = Пользователи.УникальныйИдентификатор;	
    УстановитьОтборПоРолям(ТекущиеДанные, ОтборСтрок);
    
    КонецЦикла;
    
    ТабличнаяЧастьПользователей.Сортировать("Имя");
    
    КонецПроцедуры
    

Поделиться этой страницей