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 3403 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С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

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