Можно ли из модуля сеанса как-то понять, что это мобильный клиент?
У меня сейчас в модуле сеанса подсовываются в хранилище системных настроек нужные настройки начальной страницы (в справочнике пользователей задается, какой рабочий стол будет у пользователей при запуске).
Но в мобильном клиенте возникает проблема. Как в этот момент узнать, что это мобильный клиент?
Рекомендованный путь - узнавать это с помощью директив компиляции, но это можно сделать только на клиенте. А когда управление переходит на клиент, то настройки начальной страницы уже загружены из хранилища системных настроек.
Вот, собственно, и вопрос. Можно ли как-то из модуля сеанса (до передачи управления на клиент) понять что это мобильный клиент?
Но в мобильном клиенте возникает проблема. Как в этот момент узнать, что это мобильный клиент?
Рекомендованный путь - узнавать это с помощью директив компиляции, но это можно сделать только на клиенте. А когда управление переходит на клиент, то настройки начальной страницы уже загружены из хранилища системных настроек.
Вот, собственно, и вопрос. Можно ли как-то из модуля сеанса (до передачи управления на клиент) понять что это мобильный клиент?
По теме из базы знаний
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Пара советов по поиску работы
- Взаимодействие с сотрудниками и клиентами из одного окна конфигурации 1С (Телеграм, ВКонтакте, Facebook, Discord). Преимущества, технические особенности, подводные камни
- Подкапотное пространство веб-клиента
- Расширяемый фреймворк на 1С, или Нюансы натягивания совы на глобус
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(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
Показать
(10) То, что вы написали - не решает мою проблему.
Моя проблема - мне нужно знать ответ ДО передачи управления на клиента при старте системы и срабатывания OnStart() - в первом срабатывании УстановкаПараметровСеанса(). Сначала происходит установка параметров сеанса на сервере и только потом на клиенте срабатывает OnStart().
Моя проблема - мне нужно знать ответ ДО передачи управления на клиента при старте системы и срабатывания OnStart() - в первом срабатывании УстановкаПараметровСеанса(). Сначала происходит установка параметров сеанса на сервере и только потом на клиенте срабатывает OnStart().
(4) сам не пробовал, но судя по справке должно:
ПараметрыСеанса (SessionParameters)
Использование:
Только чтение.
Описание:
Тип: ПараметрыСеанса.
Используется для доступа к параметрам сеанса.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер) Показать
ПараметрыСеанса (SessionParameters)
Использование:
Только чтение.
Описание:
Тип: ПараметрыСеанса.
Используется для доступа к параметрам сеанса.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер)
(5) У меня мобильный клиент, а не мобильное приложение. И сомневался я не насчет параметров сеанса, по ним вопросов нет :)
Короче, для мобильного клиента эта директива не работает, даже если добавить для конфы назначение использование "Приложение для мобильной платформы".
Из рабочих пока только вариант (4)
Короче, для мобильного клиента эта директива не работает, даже если добавить для конфы назначение использование "Приложение для мобильной платформы".
Из рабочих пока только вариант (4)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот