Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 08:21

Передача реквизита по индексу

Автор Березин, 20 мая 2013, 01:49

0 Пользователей и 1 гость просматривают эту тему.

Березин

Есть массив.
Его элементы: реквизиты документа. Их тип: Объект метаданных.

Полученая ссылку на документ и передаю реквизиты по индексу.

ДокументСсылка = Документы.ВыпускПродукции.НайтиПоНомеру("ЮФО00000020",ТекущаяДата()-122444000);
Для каждого Элемент Из Массив Цикл
       Значение = Документ[Элемент];
Нет проблем с реквизитами Дата и Номер.
А с другими ошибка:

Получение элемента по индексу для значения не определено
       Значение = ДокументСсылка[Элемент];

Хотя вроде бы индекс может быть любого типа.

Dethmontt

Цитата: Березин от 20 мая 2013, 01:49Хотя вроде бы индекс может быть любого типа.

ИНДЕКС не может быть любого типа, индекс это число!
Добавлено: 20 мая 2013, 01:53


Но 1Сина поддерживает обращение к свойствам по имени в индексных скобках (т.е. сама получает индекс)

Как массив формируется покажи...
Добавлено: 20 мая 2013, 02:10


Значение = Документ[Элемент];
Это тоже самое что
Значение = Документ["Номер"];
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Березин

Насчет индекс может быть любого типа я погорячился.

Массив формируется так:

Массив = Новый Массив;
   Массив.Добавить("Дата");
   Массив.Добавить("Номер");
   Мета = Метаданные.Документы.ВыпускПродукции.Реквизиты;
   Для каждого Элемент Из Мета Цикл
   
      Массив.Добавить(Элемент);
   
   КонецЦикла;

Dethmontt

 Надо так
Для каждого Элемент Из Мета Цикл
   
      Массив.Добавить(Элемент.Имя);
   
   КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Березин

Как говорил классик:"Вы будете смеяться".
Но так работает.
Спасибо.
Теперь буду думать в чем разница.

Dethmontt

Я вам подсказку дам.

Проверьте типы значений переменных: Элемент, Элемент.Имя и "Дата"
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Березин

Проверил: Объект метаданных, строка, строка.
Если работают  Элемент.Имя и "Дата", а Элемент не работает, то делаю поспешный вывод, что передаваться под видом индекса должна строка.
Был бы очень благодарен за подсказку, где в описании встроеного языка  мог бы это прочитать.
Я нашел только:

ДокументСсылка.<Имя документа> (DocumentRef.<Имя документа>)
<Имя реквизита> (<Attribute name>)
Использование:

Только чтение.
Описание:

Тип: Произвольный.
Набор свойств содержит значения реквизитов документа. Доступ к значению осуществляется по имени, как оно задано в конфигураторе.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск