Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Вызов процедуры общего модуля (Сервер, Вызов сервера) из клиента (УФ)

Вызов процедуры общего модуля (Сервер, Вызов сервера) из клиента (УФ)
Я
   PiotrLoginov
 
22.10.18 - 11:53
Всем доброго дня. Нужен ответ на принципиальный вопрос: если из управляемой формы, из процедуры НаКлиенте обратиться напрямую к функции серверного общего модуля, то это аналогично тому, как если бы мы обратились к методу НаСервереБезКонтекста? Форма же на сервер не "поедет"?

Или это нежелательно, и если мы не хотим, чтобы форма "отправлялась" на сервер, т.е. хотим стопудово получить серверный ВНЕКОНТЕКСТНЫЙ вызов, то следует написать отдельную функцию в модуле формы НаСервереБезКонтекста и уже из нее обращаться к методам серверных модулей?
 
 
   PiotrLoginov
 
1 - 22.10.18 - 11:54
Может, это где-то описано в документации? Традиционно буду рад ссылкам.
   Вафель
 
2 - 22.10.18 - 11:55
без вызова сервере нельзя вызять процедуры модуля из клиента
   PiotrLoginov
 
3 - 22.10.18 - 12:13
(2)


&НаКлиенте
Процедура ВыполнитьТест(Команда)
    
    Результат = Неопределено;
    Результат = ОбщийМодульСерверИВызовСервера.ВернутьИстина();

    //код успешно отработатал. Теперь Результат = Истина

    
КонецПроцедуры


Так что чисто технически можно обратиться из клиентской процедуры управляемой формы к функции серверного (Вызов сервера) общего модуля. Вопрос в том, насколько это комильфо, и не потянется ли в момент вызова на сервер контекст формы (форма может быть "тяжелой", так что хотелось бы обходиться внеконтекстными вызовами)
   Cyberhawk
 
4 - 22.10.18 - 12:15
Вызывай, какие проблемы? Никакая форма никуда не поедет
   PiotrLoginov
 
5 - 22.10.18 - 12:19
(4) >> Никакая форма никуда не поедет

точно?   :)   не хочется краснеть, если вдруг со временем выяснится обратное.  Вот бы у вендора на эту тему почитать, а то сколько статей про замену НаСервере на НаСервереБезКонтекста, а тут вдруг простое размещение серверного функционала в общем модуле - и никаких заморочек с производительностью на узких каналах
   PiotrLoginov
 
6 - 22.10.18 - 12:22
блин.  Как всегда, только Cyberhawk  готов ответить по существу. Коллеги, как же мы годами работаем, не понимая до конца базовых принципов? Мне самому стыдно...
   PiotrLoginov
 
7 - 22.10.18 - 12:24
Казалось бы простой вопрос, должен быть "лес рук"...
   PiotrLoginov
 
8 - 22.10.18 - 12:26
Ладно, ответ дан - и слава подсказавшему.

Вопрос закрыт.
   Cyberhawk
 
9 - 22.10.18 - 12:27
(5) Ты не путай вызов процедуры ОМ и вызов процедуры модуля формы. Во втором случае он контекстный, в первом - нет.
   Cyberhawk
 
10 - 22.10.18 - 12:27
Для буквоедов: "Во втором случае он контекстный" если директива "НаСервере". Потому и делают "НаСервереБезКонтекста", чтоб форма никуда не ездила.
 
 Рекламное место пустует
   Cyberhawk
 
11 - 22.10.18 - 12:28
Только такая замена не всегда бывает оправдана, бгг
   PiotrLoginov
 
12 - 22.10.18 - 12:28
Понял . Искренне благодарен.
   Сияющий в темноте
 
13 - 22.10.18 - 12:33
Начнем с того,что вызов сервера,это не совсем сервер,это заголовки на клиенте для вызова серверных функций.
и,как и в случае вызова клиентского общего модуля никакая форма внутри общего модуля не доступна.
когда идет вызов сервера,то сначала идет вызов общего модуля,в котором контекст теряется,а потом уже из модуля идет запрос на сервер.
чисто же серверный модуль без вызова сервера вызвать будет просто нельзя,т.к.клиент о нем ничего не знает.

и,формы на сервере не живут,живет там только код,и то,не факт,что не сбрасывается из памяти,при обращении к серверному модулю данные формы передаются на сервер,где формируется контекст вызова,а после выполняется вызов процедуры в этом контексте. Для кластера же возможна ситуация,когда два серверных вызова будут выполнены на разных серверах.
   PiotrLoginov
 
14 - 22.10.18 - 12:46
(13) >>при обращении к серверному модулю данные формы передаются на сервер,где формируется контекст вызова

... ??
   PiotrLoginov
 
15 - 22.10.18 - 12:47
к серверному модулю формы или к любому серверному модулю, если только у него нет директивы &НаСервереБезКонтекста ?
   PiotrLoginov
 
16 - 22.10.18 - 12:48
* к любому серверному модулю если только у вызываемого метода нет директивы &НаСервереБезКонтекста ?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует