|
ЗначениеВРеквизитФормы почему-то не работает | ☑ | ||
---|---|---|---|---|
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
|
а вот отладчик:
http://prntscr.com/dacx3d |
|||
5
napagokc
22.11.16
✎
15:26
|
Неужели никто подобное не делал? Я знаю, что можно добавить реквизит в объект конфигурации и программно обращаться просто через "Объект". Но ведь тогда у меня в объекте будут храниться ненужные данные, которые там храниться, по сути, и не должны, т.к. эти данные не статические, а вычисляемые. Как мне получить желаемый результат? Может есть другой способ и я просто пошел не тем путем?
|
|||
6
napagokc
22.11.16
✎
15:46
|
А знаете что, дамы и господа?
Я не разобрался почему не работает ЗначениеВРеквизитФормы и обратно, но моя проблема решилась элементарным: ЭтаФорма.Категория = Истина; Разумеется, тут я явно присваиваю значение, а не динамически получаю результат, но это уже дело десятое. Самое главное я получил: присвоенное значение корректно отображается на форме и не вызывает ошибок при установки значения. ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |