Справочник. ФормаЭлемента. На форме - поле ввода (строка5), (!!не реквизит справочника!!)
и получается вот такое: Форма.ПолучитьАтрибут("ВремяОконЗадачи") = НеизвестныйОбъект
Как получить значение поля ввода по имени?
Вроде как Форма.ПолучитьАтрибут(ТутИмяПоляВводаНеРеквизитаСправочника) - по идее должно сработать, но вот оно не так... Где туплю?
(понятно, что значение можно получить как Шаблон("[тутимяполя]") - но это уже от безвыходности)...
И как установить в этом случае значение в поле ввода по его имени..?
Речь про без Formex
Цитата: Злоп от Вчера в 14:29И как установить в этом случае значение в поле ввода по его имени..?
тут конечно можно тоже через Шаблон() с использованием ПрисвоитьЧтоЧему()
нокак-то иначе никак без таких извращений?
Получить:
https://my1c-archive.narod.ru/knowhow/getvalat.html
Установить:
ВремяОконЗадачи = 5; ;D
Но если имя реквизита - переменная, то через Шаблон, как ты и написал выше.
У меня вот такие функции есть для установки/получения значений реквизитов. Всё это с использованием Формекс и 1С++:
//*****************************************************************************
Функция глУстановитьЗначениеРеквизитуФормы(Конт, Реквизит, Значение, ВыполнятьФормулу=0) Экспорт
АтрибутФормы = СоздатьОбъект("АтрибутФормы");
Попытка
АтрибутФормы.УстановитьАтрибут(Конт.Форма, Реквизит);
АтрибутФормы.Значение = Значение;
Попытка
Если ВыполнятьФормулу = 1 Тогда
Если ПустоеЗначение(АтрибутФормы.Формула) = 0 Тогда
Модуль = СоздатьОбъект("ВыполняемыйМодуль");
Модуль.УстановитьМодуль(
"Процедура ___ВыполнитьФормулуРеквизита___()
| " + АтрибутФормы.Формула + "
|КонецПроцедуры");
Модуль.НазначитьКонтекст(Конт);
Модуль.КомпилироватьМодуль();
Модуль.ВыполнитьМодуль();
Модуль.___ВыполнитьФормулуРеквизита___();
КонецЕсли;
КонецЕсли;
Исключение
глВывестиМногострочноеСообщение("глУстановитьЗначениеРеквизитуФормы: Ошибка выполнения формулы реквизита " + Реквизит + "
|Формула: " + АтрибутФормы.Формула + "
|Ошибка: " + ОписаниеОшибки());
КонецПопытки;
Исключение
Сообщить("глУстановитьЗначениеРеквизитуФормы: Не найден реквизит на форме: " + Реквизит);
Возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции //глУстановитьЗначениеАтрибутуФормы
//*****************************************************************************
Функция глПолучитьЗначениеРеквизитаФормы(Конт, Реквизит, СообщатьОбОшибке=1) Экспорт
АтрибутФормы = СоздатьОбъект("АтрибутФормы");
Попытка
АтрибутФормы.УстановитьАтрибут(Конт.Форма, Реквизит);
Возврат АтрибутФормы.Значение;
Исключение
Если СообщатьОбОшибке = 1 Тогда
Сообщить("глПолучитьЗначениеРеквизитаФормы: Не найден реквизит на форме: " + Реквизит);
КонецЕсли;
Возврат ПолучитьПустоеЗначение();
КонецПопытки;
КонецФункции //глПолучитьЗначениеРеквизитаФормы