|
Клиент/Сервер |
☑ |
0
wraithik
05.02.13
✎
10:21
|
Есть такой код в общем модуле.
Процедура РКП_ОбработатьКомандуНаСервере - вызвается.
Но она не видит ОбработатьКомандуНаСервере2.
Модуль скомпилирован с галочками: клиент (ОП, УП), сервер, вызов сервера.
&НаКлиенте
Процедура РКП_ОбработатьКомандуНаСервере(...) Экспорт
РКП_ОбработатьКомандуНаСервере2(...);
КонецПроцедуры
&НаСервере
Процедура РКП_ОбработатьКомандуНаСервере2(...) Экспорт
ИмяКоманды = Команда.Имя;
|
|
1
wraithik
05.02.13
✎
10:21
|
ЧЯДНТ?
|
|
2
Defender aka LINN
05.02.13
✎
10:24
|
И давно в общих модулях работают всякие &НаКлиенте и прочие &НаСервере?
|
|
3
НафНаф
05.02.13
✎
10:25
|
(1) всё, директивы &НаКлиенте и &НаСервере бесполезны в общих модулях
|
|
4
НафНаф
05.02.13
✎
10:25
|
Директивы компиляции
Каждая процедура и функция модуля формы, модуля команды и общего модуля управляемого приложения предваряется директивой компиляции, определяющей среду исполнения данной процедуры.
|
|
5
НафНаф
05.02.13
✎
10:27
|
не путать директивы компиляции и инструкции препроцессора
1С изобрела квадратно-колесный мопэд
|
|
6
wraithik
05.02.13
✎
11:09
|
Да плевать на директивы, хотя они и работают.
Че делать то?
|
|
7
Жан Пердежон
05.02.13
✎
11:28
|
поищи в модуле строки вида
#Если Клиент Тогда
|
|
8
Reset
05.02.13
✎
11:39
|
(6) Вынеси вторую процедуру в отдельный серверный модуль.
|
|
9
wraithik
05.02.13
✎
12:10
|
(7) это мой модуль. там таких строк нет.
|
|
10
Ns33
05.02.13
✎
12:47
|
Постараюсь объяснить, и при этом не сильно облажаться:
При таких галках этот общий модуль имеет 3 копии, каждая копия скомпилирована с своем контексте:
Тонкий клиент,
Толстый клиент,
Сервер.
Плюс прошла 3 раза проверка на ошибки, исходя из своего контекста.
Причем из-за директивы &НаСервере на тонком клиенте эта процедура отсутствует, на что и ругается.
|
|
11
Reset
05.02.13
✎
12:49
|
(10) Правильно, только две копии - клиентская и серверная
Проц1 находится в клиентской части, где проц2 нет
|
|
12
НафНаф
05.02.13
✎
12:51
|
(10) директива &НаСервере не работает в общих модулях, уже писали
|
|
13
Reset
05.02.13
✎
12:51
|
(12) Это неправда
|
|
14
Reset
05.02.13
✎
12:51
|
(12) Прочитай (4) :)
|
|
15
Reset
05.02.13
✎
12:56
|
+Другое дело, что при правильной организации общих модулей в директивах нет необходимости.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший