|
Чудят директивы компиляции? Или я что-то не так делаю?
| ☑ |
0
GlebHappy
15.11.16
✎
15:03
|
Всем знатокам хорошего дня.
Возник вопрос - определить клиент, в котором открыта управляемая форма, и в зависимости от этого сделать в ней некоторые изменения перед запуском.
Решил воспользоваться директивами компиляции.
Создал клиентский общий модуль и добавил туда функцию такого вот вида:
Функция ПолучитьРежимЗапуска() Экспорт
РежимЗапуска = Неопределено;
#Если ТонкийКлиентУправляемоеПриложение Тогда
РежимЗапуска = "ТонкийКлиент";
#ИначеЕсли ВебКлиент Тогда
РежимЗапуска = "ВебКлиент";
#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда
РежимЗапуска = "ТолстыйКлиент";
#КонецЕсли
Возврат РежимЗапуска;
КонецФункции
Начал проверять.
На толстом клиенте всё нормально, выполняется присваивание в нужной ветке.
А вот в тонком при отладке игнорируется весь блок #Если ... #КонецЕсли
|
|
1
GlebHappy
15.11.16
✎
15:03
|
Мне кажется, или это не совсем ожидаемое поведение?
Синтакс-помощник уже покурил)
|
|
2
NafBF
15.11.16
✎
15:06
|
(0) потому что выполняется на сервере?
|
|
3
NafBF
15.11.16
✎
15:08
|
и это в терминологии 1С не "Директивы компиляции", а "Инструкции препроцессора"
|
|
4
НЕА123
15.11.16
✎
15:08
|
#Если ТонкийКлиент Тогда
|
|
5
NafBF
15.11.16
✎
15:09
|
и да "ТонкийКлиентУправляемоеПриложение" такого нет терма
|
|
6
GlebHappy
15.11.16
✎
16:28
|
(5) Спасибо, добрый человек, моя очепятка, исправил, и всё заработало как планировалось) Видимо, там есть некий базовый синтаксический контроль на инструкции, но по ходу оно при наличии ошибок просто несется дальше без выдачи сообщений.
|
|
7
Лефмихалыч
15.11.16
✎
16:31
|
(0) перед функцией нет &НаКлиенте, соответственно - она на сервере выполняется, а там всего этого блока и нет
|
|