Имя: Пароль:
1C
 
Как получить текущего пользователя?
0 jq
 
27.11.06
16:45
В конфигураторе в администрировании задал пользователя: User1. В глоб. модуле написал:

Процедура ПриНачалеРаботыСистемы()
   Сообщить("Пользователь " + Пользователь);
   Если Пользователь = "User1" Тогда
       Сообщить("да!");
   КонецЕсли;
КонецПроцедуры

Захожу в режиме предприятия под этим пользователем, и пользователь неопределен. Как правильно?
1 Trigg
 
27.11.06
16:46
ИмяПользователя()
2 zbv
 
27.11.06
16:46
ИмяПользователя()
3 miki
 
27.11.06
16:47
UserName()
UserFullName()
4 myk0lka
 
27.11.06
16:47
Синтаксис-Помощник рулит... :)))
5 Иде я
 
27.11.06
16:48
(1)+1
(2) а тебе -1. Думаешь долго перед ответом.
6 igork1966
 
27.11.06
16:48
(0) А конфу Пушкин сообщать будет? Мой телепат предполагает:

Процедура ПриНачалеРаботыСистемы()

..........

   // Установка текущего пользователя.
   Если ПустоеЗначение(ИмяПользователя()) = 0 Тогда
       Спр = СоздатьОбъект("Справочник.Пользователи");
       Если Спр.НайтиПоКоду(ИмяПользователя()) = 0  Тогда
           Спр.Новый();
           Спр.Код = ИмяПользователя();
           Спр.Наименование = ПолноеИмяПользователя();
           Спр.Записать();
           Предупреждение("Пользователь зарегистрирован в справочнике пользователей.
                          |В новых документах будет фиксироваться автор.", 60);
       КонецЕсли;
       Пользователь = Спр.ТекущийЭлемент();
       Спр = 0;
   Иначе
       Пользователь = "";
       Предупреждение("Пользователь системы не определен!");
   КонецЕсли;
7 jq
 
27.11.06
16:50
Хе, пишет: Пользователь User1, а второе сообщение не выводит
8 jq
 
27.11.06
16:51
А что для этого обязательно добавлять его в справочник Пользователи???
9 kir-g
 
27.11.06
16:51
(7)Ты (6)посмотри
10 miki
 
27.11.06
16:51
(7)TrimAll() рулит
11 igork1966
 
27.11.06
16:52
(8) А конфу Пушкин сообщать будет?
12 igork1966
 
27.11.06
16:53
(11) + в (6) кусок из комплексной. Пользователь там глобальная переменная содержащая ссылку на элемент справочника пользователи. Что у тебя предпологается ХЗ.
13 igork1966
 
27.11.06
16:55
(12) + причем переменная Пользователь инициализируется в процедуре ПриОткрытии...
14 jq
 
27.11.06
17:00
Конфа УТ, мне просто надо проверить, является ли пользователь, под кот. я зашел, тем, кто мне нужен или нет
15 jq
 
27.11.06
17:01
Пишу:

   Спр = СоздатьОбъект("Справочник.Сотрудники");
   
   Сообщить("Пользователь " + Пользователь);
   Польз = Спр.НайтиПоКоду(ИмяПользователя());
   
   Если Пользователь = Польз Тогда
       Сообщить("да!");
   Иначе
       Сообщить("нет!");
   КонецЕсли;

Все время выскакивает "нет!"
16 igork1966
 
27.11.06
17:02
(14) Думаю в УТ аналогично. И тебе стоит посмотреть на текст ПриОткрытии()
повнимательнее. Думаю он у тебя не настолько короткий как в (0) :-)
17 Иде я
 
27.11.06
17:02
(15) Увы это 1С...
18 Иде я
 
27.11.06
17:03
А 1С это не Delphi и не другая языка программирования.
Тут бредятины поболее ччем.
Казалось бы логичным возвращять методом поиска найденный элемент, но фиг - возврат 1или 0
19 igork1966
 
27.11.06
17:03
(15) Дык посмотри зареген ли у тебя этот юсер в справочнике Пользователи...
;-)
20 myk0lka
 
27.11.06
17:03
В переменную Пользователь ты где грузишь имя текущего юзера?
21 Иде я
 
27.11.06
17:03
НайтиПоКоду(<?>,);
Синтаксис:
НайтиПоКоду(<Код>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по коду.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
22 igork1966
 
27.11.06
17:04
(19) + ой, действительно (18) ;-) ;-) ;-)
23 igork1966
 
27.11.06
17:05
Только это (15) вовсе не нужно. Поскольку у тебя должен быть аналогичный (6) кусок кода...  вот после него и проверяй Пользователь....
24 jq
 
27.11.06
17:06
Вот работает:

Процедура ПриНачалеРаботыСистемы()
   Спр = СоздатьОбъект("Справочник.Сотрудники");
   Сообщить("Пользователь " + Пользователь);
   Спр.НайтиПоКоду("1CUser");
   Польз = Спр.ТекущийЭлемент();
   Если Пользователь = Польз Тогда
       Сообщить("да!");
   Иначе
       Сообщить("нет!");
   КонецЕсли;    
КонецПроцедуры

Но я то хотел без занесения пользователя в спр. Пользователи. Ведь он же уже занесен в конфигураторе как пользователь, или так нельзя?
25 igork1966
 
27.11.06
17:09
(24) демона лепишь...  ;-)
Ну можно вообще тогда
Если ИмяПользователя()="1CUser" Тогда
       Сообщить("да!");
Иначе
       Сообщить("нет!");
КонецЕсли;
26 jq
 
27.11.06
17:10
Так не работало!
27 jq
 
27.11.06
17:11
Хм... А теперь работает :)