|
ЗначениеВРеквизитФормы почему-то не работает |
☑ |
0
napagokc
22.11.16
✎
14:56
|
Подскажите, пожалуйста. Создаю программно реквизит формы. В отладчике вижу, что у "ЭтаФорма" реквизит есть. Хочу изменить значение этого реквизита, используя ЗначениеВРеквизитФормы, но получаю ошибку "Недопустимое значение параметра (параметр номер '2')". Во втором параметре написано имя реквизита, оно имеет тип "Строка" и полностью совпадает с именем добавленного реквизита. Почему может не работать?
ЗЫ: РеквизитФормыВЗначение тоже не работает с аналогичной ошибкой, хотя по отладчику реквизит есть. На форму реквизит добавляется корректно. Вопрос только в том, как у него программно поменять данные? Это динамические данные, которые должны доставаться из отдельного РС и на форме отображаться только текущее значение.
ЗЗЫ: В сами метаданные в конфигурации реквизит не добавлен.
|
|
1
polosov
22.11.16
✎
14:58
|
(0) В отладке у ЭтаФорма посмотри как называется реквищит
|
|
2
napagokc
22.11.16
✎
15:01
|
(1) правильно называется =) Я же программно реквизит задаю. Название лежит в одной неизменной переменной, которая используется и при программном добавлении реквизита на форму, и при указании второго параметра в ЗначениеВРеквизитФормы. Тут ошибки нет.
|
|
3
napagokc
22.11.16
✎
15:04
|
нРеквизиты = Новый Массив;
нРеквизиты.Добавить(Новый РеквизитФормы("Категория", Новый ОписаниеТипов("Булево"), , "Категория", Истина));
ИмяЭлемента = "КатегорияВИП";
НовыйЭлемент = Элементы.Найти(ИмяЭлемента);
Если НовыйЭлемент = Неопределено Тогда
НовыйЭлемент = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);
НовыйЭлемент.ПутьКДанным = "Категория";
НовыйЭлемент.ТолькоПросмотр = Истина;
КонецЕсли;
ЗначениеВРеквизитФормы(Истина, "Категория");
//ОШИБКА:
//Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
// ЗначениеВРеквизитФормы(Истина, "Категория");
//по причине:
//Недопустимое значение параметра (параметр номер '2')
|
|
4
napagokc
22.11.16
✎
15:06
|
а вот отладчик:
|
|
5
napagokc
22.11.16
✎
15:26
|
Неужели никто подобное не делал? Я знаю, что можно добавить реквизит в объект конфигурации и программно обращаться просто через "Объект". Но ведь тогда у меня в объекте будут храниться ненужные данные, которые там храниться, по сути, и не должны, т.к. эти данные не статические, а вычисляемые. Как мне получить желаемый результат? Может есть другой способ и я просто пошел не тем путем?
|
|
6
napagokc
22.11.16
✎
15:46
|
А знаете что, дамы и господа?
Я не разобрался почему не работает ЗначениеВРеквизитФормы и обратно, но моя проблема решилась элементарным:
ЭтаФорма.Категория = Истина;
Разумеется, тут я явно присваиваю значение, а не динамически получаю результат, но это уже дело десятое. Самое главное я получил: присвоенное значение корректно отображается на форме и не вызывает ошибок при установки значения. ;)
|
|