Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск предприятия под другим пользователем
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
lenuneya
Друзья, помогите разобраться.
На платформе 8.3.9 обработка работала, а сейчас уже нет (Управляемые формы).

У меня есть "самописная" обработка "Запуск под пользователем", где выбирается пользователь и по кнопке запускается предприятие под ним.
Суть обработки в том, что я под полными правами, не зная пароля пользователя, могу зайти под его правами.
Обработка устанавливает временный пароль пользователю, запускает приложение, и далее восстанавливает пароль.
Но сейчас, почему-то запуск приложения происходит под тем же пользователем, под которым выполняется команда обработки.

Пример процедуры
&НаКлиенте
Процедура Запустить1СНажатие(Команда)
    
    ИмяПользователяИБ = "";
    
    УстановитьВременныйПароль(ИмяПользователяИБ);    
    
    Попытка
        
        #Если Не ВебКлиент Тогда
            ЗапуститьСистему("ENTERPRISE " + СтрокаСоединенияИБ() + "/N""" + ИмяПользователяИБ + """ " + "/P""123""");
        #КонецЕсли
        
        Пауза(Объект.Задержка);
        
        ВосстановитьПрежнийПароль();        
        
    Исключение
        ВосстановитьПрежнийПароль();        
    КонецПопытки;
    
КонецПроцедуры


Может я что-то пропускаю?
Заранее спасибо за ответы!
logist
В настройках пользователя ИБ снимите флаг "Защита от опасных действий"

p.s. а вообще по приведенному коду ничего не понятно, всё спрятано в вызываемых процедурах.
Bernet
мне вот интересно каким образом обработка восстанавливает пароль, насколько я знаю, вообще обычным способом прочитать пароль пользователя нельзя, он шифруется. Видел обработку которая по хеш-коду каким-то образом выдавала пароль юзера, но как точно это все происходит не знаю
lenuneya
logist @ 27.06.17, 13:23 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо! Но снятие флага не помогло.

Bernet @ 27.06.17, 19:26 необходимо зарегистрироваться для просмотра ссылки ,
у пользователя ИБ есть свойство "СохраняемоеЗначениеПароля", и да, оно закодировано, т.е. явно пароль не видно.
но его значение можно сохранить в переменную, потом заменить на свое, на время, а после выполнения входа, вернуть прежнее значение.

&НаСервере 
Процедура УстановитьВременныйПароль(ИмяПользователяИБ)
    
    СохраняемоеЗначениеПароля123     = "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=";
    
    ПользовательИБ = Неопределено;     
    Если ЗначениеЗаполнено(Объект.Пользователь) Тогда        
        ПользовательИБ = ПолучитьПользовательИБ(Объект.Пользователь);
    Иначе
        Возврат;
    КонецЕсли;

    Если ПользовательИБ <> Неопределено Тогда
        ИмяПользователяИБ = ПользовательИБ.Имя;
        Объект.СохраняемоеЗначениеПароляСтарое = ПолучитьРеквизитПользователя(ПользовательИБ, "СохраняемоеЗначениеПароля");
        ПользовательИБ.СохраняемоеЗначениеПароля = СохраняемоеЗначениеПароля123;
        Объект.АутентификацияСтандартная = ПолучитьРеквизитПользователя(ПользовательИБ,"АутентификацияСтандартная");      
        Если Не Объект.АутентификацияСтандартная Тогда                                    // Включаем аутентификацию 1С, если она отключена.
            ПользовательИБ.АутентификацияСтандартная = Истина;
        КонецЕсли;
        
        ПользовательИБ.Записать();
    Иначе
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура ВосстановитьПрежнийПароль()
    ПользовательИБ = Неопределено;     
    Если ЗначениеЗаполнено(Объект.Пользователь) Тогда        
        ПользовательИБ = ПолучитьПользовательИБ(Объект.Пользователь);
    Иначе
        Возврат;
    КонецЕсли;
    
    ПользовательИБ.СохраняемоеЗначениеПароля = Объект.СохраняемоеЗначениеПароляСтарое;
    ПользовательИБ.АутентификацияСтандартная = Объект.АутентификацияСтандартная;
    ПользовательИБ.Записать();
КонецПроцедуры
lenuneya
lenuneya @ 30.06.17, 11:54 необходимо зарегистрироваться для просмотра ссылки ,
на жаль, ніхто мені не допоміг.
запитання залишається відкритим
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.