Имя: Пароль:
1C
1С v8
Hевозможно получить текущего внешнего пользователь в сеансе пользователя
0 Klesk
 
10.05.13
11:23
Что может быть?
Причем у человека с полными правами/ Ни по тонкому клиенту, ни через веб. Обновил базу. Я под админом захожу.
модуль такой:


////////////////////////////////////////////////////////////////////////////////
// Подсистема "Пользователи".
//
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС

// Возвращает текущего пользователя или текущего внешнего пользователя,
// в зависимости от того, кто выполнил вход в сеанс.
//  Рекомендуется использовать в коде, который поддерживает работу
// в обоих случаях.
//
// Возвращаемое значение:
//  СправочникСсылка.Пользователи или СправочникСсылка.ВнешниеПользователи.
//
Функция АвторизованныйПользователь() Экспорт
   
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
   УстановитьПривилегированныйРежим(Истина);
   
   Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь),
             ПараметрыСеанса.ТекущийПользователь,
             ПараметрыСеанса.ТекущийВнешнийПользователь);
#Иначе
   Возврат СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске().АвторизованныйПользователь;
#КонецЕсли
   
КонецФункции

// Возвращает текущего пользователя.
//  Рекомендуется использовать в коде, который не поддерживает
// работу с внешними пользователями.
//
//  Если вход в сеанс выполнил внешний пользователь,
// тогда будет вызвано исключение.
//
// Возвращаемое значение:
//  СправочникСсылка.Пользователи
//
Функция ТекущийПользователь() Экспорт
   
   АвторизованныйПользователь = АвторизованныйПользователь();
   
   Если ТипЗнч(АвторизованныйПользователь) <> Тип("СправочникСсылка.Пользователи") Тогда
       ВызватьИсключение
           НСтр("ru = 'Невозможно получить текущего пользователя
                      |в сеансе внешнего пользователя.'");
   КонецЕсли;
   
   Возврат АвторизованныйПользователь;
   
КонецФункции

// Возвращает текущего внешнего пользователя.
//  Рекомендуется использовать в коде, который поддерживает
// только внешних пользователей.
//
//  Если вход в сеанс выполнил не внешний пользователь,
// тогда будет вызвано исключение.
//
// Возвращаемое значение:
//  СправочникСсылка.ВнешниеПользователи
//
Функция ТекущийВнешнийПользователь() Экспорт
   
   АвторизованныйПользователь = АвторизованныйПользователь();
   
   Если ТипЗнч(АвторизованныйПользователь) <> Тип("СправочникСсылка.ВнешниеПользователи") Тогда
       ВызватьИсключение
           НСтр("ru = 'Невозможно получить текущего внешнего пользователя
                      |в сеансе пользователя.'");
   КонецЕсли;
   
   Возврат АвторизованныйПользователь;
   
КонецФункции

// Возвращает Истина, если вход в сеанс выполнил внешний пользователь.
Функция ЭтоСеансВнешнегоПользователя() Экспорт
   
   Возврат ТипЗнч(АвторизованныйПользователь())
         = Тип("СправочникСсылка.ВнешниеПользователи");
   
КонецФункции

чем текущий пользователь отличается от не текущего в терминале например? причем заметил у кого меньше прав такого нет.
1 Aprobator
 
10.05.13
12:14
ну дык, судя по коду, там просто в #Иначе проваливается.
2 Klesk
 
10.05.13
12:41
(1) а почему? из за роли какой то?
3 mistеr
 
10.05.13
12:47
(2) Тонкий и веб по условию не проходят. Глаза разуй, извини за грубость.
4 Кокос
 
10.05.13
12:48
ошибку какую нибудь выдает?
5 Кокос
 
10.05.13
12:49
если выдает на старте ошибку какую нибудь после обновления. почисть кеш. если нет. то все равно почисть :)
6 mistеr
 
10.05.13
12:59
(5) Еще монитор протереть, забыл.
7 Klesk
 
10.05.13
15:07
я прав роль то ли была толе появилась "Торговый представитель", и даже несмотря на полные права...
8 Кокос
 
10.05.13
16:22
(6) у меня была такая фишка после обновления. на стартые системы вылетала ошибка при установке текущего пользователя сеанса. лечилась только чисткой кеша.
9 Klesk
 
11.05.13
12:01
вру , роль называется "Партнер самообслуживание"