Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос с итогами. Как выбрать вложенную таблицу?

Запрос с итогами. Как выбрать вложенную таблицу?
Я
   ik
 
28.02.20 - 09:44
Есть запрос. Как выбрать вложенную таблицу "Товары"??
На смысл запроса не смотрите, его нет))

Запрос.Текст = "ВЫБРАТЬ
                 |    Документ.Ссылка КАК Документ,
                 |    Документ.Контрагент КАК Контрагент,
                 |    Документ.СуммаДокумента КАК СуммаДокумента,
                 |    Документ.Товары.(
                 |        Номенклатура КАК Номенклатура,
                 |        Количество КАК Количество
                 |    ) КАК Товары
                 |ИЗ
                 |    Документ.ПоступлениеТоваровУслуг КАК Документ
                 |ИТОГИ
                 |    МИНИМУМ(Контрагент),
                 |    СУММА(СуммаДокумента)
                 |ПО
                 |    Документ";

   Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, "Документ");
   Пока Выборка.Следующий() Цикл
      ВыбТов = Выборка.Товары.Выбрать(); // ЕСТЕСТВЕННО, ПУСТОЙ РЕЗУЛЬТАТ
 
 
   ДенисЧ
 
1 - 28.02.20 - 09:47
Делай запрос к табчасти. И разумеется, не СуммуДокумента, а сумму по строке.
   dka80
 
2 - 28.02.20 - 09:50
Если нужно и данные документа и данные табличной части, то лучше сделать два запроса. Затем выполнить пакет и данные второго запроса (запроса по табличной части) выбирать методом выбратьследующийполю
   RomanYS
 
3 - 28.02.20 - 09:51
Длина полоски и комментарий (// ЕСТЕСТВЕННО, ПУСТОЙ РЕЗУЛЬТАТ) вроде говорят о каком-то понимании. Но сам вопрос шокирует)

Либо убери здесь итоги и будет работать твой код, либо делай запрос к ТЧ с итогами подокументу.
   dka80
 
4 - 28.02.20 - 10:13
(3) да что вы пристали к этой длине полоски? Ее длина говорит лишь о том, что человек давно зарегистрирован на форуме. Может он не занимался 1С непосредственно все это время?
   ik
 
5 - 28.02.20 - 10:22
(2) Спасибо. Реальный запрос несколько сложноват.. надеялся, что я не знаю какой-нибудь обход, типа МИНИМУМ(Контрагент)
   palsergeich
 
6 - 28.02.20 - 10:23
(4) угу, судя по темам человек на 77 сидит.
Лучше помогите
   RomanYS
 
7 - 28.02.20 - 10:25
(5) Какой МИНИМУМ(Контрагент) в итогах по документу? В документе ОДИН контрагент. Твои итоги в (0) ничего не делают, просто дублируют детальные записи. Только в детальных записях есть нужная тебе ТЧ, а в итогах нет.
   ik
 
8 - 28.02.20 - 10:28
(7) Я ж писал,
>На смысл запроса не смотрите, его нет))
   НЕА123
 
9 - 28.02.20 - 10:31
(0)
ВыбТов.Следующий() ЛОЖЬ?
   RomanYS
 
10 - 28.02.20 - 10:31
А что тебе надо? Убери итоги и спокойно обходи вложенный результат запроса.
   ik
 
11 - 28.02.20 - 10:37
Ладно, вот "осмысленный" запрос
Запрос.Текст = "ВЫБРАТЬ
                 |    Документ.Контрагент КАК Контрагент,
                 |    Документ.СуммаДокумента КАК СуммаДокумента,
                 |    Документ.Контрагент.ИсторияНаименований.(
                 |        Период КАК Период,
                 |        Наименование КАК Наименование
                 |    ) КАК Исторяи
                 |ИЗ
                 |    Документ.ПоступлениеТоваровУслуг КАК Документ
                 |ИТОГИ
                 |    СУММА(СуммаДокумента)
                 |ПО
                 |    Контрагент";

(9) Да, конечно.
   D_E_S_131
 
12 - 28.02.20 - 10:46
А нафига тебе вообще запросом получать эту "ИсториюНаименований"? Все равно такая выборка будет отдельным подзапросом выполняться. Так и обойди эту табчасть просто от ссылки на контрагента.
   RomanYS
 
13 - 28.02.20 - 12:59
(11) Ну и норм
ВыборкаКонтрагент
ВыборкаДетальныеЗаписи(=Документ)
ВыборкаТовары(вложенный результат запроса)
   Said_We
 
14 - 29.02.20 - 00:25
(11) Я правильно понимаю что на выходе надо иметь что-то типа такого:

Контрагент1, Наименование_Контрагента1_НаДатуДокумента1, СуммаДокумента1
             Наименование_Контрагента1_НаДатуДокумента2, СуммаДокумента2
             Наименование_Контрагента1_НаДатуДокумента3, СуммаДокумента3
             Наименование_Контрагента1_НаДатуДокумента4, СуммаДокумента4
             Наименование_Контрагента1_НаДатуДокумента5, СуммаДокумента5

Контрагент2, Наименование_Контрагента2_НаДатуДокумента1, СуммаДокумента1
             Наименование_Контрагента2_НаДатуДокумента2, СуммаДокумента2
             Наименование_Контрагента2_НаДатуДокумента3, СуммаДокумента3
             Наименование_Контрагента2_НаДатуДокумента4, СуммаДокумента4
             Наименование_Контрагента2_НаДатуДокумента5, СуммаДокумента5

...
КонтрагентN, Наименование_КонтрагентаN_НаДатуДокумента1, СуммаДокумента1
             Наименование_КонтрагентаN_НаДатуДокумента2, СуммаДокумента2
             Наименование_КонтрагентаN_НаДатуДокумента3, СуммаДокумента3
             Наименование_КонтрагентаN_НаДатуДокумента4, СуммаДокумента4
             Наименование_КонтрагентаN_НаДатуДокумента5, СуммаДокумента5

Если да, то зачем знать какое наименование контрагента было на момент документа?
Информацию запроса мы смотрим здесь и сейчас, и как назывался контрагент ранее ..... не пойму для чего.

Если это тоже не реальная задача, то давай уже реальную.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.