Имя: Пароль:
1C
1С v8
Клиент/Сервер
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
+Другое дело, что при правильной организации общих модулей в директивах нет необходимости.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс