Имя: Пароль:
1C
1С v8
Вызов процедуры НаСервере
, ,
0 Alex_Rav74
 
01.09.14
22:17
Общий модуль. Обе процедуры в одном модуле.
&НаСервере
Процедура ФайлНаСервере()
... текст процедуры ...
КонецПроцедуры

&НаКлиенте
Процедура ОтслеживаниеИзменений(Источник, Режим) Экспорт    
    ФайлНаСервере();
КонецПроцедуры

При компиляции всё ОК. При обращении к процедуре "ОтслеживаниеИзменений" выдаёт ошибку: Процедура или функция с указанным именем не определена (ФайлаНаСервере)    <<?>>ФайлаНаСервере();

Что я не так делаю?
1 saaken
 
01.09.14
22:19
модуль не серверный
2 1cVandal
 
01.09.14
22:21
у общего модуля галочки в свойствах глянь
3 Asmody
 
01.09.14
22:22
(0) что-то ты где-то не то скопипастил
4 Alex_Rav74
 
01.09.14
22:24
Галки стоят следующие:
Сервер
Внешнее соединение
Клиент (обычное приложение)
Вызов сервера

Конфигурация УПП
5 Alex_Rav74
 
01.09.14
22:27
(3) Модуль полностью писан - не копипаст.
6 GROOVY
 
01.09.14
22:27
Проверь, а лучше заново набери директиву компиляции.
7 MrStomak
 
01.09.14
22:29
Модуль это не форма - он не существует одновременно на клиенте и на сервере, он существует только где-то в одном месте. Если одновременно стоят галки клиент и сервер - то существует там, откуда вызывается. Соответственно, при компиляции модуля из него убираются все функции, которые не находятся в нужном контексте.
8 Asmody
 
01.09.14
22:30
(5) ошибку ты верно сюда скопировал?
9 Alex_Rav74
 
01.09.14
22:30
(6) - проверил - всё без изменений
10 Alex_Rav74
 
01.09.14
22:31
(8) - да:
{ОбщийМодуль.rs.Модуль(60,2)}: Процедура или функция с указанным именем не определена (ФайлНаСервере)
    <<?>>ФайлНаСервере();
11 MrStomak
 
01.09.14
22:32
(6) Павел, ну вы что, всё правильно, тут и должна быть именно такая ошибка!
12 Alex_Rav74
 
01.09.14
22:32
(7) - т.е. нужно отдельно сделать модуль для серверных процедур и отдельно для клиентских? Или какие-то галки лишние убрать?
13 Asmody
 
01.09.14
22:32
(10) в (0) было ФайлаНаСервере
14 Asmody
 
01.09.14
22:33
(12) отдельно
15 MrStomak
 
01.09.14
22:33
(12) В типовых не просто так разведены "МодульТакойтоКлиент" и "МодульТакойТоСервер"
16 Asmody
 
01.09.14
22:33
либо вызывать по полному имени
17 GROOVY
 
01.09.14
22:34
(11) Да я просто как то написал &НаКлинете и у меня так же без всяких ошибок компиляции не находило процедуру, пока нашел опечатку весь извелся :)
18 Alex_Rav74
 
01.09.14
22:34
да там "а" была лишняя
19 Alex_Rav74
 
01.09.14
22:36
(16) по полному он её даже автоматически не предлагает, соответственно потом ошибка выходит.
20 Alex_Rav74
 
01.09.14
22:37
(14) - ща попробую разнести, хотя есть другой самописный модуль, но не мой, так там все процедуры в одном месте и всё работает :(
21 Asmody
 
01.09.14
22:37
да, с (16) погорячился - не в этом случае, конечно
22 MrStomak
 
01.09.14
22:38
(20) Просто там с клиентских процедур не вызываются серверные :)
23 Alex_Rav74
 
01.09.14
22:44
(22) - так и есть - тупанул - это  вхранилище настроек процедуры
24 Alex_Rav74
 
01.09.14
22:59
Сделал ещё один общий модуль "Серв", галки поставил: Сервер, Вызов сервера. Внутри процедура:
&НаСервере
Процедура ФайлНаСервере()
    к = 1;
КонецПроцедуры

Ошибку выдаёт:
{ОбщийМодуль.Клиент.Модуль(34)}: Метод объекта не обнаружен (ФайлНаСервере)
    Серв.ФайлНаСервере();
25 Asmody
 
01.09.14
23:01
(24) Экспорт
26 Alex_Rav74
 
01.09.14
23:03
(25) Экспорт чего и куда?
27 mikeone
 
01.09.14
23:10
(26) Поставь Экспорт после имени функции.
28 Alex_Rav74
 
01.09.14
23:10
(27) - ага - уже тож дошло и заработало. ВСЕМ БОЛЬШОЕ СПАСИБО!!!
29 Адский плющ
 
01.09.14
23:36
Директивы в общих модулях ничего кроме путаницы не приносят. Ну разве только если вы наркоман.