helpf.pro
Регистрация

v8.2 УП: Как вывести в табличный документ группы с возможностью их сворачивания и итогами

progaoff
16.11.2016 11:33Прочитано: 1478

Процедура КнопкаСформироватьНажатие(Кнопка)Перем ИзлишкиКоличество;Перем НедостачаКоличество;

ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента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,Истина); ОбластьДанные.Параметры.КоличествоКнижн = Результат.КоличествоКнижн; ОбластьДанные.Параметры.СуммаКнижн = Результат.СуммаКнижн; ОбластьДанные.Параметры.КолФакт = Результат.КоличествоФакт; ОбластьДанные.Параметры.СуммаФакт = Результат.СуммаФакт; ОбластьДанные.Параметры.КолВоИзлишки = Результат.Излишки; ОбластьДанные.Параметры.СуммаИзлишки = Результат.ИзлишкиПоСумме; ОбластьДанные.Параметры.КолВоНедостача = Результат.Недостача; ОбластьДанные.Параметры.СуммаНедостача = Результат.НедостачаПоСумме; ОбластьДанные.Параметры.КоличествоПревышения= Результат.Количество; ОбластьДанные.Параметры.СуммаПревышения = Результат.СуммаРозн; ОбластьДанные.Параметры.КоличествоИтог = Результат.КоличествоФакт; ОбластьДанные.Параметры.СуммаИтог = Результат.СуммаФакт; ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();КонецЦикла; КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
17.11.2016 02:18Ответ № 1

Группировки делаются так:

Код 1C v 8.3
 ТабличныйДокумент.НачатьАвтогруппировкуСтрок();

ТабличныйДокумент.Вывести(ОбластьДанные,1,Истина);   // Второй параметр задает уровень, начиная от 0  -  так автоматически определяются группировки

ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок()
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.