Можно ли из модуля сеанса как-то понять, что это мобильный клиент?

1. herfis 513 05.06.19 10:36 Сейчас в теме
У меня сейчас в модуле сеанса подсовываются в хранилище системных настроек нужные настройки начальной страницы (в справочнике пользователей задается, какой рабочий стол будет у пользователей при запуске).
Но в мобильном клиенте возникает проблема. Как в этот момент узнать, что это мобильный клиент?
Рекомендованный путь - узнавать это с помощью директив компиляции, но это можно сделать только на клиенте. А когда управление переходит на клиент, то настройки начальной страницы уже загружены из хранилища системных настроек.
Вот, собственно, и вопрос. Можно ли как-то из модуля сеанса (до передачи управления на клиент) понять что это мобильный клиент?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. DitriX 2102 05.06.19 12:11 Сейчас в теме
(1) да, как и написали выше - через параметры сеансов. Я сделал в свое время такой шаблон себе.
Это при старте приложения вызывается.
Procedure OnStart()
	isMobile = False;
	#If MobileAppClient OR MobileClient Then
		isMobile = True;
	#EndIf
	
	ClientType = PredefinedValue("Enum.SystemClientType.Other");
	
	#If MobileAppClient Then
		ClientType = PredefinedValue("Enum.SystemClientType.MobileAppClient");
	#ElsIf MobileClient Then
		ClientType = PredefinedValue("Enum.SystemClientType.MobileClient");
	#ElsIf ThickClientManagedApplication Then
		ClientType = PredefinedValue("Enum.SystemClientType.ThickClientManagedApplication");
	#ElsIf ThinClient Then
		ClientType = PredefinedValue("Enum.SystemClientType.ThinClient");
	#ElsIf WebClient Then
		ClientType = PredefinedValue("Enum.SystemClientType.WebClient");
	#EndIf
	
	
	ServiceSystemClient.SetSessionParameter("isMobile",isMobile);
	ServiceSystemClient.SetSessionParameter("ClientType",ClientType);
EndProcedure
Показать
9. herfis 513 05.06.19 12:35 Сейчас в теме
(8) Мне это не подходит. И в сабже я написал, почему.
10. DitriX 2102 05.06.19 12:38 Сейчас в теме
(9) то что написано в сабже - не отменяет то, о чем я написал.
Перед началом системе или при начале системы, в самом начале функции ставится этот код и все.
Настройки о грузятся кодом, надо просто этот код написать раньше.
11. herfis 513 05.06.19 12:41 Сейчас в теме
(10) То, что вы написали - не решает мою проблему.
Моя проблема - мне нужно знать ответ ДО передачи управления на клиента при старте системы и срабатывания OnStart() - в первом срабатывании УстановкаПараметровСеанса(). Сначала происходит установка параметров сеанса на сервере и только потом на клиенте срабатывает OnStart().
12. DitriX 2102 05.06.19 13:29 Сейчас в теме
2. tusv 212 05.06.19 10:53 Сейчас в теме
#Если МобильноеПриложениеКлиент Тогда
// ля ля жу
#КонецЕсли
SagittariusA; +1 1 Ответить
3. spacecraft 05.06.19 11:04 Сейчас в теме
(2) только не клиент, а МобильноеПриложениеСервер
4. herfis 513 05.06.19 11:09 Сейчас в теме
(3) А для мобильного клиента это взлетит? Значит я тупанул :) Сейчас проверю.
В принципе, я уже нарыл такой вариант:
ЭтоМобильныйКлиент = ПолучитьТекущийСеансИнформационнойБазы().ИмяПриложения = "MobileClient";
andreymcrkz; Bepcuc; 6385232; nnn123; +4 Ответить
5. spacecraft 05.06.19 11:19 Сейчас в теме
(4) сам не пробовал, но судя по справке должно:

ПараметрыСеанса (SessionParameters)
Использование:

Только чтение.
Описание:

Тип: ПараметрыСеанса.
Используется для доступа к параметрам сеанса.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер)
Показать
6. herfis 513 05.06.19 11:29 Сейчас в теме
(5) У меня мобильный клиент, а не мобильное приложение. И сомневался я не насчет параметров сеанса, по ним вопросов нет :)
Короче, для мобильного клиента эта директива не работает, даже если добавить для конфы назначение использование "Приложение для мобильной платформы".
Из рабочих пока только вариант (4)
7. spacecraft 05.06.19 11:33 Сейчас в теме
(6) а, я почему-то решил, что речь про мобильное приложение. Тогда да, директивами тут не определить.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот