Запуск под пользователем (асинхронный вызов)

30.07.15

Администрирование - Информационная безопасность

Часто бывает необходимо запустить для отладки под другим пользователем, маленький кусок кода не испортит конфигурацию

Алгоритм следующий:

1 заходим в справочник Пользователи

2 нажимаем на новую кнопку "ЗапуститьПодПользователем"

3 программа сохраняет старый пароль в отдельный параметр

4 устанавливает новый пароль "123"

5 запускает новый сеанс с выбранным пользователем 

6 через 30 секунд возвращается старый пароль


В справочнике Пользователи добавляем команду "ЗапуститьПодПользователем" и в модуле прописываем код

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

ТранзитныеПараметры = ИзменитьПараметрПароля(ТранзитныеПараметры);
Если Найти(СтрокаСоединенияИнформационнойБазы(),"Srvr=") = 0 Тогда
СтрокаЗапуска = "C:\Program Files (x86)\1cv8\common\1cestart.exe ENTERPRISE "+СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"File="," /F "),";","")+" /n "+ТранзитныеПараметры.ИмяПользователя+" /p "+"123"+"";
Иначе
СтрокаЗапуска = "C:\Program Files (x86)\1cv8\common\1cestart.exe ENTERPRISE "+СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрокаСоединенияИнформационнойБазы(),"Srvr="," /S "),";Ref=""","\"),"""",""),";","")+" /n "+ТранзитныеПараметры.ИмяПользователя+" /p "+"123"+"";
КонецЕсли;

ЗапуститьПриложение(СтрокаЗапуска);
ПоказатьПредупреждение(Новый ОписаниеОповещения("ВернутьПараметрПароляКлиент",ЭтотОбъект,ТранзитныеПараметры),"Не закрывай это окно",30,"Внимание!!!");

КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ИзменитьПараметрПароля(ТранзитныеПараметры) 
ТекПользователь = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ТранзитныеПараметры.ТекПользователь.ИдентификаторПользователяИБ);
Если ТекПользователь = Неопределено Тогда
Сообщить("Ошибка");
Возврат Неопределено;
КонецЕсли;

ТранзитныеПараметры.ИмяПользователя = ТекПользователь.Имя;

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

Возврат ТранзитныеПараметры

КонецФункции
&НаСервереБезКонтекста
Процедура ВернутьПараметрПароля(ТранзитныеПараметры)

ТекПользователь = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ТранзитныеПараметры.ТекПользователь.ИдентификаторПользователяИБ);
Если ТранзитныеПараметры.ПарольУстановлен Тогда
ТекПользователь.СохраняемоеЗначениеПароля = ТранзитныеПараметры.ТекПароль;
ИначеЕсли ТранзитныеПараметры.ПустойПароль Тогда
ТекПользователь.Пароль = "";
ИначеЕсли ТранзитныеПараметры.БезПароля Тогда
ТекПользователь.АутентификацияСтандартная = Ложь;
КонецЕсли;
Попытка
ТекПользователь.Записать();
Исключение
Сообщить("Внимание! пароль изменился необходимо вернуть пароль вручную");
КонецПопытки; 
КонецПроцедуры
&НаКлиенте
Процедура ВернутьПараметрПароляКлиент(ДополнительныеПараметры)Экспорт

ВернутьПараметрПароля(ДополнительныеПараметры);

КонецПроцедуры

Вступайте в нашу телеграмм-группу Инфостарт

Запустить Под Пользователем Смена пользователя

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    74203    377    170    

322

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    1138    2    0    

4

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    5031    2    1    

3

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    26232    97    46    

104

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2451    6    0    

21

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    51062    140    162    

95
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dj_serega 396 30.07.15 15:11 Сейчас в теме
2. kvikster 98 30.07.15 15:17 Сейчас в теме
(1) dj_serega, не нужно каждый раз открывать обработку + асинхронность
4. dj_serega 396 30.07.15 18:03 Сейчас в теме
(2) Но нужно модифицировать конфу ;)
3. chmv 30.07.15 16:22 Сейчас в теме
а мне понравилось решение
5. WKBAPKA 216 31.07.15 10:09 Сейчас в теме
есть еще инструменты разработчика, там есть такая возможность
6. dj_serega 396 04.08.15 11:28 Сейчас в теме
(5) WKBAPKA, там обычные формы
Для отправки сообщения требуется регистрация/авторизация