|
Как обратиться к реквизиту формы в УФ | ☑ | ||
---|---|---|---|---|
0
DenisSS
09.04.18
✎
08:37
|
Есть реквизит формы, созданный программно. Как обратиться к этому реквизиты, например, в ПослеЗаписиНаСервере? При отладке значение этого реквизита доступно, но такая строка естественно вызывает ошибку:
Сообщить(РеквизитСозданныйПрограммно) Переменная не определена (РеквизитСозданныйПрограммно) |
|||
1
DmitrO
09.04.18
✎
08:45
|
ЭтотОбъект["ИмяРеквизита"]
|
|||
2
DenisSS
09.04.18
✎
08:54
|
Спасибо работает, но так тоже работает, не ругается: ЭтаФорма.ИмяРеквизита
|
|||
3
Lexey_
09.04.18
✎
08:58
|
(2) ЭтотОбъект = ЭтаФорма
|
|||
4
DmitrO
09.04.18
✎
10:01
|
1.ЭтаФорма - оставлено для совместимости.
2.С какого-то релиза (не помню) платформа явно блокирует исключением обращение к программным реквизитам через точку (это уже для совместимости на будущее). Об этом видел официальное заявление в документации. |
|||
5
ildary
09.04.18
✎
10:15
|
(4) извините что вмешиваюсь, то есть на сегодня самый правильный способ - это ЭтотОбъект["ИмяРеквизита"], а ЭтаФорма.ИмяРеквизита - не рекомендуется по причине устаревания?
|
|||
6
Cyberhawk
09.04.18
✎
10:17
|
(5) Правильнее всего для чтения значения программно созданного реквизита создавать структуру-зонд + ЗаполнитьЗначенияСвойств (т.к. реквизит может быть и удален)
|
|||
7
Cyberhawk
09.04.18
✎
10:24
|
(ну а для получения реквизита формы как объекта встроенного языка - без точки и без "ЭтаФорма", о чем сказано выше)
|
|||
8
ildary
09.04.18
✎
10:25
|
(6) извините, я правильно понял: структура-зонд - это структура с именами как у формы, которую (структуру) будем заполнять через ЗаполнитьЗначенияСвойств()? Выглядит рабоче, но вот ради одного поля гонять столько данных - не очень рационально.
|
|||
9
Cyberhawk
09.04.18
✎
10:27
|
(8) Это структура с именем ключа, совпадающим с именем реквизита, о существовании которого заранее неизвестно (он мог быть уже и удален, т.к. создан программно и для таких это возможно).
Насчет "гонять столько данных" - во-первых, сколько "столько"? А во-вторых это, видимо, единственный способ получить значение без оборачивания в попытку. |
|||
10
hhhh
09.04.18
✎
10:28
|
(8) зачем гонять? в ЗаполнитьЗначенияСвойств() задаете список реквизитов в 3м параметре. Может вы там один реквизит напишете.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |