Имя: Пароль:
1C
1С v8
Как передать форму (управляемую) с клиента на сервер
,
0 toypaul
 
гуру
03.08.12
14:19
было

&наклиенте
процедура вызов()
вызовсервер()
конецпроцедуры

&насервере
процедура вызовсервер()
тут работа с реквизитами формы
конецпроцедуры

стало нужно вызовсервер перенести в общий модуль для использования в нескольких формах.

такой код не работает

&наклиенте
процедура вызов()
модуль.вызовсервер(этаформа)
конецпроцедуры

как правильно решить эту задачу? реквизиты формы не просто читаются, но и изменяются. плюс в реквизитах есть Таблицы значений
1 Mort
 
03.08.12
14:26
&наклиенте
процедура вызов()
вызовсервер()
конецпроцедуры

&насервере
процедура вызовсервер()
ВызоыОбщейПроцедуры(ЭтаФорма);
2 jump if overflow
 
03.08.12
14:26
врядли есть такая необходимость
ЭтаФорма можно получить и в серверной процедуре модуля формы
3 Lex_Liven
 
03.08.12
14:27
Сначала перейди на сервер, а потом вызывай общую процедуру.
&НаКлиенте
Процедура КлиентскийВызов()
 СерверныйВызовВФорме();
КонецПроцедуры

&НаСервере
Процедура СерверныйВызовВФорме()
 СерверныйВызовИзМодуля();
КонецПроцедуры
4 Gepard
 
03.08.12
14:28
(0) а для чего это надо?
5 Gepard
 
03.08.12
14:29
(4) туплю)
6 Lex_Liven
 
03.08.12
14:30
Ну или подробнее, с передачей формы

&НаКлиенте
Процедура КлиентскийВызов()
 СерверныйВызовВФорме();
КонецПроцедуры

&НаСервере
Процедура СерверныйВызовВФорме()
 СерверныйВызовИзМодуля(ЭтаФорма);
КонецПроцедуры

//В общем модуле
&НаСервере
Процедура СерверныйВызовИзМодуля(Форма) Экспорт
//Работаем с реквизитами
КонецПроцедуры
7 H A D G E H O G s
 
03.08.12
14:31
Или Убрать галочка Клиент(управляемый) в ОМ.
8 toypaul
 
гуру
03.08.12
14:31
(1) и (6) сам уже сообразил :)
спасибо за подсказку. сказывается малый опыт.
9 Lex_Liven
 
03.08.12
14:32
(7) Не "или", а "И", как мы выяснили вчера.
10 toypaul
 
гуру
03.08.12
14:33
в (7) в ОМ нет галочки. он видимо не умеет с НаКлиенте передавать ЭтаФорма на Сервер. хотя в свой вызов умеет.
11 olegves
 
03.08.12
14:54
(10) в своем вызове передается контекст вместе с формой, а если пользовать &НаСервереБезКонтекста, то и форма не переедет на сервер
12 Stepa86
 
03.08.12
15:00
с клиента на сервер УФ передать нельзя. Никак.

Способы обхода, которые я знаю.
1) как в (1), то есть не передавать форму, а сразу работать с сервера.
2) была ситуация, когда нужно было получить форму и вызвать для нее серверный модуль. Получить можно только на клиенте, а передать форму с клиента нельзя... выкрутился созданием экспортной клиентской процедуры на получаемой форме, которая и вызывала нужную мне серверную процедуру, передавая себя.