Имя: Пароль:
1C
 
Проверить имя текущего пользователя
0 IT_PROGRAMMIST
 
03.12.10
17:23
Здравствуйте!!Как проверить имя текущего пользователя?Т.е мне надо,чтобы определённый отчет видел только определённый пользователь.
Делаю так:
ПользовательСправамиДоступа=ПользователиИнформационнойБазы.НайтиПоИмени("Иванов И.И.");
  ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь();
 Если ТекущийПользователь=ПользовательСправамиДоступа тогда
   Сообщить("молодец");
иначе
   Сообщить("нет");
   КонецЕсли;
условие не срабатывает.Где ошибка?
1 разработчик 1с
 
03.12.10
17:25
Проверь ПользовательСправамиДоступа после поиска, что там. Если Неопределено, то поиск не срабатывает, если пользователь, смотри текущего..
2 IT_PROGRAMMIST
 
03.12.10
17:28
поиск работает верно.Даже в условие(Иванов И.И.=Иванов И.И.)
3 rbcvg
 
03.12.10
17:38
(0)может типы разные? глянь в отладчике.
4 rbcvg
 
03.12.10
17:42
+(3) попробуй
ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь.Имя();
5 IT_PROGRAMMIST
 
03.12.10
17:50
Пишет ошибку :{Отчет.ОтчетИнвентаризацияТоваровНаСкладе.Форма.ФормаОтчета(99)}: Метод объекта не обнаружен (Имя)
 Если ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя("Иванов И.И.") тогда
6 rbcvg
 
03.12.10
17:52
"Иванов И.И." - не надо.
просто
ПользователиИнформационнойБазы.ТекущийПользователь().Имя()
7 IT_PROGRAMMIST
 
03.12.10
17:55
С помощью ПользователиИнформационнойБазы.ТекущийПользователь().Имя система мне возвратит имя текущего пользователя.А мне нужно ,чтобы сравнивало с другим.Т.Е.
ТекущийПользователь(например Иванов И.И.)
ДругойПользователь(например Сидоров А.А)
Если ТекущийПользователь=ДругойПользователь тогда.....
8 rbcvg
 
03.12.10
17:57
(7) да сравнивай, я не против. посмотри на типы данных, которые ты сравниваешь.
9 IT_PROGRAMMIST
 
03.12.10
17:57
Я это делаю,чтобы отчет открыть мог только определённый пользователь,например Иванов И.И.
10 разработчик 1с
 
03.12.10
17:58
Заведи параметр сеанса
11 IT_PROGRAMMIST
 
03.12.10
18:00
ТИПЫ:
ПользовательИнформационнойБазы=ПользовательИнформационнойБазы
12 IT_PROGRAMMIST
 
03.12.10
18:05
Проблема решена надо было написать так:
   ПользовательСправамиДоступа=ПользователиИнформационнойБазы.НайтиПоИмени("Иванов И.И.");
  ТекущийПользователь=ПользователиИнформационнойБазы.ТекущийПользователь();
 Если ТекущийПользователь.Имя=ПользовательСправамиДоступа.Имя тогда
   Сообщить("молодец");
иначе
   Сообщить("нет");
   КонецЕсли;
13 IT_PROGRAMMIST
 
03.12.10
18:05
ВСЕМ СПАСИБО ЗА ПОМОЩЬ
14 разработчик 1с
 
03.12.10
18:10
По ходу, у тебя в базе есть два пользователя с одинаковыми именами
15 Худой
 
04.12.10
07:06
Процедура ПроверитьВозможностьРаботыПользователя(Отказ) Экспорт
   Если ИмяПользователя() = "Иванов И.И." Тогда
       Соединения = ПолучитьСоединенияИнформационнойБазы();
       Предупреждение("Пользователей в базе " + Строка(Соединения.Количество())+Символы.ПС+ИмяПользователя());
       возврат;
   КонецЕсли;
   Соединения = ПолучитьСоединенияИнформационнойБазы();
   Если Соединения.Количество()>81 Тогда
       Отказ = Истина;
       #Если Клиент Тогда
           Предупреждение("В системе уже работают 80 пользователей!"+Символы.ПС+"Вход в систему не возможен!"+Символы.ПС+"По всем вопросам обращайтесь к Сидоровой по тел. 64517", 20, "Недостаточно лицензий");
       #КонецЕсли
   КонецЕсли;
   
   Если НЕ РольДоступна("ПолныеПрава") И НЕ РольДоступна("Бухгалтер") Тогда
       Отказ = Истина;
       #Если Клиент Тогда
       Предупреждение("У текущего пользователя нет доступных ролей, для запуска информационной базы.", 10, "Недостаточно прав доступа");
       #КонецЕсли
   КонецЕсли;
   
КонецПроцедуры


И очень внимательно присмотрись к правильному написанию пользователя.
16 sergeante
 
04.12.10
14:24
(0) после.знаков.препинания,ставь.пробелы.