Директивы компиляции. Не работает условие

1. vsesam80 26.05.20 11:14 Сейчас в теме
Привет всем. В общем пилю обработку под обычные формы, конфа УТП 2. 8.3.14.1993, файловая там в обработке использую конструкцию:

Процедура Кнопка1Нажатие(Элемент)
#Если Сервер Тогда
А = 0;
#ИначеЕсли Клиент Тогда
Б = 0;
#КонецЕсли
КонецПроцедуры

При нажатии на кнопочку ожидаю что станет Б =0 .
Но, отрабатывает серверный вызов где А = 0.
Почему так?
И при каких тогда условиях отработает условие "#ИначеЕсли Клиент Тогда"?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salavat 13 26.05.20 11:21 Сейчас в теме
(1)
под обычные формы
под обычными формами, отловить/разделить Сервер и Клиент - практически нереально.
5. vsesam80 26.05.20 11:29 Сейчас в теме
(2)Да я так понял что дело в файловой базе. Потестил на сервере, там код работает как надо.
4. dhurricane 26.05.20 11:26 Сейчас в теме
7. vsesam80 26.05.20 11:41 Сейчас в теме
(4)Почему тогда отрабатывает условие #Если Сервер? разве оно не должно пропускаться? Это же логично.
8. dhurricane 26.05.20 12:11 Сейчас в теме
(7) Я лишь отметил, что это документированная возможность. Вы задали вопрос, при каких условиях отрабатывает Ваша директива компиляции. Я дал ссылку на документацию с табличкой всех возможных вариантов и результатами их проверки.
3. VmvLer 26.05.20 11:23 Сейчас в теме
нажатие кнопки на сервере как себе представляете?
6. vsesam80 26.05.20 11:35 Сейчас в теме
(3) Никак. В реальности это экспортный метод. Интересно другое - почему тогда условие отрабаиывает? И в серверной базе условие переходит "на Клиента"?
9. comptr 31 26.05.20 12:15 Сейчас в теме
УТП, обычные формы, скорее всего запущены в режиме ТолстыйКлент
Справка говорит про "Инструкции препроцессора", что:

В файл–серверном варианте

В обычном клиенте в обычном и управляемом режиме доступны НаКлиенте, Клиент, ТолстыйКлиентОбычноеПриложение, ТолстыйКлиентУправляемоеПриложение , НаСервере, Сервер.
В файловом варианте инструкции препроцессора #Если Сервер…, #Если Клиент…, #Если ТолстыйКлиентОбычноеПриложение или #Если ТолстыйКлиентУправляемоеПриложение… определены всегда, поэтому экземпляр кода будет присутствовать всегда.

Так что всё логично, код будет работать всегда.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот