0. Berrimor 197 27.03.14 12:59 Сейчас в теме

Снова к вопросу о работе торгового оборудования в терминальной сессии

Видел много вариантов реализации функции для получения имени компьютера для работы с торговым оборудованием в терминальной сессии. Данный вариант интересен на мой взгляд тем что нет необходимости перенастраивать привязки ТО при переключении между терминальной и локальной сессией запуска 1С. По русски говоря, как бы вы не запустили 1С: локально с доступом к базе на общем сетевом ресурсе или в терминальной сессии ваши привязки не "рухнут"

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Re:аниматор 423 28.03.14 03:24 Сейчас в теме
Видел много вариантов реализации функции для получения имени компьютера для работы с торговым оборудованием в терминальной сессии.


Не знаю про какие "много вариантов", но лично я уже 5 лет назад такое сделал :-) привязку настроек ТО в терминальной сессии к локальному компьютеру, т.к. 3 терминальных сервера с 1 локального компа ...
2. Berrimor 197 28.03.14 05:05 Сейчас в теме
видел на этом форуме такие варианты:

1. мИмяКомпьютера = ВРег(ИмяКомпьютера()+"\\"+ИмяПользователя())
2. WshShell = Новый COMОбъект("WScript.Network"); мИмяКомпьютера = ВРег(ИмяКомпьютера()+"\\"+WshShell.UserName)

считаю их менее удачными
3. CheBurator 3402 02.04.14 04:33 Сейчас в теме
осталось уточнить - возвращается имя компа, ПРИКОННЕКТИВШЕГОСЯ к сессии (например оборванной день назад)..?
4. Berrimor 197 02.04.14 04:56 Сейчас в теме
(3) похоже именно так :) не проверял, но подобные ситуации (незакрытая терминальная сессия) решаются другими способами, обычно на уровне администрирования терминального сервера, например установкой предельного времени жизни неактивной сессии
5. Berrimor 197 02.04.14 05:02 Сейчас в теме
Да, еще один момент: обнаружил что на некоторых компах локально выдает не пустое значение WshSysEnv.Item("ClientName") а "CONSOLE". Причинно следственной связи между настройками ОС, ее версией и прочим не уловил :), одним словом для корректной работы в тексте приведенной ф-ции необходимо изменить:

ПустаяСтрока(ИмяКомпьютераТО) на ПустаяСтрока(ИмяКомпьютераТО) ИЛИ ВРег(ИмяКомпьютераТО) = "CONSOLE"
6. Jogeedae 38 09.06.14 10:58 Сейчас в теме
у меня взлетел такой вариант:
///////Имя клиента и компьютера запустившего сеанс
всШелл = Новый COMОбъект("WScript.Shell");
ИмяСеанса = всШелл.ExpandEnvironmentStrings("%SESSIONNAME%");
ИмяКлиента = всШелл.ExpandEnvironmentStrings("%CLIENTNAME%");
Сообщить(?(нрег(ИмяСеанса) = "console", ИмяКомпьютера(), ИмяКлиента));
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата до 120 000 руб.
Полный день

Консультант-аналитик 1С
Рязань
зарплата до 80 000 руб.
Полный день

Программист 1С
Калининград
зарплата от 60 000 руб. до 80 000 руб.
Полный день

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день