Перем темпПользовательОС;
Перем темпПользовательИБ;
Процедура ТабличноеПолеВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если НЕ ВыбраннаяСтрока.ЭтоГруппа Тогда
СтандартнаяОбработка = Ложь;
Если НЕ ЗначениеЗаполнено(ПользовательОС) Тогда
Предупреждение("Не выбран пользователь ОС");
Возврат;
КонецЕсли;
//Предварительно удалим у всех авторизацию, схожую с нашей
ОчиститьАвторизациюОС();
//Затем назначим нужному юзеру
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ВыбраннаяСтрока.Код));
Если ПользовательИБ <> Неопределено Тогда
Если ПользовательИБ.АутентификацияОС Тогда
//Запомним старую аутентификацию
темпПользовательОС = ПользовательИБ.ПользовательОС;
темпПользовательИБ = ПользовательИБ;
КонецЕсли;
ПользовательИБ.АутентификацияОС = Истина;
ПользовательИБ.ПользовательОС = ПользовательОС;
Попытка
ПользовательИБ.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Если Найти(СтрокаСоединенияИнформационнойБазы(),"Srvr=") = 0 Тогда
СтрокаЗапуска = "C:\Program Files (x86)\1cv82\common\1cestart.exe ENTERPRISE "+СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"File="," /F "),";","")+" /n """+ПользовательИБ.Имя+"";
Иначе
СтрокаЗапуска = "C:\Program Files (x86)\1cv82\common\1cestart.exe ENTERPRISE "+СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"Srvr="," /S "),";Ref=""","/"),"""",""),";","")+" /n """+ПользовательИБ.Имя+"";
КонецЕсли;
ЗапуститьПриложение(СтрокаЗапуска);
КонецЕсли;
КонецПроцедуры
Процедура ОчиститьАвторизациюОС()
СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для н = 0 По СписокПользователей.Количество() - 1 Цикл
Если СписокПользователей[н].ПользовательОС = ПользовательОС Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(СписокПользователей[н].УникальныйИдентификатор);
ПользовательИБ.АутентификацияОС = Ложь;
ПользовательИБ.ПользовательОС = "";
ПользовательИБ.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПользовательОСНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбораПользователяWindows = ПолучитьОбщуюФорму("ФормаВыбораПользователяWindows", ЭтаФорма);
ФормаВыбораПользователяWindows.ВыбранныйПользовательWindows = ПользовательОС;
Результат = ФормаВыбораПользователяWindows.ОткрытьМодально();
Если Результат <> Неопределено Тогда
ПользовательОС = Результат;
КонецЕсли;
КонецПроцедуры
//Затираем следы
Процедура ПриЗакрытии()
//Авторизацию снова очищаем
Если ЗначениеЗаполнено(темпПользовательОС) Тогда
//Восстановим старую аутентификацию
темпПользовательИБ.АутентификацияОС = Истина;
темпПользовательИБ.ПользовательОС = темпПользовательОС;
Попытка
темпПользовательИБ.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
//Если до этого не было аутентификации, то она не нужна
Иначе
ОчиститьАвторизациюОС();
КонецЕсли;
КонецПроцедуры
Быстрый вход в 1С под другим пользователем
19.06.13
Администрирование - Роли и права
Всего лишь кликните два раза по выбранному пользователю и 1С откроется под ним.
Для тех, у кого нет мани - выкладываю код.
Пригодилась - не забываем плюсовать.
Для тех, у кого нет мани - выкладываю код.
Пригодилась - не забываем плюсовать.
Скачать файл
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование | По подписке [?] | Купить один файл | |
---|---|---|---|
Медвежатник
.epf 7,91Kb
259
|