Читаю "Профессиональная разработка в системе «1с:ПредПриятие 8»" Стр 53.
Контекст клиентских процедур и функций модуля управляемой формы (рис. 3.10) образуется:
* экспортируемыми функциями и процедурами клиентских общих модулей, у которых установлено свойство Клиент (управляемое приложение) и неглобальных серверных общих модулей, для которых установлено свойство Вызов сервера;
Почему именно неглобальных?
---
ага. Можешь сам попробовать. Разработчики просто сделали общий интерфейс настройки общих модулей. Причем при наборе этот метод даже доступен в автоподстановке. Но не будет работать.

Более того, где-то в типовых встречал такой хак. Для Толстого клиента обращение идет через глобальный модуль, а для тонкого эта же функция продублирована в Общем модуле управляемого приложения.
---
Почему именно неглобальных?
Потому, что глобальные не имеют контекста общего модуля. Другими словами, глобальные модули компилируются в один единый глобальный контекст (или точнее в два: клиентский и серверный). К ним невозможно обратиться через общий модуль, только прямое обращение к методам.
---
ну так к глобальным процедурам и функциям же тоже можно обратиться. Пусть и напрямую, без указания модуля.
Я бы предположил, что про это они написали в первом пункте (см. картинку выше):
* свойствами и методами глобального контекста, которые доступны в управляемых клиентах (тонкий клиент, веб-клиент, толстый клиент в режиме управляемого приложения);
Но тогда почему во втором написали
* экспортируемыми функциями и процедурами (без неглобальных) клиентских общих модулей, у которых установлено свойство Клиент (управляемое приложение) и неглобальных серверных общих модулей, для которых установлено свойство Вызов сервера;
Т.е. как бы про глобальный контекст в первом пункте указали, а про неглобальные общие модули во втором. Просто получается что для клиентских процедур не указали что модуль должен быть нелобальным, а для серверных указали. Зачем?
---
там упор делается на контекст Общие модули. Для глобальных общих модулей контекста Общие модули не существует.

И еще. Невозможно обратиться к серверной процедуре глобального контекста из клиента, даже если глобальный общий модуль пометить "Вызов сервера". Это свойство на глобальные общие модули не распространяется. Почему - смотри выше.
---
ну так и писали бы "экспортируемыми функциями и процедурами неглобальных клиентских общих модулей, у которых установлено свойство Клиент (управляемое приложение) и неглобальных серверных общих модулей, для которых установлено свойство Вызов сервера;". Или я опять туплю?
---
к клиентским методам глобальных модулей есть доступ с клиента. К серверным нет, даже с флагом "Вызов сервера".
---
Воооот! То что и хотел услышать. А почему так? В чем логика ограничения?
---
так выше же все указал:
Для глобальных общих модулей контекста Общие модули не существует.
Другими словами, глобальные модули компилируются в один единый глобальный контекст (или точнее в два: клиентский и серверный).
---
Не объяснение. Перефразирую вопрос. Почему глобальный серверный контекст не доступен на клиенте, если в них есть "вызов сервера"? Ну дали бы возможность вызывать, чем бы хуже стало? Как мне кажется - это просто идеология платформы. Хотяяяяяяя.
Глобальные модули компилируются сразу, а по логике всего клиент-серверного взаимодействия, когда с клиента на сервер идешь, сервер только тогда компилируется. А получится, что логика с глобальным общим модулем так не работает, поэтому они и запретили его вызывать. Как думаете? чтобы путаницы не было.
---
Моя гипотеза - опция "Вызов сервера" пилилась под тонкого клиента (изначально ее не было).
И очевидно, чтобы реализовать ее для глобальных общих модулей - пришлось бы допиливать и "ветвить" их существующую реализацию. И проектировщики, подумав, решили что и правильнее и работы меньше - этого не делать :)
---
Ну могли бы хотя бы работу галок поправить: ставишь "глобальный" - пропадает возможность выбрать "вызов сервера".
---
тут есть ньюанс. Для толстого клиента все работает. Не работает только для тонкого. А запускать можно и так и этак. Невозможно предсказать эту галку.

ПС. и для толстого клиента в режиме файловой базы (так как все выполняется на клиенте). Не уверен на счет клиент-серверной. Нужно проверять.
---
ну да. точно.
Спасибо большое вам за ответы. Одним белым пятном стало меньше.
---
Это из практики? В руководстве разработчика эта особенность не описана (ну или не нашел).
---
ага. Можешь сам попробовать. Разработчики просто сделали общий интерфейс настройки общих модулей. Причем при наборе этот метод даже доступен в автоподстановке. Но не будет работать.

Более того, где-то в типовых встречал такой хак. Для Толстого клиента обращение идет через глобальный модуль, а для тонкого эта же функция продублирована в Общем модуле управляемого приложения.
---
Буду знать. Ну и правильное сделали. Как уже говорил, надо было не ограничиваться полумерами, а запретить нафиг глобальные общие модули изначально. В 1С и так беда с пространствами имен, а тут еще такая дырища для криворуких разрабов.
---
Фиг его знает. Но я одобряю. Я бы вообще запретил глобальные общие модули. Они с одной стороны - не нужны, с другой - вредны :)
---
Хоть опыта у меня и ноль, но я соглашусь.