Имя: Пароль:
1C
1C 7.7
v7: Как получить значение формы
,
0 gugolovski
 
22.10.19
04:57
В справочнике есть три реквизита: Телефон1, Телефон2, Телефон3.


Как получить в открытой форме значение реквизита по имени?
Например,

Процедура ЗначениеДай()
имяРеквизита = Форма.АктивныйЭлемент();
Сообщить(Форма.ПолучитьАтрибут(имяРеквизита )); //выдает: "НеизвестныйОбъект"
КонецПроцедуры
1 GreyK
 
22.10.19
05:06
Не надо делать ссылку на форму, просто ПолучитьАтрибут(имяРеквизита ).
2 gugolovski
 
22.10.19
05:08
(1) Спасибо. Целый час туплю))
3 SleepyHead
 
гуру
22.10.19
05:14
(2) Про синтаксис-помощник что-нибудь знаете?
4 gugolovski
 
22.10.19
05:31
(3) пытаюсь его использовать. Например там про метод ПолучитьАтрибут() написано:
Синтаксис:
Форма.ПолучитьАтрибут(ИмяРеквизита)

Потому и пытался воткнуть слово "форма"
5 SleepyHead
 
гуру
22.10.19
05:37
(4) Нужно учитывать контекст модуля, в котором используешь методы формы. В модуле формы достаточно указать имя атрибута формы или метода формы.
6 gugolovski
 
22.10.19
05:41
(5) А можно сделать обратную операцию, и по имени реквизита, установить значение формы?
7 SleepyHead
 
гуру
22.10.19
05:48
(7) Давно я с 77 не работал.. Как-то можно, через шаблон и немного магии ))

http://1c-pro.ru/threads/ustanovit-znachenie-ehlementa-formy-cherez-peredachu-konteksta.13741/
8 SleepyHead
 
гуру
22.10.19
06:25
Еше прочитал, через недокументированную возможность может получиться (а может и нет).

Функция ВзятьКонтекст(Конт)
   Возврат Конт
КонецФункции


// далее где-то в глубине модуля формы
Конт = ВзятьКонтекст(Контекст);
Конт.УстановитьАтрибут(Имя, Значение);
9 gugolovski
 
22.10.19
06:45
(8) магия)) - это работает
10 SleepyHead
 
гуру
22.10.19
07:09
(9) Ну здесь как раз никакой магии нет. В этом контексте срабатывает метод УстановитьАтрибут или справочника. или документа, ты просто контекст указываешь явно.