|
Получить номеклатуру из документов контрагента с торговыми точками | ☑ | ||
---|---|---|---|---|
0
Terraxis
14.04.17
✎
08:53
|
В общем задача вот такая:
Нужно сформировать отчет "Маршрутный лист". В него должны попасть результаты запроса с группировкой по Контрагентам у которых есть Торговые Точки. Сам запрос вот такой: ВЫБРАТЬ РеализацияТоваровУслуг.Контрагент КАК Контрагент, РеализацияТоваровУслуг.ТорговаяТочка КАК ТорговаяТочка, ВложенныйЗапрос.Количество КАК Количество, ВложенныйЗапрос.Цена КАК Цена, ВложенныйЗапрос.Сумма КАК Сумма, ВложенныйЗапрос.Номенклатура ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Количество КАК Количество, РеализацияТоваровУслугТовары.Цена КАК Цена, РеализацияТоваровУслугТовары.Сумма КАК Сумма ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка, РеализацияТоваровУслугТовары.Количество, РеализацияТоваровУслугТовары.Цена, РеализацияТоваровУслугТовары.Сумма) КАК ВложенныйЗапрос ПО РеализацияТоваровУслуг.Товары.Ссылка = ВложенныйЗапрос.Ссылка ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода И РеализацияТоваровУслуг.Маршрут = &Маршрут И РеализацияТоваровУслуг.Организация = &Организация И ВЫБОР КОГДА &Водитель = ЗНАЧЕНИЕ(Справочник.m_Водители.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ РеализацияТоваровУслуг.Водитель = &Водитель КОНЕЦ И РеализацияТоваровУслуг.Контрагент = &Контрагент УПОРЯДОЧИТЬ ПО Контрагент, ТорговаяТочка ИТОГИ СУММА(Количество), СУММА(Цена), СУММА(Сумма) ПО Контрагент, ТорговаяТочка Далее: СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией; РезультатЗапроса = Запрос.Выполнить(); ВыборкаИтоги = РезультатЗапроса.Выбрать(СпособВыборки); НомерСтрокиКонтрагента = 0; НомерСтроки = 0; Пока ВыборкаИтоги.Следующий() Цикл НомерСтрокиКонтрагента = НомерСтрокиКонтрагента + 1; Контрагент = Контрагент; //Здесь все нормально. Контрагента получаем все ОК Сумма = ВыборкаИтоги.Сумма; Выборка = ВыборкаИтоги.Выбрать (); Пока Выборка.Следующий () Цикл НомерСтроки = НомерСтроки + 1; ТорговаяТочка = Выборка.ТорговаяТочка; /тоже все ОК. Торговую точку получаем ВыборкаТовар = ВыборкаИтоги.Товары.Выбрать (); Пока ВыборкаТовар.Следующий() Цикл Товар = Выборка.Товар; // А вот тут - неопределено КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; Мало того. В запрос вообще не попадает Номенклатура. Хотя в Консоли запросов результат выводится. Что я не так делаю-то?! |
|||
1
Jonny_Khomich
14.04.17
✎
08:55
|
ВыборкаТовар.Товар
|
|||
2
Jonny_Khomich
14.04.17
✎
08:56
|
с тебя 100р
|
|||
3
Terraxis
14.04.17
✎
09:02
|
(1) Сорри - Опечатка. не Выборка.ТОвар, а ВыборкаТовар.Товар.
Один фиг - ВыборкаТовар.Товар значение Null |
|||
4
Jonny_Khomich
14.04.17
✎
09:03
|
ВыборкаТовар = ВыборкаИтоги.Товары.Выбрать (); - замени ВыборкаИтоги на Выборка
|
|||
5
Terraxis
14.04.17
✎
09:07
|
(4) В ВыборкаИтоги, также как в Выборка - Тип значения Товар = Null. Т.е. вообще нет результата.
|
|||
6
Мимохожий Однако
14.04.17
✎
09:13
|
Уверен, что по выбранным фильтрам есть Реализации? Попробуй вместо внутреннего соединения Левое
|
|||
7
Terraxis
14.04.17
✎
09:16
|
(6) Уверен. В Консоли запросов, в режиме Дерево, все отображается как надо
|
|||
8
Terraxis
14.04.17
✎
10:29
|
Идей нет?
|
|||
9
Terraxis
14.04.17
✎
12:08
|
Ага. Все намного проще и, оказывается, нафиг совсем не нужно. А нужно, примерно так:
1. На форме выведено Табличное поле со ВСЕМИ документами по Маршруту. 2. Запросом Выбрали все документы по этому Маршруту. 3. В табличном поле установлены флажки. Понятно, что Контрагента может быть несколько заявок по различным Торговым Точкам. Нужно вывести в печатную форму сгруппированные по Контрагенту Заявки, но не все, а только те у которых установлены флажки в Табличном поле. Подскажите как? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |