База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «Метод объекта не обнаружен (Выбрать)» в 1С? › Ответ в теме: Как исправить ошибку «Метод объекта не обнаружен (Выбрать)» в 1С?
Ошибка «Метод объекта не обнаружен (Выбрать)» возникает потому, что вы пытаетесь вызвать метод Выбрать() у табличной части документа, а у табличных частей такого метода нет.
В вашем коде проблема в строке:
|
1 |
ДокОбъект.СписокНоменклатуры.Выбрать(); |
Свойство СписокНоменклатуры — это табличная часть, и для перебора её строк нужно использовать цикл «Для Каждого» или итератор, а не метод Выбрать(). Например, можно сделать так:
|
1 2 3 |
Для Каждого СтрокаТЧ Из ДокОбъект.СписокНоменклатуры Цикл Сообщить(СтрокаТЧ.Номенклатура + ", " + СтрокаТЧ.Количество); КонецЦикла; |
Или с использованием итератора:
|
1 2 3 4 |
Итератор = ДокОбъект.СписокНоменклатуры.ПолучитьИтератор(); Пока Итератор.Следующий() Цикл Сообщить(Итератор.Номенклатура + ", " + Итератор.Количество); КонецЦикла; |
Также обратите внимание, что в вашем запросе вы выбираете только ссылку на документ, а не данные табличной части. Если хотите получить данные табличной части через запрос, то запрос должен выглядеть примерно так:
|
1 2 3 4 5 6 7 8 |
Запрос.Текст = "ВЫБРАТЬ | ТЧ.Номенклатура, | ТЧ.Количество |ИЗ | Документ.РасходнаяНакладная.Товары КАК ТЧ |ГДЕ | ТЧ.Ссылка = &Ссылка"; |
Итог: замените
|
1 2 3 4 |
ВыборкаТЧ = ДокОбъект.СписокНоменклатуры.Выбрать(); Пока ВыборкаТЧ.Следующий() Цикл Сообщить("" + ВыборкаТЧ.Номенклатура + ", " + ВыборкаТЧ.Количество); КонецЦикла; |
на
|
1 2 3 |
Для Каждого СтрокаТЧ Из ДокОбъект.СписокНоменклатуры Цикл Сообщить(СтрокаТЧ.Номенклатура + ", " + СтрокаТЧ.Количество); КонецЦикла; |
Это исправит ошибку и позволит корректно перебрать строки табличной части.