Вход | Регистрация
 

Мобильный клиент, подменить форму

Мобильный клиент, подменить форму
Я
   rowvg
 
17.03.21 - 13:25
Информационная база будет открываться как в тонком клиенте на стационарном компьютере, так и в мобильном клиенте - на телефоне. Соответственно мне нужно для документа открывать разные формы объекта в зависимости от того в каком клиенте происходит работа пользователя. Для этого у нас есть предопределенная процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка).

Подскажите, пожалуйста, как внутри этой процедуры узнать в каком клиенте я работаю? База в клиент - серверном варианте, это важно.
   rowvg
 
1 - 17.03.21 - 13:27
0+ Или как в модуле сеанса узнать что клиент мобильный?
   acht
 
2 - 17.03.21 - 13:36
Получить номер сеанса, перебрать сеансы, по номеру найти свой, посмотреть в реквизит ИмяПриложения
   polosov
 
3 - 17.03.21 - 13:40
(1)
#Если МобильныйКлиент Тогда
#КонецЕсли
   rowvg
 
4 - 17.03.21 - 13:41
(3) не сработает, я форму в серверном вызове меняю
   acht
 
5 - 17.03.21 - 13:46
(2)+ И даже проще. Я забыл про ПолучитьТекущийСеансИнформационнойБазы()
   polosov
 
6 - 17.03.21 - 13:50
1С рекомендует так:
В тех случаях, когда на сервере требуется получить информацию о том, что сеанс запущен на мобильном клиенте, например, для сбора статистики, тарификации и пр., можно, например, сделать так:

1. Завести булевый параметр сеанса МобильныйКлиент

2. В модуле приложения в блоке #Если МобильныйКлиент устанавливать параметр сеанса в значение Истина, #Если Не МобильныйКлиент – в значение Ложь


3. В серверном коде проверять значение параметра сеанса

https://its.1c.ru/db/metod8dev/content/5948/hdoc
   rowvg
 
7 - 17.03.21 - 13:53
(5) Спасибо большое
ИмяПриложения = ПолучитьТекущийСеансИнформационнойБазы().ИмяПриложения;

идеально работает
   polosov
 
8 - 17.03.21 - 13:55
(7) "Для получения объекта необходимо обладать правом "Администратор""
   rowvg
 
9 - 17.03.21 - 13:57
(6) Я читал эту статью, но если так сделать, то у меня выходит вот такая ошибка

https://hostingkartinok.com/show-image.php?id=417ce836116ebdeb60903855c9ec6747
   polosov
 
10 - 17.03.21 - 13:59
(9) Сервер с клиента вызывать не умеешь?
   acht
 
11 - 17.03.21 - 13:59
(8) Дык откуда на клиенте параметры сеанса возьмутся?
   acht
 
12 - 17.03.21 - 13:59
(8) Привелигированый редим включать не умеешь?
   acht
 
13 - 17.03.21 - 13:59
(11)+ Это было к (9)
   rowvg
 
14 - 17.03.21 - 14:06
acht, это в модуле приложения написано
   rowvg
 
15 - 17.03.21 - 14:07
14+ В модуле приложения в блоке #Если МобильныйКлиент устанавливать параметр сеанса в значение Истина, #Если Не МобильныйКлиент – в значение Ложь


Это написано на сайте ИТС
   rowvg
 
16 - 17.03.21 - 14:16
15+

Я не зря написал что у меня клиент - серверный вариант работы и это важно.
   acht
 
17 - 17.03.21 - 14:20
(14) Ты не поверишь, но модуль приложения он внезапно на клиенте и выполняется.
   rowvg
 
18 - 17.03.21 - 14:29
(17) Спасибо, просто вызвал общий модуль и там установил параметры сеанса. Теперь все правильно работает и в тонком клиенте, и в мобильном.
   acht
 
19 - 17.03.21 - 14:38
(18) Достаточно поставить этот параметр один раз при начале сеанса из модуля сеанса. Модуль сеанса выполняется самым первым, причем на сервере.

Если тебе нужна информация на клиенте, то там наоборот, надо прочитать уже ранее установленный параметр. Причем его можно закэшировать в глобальной клинетской переменной уровня приложения. В типовых, например, БСПшники тащат специальное соответствие ПараметрыПриложения, пихают туда разное и кэшируют таким образом серверные вызовы.

Но так как ОбработкаПолученияФормы она все равно только на сервере, то в приложении можно ничего не делать
   rowvg
 
20 - 17.03.21 - 15:02
(19) Спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.