Имя: Пароль:
1C
 
Как узнать тип ОС клиента?
,
0 iceman2112
 
22.10.15
17:06
Сервер linux пользователи могут работать как под виндой и теперь ЕЩЕ И ПОД линукс
Обработка печати выводить сертификаты, используя программу просмотра изображений на клиенте.

Когда был клиент только винда было просто:
ЗапуститьПриложение("Путь к ACDSee и пути и изображениям")

Сейчас если клиент линукс нужно выполнять другую команду, как определить какой клиент?
1 iceman2112
 
22.10.15
17:06
у меня пока только идея через
Исключения делать
2 Timon1405
 
22.10.15
17:09
Если (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86) Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64) Тогда
/Код по захвату мира
КонецЕсли
3 iceman2112
 
22.10.15
17:12
Это тип СЕРВЕРА
4 Живой Ископаемый
 
22.10.15
17:14
да ладно!
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
5 iceman2112
 
22.10.15
17:15
(4) Тогда скажи, как он на винде возвращет винду?
6 Живой Ископаемый
 
22.10.15
17:16
а что он должен возвращать?
7 iceman2112
 
22.10.15
17:16
ой, в смысле линукс
8 Cyberhawk
 
22.10.15
17:17
Смотри как в подсистеме БСП "ПрисоединенныеФайлы" (или "РаботаСФАйлами") сделано
9 iceman2112
 
22.10.15
17:17
ТомаХранения да?
10 Живой Ископаемый
 
22.10.15
17:18
2(7) потому что ты выполнеяшь этот код на стороне сервера. Выполняй на стороне клиента, и передавай на сервер через хранилище значения, если тебе нужно анализировать ОС клиента на сервере
11 iceman2112
 
22.10.15
17:18
(8) там берется через (СистемнаяИнформация.ТипПлатформы) который возвращет линукс
12 iceman2112
 
22.10.15
17:18
(10) ну ка ща
13 Cyberhawk
 
22.10.15
17:18
(11) Вот тебе дарю кусок:

    Если (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86) Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64) Тогда
        
        // Для Windows выполняем запуск через cmd.exe (для перенаправления stdout и stderr).
        КоманднаяСтрока = "cmd /c " +  " """ + КоманднаяСтрока + """";
        
        #Если Сервер Тогда
            
            ЗапуститьПриложение(КоманднаяСтрока, КаталогИсполняемыхФайловПлатформы(), Истина);
            
        #Иначе
            
            // Для Windows-клиента используем Wscript.Shell, чтобы избежать появления окон с cmd.
            
            Оболочка = Новый COMОбъект("Wscript.Shell");
            Оболочка.Run(КоманднаяСтрока, 0, Истина);
            
        #КонецЕсли
        
    Иначе
        
        // Для ОС Linux просто запускаем команду.
        
        ЗапуститьПриложение(КоманднаяСтрока, КаталогИсполняемыхФайловПлатформы(), Истина);
        
    КонецЕсли;
14 iceman2112
 
22.10.15
17:19
(10) я тупой. Вопрос закрыт
15 Cyberhawk
 
22.10.15
17:19
И еще: // Возвращает Истина, если клиентское приложение запущено под управлением ОС Linux.
//
// Возвращаемое значение:
//  Булево. Если нет клиентского приложения, возвращается Ложь.
//
Функция ЭтоWindowsКлиент() Экспорт
    
    СистемнаяИнформация = Новый СистемнаяИнформация;
    
    ЭтоWindowsКлиент = СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
    ИЛИ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
    
    Возврат ЭтоWindowsКлиент;
    
КонецФункции
16 Живой Ископаемый
 
22.10.15
17:20
2(14) я тупее, я вообще про эту штуку не знал. Вот из ветки узнал (имею в виду СистемнаяИнформация)