Имя: Пароль:
1C
 
Можно ли в терминале получить имя компьтера клиента?
0 Ujcnm99
 
29.08.08
11:08
Из 1С
1 Ленинград
 
29.08.08
11:10
да
2 Ujcnm99
 
29.08.08
11:11
А как?
3 ДенисЧ
 
29.08.08
11:10
Переменная окружения CLIENTNAME
4 smaharbA
 
29.08.08
11:11
какое имя ?
5 Ujcnm99
 
29.08.08
11:12
(3) А как к ней обратиться?
6 smaharbA
 
29.08.08
11:13
а если нету никакого имени ?
7 Ujcnm99
 
29.08.08
11:13
(4) Комп, с которого вышли  в терминал
8 Ujcnm99
 
29.08.08
11:14
(6) Если нет - не надо тогда
9 smaharbA
 
29.08.08
11:14
(7) а я через 2 файрвола хожу и имя моему компу localhost.localdomain
а могло совсем не быть...
10 Ujcnm99
 
29.08.08
12:10
Как узнать значение переменной окружения из 1С
11 ДенисЧ
 
29.08.08
12:13
КомандаСистемы("ECHO %CLIENTNAME% > %TEMP%\ClientName.txt")
и читай потом текстовый файл
12 Табуретка
 
29.08.08
12:21
ИмяКомпьютера()
либо
WshNetwork=СоздатьОбъект("WScript.Network");
Сообщить(WshNetwork.ComputerName);
13 ДенисЧ
 
29.08.08
12:25
(12) И даст тебе это имя терминала...
14 Табуретка
 
29.08.08
12:26
не, тока имя твоего компа...
15 ДенисЧ
 
29.08.08
12:29
(14) Нет, это неправда. ТОлько что проверил.
1с - запущена в терминале, который залогинен с терминального цитрикс-декстопа, на которой пришёл с тини-воркстешна под пингвином.
ИмяКомпьютера() выдало имя первого терминала (на котором физически работает 1с).
В то же время echo %clientname% дало имя линукс-машины.
16 Табуретка
 
29.08.08
12:39
почто непрада?! правда! Где запустил - то и получил...
ИмяКомпьютера()
Назначение:
Возвращает сетевое имя компьютера, работающего в данный момент с программой.
а ты где её запускал?
17 Heckfy
 
29.08.08
12:41
(16) Сабж внимательнее читаем.
18 ДенисЧ
 
29.08.08
12:45
(16) Что непонятного я говорю? Я получил имя, где физически работает 1с - то есть имя терминала. В (0), как я понимаю, требуется имя компьютера, на котором физически сидит юзер, то есть не терминала, а рабочей станции, с которой инициирован процесс на терминале.

Привожу пример.
1. Рабочая станция - PC100 - бездисковая станция.
2. Рабочий стол - Desktop - цитрикс-терминал, на который логинится 2 при начальной загрузке.
3. Dev - ещё один терминальный сервер, выделенный для программистов, к которому я логинюсь через Custom ISA Connection и имею на нём рабочий стол.

Запускаю на Dev 1с и смотрю ИмяКомпьютера() - имею Dev. Смотрю на Dev echo %clientname% - вижу PC100.

Где и что непонятно?
19 YHVVH
 
29.08.08
13:00
присоеденяюсь че не вкурили то?
20 Табуретка
 
29.08.08
13:01
Вот и я говорю - Почто "не правда"? что ИмяКомпьютера() - выдает имя компутера на котором запущена эска...
21 Табуретка
 
29.08.08
13:01
тыж в терминале запускал... вот и получил имя сервака...
22 Vippi
 
29.08.08
13:04
(21) Внимательно читаем заголовок темы
23 Sadovnikov
 
29.08.08
13:05
Перем ЗначениеКлюча;

ИмяКлиентскогоКомпа = "";
Реестр = СоздатьОбъект("РеестрWin");
Если Реестр.ОткрытьКлюч("HKEY_CURRENT_USER", "Volatile Environment", "KEY_QUERY_VALUE") = 1 Тогда
   Реестр.ЗапроситьЗначение("CLIENTNAME", ИмяКлиентскогоКомпа);
КонецЕсли;

Попытка
   objNet = СоздатьОбъект("WScript.NetWork");
   ИмяКлиентскогоСервера    = objNet.ComputerName;
   ИмяПользователяWindows    = objNet.UserName;
Исключение
   ИмяКлиентскогоСервера    = "";
   ИмяПользователяWindows    = "";
КонецПопытки;
24 ДенисЧ
 
29.08.08
13:05
(21) а надо было (7)
25 Табуретка
 
29.08.08
13:06
(22)я прекрасно вижу заголовок темы... тока некто отверг моё утверждение об некоторых функциях...
26 Vippi
 
29.08.08
13:09
(25) Какое утверждение?
В (7) задача описана предельно ясно.
Если конечно уметь читать, а не утверждать.
27 Табуретка
 
29.08.08
13:17
(26) см (13)(14)(15 первое предложение)
28 Полякова
 
29.08.08
13:18
Да отстаньте вы от Табуретки этой, видно же что он писатель, а не читатель. Все равно не поймет что ему говорят.
29 Табуретка
 
29.08.08
13:20
(28)+1 Да не приставайте ко мне! %)))
я знаю кунг-фу, тау-джитсу и есче много матерных слов... ;))
30 ДенисЧ
 
29.08.08
13:20
(27) я опроверг твоё неверное суждение. Где я не прав?
31 ДенисЧ
 
29.08.08
13:20
(29) а я ган-фу знаю! Во!
32 Табуретка
 
29.08.08
13:21
(30) неверное суждение о том что фн покажет имя компутера на котором запущена?
33 Vippi
 
29.08.08
13:24
(32) Верное. Покажет имя терминального сервера.
Но не клиентского компа.
34 Мулька
 
29.08.08
13:29
WshShell = CreateObject("WScript.Shell");
   Сообщить(WshShell.ExpandEnvironmentStrings("%clientname%"));
35 Sadovnikov
 
29.08.08
13:29
(32) Посмотри ОЧЕНЬ внимательно на (23)
36 ДенисЧ
 
29.08.08
13:30
(32) "не, тока имя твоего компа..." (с) НеСкажуКто.
37 Vippi
 
29.08.08
13:36
(28) Он писатель-эстонец.
38 Табуретка
 
29.08.08
13:37
(36) ты хочеш сказать что эска в "терминале" запускается с твоего компа?
39 Табуретка
 
29.08.08
13:39
"твоего компа" - подразумевался компутер на котором запущена эска, в данном случае - сервак, соответственно имя выдаст сервака...
40 ДенисЧ
 
29.08.08
13:39
(39) я не телепат. Для мен мой комп - это тот, на котором я сижу.
41 Vippi
 
29.08.08
13:40
(39) И еще раз читаем (7)
42 Табуретка
 
29.08.08
13:41
а я все время считал что сидят за компутером, а не на них...
43 Sadovnikov
 
29.08.08
13:41
(39) Блин, ну ступил ты. И сам это понял. И слить грамотно не можешь.
Ну почему бы просто не сказать: "Блин! Точно! Не верно прочитал/не правильно понял, да и вообе, пятница :)"
Нет, мы будем на кучу постов изворачиваться, пытаться говорить, что нас не правильно поняли и т.д.
Тьфу.
44 Табуретка
 
29.08.08
13:44
Я не ступил, и прочел тему прально...
каюсь - неверно ответил в (12), в (14) осознал свою ошибку и дальше понеслось...
45 Vippi
 
29.08.08
13:47
(37+) И родственники до седьмого колена эстонцы.
46 Полякова
 
29.08.08
13:52
Даешь день Эстонии на мисте!
Главный героем объявляется Табуретка :))
47 PVL
 
29.08.08
13:51
WshShell = СоздатьОбъект("WScript.Shell");
WshSysEnv = WshShell.Environment("PROCESS");
ИмяВДомене = WshSysEnv.Item("USERNAME");
ИмяКомпа = WshSysEnv.Item("CLIENTNAME");
48 PVL
 
29.08.08
13:52
(0) WshShell = СоздатьОбъект("WScript.Shell");
WshSysEnv = WshShell.Environment("PROCESS");
ИмяВДомене = WshSysEnv.Item("USERNAME");
ИмяКомпа = WshSysEnv.Item("CLIENTNAME");
49 Ujcnm99
 
29.08.08
15:00
Спасибо всем за внимание и участие.
50 КонецЦикла
 
29.08.08
15:03
1С++

//Скоммуниздил у ДмитрО по-моему
Функция ПолучитьИмяПользователя()
   Перем ЗначениеКлюча;
   
   ИмяПользователяWindows = "";
   Реестр = СоздатьОбъект("РеестрWin");
   Если Реестр.ОткрытьКлюч("HKEY_CURRENT_USER", "Volatile Environment", "KEY_QUERY_VALUE") = 1 Тогда
       Реестр.ЗапроситьЗначение("CLIENTNAME", ИмяПользователяWindows);
   КонецЕсли;

   Если Реестр.ОткрытьКлюч("HKEY_CURRENT_USER", "Software\Microsoft\Windows\CurrentVersion\Explorer", "KEY_QUERY_VALUE") = 1 Тогда
       Если Реестр.ЗапроситьЗначение("Logon User Name", ЗначениеКлюча) = 1 Тогда
           Если ПустаяСтрока(ИмяПользователяWindows) = 0 Тогда
               ИмяПользователяWindows = ИмяПользователяWindows + "\";
           КонецЕсли;
           ИмяПользователяWindows = ИмяПользователяWindows + ЗначениеКлюча;
       КонецЕсли;
   КонецЕсли;
   
   Возврат ИмяПользователяWindows;
КонецФункции // ПолучитьИмяПользователя()
51 Ковычки
 
31.08.08
15:26
Никто не угадал... У всех при разных раскладах вернет савсем не то, что хочется...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан