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

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 6 сен 2011.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

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

    Я придумал, как выкрутится, но все-таки, в чем причина?
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А так :
    Цена = Форма.ПолучитьАтрибут("Цена"+Строка(к));
     
  3. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    За пацана держишь! :lovecodeby:
    Нешто я не проверил, что выражение "Цена"+к дает что надо, и не проверил в отладчике тупо с фразой "Цена1"
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Да ладно, не в обидку написано.
    Просто Цена1 в отладчике выглядит нормально, а параметр для передачи в ПолучитьАтрибут формируется криво
    Так что, если пробовал
    Цена = Форма.ПолучитьАтрибут("Цена"+Строка(к)); - сдаюсь и я
     
  5. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Шаблон("["+Цена + к+"]")

    Надыбал в

    http://dml.compkaluga.ru/forum/index.php?showtopic=35958

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

    Дайнеко Well-Known Member
    1C Team

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

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Дайнеко, ну дык сколько 7 лет и сколько 8ке... Было бы ужасно если бы в 8 до сих пор такие глупости сохранились
     
Загрузка...

Поделиться этой страницей