|
Поясните различие инструкций препроцессора и директив компиляции. | ☑ | ||
---|---|---|---|---|
0
ptiz
08.08.11
✎
15:52
|
Читаю:
"Основное отличие инструкций препроцессора от директив компиляции заключается в том, что инструкции препроцессора описывают, где компилируется код, а директивы компиляции указывают, где нужно компилировать код." 2 вопроса 1) Никак в толк не возьму, чем "описывают, где компилируется код" отличается от "где нужно компилировать код" ? Где в он будет скомпилирован? 2) Откуда можно будет вызвать такую процедуру: с сервера или с клиента? #Если Сервер Тогда &НаКлиенте Процедура МояПроцедура() … КонецПроцедуры #КонецЕсли |
|||
1
ptiz
08.08.11
✎
15:54
|
И какая разница между
#Если Клиент Тогда Процедура МояПроцедура() … КонецПроцедуры #КонецЕсли и &НаКлиенте Процедура МояПроцедура() … КонецПроцедуры |
|||
2
Fragster
гуру
08.08.11
✎
15:55
|
где нужно ВЫПОЛНЯТЬ код
|
|||
3
ДенисЧ
08.08.11
✎
15:56
|
(1)
в первом случае в исполняемый не на клиенте код процедура не попадёт в принципе. |
|||
4
Fragster
гуру
08.08.11
✎
15:57
|
или набоборот... короче будет ошибка "Процедура с указанным именем не обнаружена"
#Если Клиент Процедура Тыц() КонецПроцедуры #КонецЕсли &Сервер Процедура ТыцТыц() Тыц(); КонецПроцедуры |
|||
5
ptiz
08.08.11
✎
15:57
|
(3) А во втором?
|
|||
6
ДенисЧ
08.08.11
✎
15:58
|
(5) а во втором - может попасть, но выполняться не будет.
Я не знаю, как работает оптимизатор в 1с |
|||
7
Fragster
гуру
08.08.11
✎
15:58
|
(6) а во втором - функция будет обрабатываться на сервере, но доступна будет и из сервера и из клиента
|
|||
8
ptiz
08.08.11
✎
16:01
|
Т.е. если указано:
&Сервер То код будет выполняться всегда на сервере, независимо от того, откуда вызван. Если указано &Клиент, то код будет присутствовать на сервере, но выполнить его можно будет только с клиента. Так? |
|||
9
Fragster
гуру
08.08.11
✎
16:03
|
(8) где там присутствовать код будет - не скажу, но то, что вызвать функцию из другого места (из клиента &сервер и наоборот) можно - это факт. а # - просто убирает код из соответствующего контекста - как будто его и не было
|
|||
10
Stepa86
08.08.11
✎
16:04
|
В случае инструкции препроцессору (#Если ) участок кода или выполняется или пропускается в зависимости от выполнения условия, а в случае директивы выполнение кода будет перенаправлено в указанную среду выполнения, если возможно
|
|||
11
Stepa86
08.08.11
✎
16:08
|
вот этот код например выведет 1, 2, 3 , а не все 4
|
|||
12
acsent
08.08.11
✎
16:10
|
# - где компилируется код
& - где выполняется код. Это если простым языком |
|||
13
ptiz
08.08.11
✎
16:22
|
(11) А ошибку этот код не вызовет при попытке вызова ВывестиЧетыре() ?
|
|||
14
Stepa86
08.08.11
✎
16:24
|
(13) должен так то... ну я думаю смысл понятен в общем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |