Активные пользователи Windows в каких базах 1С сидят (клиент-серверный вариант)
Добрый день! Возник вопрос, есть базы 1с 8.3 клиент-серверный вариант работы (WServer2016+MS SQL). В базах есть 1 пользователь 1С для просмотра ("Просмотрщик"), под ним в базу заходит множество Windows-юзеров с одного сервера. Как определить какой пользователь Windows сейчас сидит в конкретной базе? Может в Администрировании сервера 1с есть такая инфа, но я ее не вижу? может обработки на инфостарте есть? Тыкните носом пожалуйста если все это уже существует....
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день. Я вижу два варианта - имя локального компьютера и имя пользователя (если терминал)
Функция ПолучитьИмяКомпьютераТО() Экспорт
Если мИмяКомпьютера = Неопределено Тогда
Попытка
WshShell = Новый COMОбъект("WScript.Shell");
мИмяКомпьютера = WshShell.expandEnvironmentStrings("%CLIENTNAME%");
Исключение
мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецПопытки;
КонецЕсли;
Возврат мИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
Network = Новый COMОбъект("WScript.Network");
Сеанс1С = НомерСеансаИнформационнойБазы();
ЛокальныйКомпьютер = ПолучитьИмяКомпьютераТО();
ПользовательАД = Network.UserName;
СерверАД = Network.ComputerName;
Показать
если этого будет недостаточно: на стороне сервера в командной строке можно вызвать команду "Quser /SERVER:NameRDPserveer"
и пример в 1с:
тут результат выгружается в текстовый файл, а в переменной "сервер" - хранится имя сервера , на котором работают пользователи. дальше парсите и получаете необходимые данные.
и пример в 1с:
tFile= ПолучитьИмяВременногоФайла("txt");
Sh = Новый COMОбъект("WScript.Shell");
Sh.Run("cmd /c chcp 1252 & Quser /SERVER:"+сервер+" > """+tFile+ """",0,истина);
тут результат выгружается в текстовый файл, а в переменной "сервер" - хранится имя сервера , на котором работают пользователи. дальше парсите и получаете необходимые данные.
(19) Для танкистов :) Посмотри весь код.. там функция ПолучитьИмяКомпьютераТО() , а под ней кусок кода:
Network = Новый COMОбъект("WScript.Network");
Сеанс1С = НомерСеансаИнформационнойБазы();
ЛокальныйКомпьютер = ПолучитьИмяКомпьютераТО();
ПользовательАД = Network.UserName;
СерверАД = Network.ComputerName;
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)