![]() |
|
УФ. Вызов процедуры НаСервереБезКонтекста с параметром Форма | ☑ | ||
---|---|---|---|---|
0
Deon
05.12.14
✎
09:46
|
Господа, поясните в чем профит такого кода, часто встречаемого в модулях управляемых форм типовых конфигураций:
&НаСервереБезКонтекста Процедура РассчитатьНаСервере(Форма) ... КонецПроцедуры &НаКлиенте Процедура РассчитатьВсё() РассчитатьНаСервере(ЭтотОбъект); КонецПроцедуры Конкретно - зачем нужен внеконтекстный вызов с передачей этого контекста в качестве параметра? |
|||
1
butterbean
05.12.14
✎
09:48
|
ЭтотОбъект это не форма
|
|||
2
Deon
05.12.14
✎
09:50
|
УправляемаяФорма.ЭтотОбъект (ManagedForm.ThisObject)
УправляемаяФорма (ManagedForm) ЭтотОбъект (ThisObject) Использование: Только чтение. Описание: Тип: УправляемаяФорма. Содержит данную форму. ... |
|||
3
butterbean
05.12.14
✎
09:54
|
(2) 8.3 что-ли?? я чего-то от жизни отстал
|
|||
4
Deon
05.12.14
✎
10:17
|
да, 8.3
|
|||
5
МишельЛагранж
05.12.14
✎
10:55
|
(0)раньше форму в УФ передавали в ЗначениеВРеквизит.
Тут - "напрямую" как контекст. И только. Т.е. скоро увидим ОФ2.0 и УФ на свалке истории. |
|||
6
МишельЛагранж
05.12.14
✎
10:57
|
+ передача такая еще в 7.7 была, и в 8.1 получила более "закрытое" решение.
|
|||
7
pessok
05.12.14
✎
10:58
|
ну так тут передается только контекст формы, а не весь контекст объекта, или я туплю?
|
|||
8
МишельЛагранж
05.12.14
✎
11:02
|
(7) тупишь.
"Содержит данную форму." Это и есть и контекст Формы, и объект Формы. Только объект в урезанном понимании по 8.2шному. |
|||
9
pessok
05.12.14
✎
11:03
|
(8) т.е. я могу РеквизитФормыВЗначение, а потом вызвать метод из модуля объекта?
|
|||
10
МишельЛагранж
05.12.14
✎
11:04
|
+ "а не весь контекст объекта"
- контекст объекта, к которому "приписана" форма никогда в 1С8 и не передавался через форму. Ибо форма в 1С существует отдельно от объекта. |
|||
11
МишельЛагранж
05.12.14
✎
11:05
|
(9) вы хотите. чтобы я справку написал за 1С? ))
попробуйте из модуля объекта вызвать, отпишитесь. У 1С везде все по разному работает )) |
|||
12
МишельЛагранж
05.12.14
✎
11:06
|
+ здесь конкретно в одном модуле формы и клиентские, и серверные процедуры.
|
|||
13
Жан Пердежон
05.12.14
✎
11:12
|
смысл есть если функция экспортная, либо там на стоит
&НаКлиентеНаСервереБезКонекста, что встречается гораздо чаще, сабж я вообще не помню, чтобы видел в бп3 |
|||
14
МишельЛагранж
05.12.14
✎
11:18
|
(13) ТС и справшивает - зафига во внеконтекстной функции вызывать этот же контекст (который отсечен НаСервереБезКонекста) в виде передачи формы.
|
|||
15
pessok
05.12.14
✎
11:21
|
(14) умом разрабов типовых не понять
|
|||
16
Жан Пердежон
05.12.14
✎
11:22
|
(14) что не понятно из (13)?
|
|||
17
МишельЛагранж
05.12.14
✎
11:27
|
(16) все понятно, кроме одно - как это отвечает на вопрос ТС.
|
|||
18
Бубка Гоп
05.12.14
✎
11:32
|
(0) Любопытно, что за конфа такая и в каком модуле сие чудо обнаружено?
|
|||
19
Deon
05.12.14
✎
11:54
|
(13)(18)
БП 3.0 ПоступлениеНаРасчетныйСчет.ФормаДокумента: &НаСервереБезКонтекста Процедура РассчитатьКурсИСуммуВзаиморасчетов(СтрокаПлатеж, Форма) |
|||
20
Deon
05.12.14
✎
12:00
|
(13)(18) А вообще да, я наврал. Встречается нечасто.
|
|||
21
Жан Пердежон
05.12.14
✎
12:00
|
(19) в этом случае смысла нет, видимо тупую копи-пасту недоисправили;
и что на счет частой встречаемости? |
|||
22
Вуглускр1991
05.12.14
✎
12:02
|
Некоторые чуваки считают, что в 1С пишут "коммерческий код", чтобы нам было трудно его править. Видимо не без этого, но это мотивация "от чего-то уйти", а многое строится на мотивах "к чему-то прийти", считая, что в 1С есть набор средств проектирования и декомпозиции больших задач из него и вылазит весь этот кошмар. Можно сравнить с автоматическим построением кода для описания окон в винде. Нам не пкбликуют этот инструмент. И мы как слепые мыши копаемся в этой "неразберихе". Это все-равно как не иметь конвертации данных и разбираться в отладчике, как работают правила обмена.
|
|||
23
Deon
05.12.14
✎
12:04
|
В общем, попытка найти скрытый смысл успехом не увенчалась. Придется списать на недочеты при разработке.
|
|||
24
Адский плющ
05.12.14
✎
12:08
|
Как вам такая теория:
Разработчик изначально православно сделал НаКлиентеНаСервереБезКонтекста, а потом, когда понял что клиентских вызовов процедуры не будет, отпилил "НаКлиенте". |
|||
25
МишельЛагранж
05.12.14
✎
12:12
|
(24) а сам-то смысл таких вызовов какой вообще?
|
|||
26
Жан Пердежон
05.12.14
✎
12:12
|
(24) там код, который на клиенте не исполнится (без допила), скорее копи-паста + отпил
|
|||
27
Адский плющ
05.12.14
✎
12:17
|
(25) Обычно юзают для управления видом формы. Менять видимость, доступность, текущие страницы элементов и т.д.
|
|||
28
Жан Пердежон
05.12.14
✎
12:19
|
(25) смысл в том, что в процедуру надо вызывать и на клиенте и на сервере, а в форме нельзя использовать &НаКлиентеНаСервере
|
|||
29
Deon
05.12.14
✎
12:30
|
(28) Вот мне маленько странно, почему не сделали такой директивы и в модулях форм
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |