Имя: Пароль:
1C
 
Обращение к реквизитам Формы через ЭтаФорма
0 jsmith82
 
24.05.18
13:05
Моё почтение, господа.
Знакомый друга говорит, что нельзя в модуле формы писать ЭтаФорма.ИмяРеквизита, ибо при этом якобы какой-то контекст тащится целиком.
Я, честно говоря, не понимаю. Возникло опасения за глобальный пробел в знаниях.
Я понимаю там переезд формы с клиента на сервер при контекстных вызовах, но чтобы что-то тащилось при обращении к форме через точку?
Кто прав?
1 jsmith82
 
24.05.18
13:05
*возникло опасение
2 DrShad
 
24.05.18
13:11
а куда он тащится?
3 lubitelxml
 
24.05.18
13:12
"Знакомый друга говорит, что нельзя в модуле формы писать ЭтаФорма.ИмяРеквизита" - а как надо то?
4 jsmith82
 
24.05.18
13:12
(3) Говорит, надо просто ИмяРеквизита
5 jsmith82
 
24.05.18
13:13
(2) Сам не понял. Внятного объяснения не получил. Но якобы какая-то передача лишних данных происходит.
6 DrShad
 
24.05.18
13:13
а если это не реквизит формы? а просто поле формы?
7 DrShad
 
24.05.18
13:14
(5) куда передача? в рамках одного контекста и на одном клиенте
8 jsmith82
 
24.05.18
13:15
(7) Не знаю. Написал же. Могу понять передачу между клиентом и сервером, могу понять обращение через точку к ссылочной переменной, но что передаётся при обращении к ЭтаФорма в процедуре клиентского ли, серверного ли модуля - не понял.
9 jsmith82
 
24.05.18
13:16
(6) А причём тут это?
10 jsmith82
 
24.05.18
13:17
Ладно, понятно, спасибо, а то я уж переполошился.
11 DrShad
 
24.05.18
13:17
(8) а как же тогда к примеру ПолучитьФорму() потом заполнить реквизиты и открыть? тоже же через объект форма заполняется
12 Redkiy
 
24.05.18
13:19
(0) Про Ссылка.Ссылка кореш ничего не говорил?
13 ildary
 
24.05.18
13:22
(5) это как минимум неправда в случае, когда идет обращение к программно добавленным элементам. Без ЭтаФорма - начинает ругаться синтакс-проверка, с ЭтаФорма.Реквизит - проверка молчит.
14 jsmith82
 
24.05.18
13:22
(12) Нет
15 jsmith82
 
24.05.18
13:24
(13) судя по твоей логике обращения ЭтаФорма["ИмяРеквизита"] и ЭтаФорма.ИмяРеквизита тоже могут быть реализованы различным образом
16 jsmith82
 
24.05.18
13:24
по моей логике одинаково. обычное разрешение контекста.
17 jsmith82
 
24.05.18
13:29
Я примерно понял так.
Есть контекст. Там хранятся все реквизиты формы и прочие переменные области видимости.
При обращении к "ЭтаФорма" программа начинает.. программа начинает.. то ли обновлять контекст, то ли копировать контекст.. опять же, внятно я не понял.
Ну что же, я рад, что мои опасения не оправдались.
18 jsmith82
 
24.05.18
13:31
Я же сам привык везде писать ЭтотОбъект или ЭтаФорма. Ну он посмотрел мой код и говорит, нельзя писать ЭтаФорма.
19 drei
 
24.05.18
13:40
(17) Уточни у сына подруги мамы... Эээ.. у знакомого друга.
20 ildary
 
24.05.18
13:46
(15) я ничего не имею против ЭтаФорма["ИмяРеквизита"] и ЭтаФорма.ИмяРеквизита. Моя претензия была к тому, что если реквизит ИмяРеквизита создан программно - то проверка синтаксиса ругается при обращению по "ИмяРеквизита".
21 lubitelxml
 
24.05.18
14:08
может твой друг это имел ввиду: http://www.itland.ru/forum/index.php?showtopic=13998
22 VitShvets
 
24.05.18
14:30
Скорее всего это связано с изменениями на тему модальности, ещё в 8.3.3. В 1cv8upd.htm написано:
...
Свойство ЭтаФорма объекта УправляемаяФорма удалено и поддерживается для совместимости.
...
23 Жан Пердежон
 
24.05.18
14:39
(22) не связано, ЭтаФорма=>ЭтотОбъект и далее ничего не меняется; кстати, сабж будет по-разному работать при использовании расширений.
24 rincewind
 
24.05.18
15:39
Зачем лишний раз писать ЭтаФорма? Это только захламляет код.