|
Доступ к реквизиту объекта через имя реквизита в переменной. |
☑ |
0
nacsa
09.11.11
✎
14:10
|
Доброго времени суток.
Не смог найти хорошего решения такой задачи:
Есть имя справочника: СпрИмя
Есть имя реквизита этого справочника в переменной: РекИмя
Как получить, например, значение реквизита РекИмя для элемента справочника с кодом "0001"?
Видел в инете одно решение, но очень не удобное - через создание табличного документа.
|
|
1
DrShad
09.11.11
✎
14:12
|
Справочники[СпрИмя].НайтиПоКоду(МойКод)[РекИмя]
|
|
2
guitar_player
09.11.11
✎
14:12
|
получить - запросом.
например так:
Выбрать тСпрИмя.РекИмя Из Справочник.СпрИмя Как тСпрИмя Где тСпрИмя.Код = &Код
|
|
3
vde69
09.11.11
✎
14:13
|
Справочники[СпрИмя].НайтиПоКоду("0001")[ИмяРеквизита]
только не вздумай действительно так писать, это быдлокод
|
|
4
guitar_player
09.11.11
✎
14:17
|
(0) что нужно то?
|
|
5
nacsa
09.11.11
✎
14:18
|
DrShad,vde69
Это было бы очень красиво и просто, но
"получение элемента по индексу для значения не определено"
|
|
6
nacsa
09.11.11
✎
14:19
|
guitar_player
буду пробовать запросом
|
|
7
guitar_player
09.11.11
✎
14:19
|
(5) предположу, что по коду не нашлось.
Пользуйтесь отладчиком
|
|
8
nacsa
09.11.11
✎
14:22
|
все, спасибо. разобрался.
действительно можно получить через [ИмяРеквизита]
|
|
9
guitar_player
09.11.11
✎
14:23
|
конечно можно. это объектная техника.
Реализация запросом примерно такая:
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать тСпрИмя.РекИмя КАК РекИмя Из Справочник.СпрИмя Как тСпрИмя Где тСпрИмя.Код = &Код";
Запрос.УстановитьПараметр("Код", "0001");
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Примечание = "Не найден элемент справочника";
Иначе
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.РекИмя);
КонецЦикла;
КонецЕсли;
только полюбому эту задачу можно решить совсем по другому
|
|