|   |   | 
| 
 | Поясните различие инструкций препроцессора и директив компиляции. | ☑ | ||
|---|---|---|---|---|
| 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) должен так то... ну я думаю смысл понятен в общем     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |