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

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

Как обратиться к реквизиту формы в УФ

Как обратиться к реквизиту формы в УФ
Я
   DenisSS
 
09.04.18 - 08:37
Есть реквизит формы, созданный программно. Как обратиться к этому реквизиты, например, в ПослеЗаписиНаСервере? При отладке значение этого реквизита доступно, но такая строка естественно вызывает ошибку:

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует