четверг, 29 сентября 2022 г.

Подключение кассового оборудования через RDP- активные кассы создаются у всех пользователей! Решение

 Здесь

в обработке ТОСервер- Модуль объекта- ПолучитьИмяКомпьютераТО излагаем так:

Функция ПолучитьИмяКомпьютераТО() Экспорт ////**//стд //Если мИмяКомпьютера = Неопределено Тогда // мИмяКомпьютера = ВРег(ИмяКомпьютера()); //КонецЕсли; Если мИмяКомпьютера = Неопределено Тогда WSS = Новый COMОбъект("WScript.Shell"); WSSE = WSS.Environment("Process"); мИмяКомпьютера = ВРег(WSSE.Item("ClientName")); Если ПустаяСтрока(мИмяКомпьютера) Тогда мИмяКомпьютера = ВРег(ИмяКомпьютера()); КонецЕсли; КонецЕсли; //если зайти в терминальной сессии консольно, то получим "CONSOLE", // в этом случае применяем типовую функцию Если мИмяКомпьютера = "CONSOLE" Тогда мИмяКомпьютера = ВРег(ИмяКомпьютера()); КонецЕсли; //*/ Возврат мИмяКомпьютера; КонецФункции


Но! Нужна проверка на ОС, т.к. работаем через COM

// Возвращает Истина, если клиентское приложение запущено под управлением ОС Linux.
//
// Возвращаемое значение:
//  Булево. Если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоLinuxКлиент() Экспорт
#Если Клиент Или ВнешнееСоединение Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоLinuxКлиент = СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86
             ИЛИ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86_64;
#Иначе
УстановитьПривилегированныйРежим(Истина);
ЭтоLinuxКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоLinuxКлиент");
Если ЭтоLinuxКлиент = Неопределено Тогда
Возврат Ложь; // Нет клиентского приложения.
КонецЕсли;
#КонецЕсли
Возврат ЭтоLinuxКлиент;
КонецФункции