![]() |
![]() |
![]() |
|
Внешняя обработка: &НаСервере, &НаКлиенте - ??? | ☑ | ||
---|---|---|---|---|
0
NeeD
10.02.11
✎
11:05
|
Клиент-серверный вариант работы.
Имеется внешняя обработка, в которой по нажатию на кнопку вызывается процедура формы. Модуль формы следующий: &НаСервере Процедура ВызовФормы(Ткст) Сообщить(Ткст); КонецПроцедуры &НаКлиенте Процедура Кнопка1Нажатие(Элемент) ВызовФормы("Вызов формы") КонецПроцедуры При попытке открыть эту внешнюю обработку, вываливается следующее: {Форма.Форма.Форма(11,2)}: Процедура или функция с указанным именем не определена (ВызовФормы) <<?>>ВызовФормы("Вызов формы") Насколько я понимаю, вопрос достаточно банальный, но почитав в синтакс-помошнике про директивы компиляции, так и не понял, в чем ошибка! Вроде бы всё должно работать... Помогите, пожалуйста :-) |
|||
1
NeeD
10.02.11
✎
11:06
|
P.S. Про то, что Сообщить() на сервере не отрабатывает, я в курсе.
|
|||
2
Axel2009
10.02.11
✎
11:09
|
а чем помочь то? выводы на клиента с серверных проц невозможно.
|
|||
3
ZanderZ
10.02.11
✎
11:11
|
(1) да вообще - то сообщить отрабатывает
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение |
|||
4
NeeD
10.02.11
✎
11:14
|
Так вопрос то не в этом! Вопрос в том, почему при компиляции этой внешней обработки процедура ВызовФормы() не компилится на сервере? Она ведь получается недоступной??? В теле процедуры может быть любой код.
|
|||
5
Axel2009
10.02.11
✎
11:14
|
(0) может не сохранилось что? или название процедуры в перемешку с латиницей..? а если &НаКлиенте в обоих случаях поставить?
|
|||
6
ZanderZ
10.02.11
✎
11:17
|
(4) по моему если это не часть конфигурации то не будет отрабатывать такой механизм...
|
|||
7
NeeD
10.02.11
✎
11:17
|
(5) Тогда всё нормально работает! Мне не понятно, почему не работает с директивой &НаСервере?
|
|||
8
Axel2009
10.02.11
✎
11:20
|
(7) да попробуй в обработки добавить..?
|
|||
9
NeeD
10.02.11
✎
11:20
|
(6) Включил эту внешнюю обработку в конфигурацию - эффект тот же. Не работает!
|
|||
10
NeeD
10.02.11
✎
11:23
|
Может кто нить у себя попробует - там две секунды создать такую вещь... Обработка с одной кнопкой - на неё процедуру Кнопка1Нажатие.
|
|||
11
Axel2009
10.02.11
✎
11:23
|
у меня работает.. 1С:Предприятие 8.2 (8.2.11.236)
|
|||
12
detec
10.02.11
✎
11:23
|
Рекомендую стереть весь код и гарантированно, кириллицей, переписать всё заново, с помощью копи-пасте названий функций и процедур. И не нужно "Сообщать()" в серверных процедурах и функциях.
|
|||
13
kabanoff
10.02.11
✎
11:24
|
(0) Может в режиме обычного приложения отлаживаешь? :)
|
|||
14
Axel2009
10.02.11
✎
11:24
|
(10) не тоже самое. форма то управляемая? то чтото Кнопка1Нажатие меня настораживает
|
|||
15
NeeD
10.02.11
✎
11:25
|
Сейчас попробую.
|
|||
16
ДенисЧ
10.02.11
✎
11:25
|
(10) У меня работает
|
|||
17
Axel2009
10.02.11
✎
11:25
|
&НаСервере
Процедура ВызовФормы(Ткст) Сообщить(Ткст); КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) ВызовФормы("Вызов формы"); КонецПроцедуры где Команда1 - команда УФ. |
|||
18
NeeD
10.02.11
✎
11:26
|
форма не управляемая!
|
|||
19
detec
10.02.11
✎
11:26
|
(18) приехали...
|
|||
20
Axel2009
10.02.11
✎
11:27
|
а что вы хотите? форма выполняется на клиенте. значит процедура вызовформы тупо не компилится
|
|||
21
Axel2009
10.02.11
✎
11:28
|
ЗЫ Сообщить сработало на сервере , правда в процедуре формы =)
|
|||
22
NeeD
10.02.11
✎
11:29
|
Так вот этого я и не понял сразу! То есть, если форма не управляемая, то весь код на сервере не компилируется ни при каких условиях?
|
|||
23
Axel2009
10.02.11
✎
11:29
|
ну а зачем писать директивы если форма ну управляемая?
|
|||
24
Defender aka LINN
10.02.11
✎
11:30
|
(18) Это ты 17 постов интригу нагнетал?
|
|||
25
NeeD
10.02.11
✎
11:32
|
То есть код неуправляемой формы работает только на клиенте. Для управляемой формы можно разделить директивами - что на сервере, что на клиенте. Я правильно понимаю ситуацию? Извините за глупые вопросы, 8.2 только начинаем осваивать.
|
|||
26
Axel2009
10.02.11
✎
11:34
|
для неуправляемой формы нет разницы. все в одном идет выполнение.
|
|||
27
NeeD
10.02.11
✎
12:05
|
Интересно, зачем 1С не предусмотрела возможность работы с УФ во внешних обработках, в обычном режиме запуска приложения? Ну да ладно. Я объясню откуда возникла проблема. Пытаемся создать внешние печатные формы для счетов, счетов фактур, торг 12 и т.д. Так вот, когда обкатывали всё в фаловом варианте - всё работало, как только перешли на серверный, в некоторых формах вываливается ошибка: "Попытка передачи с клиента на сервер мутабельного значения n-го параметра метода"... Начали разбираться в чем дело. Мы за основу брали типовые формы из УПП - там вся печать организована в модуле менеджера. Так вот, все эти процедуры перемещались в модуль внешней обработки. Насколько я понимаю, модуль менеджера компилируется на стороне сервера (может быть я и ошибаюсь), и когда происходит вызов процедуры из общего модуля серверного (признак только сервер) то проблем не возникает - идет вызов сервер - сервер. А в нашем варианте идет вызов клиент - сервер. Теперь, я так понял, надо всё вытаскивать в модуль внешней обработки (печатной формы) чтобы нормально заработало. Директивами компиляции это в принципе не разруливается в данном случае. Я правильно понял ситуацию?
|
|||
28
disk-2008
10.02.11
✎
12:14
|
(27)Надо разные модули.
|
|||
29
NeeD
10.02.11
✎
12:21
|
(28) То есть?
|
|||
30
detec
10.02.11
✎
12:34
|
(27)
А в чём состоит проблема из внешней обработки для УПП дёргать функции и процедуры модуля менеджера? |
|||
31
NeeD
10.02.11
✎
13:55
|
(30) Так не получится! Приведу пример. Нужно создать внешнюю печатную форму ТОРГ-12 для Реализации товаров и услуг (РТУ). В модуле менеджера РТУ есть функция Печать(), которая формирует табличный документ ТОРГ-12. Нам это и нужно, но только изменив немножечко код и макет. То есть нужно эту функцию скопировать в модуль внешней обработки, причесать её и добавить новый макет. Всё бы ничего, да вот только в этой функции есть обращения к функциям общих модулей, которые компилятся только на серверной стороне (в свойствах взведен только признак "Сервер") :-(. Таким образом, нужно эти фунции перенести в модуль внешней обработки. Других вариантов я не вижу. В файловом варианте всё работает без проблем!
|
|||
32
NeeD
10.02.11
✎
13:58
|
(30) P.S. Вернее проблема возникает только при передаче "мутабельного" параметра при вызове серверных функций.
|
|||
33
Axel2009
10.02.11
✎
13:59
|
ссылки нужно передавать. а не объекты
|
|||
34
NeeD
10.02.11
✎
14:01
|
(33) Дык так в 1с код написали :-)
|
|||
35
NeeD
10.02.11
✎
14:08
|
(33) Я посмотрел - там таблица значений передается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |