Имя: Пароль:
1C
1С v8
Вывод в табличный документ по группам.
0 progaoff
 
15.11.16
19:05
ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабличныйДокумент.Очистить();
Макет = ПолучитьМакет("Макет");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок1 = Макет.ПолучитьОбласть("Заголовок1");
ОбластьДанные      = Макет.ПолучитьОбласть("Данные");
ОбластьИтоги    =   Макет.ПолучитьОбласть("Итоги");
ОбластьГруппа    =   Макет.ПолучитьОбласть("Группа");
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              |    ИнвентаризацияТовары.Номенклатура КАК Номенклатура,
              |    СУММА(ИнвентаризацияТовары.КоличествоКнижн) КАК КоличествоКнижн,
              |    СУММА(ИнвентаризацияТовары.СуммаКнижн) КАК СуммаКнижн,
              |    СУММА(ИнвентаризацияТовары.КоличествоФакт) КАК КоличествоФакт,
              |    СУММА(ИнвентаризацияТовары.СуммаФакт) КАК СуммаФакт,
              |    СУММА(ИнвентаризацияТовары.КоличествоКнижн - ИнвентаризацияТовары.КоличествоФакт) КАК РазницаКоличество,
              |    СУММА(ИнвентаризацияТовары.СуммаКнижн - ИнвентаризацияТовары.СуммаФакт) КАК РазницаПоСумме,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.КоличествоКнижн > ИнвентаризацияТовары.КоличествоФакт
              |                ТОГДА ИнвентаризацияТовары.КоличествоКнижн - ИнвентаризацияТовары.КоличествоФакт
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК Недостача,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.КоличествоКнижн < ИнвентаризацияТовары.КоличествоФакт
              |                ТОГДА ИнвентаризацияТовары.КоличествоФакт - ИнвентаризацияТовары.КоличествоКнижн
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК Излишки,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.СуммаКнижн > ИнвентаризацияТовары.СуммаФакт
              |                ТОГДА ИнвентаризацияТовары.СуммаКнижн - ИнвентаризацияТовары.СуммаФакт
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК НедостачаПоСумме,
              |    СУММА(ВЫБОР
              |            КОГДА ИнвентаризацияТовары.СуммаКнижн < ИнвентаризацияТовары.СуммаФакт
              |                ТОГДА ИнвентаризацияТовары.СуммаФакт - ИнвентаризацияТовары.СуммаКнижн
              |            ИНАЧЕ 0
              |        КОНЕЦ) КАК ИзлишкиПоСумме,
              |    ИнвентаризацияТовары.Цена КАК ЦенаЗакупки
              |ПОМЕСТИТЬ ТабИнвентаризация
              |ИЗ
              |    Документ.Инвентаризация КАК Инвентаризация
              |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Инвентаризация.Товары КАК ИнвентаризацияТовары
              |        ПО Инвентаризация.Ссылка = ИнвентаризацияТовары.Ссылка
              |ГДЕ
              |    Инвентаризация.Ссылка = &Документ
              |
              |СГРУППИРОВАТЬ ПО
              |    ИнвентаризацияТовары.Номенклатура,
              |    ИнвентаризацияТовары.Цена
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ОстаткиТоваровКомпании.Номенклатура,
              |    СУММА(ОстаткиТоваровКомпании.Количество) КАК Количество,
              |    СУММА(ОстаткиТоваровКомпании.СуммаРозн) КАК СуммаРозн,
              |    СУММА(0) КАК Поле1,
              |    СУММА(0) КАК Поле2,
              |    СУММА(0) КАК Поле3,
              |    СУММА(0) КАК Поле4,
              |    СУММА(0) КАК Поле5,
              |    СУММА(0) КАК Поле6,
              |    СУММА(0) КАК Поле7,
              |    СУММА(0) КАК Поле8,
              |    СУММА(0) КАК Поле9
              |ПОМЕСТИТЬ ТабПревышения
              |ИЗ
              |    РегистрНакопления.ОстаткиТоваровКомпании КАК ОстаткиТоваровКомпании
              |ГДЕ
              |    ОстаткиТоваровКомпании.Период МЕЖДУ &НачалоПериода И &КонецПериода
              |    И ОстаткиТоваровКомпании.ХозОперация = &ХозОперация
              |    И ОстаткиТоваровКомпании.Номенклатура В ИЕРАРХИИ(&Номенклатура)
              |    И ОстаткиТоваровКомпании.СкладКомпании = &Склад
              |
              |СГРУППИРОВАТЬ ПО
              |    ОстаткиТоваровКомпании.Номенклатура
              |;
              |
              |////////////////////////////////////////////////////////////////////////////////
              |ВЫБРАТЬ
              |    ТабИнвентаризация.Номенклатура КАК Номенклатура,
              |    ТабИнвентаризация.КоличествоКнижн КАК КоличествоКнижн,
              |    ТабИнвентаризация.СуммаКнижн КАК СуммаКнижн,
              |    ТабИнвентаризация.КоличествоФакт КАК КоличествоФакт,
              |    ТабИнвентаризация.СуммаФакт КАК СуммаФакт,
              |    ТабИнвентаризация.РазницаКоличество КАК РазницаКоличество,
              |    ТабИнвентаризация.РазницаПоСумме КАК РазницаПоСумме,
              |    ЕСТЬNULL(ТабПревышения.Количество, 0) КАК Количество,
              |    ЕСТЬNULL(ТабПревышения.СуммаРозн, 0) КАК СуммаРозн,
              |    ТабИнвентаризация.Недостача,
              |    ТабИнвентаризация.Излишки,
              |    ТабИнвентаризация.НедостачаПоСумме,
              |    ТабИнвентаризация.ИзлишкиПоСумме,
              |    ТабИнвентаризация.ЦенаЗакупки КАК ЦенаЗакупки,
              |    ТабИнвентаризация.Номенклатура.Родитель.Родитель КАК Группа
              |ИЗ
              |    ТабИнвентаризация КАК ТабИнвентаризация
              |        ЛЕВОЕ СОЕДИНЕНИЕ ТабПревышения КАК ТабПревышения
              |        ПО ТабИнвентаризация.Номенклатура = ТабПревышения.Номенклатура
              |
              |СГРУППИРОВАТЬ ПО
              |    ТабИнвентаризация.Номенклатура,
              |    ТабИнвентаризация.КоличествоКнижн,
              |    ТабИнвентаризация.СуммаКнижн,
              |    ТабИнвентаризация.КоличествоФакт,
              |    ТабИнвентаризация.СуммаФакт,
              |    ТабИнвентаризация.РазницаКоличество,
              |    ТабИнвентаризация.РазницаПоСумме,
              |    ТабПревышения.Количество,
              |    ТабПревышения.СуммаРозн,
              |    ТабИнвентаризация.Недостача,
              |    ТабИнвентаризация.Излишки,
              |    ТабИнвентаризация.НедостачаПоСумме,
              |    ТабИнвентаризация.ИзлишкиПоСумме,
              |    ТабИнвентаризация.ЦенаЗакупки
              |
              |УПОРЯДОЧИТЬ ПО
              |    ТабИнвентаризация.Номенклатура.ЭтоГруппа ИЕРАРХИЯ";
СписокНоменклатуры = Новый СписокЗначений;
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028934"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00020940"));    
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000029"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028743"));
СписокНоменклатуры.Добавить(Справочники.Номенклатура.НайтиПоКоду("00028688"));

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

Пока Результат.Следующий() Цикл
    ОбластьГруппа.НачатьАвтогруппировкуСтрок() ;
    ОбластьГруппа.Параметры.Группа                = Результат.Группа;
    ОбластьДанные.Параметры.Номенклатура         = Результат.Номенклатура;
    ОбластьДанные.Параметры.КоличествоКнижн        = Результат.КоличествоКнижн;
    ОбластьДанные.Параметры.СуммаКнижн            = Результат.СуммаКнижн;
    ОбластьДанные.Параметры.КолФакт             = Результат.КоличествоФакт;
    ОбластьДанные.Параметры.СуммаФакт            = Результат.СуммаФакт;
    ОбластьДанные.Параметры.КолВоИзлишки        = Результат.Излишки;
    ОбластьДанные.Параметры.СуммаИзлишки        = Результат.ИзлишкиПоСумме;
    ОбластьДанные.Параметры.КолВоНедостача      = Результат.Недостача;
    ОбластьДанные.Параметры.СуммаНедостача      = Результат.НедостачаПоСумме;
    ОбластьДанные.Параметры.КоличествоПревышения= Результат.Количество;
    ОбластьДанные.Параметры.СуммаПревышения     = Результат.СуммаРозн;
    ОбластьДанные.Параметры.КоличествоИтог      = Результат.КоличествоФакт;
    ОбластьДанные.Параметры.СуммаИтог           = Результат.СуммаФакт;
    ТабличныйДокумент.Вывести(ОбластьГруппа);
    ТабличныйДокумент.Вывести(ОбластьДанные);
КонецЦикла;
        
При помощи сего кода - выводится табличка. Как сделать вывод по группам товаров? Подскажите пожалуйста
1 Vladal
 
15.11.16
19:09
В запросе добавить итоги по номенклатуре, в выводе напиши "НачатьАвтогруппировкуСтрок".... более подбробно и правильно - создай внешний отчет, вызови конструктор выходной формы и вставь в него свой запрос. В мастере укажи, что построитель не используешь - получишь правильный
2 progaoff
 
15.11.16
19:14
(1) в каком месте вставлять?
3 Alex unde
 
15.11.16
19:19
|УПОРЯДОЧИТЬ ПО
|    ТабИнвентаризация.Номенклатура.ЭтоГруппа ИЕРАРХИЯ
|ИТОГИ ПО
|    Номенклатура";
4 progaoff
 
15.11.16
19:25
(3) Выводит таблицу с пустыми значениям. Номенклатура есть, все остальное пропало
5 Alex unde
 
15.11.16
19:29
(4) а то что (1) написал делал?
6 Alex unde
 
15.11.16
19:30
7 progaoff
 
15.11.16
19:48
(6) Построителем не разу не пользовался.
8 progaoff
 
15.11.16
19:48
Запрос вставил, просит параметры запроса, где их ставить?
9 progaoff
 
15.11.16
19:59
Хотелось бы иметь возможность раскрывать группировку которая получилась, у меня просто несколько уровней справочник сейчас идет по самому верхнему