|
Определить, через что открыл пользователь 1с. | ☑ | ||
---|---|---|---|---|
0
nodrama
29.06.22
✎
15:54
|
Доброго времени суток. На форме есть Кнопка. Кнопка имеет процедуру "НаКлиенте"
В процедуре, перед кодом вставляю Функцию. Далее захожу как угодно, хоть веб, хоть тонкий, хоть толстый. Но эта функция всегда возвращает "Сервер"... собственно функция плагиат с гугла, как определить быстренько, через что зашел пользователь в 1с? интересует только Толстый/Тонкий или Веб/Мобилка Функция ПолучитьТекущуюСредуВыполнения() Экспорт #Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда Возврат "Толстый клиент"; #ИначеЕсли Сервер Тогда Возврат "Сервер"; #ИначеЕсли ВнешнееСоединение Тогда Возврат "Внешнее соединение"; #ИначеЕсли ТонкийКлиент Тогда Возврат "Тонкий клиент"; #ИначеЕсли ВебКлиент Тогда Возврат "Веб-клиент"; #ИначеЕсли МобильноеПриложениеКлиент Тогда Возврат "Мобильник"; #Иначе Возврат "Ошибка определения среды выполнения"; #КонецЕсли КонецФункции |
|||
1
Aleksey
29.06.22
✎
15:56
|
Ты изобрел функцию которая есть в БСП
|
|||
2
Kassern
29.06.22
✎
16:02
|
(0) "Но эта функция всегда возвращает "Сервер"" - наверное потому, что она выполняется с директивой &НаСервере, или находится в общем модуле серверном.
|
|||
3
d1m0n666
29.06.22
✎
16:28
|
эту функцию напиши на клиенте и вызывай. Ну и плюс добавь условие на мобильное приложение
Функция ВидПриложения() #Если ВебКлиент Тогда Возврат НСтр("ru = 'Веб-клиент'"); #ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда Возврат НСтр("ru = 'Толстый клиент, обычное приложение'"); #ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда Возврат НСтр("ru = 'Толстый клиент, управляемое приложение'"); #ИначеЕсли ТонкийКлиент Тогда Возврат НСтр("ru = 'Тонкий клиент'"); #Иначе Возврат ""; #КонецЕсли КонецФункции |
|||
4
Жан Пердежон
29.06.22
✎
16:59
|
(0) кури БСП, там уже всё сделано
|
|||
5
nodrama
29.06.22
✎
17:00
|
(2) так нет же. Я вставил эту функцию в обработку себе. На клиенте. И вызываю ее перед кодом который выполняется тоже на клиенте. Но возвращает она всегда сервер. Мб жарко очень мне ))). Завтра продолжу.
|
|||
6
Жан Пердежон
29.06.22
✎
17:01
|
(5) а где директива у функции в (0)?
|
|||
7
nodrama
29.06.22
✎
17:01
|
(3) а чем она принципиально отличается от той что я написал выше ?
|
|||
8
nodrama
29.06.22
✎
17:02
|
(6) ушёл уже от компа. Проверю завтра. Мб не скопировал
|
|||
9
Deon
29.06.22
✎
17:03
|
(5) Если директивы нет, то функция выполняется &НаСервере
|
|||
10
Fedor-1971
29.06.22
✎
17:09
|
(9) нет, в контексте предыдущей установки области выполнения
&НаСервере функция 1() функция 2() - останется НаСервере &НаКлиенте Функция 3() Функция 4() - будет НаКлиенте Распространённый косяк с неочевидными проблемами |
|||
11
Deon
29.06.22
✎
17:22
|
(10) Проверил внешней обработочкой. Функция 4() выполнилась на сервере.
|
|||
12
Fedor-1971
29.06.22
✎
17:52
|
(11) поставь в неё Предупреждение (доступна только на клиенте и при вызове в серверном контексте выдаёт ошибку) и проверь синтаксические ошибки
|
|||
13
Deon
30.06.22
✎
08:30
|
(12) В функции 4 выдало ошибку, что Предупреждение недоступно. Так что, всё нормуль.
|
|||
14
Жан Пердежон
30.06.22
✎
18:09
|
(10) всё фантазируешь...
СП: Отсутствие директивы компиляции перед процедурой (функцией) означает использование директивы по умолчанию. Директивой по умолчанию является &НаСервере. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |