Имя: Пароль:
1C
1С v8
Имя пользователя в веб клиенте
,
0 АЛьФ
 
13.10.22
13:35
В событии ПередНачаломРаботыСистемы() глобальная функция ИмяПользователя() возвращает пустую строку при запуске в веб-клиенте. Хотя в описании написано, что в веб-клиенте должна работать. При этом в заголовке окна веб-клиента текущий пользователь отображается правильно.
Как получить имя пользователя в ПередНачаломРаботыСистемы()?
Нужно для установки режима основного окна.
1 Kassern
 
13.10.22
13:39
(0) Если конфа типовая, то в настройках пользователя скорее всего есть "настройка открытия форм при начале работы программы"
2 Kassern
 
13.10.22
13:39
Вот от нее и пляшите, смысл изобретать велосипед в стиле, Если ИмяПользователя()="Вася" Тогда
3 АЛьФ
 
13.10.22
13:40
2(1) Не типовая.
4 vde69
 
13.10.22
13:40
какая авторизация на web сервере,
есть-ли домен? если есть как она настроена
сервер предприятия и веб сервер физически на одной машине или на разных, как и что прокинуто в дмз (где обычно ставят веб сервер)

короче вопросов масса, но первый - это проброс авторизации между веб и 1с серверами
5 Kassern
 
13.10.22
13:40
(3) Что за конфа?
6 АЛьФ
 
13.10.22
13:41
2(2) Смысл копать типовую, если стоит простенькая задача?
7 АЛьФ
 
13.10.22
13:42
2(4) Т.е. не работает метод ИмяПользователя() в веб-клиенте. И аналога нет. Понятно.
2(5) Своя.
8 vde69
 
13.10.22
13:44
(7) не так, там есть нюансы настроек веб сервера.

по дефолту работает только если служба веб сервера и 1с крутятся на одном сервере
9 Kassern
 
13.10.22
13:46
(6) Чтобы простенькая задача не превратилась в корявый костыль. Вы программно указали для какого-то Васи функционал, а завтра пришел Петя и ему такой же надо. Или нужно будет Васе сменить начальную форму. Каждый раз будете конфу ковырять для этих нужд? Все уже придумали до вас, проще глянуть типовую и сделать аналогично.
10 АЛьФ
 
13.10.22
13:47
2(8) У меня все на одном сервере и настройки все дефолтные.
2(9) Не придет Петя.
11 АЛьФ
 
13.10.22
13:51
Сделал проще:

Процедура ПередНачаломРаботыСистемы(Отказ)
    #Если ВебКлиент Тогда
        КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.ВстроенноеРабочееМесто);
    #КонецЕсли
КонецПроцедуры
12 Kassern
 
13.10.22
14:34
(11) Процедура ПриНачалеРаботыСистемы() Экспорт
    
    МассивФорм = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().ФормыОткрываемыеПриНачалеРаботыСистемы;
    
    Для Каждого ТекущаяФорма Из МассивФорм Цикл
        
        Если ТекущаяФорма.ОткрыватьПоУмолчанию Тогда
            
            ОткрытьТекущуюФорму(ТекущаяФорма);
            
        Иначе
            
            Если СтрНайти(ВРег(ПараметрЗапуска), ВРег(ТекущаяФорма.ПараметрЗапуска)) = 0 Тогда
                Продолжить;
            КонецЕсли;
            
            ОткрытьТекущуюФорму(ТекущаяФорма);
            
        КонецЕсли;
        
    КонецЦикла;
    
    Если НЕ ПустаяСтрока(глФормаНачальнойНастройкиПрограммы) Тогда
        
        ТекущаяФорма = ОткрытиеФормПриНачалеРаботыСистемыКлиентСерверПереопределяемый.ОписаниеНастроекФормы();
        ТекущаяФорма.Вставить("ИмяЗапускаемойФормы", глФормаНачальнойНастройкиПрограммы);
        ТекущаяФорма.Вставить("ОткрыватьМодально", Истина);
        
        ОткрытьТекущуюФорму(ТекущаяФорма);
        
    КонецЕсли;
    
КонецПроцедуры

Вот так в типовой реализовано открытие форм. Скорее всего перед началом работы пользователь еще не определен, а при начале уже можно получить, но это не точно)
13 АЛьФ
 
13.10.22
14:49
2(12) Какое это имеет отношение к моему вопросу? Мне формы открывать не надо.
ИмяПользователя() и после запуска не возвращает имени. Просто не стал этого упоминать, чтобы не уводить обсуждение от сути задачи.
14 Kassern
 
13.10.22
14:59
(13) Только что опубликовал базу пустышку через апач, проверил, ПередНачаломРаботыСистемы спокойно определяет юзвера через ИмяПользователя().
15 Kassern
 
13.10.22
15:00
Через ВебКлиент
16 АЛьФ
 
13.10.22
15:02
2(14) Поздравляю.
17 Kassern
 
13.10.22
15:03
(16) Я это к тому, что косяк скорей всего не в 1ске, а в настройках вашего апач/IIS
18 АЛьФ
 
13.10.22
15:05
2(17) Если настройки IIS как-то влияют на работу встроенного метода 1С, получающего имя пользователя 1С, то это косяк явно 1С.
19 Kassern
 
13.10.22
15:08
(18) Может и платформенный глюк, какая версия платформы?
20 АЛьФ
 
13.10.22
15:29
2(19) 8.3.21.1302
Независимо от того, куда вы едете — это в гору и против ветра!