Форам.ПолучитьАтрибут("ТутИмяРеквизитаФормы") - не получается... Почему?

Автор Злоп, Вчера в 14:23

« назад - далее »

Злоп

Справочник. ФормаЭлемента. На форме - поле ввода (строка5), (!!не реквизит справочника!!)
и получается вот такое: Форма.ПолучитьАтрибут("ВремяОконЗадачи") = НеизвестныйОбъект
Как получить значение поля ввода по имени?
Вроде как Форма.ПолучитьАтрибут(ТутИмяПоляВводаНеРеквизитаСправочника) - по идее должно сработать, но вот оно не так... Где туплю?

(понятно, что значение можно получить как Шаблон("[тутимяполя]") - но это уже от безвыходности)...

Злоп

И как установить в этом случае значение в поле ввода по его имени..?

Злоп


Злоп

Цитата: Злоп от Вчера в 14:29И как установить в этом случае значение в поле ввода по его имени..?

тут конечно можно тоже через Шаблон() с использованием ПрисвоитьЧтоЧему()
нокак-то иначе никак без таких извращений?

Харлампий Дымба

Получить:
https://my1c-archive.narod.ru/knowhow/getvalat.html
Установить:
ВремяОконЗадачи = 5; ;D
Но если имя реквизита - переменная, то через Шаблон, как ты и написал выше.


Ветер в поле

У меня вот такие функции есть для установки/получения значений реквизитов. Всё это с использованием Формекс и 1С++:
//*****************************************************************************
Функция глУстановитьЗначениеРеквизитуФормы(Конт, Реквизит, Значение, ВыполнятьФормулу=0) Экспорт
	
	АтрибутФормы = СоздатьОбъект("АтрибутФормы"); 
	
	Попытка
		АтрибутФормы.УстановитьАтрибут(Конт.Форма, Реквизит);
		АтрибутФормы.Значение = Значение;
		
		Попытка
			Если ВыполнятьФормулу = 1 Тогда
				Если ПустоеЗначение(АтрибутФормы.Формула) = 0 Тогда
					Модуль = СоздатьОбъект("ВыполняемыйМодуль");
					Модуль.УстановитьМодуль(
						"Процедура ___ВыполнитьФормулуРеквизита___()
						|  " + АтрибутФормы.Формула + "
						|КонецПроцедуры");
					Модуль.НазначитьКонтекст(Конт);
					Модуль.КомпилироватьМодуль();
					Модуль.ВыполнитьМодуль();
					Модуль.___ВыполнитьФормулуРеквизита___();
				КонецЕсли;
			КонецЕсли;
		Исключение
			глВывестиМногострочноеСообщение("глУстановитьЗначениеРеквизитуФормы: Ошибка выполнения формулы реквизита " + Реквизит + "
				|Формула: " + АтрибутФормы.Формула + "
				|Ошибка: " + ОписаниеОшибки());
		КонецПопытки;
		
	Исключение
		Сообщить("глУстановитьЗначениеРеквизитуФормы: Не найден реквизит на форме: " + Реквизит);
		Возврат 0;
	КонецПопытки;
	
	Возврат 1;
	
КонецФункции //глУстановитьЗначениеАтрибутуФормы

//*****************************************************************************
Функция глПолучитьЗначениеРеквизитаФормы(Конт, Реквизит, СообщатьОбОшибке=1) Экспорт
	
	АтрибутФормы = СоздатьОбъект("АтрибутФормы"); 
	
	Попытка
		АтрибутФормы.УстановитьАтрибут(Конт.Форма, Реквизит);
		Возврат АтрибутФормы.Значение;
	Исключение
		Если СообщатьОбОшибке = 1 Тогда
			Сообщить("глПолучитьЗначениеРеквизитаФормы: Не найден реквизит на форме: " + Реквизит);
		КонецЕсли;
		
		Возврат ПолучитьПустоеЗначение();
	КонецПопытки;
	
КонецФункции //глПолучитьЗначениеРеквизитаФормы