Имя: Пароль:
1C
1С v8
Управляемый интерфейс: как в процедуре &НаКлиенте увидеть процедуру &НаСервере?
0 Remarko
 
06.04.12
18:13
Есть процедура в общем модуле, выполняется на сервере, в ней создается объект WSОпределения (доступен только на сервере). Потом в форме внешней обработки я хочу обратиться к этой процедуре, как это сделать?
1 Armando
 
06.04.12
18:15
ИмяОбщегоМодуля.ИмяПроцедуры(Параметры)
2 Fragster
 
гуру
06.04.12
18:15
ты не поверишь...
3 Remarko
 
06.04.12
18:15
(1) даже в одном модуле не видит
4 lxs
 
06.04.12
18:16
(доступен только на сервере).
вызов клиента поставь
5 Remarko
 
06.04.12
18:18
&НаСервере
Процедура ПолучитьСоединение(Сервис) Экспорт  
   Определение = Новый WSОпределения(WSОпределение);
   Сервис = Новый WSПрокси(Определение, XXX, YYY, ZZZ);
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьСоединениеКлиент(Сервис) Экспорт
    ПолучитьСоединение(Сервис);
КонецПроцедуры
6 Remarko
 
06.04.12
18:18
(4) где поставить?
7 lxs
 
06.04.12
18:19
на общем модуле
8 Леха Дум
 
06.04.12
18:20
Перевод сервера в режим отладки не предлагать?
9 lxs
 
06.04.12
18:21
(8) нах?
10 Remarko
 
06.04.12
18:22
(7) на модуле стоят три флага Клиент, Сервер, Внешнее соединение
11 Remarko
 
06.04.12
18:23
еще есть Вызов сервера, может он..
12 Леха Дум
 
06.04.12
18:24
(9) конец рабочего дня однако... (5) читаем вынимательно про инструкции препроцессору и где они работают
13 lxs
 
06.04.12
18:26
проверил, все видится)) без всяких клиентов и серверов..
14 Remarko
 
06.04.12
18:27
(13) из формы внешней обработки не видит
15 vmv
 
06.04.12
18:28
опять фигня какая-то, да что ж такое - вы все бухие?
16 Remarko
 
06.04.12
18:28
(15) точнее изъясняйтесь плс
17 GROOVY
 
06.04.12
18:29
Вызвать со стороны сервера процедуру находящуюся на клиенте НЕВОЗМОЖНО.
18 Remarko
 
06.04.12
18:29
(13) &НаСервере нужно, иначе WSОпределения не доступны
19 Remarko
 
06.04.12
18:30
(17) как поступать, если нужно в обработке получить инфо с сервера?
20 Remarko
 
06.04.12
18:31
я ж не со стороны сервера к клиенту хочу обратиться, а наоборот
21 vmv
 
06.04.12
18:32
если не юзать контекст формы, то можно объявить мотод в общем модуле с директивами клиент и сервер и в какой-либо форме вызыывать этот метод и с клиента и серваера или наоборот - так просто ляпнул - автор постановку задачи не уточнил, хотя наверяняка там бредятина 15 века до нашей ери
22 Fragster
 
гуру
06.04.12
18:36
(17) ему наоборот надо
23 Remarko
 
06.04.12
18:36
ну чего ж не вызываецца-то?))
24 Remarko
 
06.04.12
18:37
(22) ей)
25 Кокос
 
06.04.12
18:38
я так понял ты хочешь из модуля формы вызвать функцию из общего серверного модуля?
26 vmv
 
06.04.12
18:38
(19 да блина как как

&НаКлиенте
Процедура ЧотаСделатьНаКлиенте()

// чота делаем
.....
// блин эта шняга тока на сервере может юзаться

СтруктураПолучитьХреньССервера = ОбщиийМодульВсякаяХреньССервера.WSОпределения();

// опа, получили хрень с сервера
.....

Предупреждение("Согласно хрени с сервера вы косячите - вас рассрелять?", 10);

//
Обработка.Расстрел.ОткрытьФормуКазни();

КонецПроцедуры
27 Remarko
 
06.04.12
18:39
(25) да
28 Кокос
 
06.04.12
18:40
создай функцию посредник в модуле формы.

&НаСервере
Функция ПосредникНаСервере()
 Возврат ОбщийСерверныйМодуль.СервернаяФункция();
КонецФункции

&НаКлиенте
Бла бла бла
Значеньице = ПосредникНаСервере()
бла бла бла
29 Fragster
 
гуру
06.04.12
18:40
(24) опаньки! и даже фотка заполнена
30 5 Элемент
 
06.04.12
18:40
"Экспорт" добавить
31 GROOVY
 
06.04.12
18:40
Если нужно вызвать процедуру из модуля формы (со стороны клиента) то у общего модуля должен быть установлен флаг "Вызов сервера" ну и процедура экспортная должна быть.
32 Remarko
 
06.04.12
18:41
вроде так и делаю, лана, сделаю паузу, и экспорт есть, во внешней обработке:

&НаКлиенте
Процедура Команда1(Команда)
   
   Сервис = Неопределено;
   ОбщегоНазначенияКлиентСервер.ПолучитьСоединениеКлиент(Сервис);
   Результат = Сервис.Sum(2,3);
   Сообщить(Результат);
   
КонецПроцедуры
33 GROOVY
 
06.04.12
18:41
На всякий случай: в общем модуле не надо писать &НаСервере...
34 Кокос
 
06.04.12
18:42
ну или процедуру посредник. пофигу короче
35 5 Элемент
 
06.04.12
18:42
ты в (11) написала "еще есть Вызов сервера, может он.." точно он, тебе уже давно пишут
36 Кокос
 
06.04.12
18:43
(32) сделай как (28) в твоем случае

&НаСервере
Функция Команда1Сервере()
   
   Сервис = Неопределено;
   ОбщегоНазначенияКлиентСервер.ПолучитьСоединениеКлиент(Сервис);
   Результат = Сервис.Sum(2,3);
   ВОзврат Результат;
   
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)

   Сообщить(Команда1Сервере());
   
КонецПроцедуры
37 vmv
 
06.04.12
18:45
тема исчесчерпала себя, топикастера на кухню - фсе
38 Кокос
 
06.04.12
18:46
(37) УФ не для женщин :)
39 Remarko
 
06.04.12
18:48
(37) (38) ой, я вас умоляю))) советы понятны, далее разберусь, сейчас так: без НаСервере - тип не определен для WSОпределения, с НаСервере из формы обработки - процедура не найдена
40 Кокос
 
06.04.12
18:51
(39) как в (36) попробовала?
41 Кокос
 
06.04.12
18:51
(39) в (36) обе процедуры находятся в форме.
42 GROOVY
 
06.04.12
19:08
Не поленился: http://narod.ru/disk/45380350001.e63733c9ed42e4bb80548d094d63fee1/1Cv8.dt.html

Из клиентской процедуры модуля формы обработки вызывается процедура общего модуля.
43 Remarko
 
07.04.12
20:08
Спасибо всем за помощь! Заработало после того как вызываемую процедуру выделила в отдельный модуль с флагами Сервер и Вызов сервера, без Клиента и Внешнего соединения, как GROOVY и показал в примере.