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


Как проверить наличие добавленного программно реквизита в управляемой форме?

Как проверить наличие добавленного программно реквизита в управляемой форме?
Я
   LLIaMaH
 
03.08.18 - 06:07
Иногда При открытии передаю в форму параметр, в ПриСоздании создаю для него реквизит формы, чтобы хранить этот параметр. В дальнейшем при работе нужно проверять наличие реквизита, ничего кроме явного обращения к нему я не нашел - ЭтаФОрма.МойПараметр, это приводит к ошибке когда в форме этого реквизита нет, приходиться оборачивать в ПопыткаИсключения, может есть способ проверить наличие программно добавленного реквизита?

Может есть како-то другой способ хранить параметр в форме?
 
 
   LLIaMaH
 
1 - 03.08.18 - 06:09
Хотя реквизит можно создавать всегда, но заполнять не всегда, но вопрос в принципе всернао интересен теоретически.
   hhhh
 
2 - 03.08.18 - 06:21
(1) ну как бы стандартный прием
струк = Новый Структура("ИмяПараметра", Неопределено);
ЗаполнитьЗначенияСвойств(струк, ЭтаФорма);
   тарам пам пам
 
3 - 03.08.18 - 09:59
эмм, а чем метод Форма.ПолучитьРеквизиты() не устроил?

(2) Немножко не то, может подтянуться не только реквизит формы, но и экспортная переменная модуля формы. Также не определить, что реквизит есть, но его значение = Неопределено.
   тарам пам пам
 
4 - 03.08.18 - 10:07
(3)+ хотя проблему с Неопределено можно обойти через

ИД = Новый УникальныйИдентификатор;
Струк = Новый Структура(ИмяПараметра, ИД);
ЗаполнитьЗначенияСвойств(струк, ЭтаФорма);
Если Струк[ИмяПараметра] = ИД Тогда
    // реквизит есть

Иначе
    // реквизита нет

КонецЕсли;

   Cyberhawk
 
5 - 03.08.18 - 10:13
(4) Только ветки условия у тебя перепутаны - если в структуре остался ИД, то значит реквизита нет
   Вафель
 
6 - 03.08.18 - 10:45
А если реквизит есть и значение его неопределено?
   Cyberhawk
 
7 - 03.08.18 - 10:53
Ну так для этого в структуру-зонд и помещают УИД в качестве значения ключа
   Вафель
 
8 - 03.08.18 - 10:54
кстати чем плоха попытка?
   тарам пам пам
 
9 - 03.08.18 - 11:08
(8) вызывает ненависть при отладке и установке флага "Останавливаться при ошибке".
   Cyberhawk
 
10 - 03.08.18 - 11:16
(8) Тем, что ее можно использовать
 
 Рекламное место пустует
   Cyberhawk
 
11 - 03.08.18 - 11:16
*не использовать
   Вафель
 
12 - 03.08.18 - 11:17
лучше уж попытка, чем всякие извратские способы
   Cyberhawk
 
13 - 03.08.18 - 11:19
Может ты и какие-нибудь команды навигации по спискам делаешь через WSH.SendKey вместо пары сотен программного кода? ))
   Вафель
 
14 - 03.08.18 - 11:21
(13) а зачем нужно делать ручную навигацию по спискам?
   тарам пам пам
 
15 - 03.08.18 - 11:57
(14) например для тач скринов вывести кнопки нормального размера
   Вафель
 
16 - 03.08.18 - 12:03
(15) уже есть мобильный клиент, там нативная навигация по спискам
   тарам пам пам
 
17 - 03.08.18 - 13:24
(16) тач может быть и в обычном ноутбуке под обычной виндой
   Cyberhawk
 
18 - 04.08.18 - 23:46
(14) Хз, не помню уже, помню только что на ОФ такое пришлось делал (там кажись конфа на собственных формах была, без платформенных команд)

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