|
Вопрос про директивы разделения доступности процедур и функций в общих модулях |
☑ |
0
Darklight
15.08.14
✎
12:47
|
Режим: Обычное приложение.
Выполнение: файловая база
Есть общий модуль с установленными флажками:
Сервер
Клиент (обычное приложение)
другие флаги не установлены
Внутри есть такой текст
#ЕСЛИ СЕРВЕР ТОГДА
//////////////////////////////////////////////////////////////////////////////////
//// ПРОЦЕДУРЫ И ФУНКЦИИ, ДОСТУПНЫЕ ТОЛЬКО В СЕРВЕРНОМ КОНТЕКСТЕ
//////////////////////////////////////////////////////////////////////////////////
#ИНАЧЕ
//////////////////////////////////////////////////////////////////////////////////
//// ПРОЦЕДУРЫ И ФУНКЦИИ, ДОСТУПНЫЕ ТОЛЬКО В КЛИЕНТСКОМ КОНТЕКСТЕ ИЛИ ВО ВНЕШНЕМ СОЕДИНЕНИИ
/// ОБРАБОТЧИКИ ИНТЕРАКТИВНЫХ СОБЫТИЙ
//////////////////////////////////////////////////////////////////////////////////
функция НекаяФункция() экспорт
#КОНЕЦЕСЛИ
Проблема: Вот эта самая НекаяФункция() не видна с клиентского контекста (из формы). Почему?
Если директивы #ЕСЛИ СЕРВЕР ТОГДА #ИНАЧЕ убрать - функция становится видан
И как правильно разграничить алгоритмы которые должны выполняться строго на сервере от остальных, доступных на клиенте и внешнем соединении?
|
|
1
Defender aka LINN
15.08.14
✎
12:53
|
(0) Разнеси в разные модули
|
|
2
Darklight
15.08.14
✎
12:55
|
(1)Это я знаю, но в данном случае хотелось бы оставить в одном
|
|
3
Franchiser
гуру
15.08.14
✎
12:59
|
не видна наверно потому что Обычное приложение.
|
|
4
Darklight
15.08.14
✎
12:59
|
(3)И чем же оно мешает?
|
|
5
Darklight
15.08.14
✎
13:06
|
Корооче написал вот так
#ЕСЛИ СЕРВЕР ТОГДА
//////////////////////////////////////////////////////////////////////////////////
//// ПРОЦЕДУРЫ И ФУНКЦИИ, ДОСТУПНЫЕ ТОЛЬКО В СЕРВЕРНОМ КОНТЕКСТЕ
//////////////////////////////////////////////////////////////////////////////////
#КОНЕЦЕСЛИ
#ЕСЛИ КЛИЕНТ ТОГДА
//////////////////////////////////////////////////////////////////////////////////
//// ПРОЦЕДУРЫ И ФУНКЦИИ, ДОСТУПНЫЕ ТОЛЬКО В КЛИЕНТСКОМ КОНТЕКСТЕ
/// ОБРАБОТЧИКИ ИНТЕРАКТИВНЫХ СОБЫТИЙ
//////////////////////////////////////////////////////////////////////////////////
функция НекаяФункция() экспорт
#КОНЕЦЕСЛИ
Теперь на клиенте функция видна ;)
Думаю проблема была в файловой ИБ
|
|
6
Darklight
15.08.14
✎
13:17
|
Есть ещё один вопрос
Если у общего модуля установлены флажки:
Сервер
Вызов сервера
То что даёт установка флагов
Клиент (управляемое приложение)
Клиент (обычное приложение)
Внешнее соединение
Ведь все методы этого модуля и так буду вызываться только на сервере. И будут доступны с клиентского контекста даже без установки данных флажков
Так для чего они остаются доступны к изменению?
Или я что-то не понимаю?
|
|
7
Defender aka LINN
15.08.14
✎
16:15
|
(6) "Ведь все методы этого модуля и так буду вызываться только на сервере" - это скуяли, если флаг "Клиент" стоит?
И при установке всех этих флагов, ЕМНИП, фиг ты поставишь "Вызов сервера"
|
|