|
Заполнение полей таблицы отчета. | ☑ | ||
---|---|---|---|---|
0
prilforreal
23.04.18
✎
15:49
|
Доброго дня! В отчет нужно добавить группировку по транспорту(Авто-ЭлементСпр), Уже мучаюсь весь день, то ячейки в макете пустые, то вообще кавардак какой-то вываливается, подскажите что не так делаю и как сделать так?
http://vfl.ru/fotos/578bdbc421480208.html http://vfl.ru/fotos/6993aa0a21480271.html Процедура ОсновныеДействияФормыПоКатегориям(Кнопка) ТабДок=Новый ТабличныйДокумент; ТабДок.ИмяПараметровПечати="ОстаткиВКассах_ПоКатегориям"; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = ЭтотОбъект.ПолучитьМакет("ПоКатегориям"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Ссылка КАК РасходСредств, | ВложенныйЗапрос.НомерСтроки, | ВложенныйЗапрос.Направление КАК Направление, | ВложенныйЗапрос.Дата, | ВложенныйЗапрос.Касса, | ВложенныйЗапрос.СтатьяРасхода КАК СтатьяРасхода, | ВложенныйЗапрос.Комментарий КАК Комментарий, | ВложенныйЗапрос.Автор КАК Автор, | СУММА(ВложенныйЗапрос.Сумма) КАК Сумма, | ВложенныйЗапрос.Транспорт |ИЗ | (ВЫБРАТЬ | РасходСредствТабличнаяЧасть1.Ссылка КАК Ссылка, | РасходСредствТабличнаяЧасть1.НомерСтроки КАК НомерСтроки, | РасходСредствТабличнаяЧасть1.Ссылка.Направление КАК Направление, | РасходСредствТабличнаяЧасть1.Ссылка.Дата КАК Дата, | РасходСредствТабличнаяЧасть1.Ссылка.Касса КАК Касса, | РасходСредствТабличнаяЧасть1.СтатьяРасхода КАК СтатьяРасхода, | РасходСредствТабличнаяЧасть1.Комментарий КАК Комментарий, | РасходСредствТабличнаяЧасть1.Ссылка.Автор КАК Автор, | РасходСредствТабличнаяЧасть1.Сумма КАК Сумма, | NULL КАК Транспорт | ИЗ | Документ.РасходСредств.ТабличнаяЧасть1 КАК РасходСредствТабличнаяЧасть1 | ГДЕ | РасходСредствТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И (РасходСредствТабличнаяЧасть1.Ссылка.Направление В (&ВыбНаправление) | ИЛИ &ВыбНаправление = ЗНАЧЕНИЕ(Перечисление.Направление.ПустаяСсылка)) | И (РасходСредствТабличнаяЧасть1.Ссылка.Касса В (&ВыбКасса) | ИЛИ &ВыбКасса = ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)) | И (РасходСредствТабличнаяЧасть1.СтатьяРасхода В ИЕРАРХИИ (&ВыбСтРасх) | ИЛИ &ВыбСтРасх = ЗНАЧЕНИЕ(Справочник.СтатьиРасхода.ПустаяСсылка)) | И НЕ РасходСредствТабличнаяЧасть1.Ссылка.ПометкаУдаления | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ТранспортТабличнаяЧасть1.Ссылка, | ТранспортТабличнаяЧасть1.НомерСтроки, | ТранспортТабличнаяЧасть1.Ссылка.Направление, | ТранспортТабличнаяЧасть1.Ссылка.Дата, | ТранспортТабличнаяЧасть1.Ссылка.Касса, | ТранспортТабличнаяЧасть1.СтатьяРасхода, | ТранспортТабличнаяЧасть1.Комментарий, | ТранспортТабличнаяЧасть1.Ссылка.Автор, | ТранспортТабличнаяЧасть1.Сумма, | ТранспортТабличнаяЧасть1.Транспорт | ИЗ | Документ.Транспорт.ТабличнаяЧасть1 КАК ТранспортТабличнаяЧасть1 | ГДЕ | ТранспортТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И (ТранспортТабличнаяЧасть1.Ссылка.Направление В (&ВыбНаправление) | ИЛИ &ВыбНаправление = ЗНАЧЕНИЕ(Перечисление.Направление.ПустаяСсылка)) | И (ТранспортТабличнаяЧасть1.Ссылка.Касса В (&ВыбКасса) | ИЛИ &ВыбКасса = ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)) | И (ТранспортТабличнаяЧасть1.СтатьяРасхода В ИЕРАРХИИ (&ВыбСтРасх) | ИЛИ &ВыбСтРасх = ЗНАЧЕНИЕ(Справочник.СтатьиРасхода.ПустаяСсылка)) | И НЕ ТранспортТабличнаяЧасть1.Ссылка.ПометкаУдаления) КАК ВложенныйЗапрос | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Ссылка, | ВложенныйЗапрос.НомерСтроки, | ВложенныйЗапрос.Направление, | ВложенныйЗапрос.Дата, | ВложенныйЗапрос.Касса, | ВложенныйЗапрос.СтатьяРасхода, | ВложенныйЗапрос.Комментарий, | ВложенныйЗапрос.Автор, | ВложенныйЗапрос.Транспорт |ИТОГИ | СУММА(Сумма) |ПО | ОБЩИЕ, | Направление, | Автор, | СтатьяРасхода ИЕРАРХИЯ, | Комментарий, | РасходСредств | Транспорт"; Запрос.УстановитьПараметр("КонПериода", КонПериода); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("ВыбКасса", ВыбКасса); Запрос.УстановитьПараметр("ВыбСтРасх", ВыбСтРасх); Запрос.УстановитьПараметр("ВыбНаправление", ВыбНаправление); РезультатЗапроса = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги"); ОбластьНаправление = Макет.ПолучитьОбласть("Направление"); ОбластьАвтор = Макет.ПолучитьОбласть("Автор"); ОбластьСтатьяРасходаИерархия = Макет.ПолучитьОбласть("СтатьяРасходаИерархия"); ОбластьСтатьяРасхода = Макет.ПолучитьОбласть("СтатьяРасхода"); ОбластьТранспорт = Макет.ПолучитьОбласть("Транспорт"); ОбластьКомментарий = Макет.ПолучитьОбласть("Комментарий"); ОбластьРасходСредств = Макет.ПолучитьОбласть("РасходСредств"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ОбластьЗаголовок.Параметры.ВыбНачПериода=НачПериода; ОбластьЗаголовок.Параметры.ВыбКонПериода=КонПериода; ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаОбщийИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); // Общий итог ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); ВыборкаНаправление = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНаправление.Следующий() Цикл ОбластьНаправление.Параметры.Заполнить(ВыборкаНаправление); ТабДок.Вывести(ОбластьНаправление, ВыборкаНаправление.Уровень()); ВыборкаАвтор = ВыборкаНаправление.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаАвтор.Следующий() Цикл ОбластьАвтор.Параметры.Заполнить(ВыборкаАвтор); ТабДок.Вывести(ОбластьАвтор, ВыборкаАвтор.Уровень()); ВыборкаСтатьяРасхода = ВыборкаАвтор.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСтатьяРасхода.Следующий() Цикл Если ВыборкаСтатьяРасхода.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда Область = ОбластьСтатьяРасходаИерархия; Иначе Область = ОбластьСтатьяРасхода; КонецЕсли; Область.Параметры.Заполнить(ВыборкаСтатьяРасхода); ТабДок.Вывести(Область, ВыборкаСтатьяРасхода.Уровень()); ВыборкаТранспорт = ВыборкаСтатьяРасхода.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаТранспорт.Следующий() Цикл ОбластьТранспорт.Параметры.Заполнить(ВыборкаТранспорт); ТабДок.Вывести(ОбластьТранспорт, ВыборкаТранспорт.Уровень()); ВыборкаКомментарий = ВыборкаСтатьяРасхода.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаКомментарий.Следующий() Цикл ОбластьКомментарий.Параметры.Заполнить(ВыборкаКомментарий); ТабДок.Вывести(ОбластьКомментарий, ВыборкаКомментарий.Уровень()); ВыборкаРасходСредств = ВыборкаКомментарий.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаРасходСредств.Следующий() Цикл ОбластьРасходСредств.Параметры.Заполнить(ВыборкаРасходСредств); ТабДок.Вывести(ОбластьРасходСредств, ВыборкаРасходСредств.Уровень()); ВыборкаДетальныеЗаписи = ВыборкаРасходСредств.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); //ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень()); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА ТабДок.ТолькоПросмотр=Истина; ТабДок.Показать("По категориям"); КонецПроцедуры Насколько я понимаю может помочь условие: Если документ расход средств, тогда группировка по комментарию, ИначеЕсли транспорт, тогда по Транспорту. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |