Форма.ПолучитьАтрибут("Цена"+к)

  • Автор темы Автор темы Дайнеко
  • Дата начала Дата начала
Д

Дайнеко

Как-то столкнулся с этой ерундой. На форме отчета несколько реквизитов: Цена1, Цена2,...
Чтобы не писать повторяющиеся строки, хочу пройти по ним циклом.
Код:
		Для к = 1 По КолЦен Цикл
Цена = Форма.ПолучитьАтрибут("Цена"+к);
КонецЦикла;	// к
Так что происходит!
* Ошибку не выдает.
* В Отладчике равно "НеизвестныйОбъект"
* С именем ошибиться не могу. Копирую значение имени поля "Цена"+к и вставляю в Отладчик. Выдает значение.

Я придумал, как выкрутится, но все-таки, в чем причина?
 
А так :
Цена = Форма.ПолучитьАтрибут("Цена"+Строка(к));
 
За пацана держишь! :lovecodeby:
Нешто я не проверил, что выражение "Цена"+к дает что надо, и не проверил в отладчике тупо с фразой "Цена1"
 
За пацана держишь!
Да ладно, не в обидку написано.
Просто Цена1 в отладчике выглядит нормально, а параметр для передачи в ПолучитьАтрибут формируется криво
Так что, если пробовал
Цена = Форма.ПолучитьАтрибут("Цена"+Строка(к)); - сдаюсь и я
 
Шаблон("["+Цена + к+"]")

Надыбал в



А причина наверно в том, что получитьатрибут() возвращает некую ссылку, а не значение атрибута. Собственно описание функции шаблон это подтверждает.
 
А причина наверно в том, что получитьатрибут() возвращает некую ссылку

Спасибо, я стразу так и решил проблему, через Шаблон(). Интересно было понять суть. Согласитесь, некая нечеткость в 7-ке с пониманием ПолучитьАтрибут(). При обращении к объекту спр-ка или док-та метод выдает Значение реквизита. А в диалоге дает ссылку на элемент формы. И здесь не срабатывает семерочное тождество элементу формы и его значению.
В 8-ке с этим по-четче.
 
Дайнеко, ну дык сколько 7 лет и сколько 8ке... Было бы ужасно если бы в 8 до сих пор такие глупости сохранились
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!