Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Группировки по группам справочника в черном запросе (http://forums.kuban.ru/f1040/gruppirovki_po_gruppam_spravochnika_v_chernom_zaprose-4569652.html)

Birmingem 31.07.2013 11:09

Группировки по группам справочника в черном запросе
 
Есть черный запрос, который перебирает документы и выводит данные в простой отчет в разрезе покупателей и товаров.
Теперь приспичило, если покупатель - это группа, то вывести наименование этой группы, затем все товары, которые были проданы всем покупателям этой группы, и только затем, покупателей входящих в эту группу и их товары.
Вопрос, как сделать чтобы после группы покупателей выводились товары, а не покупатели входящие в эту группу? Что то не нашел такого в черном запросе.

Birmingem 31.07.2013 11:11

Уточнение. 1С7.7. Конфигура простенькая, полностью самописная.

Чучундер 31.07.2013 11:27

открой типовую ТиС и посмотри как сделан вывод по группам в любом типовом отчете, например "остстки ТМЦ"
.
если будет тяжко
то типа тогда так

ТипаГруппа = Документ.Контрагент.Родитель;
ТипаТовар = Документ.Товар;
Группировка ТипаГруппа;
Группировка ТипаТовар;

Birmingem 31.07.2013 12:46

К сожалению в ТиС ни одного подобного отчета нет.

Попробовал через:
ТипаГруппа = Документ.Контрагент.Родитель;

Что то похожее, но не совсем. Если в спр.Контрагенты больше 2 уровней, например 3, то выводит сначала верхнюю группу, потом вложенную группу, и только потом товары. А надо чтобы в любой группе контрагентов, независимо от уровня, выводилась эта группа, и сразу товары.

Duke1C 31.07.2013 15:32

3-Birmingem >а не пробовал
Группировка ТипаТовар все вошедшиеВзапрос;
самому сейчас не на чем потестить

qweqwe123123 31.07.2013 17:16

в иерархии?

Чучундер 01.08.2013 02:50

блин, вот делать мне больше нечего...

Чучундер 01.08.2013 02:50

7 минут примерно неспеша потыкать мышью
.
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//**{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ТипаГруппа = Документ.Реализация.Контрагент.Родитель;
|Номенклатура = Документ.Реализация.Номенклатура;
|Отгружено = Документ.Реализация.Сумма;
|Функция СуммаОтгружено = Сумма(Отгружено);
|Группировка ТипаГруппа Без Групп;
|Группировка Номенклатура;
|"//****ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей ТипаГруппа
Таб.ВывестиСекцию("ТипаГруппа");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры


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