Имя: Пароль:
1C
1С v8
Не делается группировка номенклатуры по документу.
0 Босечка
 
20.01.16
16:02
Макет = ПолучитьМакет("Макет");
     Запрос= новый запрос;
Запрос.Текст=
"ВЫБРАТЬ
|    КомплектацияТовары.Номенклатура КАК Номенклатура,
|    КомплектацияТовары.Количество КАК Количество1,
|    КомплектацияТовары.Ссылка.Комплект КАК Комплект,
|    КомплектацияТовары.Ссылка.Проведен,
|    КомплектацияТовары.Ссылка.КоличествоКомплектов,
|    КомплектацияТовары.Ссылка.СписаниеПоТЧ,
|    КомплектацияТовары.Ссылка.СкладКомпании КАК Склад,
|    КомплектацияТовары.Ссылка.Дата КАК Дата,
|    КомплектацияТовары.Ссылка КАК Документ
|ИЗ
|    Документ.Комплектация.Товары КАК КомплектацияТовары
|ГДЕ
|    КомплектацияТовары.Ссылка.Дата >= &Дата1
|    И КомплектацияТовары.Ссылка.Дата <= &Дата2
|    И КомплектацияТовары.Ссылка.Проведен = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
|    КомплектацияТовары.Номенклатура,
|    КомплектацияТовары.Количество,
|    КомплектацияТовары.Ссылка.Комплект,
|    КомплектацияТовары.Ссылка.Проведен,
|    КомплектацияТовары.Ссылка.КоличествоКомплектов,
|    КомплектацияТовары.Ссылка.СписаниеПоТЧ,
|    КомплектацияТовары.Ссылка.СкладКомпании,
|    КомплектацияТовары.Ссылка.Дата,
|    КомплектацияТовары.Ссылка
|
|УПОРЯДОЧИТЬ ПО
|    Дата
|ИТОГИ ПО
|    Документ";    
    
Запрос.УстановитьПараметр("Дата1",Дата1);
Запрос.УстановитьПараметр("Дата2",Дата2);

    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
     ТабДок= новый ТабличныйДокумент;
    ТабДок.Очистить();
    ОбластьШапкаТаблицы.Параметры.Дата1=формат(Дата1,"ДЛФ=Д");
    ОбластьШапкаТаблицы.Параметры.Дата2=формат(Дата2,"ДЛФ=Д");
    
    ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
РезультатЗапроса = Запрос.Выполнить();
Обход = ОбходРезультатаЗапроса.ПоГруппировкам;
Документы1=РезультатЗапроса.Выбрать(Обход, "Документ");
Пока Документы1.Следующий() Цикл
    Область = Макет.ПолучитьОбласть("Документ");
    Область.Параметры.Докум = Документы1.Документ;
    Область.Параметры.Склад = Документы1.Склад;
    Область.Параметры.КоличествоКомплектов = Документы1.КоличествоКомплектов;
    Область.Параметры.Комплект = Документы1.Комплект;
    ТабДок.Вывести(Область, Документы1.Уровень());
    Номенклатура1 = РезультатЗапроса.Выбрать(Обход, "Номенклатура");
    Пока Номенклатура1.Следующий() Цикл
        Область = Макет.ПолучитьОбласть("Строка");
        Область.Параметры.Номенклатура = Номенклатура1.Номенклатура;
        Область.Параметры.Количество = Номенклатура1.Количество1;
        ТабДок.Вывести(Область, Номенклатура1.Уровень());
    Конеццикла;
Конеццикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();

    ТабДок.ТолькоПросмотр=Истина;
    ТабДок.Показать("Отчет по продажам");
1 Босечка
 
20.01.16
16:04
"ВЫБРАТЬ
|    КомплектацияТовары.Номенклатура КАК Номенклатура,
|    КомплектацияТовары.Количество КАК Количество1,
|    КомплектацияТовары.Ссылка.Комплект КАК Комплект,
|    КомплектацияТовары.Ссылка.Проведен,
|    КомплектацияТовары.Ссылка.КоличествоКомплектов,
|    КомплектацияТовары.Ссылка.СписаниеПоТЧ,
|    КомплектацияТовары.Ссылка.СкладКомпании КАК Склад,
|    КомплектацияТовары.Ссылка.Дата КАК Дата,
|    КомплектацияТовары.Ссылка КАК Документ
|ИЗ
|    Документ.Комплектация.Товары КАК КомплектацияТовары
|ГДЕ
|    КомплектацияТовары.Ссылка.Дата >= &Дата1
|    И КомплектацияТовары.Ссылка.Дата <= &Дата2
|    И КомплектацияТовары.Ссылка.Проведен = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
|    КомплектацияТовары.Номенклатура,
|    КомплектацияТовары.Количество,
|    КомплектацияТовары.Ссылка.Комплект,
|    КомплектацияТовары.Ссылка.Проведен,
|    КомплектацияТовары.Ссылка.КоличествоКомплектов,
|    КомплектацияТовары.Ссылка.СписаниеПоТЧ,
|    КомплектацияТовары.Ссылка.СкладКомпании,
|    КомплектацияТовары.Ссылка.Дата,
|    КомплектацияТовары.Ссылка
|
|УПОРЯДОЧИТЬ ПО
|    Дата
|ИТОГИ ПО
|    Документ,
|    Номенклатура";    


После каждого документа выводится весь список номенклатуры, а не список, который относится к документу.
2 Nuobu
 
20.01.16
16:05
Номенклатура1 = РезультатЗапроса.Выбрать(Обход, "Номенклатура");
    Пока Номенклатура1.Следующий() Цикл

Номенклатура1 = Документы1.Выбрать(Обход, "Номенклатура");
    Пока Номенклатура1.Следующий() Цикл
3 Босечка
 
20.01.16
16:14
Спасибо. У меня еще количество не выводится с печ. форму
Область.Параметры.Количество = Номенклатура1.Количество1;
Это не работает..
4 Nuobu
 
20.01.16
16:17
(3) Зайдите на вкладку "Итоги" в запросе и добавьте кол-во в правую нижнюю часть.
5 Босечка
 
20.01.16
17:22
спасибо!!!
Закон Брукера: Даже маленькая практика стоит большой теории.