Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Обращение к табличной форме документа (http://forums.kuban.ru/f1040/obrashenie_k_tablichnoj_forme_dokumenta-9049337.html)

Madein 05.04.2020 16:23

Обращение к табличной форме документа
 
Всем привет, возникла такая задача, как через обработку обратиться к табличной части документа. Уже несколько часов не могу понять как это сделать. Пишет или ошибка итерации, или то, что табличная часть не найдена.
Есть Документ - ПриходнаяНакладная
У него табличная часть - Материалы

Получается у меня вот такой код:

Выборка = Документы.ПриходнаяНакладная.Выбрать();
Для Каждого ТекущаяСтрока Из Выборка.Материалы
Цикл
Сообщить(ТекущаяСтрока.Материал)
КонецЦикла;


При компиляции пишет ошибка итерации.

Если я обращаюсь к табличной части как "Объект.Материалы", то пишет Поле "Материалы" не обнаружено.
Помогите пожалуйста ^_^

USSR 05.04.2020 17:25

У Выборка нет никаких Материады. У Выьорк есть Ссылка, а вот у Ссылка есть Материалы

Madein 05.04.2020 17:31

[quote=USSR;47579481] У Выборка нет никаких Материады. У Выьорк есть Ссылка, а вот у Ссылка есть Материалы [/quote]ъ

Спасибо за совет, сделал как ты сказал те Выборка.Ссылка.Материалы, но теперь выдает ошибку
"ЗНАЧЕНИЕ НЕ ЯВЛЯЕТСЯ ЗНАЧЕНИЕМ ОБЪЕКТНОГО ТИПА(МАТЕРИАЛЫ)"

USSR 05.04.2020 19:23

(2)Код покажите

Струнин 06.04.2020 12:09

а где сам объект?
я прошу простить, может не понимаю до конца....
может имеет смысл обратиться к ТЧ с помощью запроса?
и в запросе в качестве фильтра нужно будет указать сам документ, табличную часть которого надо достать.
а?

Струнин 06.04.2020 13:11

ВЫБРАТЬ
ПриходнаяНакладнаяМатериалы.Ссылка КАК Ссылка,
ПриходнаяНакладнаяМатериалы.Номенклатура КАК Номенклатура,
ПриходнаяНакладнаяМатериалы.Количество КАК Количество
ИЗ
Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
ГДЕ
ПриходнаяНакладнаяМатериалы.Ссылка = &Ссылка



Запрос.УстановитьПараметр("Ссылка", ПоступлениеСсылка);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
.....


вот с этой "ПоступлениеСсылка" надо понять.

USSR 06.04.2020 16:59

Думаю, что дело вовсе не в том, что надо выбирать документы запросом или нет. Можно прекрасно работать и без запроса

Струнин 06.04.2020 18:10

6-USSR >да я не настаиваю именно на запросе.
это в качестве альтернативы :)

Jimbo 06.04.2020 20:45

Автор не понимает что такое ссылка и что есть объект.

Выборка = Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из ДокОбъект.Материалы Цикл
Сообщить(Строка.Материал);
КонецЦикла;
КонецЦикла;

на запросы потом переделает, когда будет понимание


Текущее время: 05:13. Часовой пояс GMT +3.