Имя: Пароль:
1C
1С v8
Свойства общего модуля
0 bahtik
 
07.12.13
20:06
Здравствуйте!
В свойствах общего модуля можно установить флажки "Клиент", "Сервер", "Внешнее соединение", "Вызов сервера", определив тем самым контекст для самого модуля и его видимость по отношению к контексту других модулей. Короче, с этим все понятно. Но может ли кто-нибудь сказать, как установка этих флажков влияет на производительность (и влияет ли вообще). Например, если установить свойство "Глобальный", то модуль будет компилироваться при запуске приложения, а не динамически, поэтому этот флажок без надобности устанавливать нежелательно. А вот с остальными как?
1 GROOVY
 
07.12.13
20:12
>> Например, если установить свойство "Глобальный", то модуль будет компилироваться при запуске приложения

Да разве?
2 GROOVY
 
07.12.13
20:13
Флаги "Клиент", "Сервер", "Внешнее соединение", "Вызов сервера" - определяют для компилятора где будет компилиться модуль.
3 mikecool
 
07.12.13
20:13
(1) +1 )))) повеселило
4 MaxS
 
07.12.13
20:27
хм. не знал. Это какая платформа?
Можно программно управлять компиляцией? Утром запустил и всё скомпилировал. И весь день все летает.
5 bahtik
 
07.12.13
20:28
(1), (3) Ну да.
6 bahtik
 
07.12.13
20:29
(1), (3)
Книга "Профессиональная разработка в системе 1С:Предприятие 8" (издание 2). Глава 3. Общий Модуль.:

Если у общего модуля установлено свойство Глобальный, то экспорти-
руемые методы общего модуля являются частью глобального контекста,
и из встроенного языка можно обращаться к ним по имени, как к другим
функциям, методам и свойствам глобального контекста. Если же модуль
неглобальный, то при обращении к его экспортируемой процедуре
или функции ее имя нужно указывать через точку от имени модуля
(например, Обмен.ПолучитьПрефиксНомера()). Последний способ предпо-
чтительнее, так как неглобальные общие модули компилируются по мере
обращения к ним, а не при запуске системы, как глобальные.
7 bahtik
 
07.12.13
20:30
(3) Может оно и весело, конечно, но так устроен мир, тьфу, 1С ))
8 bahtik
 
07.12.13
20:32
(4) А кто говорит о программном управлении компиляцией?
9 bahtik
 
07.12.13
20:36
Короче, конкретизируем вопрос. Какая разница между общим модулем с одним флагом "Сервер" и общим модулем с флагами "Сервер" и "Вызов сервера" в плане их компиляции? Меня это интересует потому, что хочется понять в чем смысл разделения модулей На "ОбщегоНазначенияСервер", "ОбщегоНазначенияВызовСервера" и т.п. в типовых конфигах.
10 MaxS
 
07.12.13
20:41
(8) а где а в (6) про компиляцию?
11 GROOVY
 
07.12.13
20:41
См (2)
12 bahtik
 
07.12.13
20:42
(10) Последнее предложение прочитай.
13 bahtik
 
07.12.13
20:43
(10) "...Последний способ предпо-
чтительнее, так как неглобальные общие модули компилируются по мере
обращения к ним, а не при запуске системы, как глобальные."
14 Armando
 
07.12.13
20:45
"Вызов сервера" виден с клиента, но выполняется на сервере. Это накладывает дополнительные расходы на передачу между клиентом и сервером. Это моя догадка.
15 bahtik
 
07.12.13
20:46
(11) Тогда не совсем понятно, зачем делать два флага: "Клиент" и "Вызов сервера"?
16 bahtik
 
07.12.13
20:49
(14) То, где будет выполняться код, определяется директивами, насколько я понимаю...
17 Armando
 
07.12.13
20:50
(15) Клиент - компилируется и выполняется на клиенте, Вызов сервера - позволяет обратиться к модулю скомпилированному на сервере
18 Armando
 
07.12.13
20:51
(16) Если он компилируется на сервере, то и выполняться тоже будет на сервере.
19 bahtik
 
07.12.13
20:57
(18) Где же он тогда будет выполняться, если включены оба флага: "Сервер" и "Клиент"? ))
20 bahtik
 
07.12.13
20:58
(18) ...и еще и "Вызов сервера"
21 Armando
 
07.12.13
21:02
(19) откуда вызвали там и будет