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

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

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

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

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

https://its.1c.ru/db/metod8dev/content/5948/hdoc
7 rowvg
 
naïve
17.03.21
13:53
(5) Спасибо большое

ИмяПриложения = ПолучитьТекущийСеансИнформационнойБазы().ИмяПриложения;

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

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

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

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

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

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