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

Как обращаться в выборке запроса к табличной части

Автор Vdmit, 23 авг 2018, 17:36

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

Vdmit

   Как обращаться в выборке запроса к табличной части ??? Вот запрос
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ВозвратТоваровПоставщику.Ссылка КАК Ссылка,
      |   ВозвратТоваровПоставщику.Товары.(
      |      Номенклатура КАК Номенклатура,
      |      КоличествоПредварительное КАК КоличествоПредварительное,
      |      Количество КАК Количество
      |   ) КАК Товары
      |ИЗ
      |   Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику
      |ГДЕ
      |   ВозвратТоваровПоставщику.Пропуск = &Пропуск";
   
   Запрос.УстановитьПараметр("Пропуск", Ссыль);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   Выборка = РезультатЗапроса.Выбрать();
   
   Если Выборка.Следующий() Тогда      
      Сообщить (Выборка.Ссылка);

//Пробовал ТАК !!!!!
      Сообщить (Выборка.Товары.Номенклатура);

// и так !!!
      //Сообщить (Выборка.КоличествоПредварительное);
        //Сообщить (Выборка.Количество);

   Иначе
      Сообщить ("Еще пока не создан складской документ!");
   КонецЕсли;

Golickoff

Так не стоит делать запросы. Если нужна табличная часть, обращайтесь к ней как к отдельной таблице запроса.
"ВЫБРАТЬ
      |   ВозвратТоваровПоставщикуТовары.Ссылка,
      |   ВозвратТоваровПоставщикуТовары.Номенклатура,
      |   ВозвратТоваровПоставщикуТовары.КоличествоПредварительное,
      |   ВозвратТоваровПоставщикуТовары.Количество
      |ИЗ
      |   Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары
      |ГДЕ
      |   ВозвратТоваровПоставщикуТовары.Ссылка.Пропуск = &Пропуск"
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

dexxxqqq

В вашем случае в Выборка.Товары находится РезультатЗапроса. Его надо сначала Выбрать(), а потом обойти циклом.

РезультатЗапроса = Запрос.Выполнить();
   
   Выборка = РезультатЗапроса.Выбрать();
   
   Пока Выборка.Следующий() Цикл
   Товары = Выборка.Товары.Выбрать();
      Пока Товары.Следующий() Цикл
         Сообщить(Товары.Номенклатура);
         Сообщить(Товары.КоличествоПредварительное);
         Сообщить(Товары.Количество);
      КонецЦикла;
   КонецЦикла;

Теги:

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

Рейтинг@Mail.ru

Поиск