![]() |
|
Вывод в табличный документ. Метод присоединить. | ☑ | ||
---|---|---|---|---|
0
Vladislava-smile
29.10.15
✎
11:25
|
Подскажите, пжлст ... Вывожу в макет рез-тат запроса:
Ячейки = ТаблицаРезультата.Вывести(ОбластьШапкаГС); ... Для Каждого СтрГ1 ИЗ ТаблицаГруппировка1 Цикл ОбработкаПрерыванияПользователя(); ОтборПоГ1 = Новый Структура; ОтборПоГ1.Вставить("Контрагент",СтрГ1.Контрагент); ТаблицаВзаиморасчетовГ1 = тзРезультат.Скопировать(ОтборПоГ1); ОбластьГруппировкаГС1 = Макет.ПолучитьОбласть("ГруппировкаСтрока1|ГруппировкаСтолбец"); ОбластьГруппировкаПП1 = Макет.ПолучитьОбласть("ГруппировкаСтрока1|ПлановыеПлатежи"); ОбластьГруппировкаБП1 = Макет.ПолучитьОбласть("ГруппировкаСтрока1|БудущиеПлатежи"); ОбластьГруппировкаП1 = Макет.ПолучитьОбласть("ГруппировкаСтрока1|Платежи"); ОбластьГруппировкаГС1.Параметры.Группировка = СтрГ1.Контрагент; ОбластьГруппировкаГС1.Параметры.СуммаЗаказа = СтрГ1.СуммаЗаказа; ОбластьГруппировкаГС1.Параметры.ДебиторскаяЗадолженность = СтрГ1.ДебиторскаяЗадолженность; ОбластьГруппировкаГС1.Параметры.КредиторскаяЗадолженность = СтрГ1.КредиторскаяЗадолженность; ОбластьГруппировкаГС1.Параметры.ПросроченныеПлатежи = ТаблицаВзаиморасчетовГ1.Итог("ПросроченныеПлатежи"); Ячейки = ТаблицаРезультата.Вывести(ОбластьГруппировкаГС1); Ячейки.ЦветФона = Новый Цвет(248,242,216); ДатаНач = НачалоПериода; ДатаКон = ПолучитьДатуОкончанияПериода(ДатаНач); Пока ДатаНач < КонецДня(КонецПериода) Цикл ОбработкаПрерыванияПользователя(); ОтборПоДатам = Новый Структура(); Если ЭлементыФормы.ПолеВыбораПериодичность.Значение = "Не указано" Тогда ОтборПоДатам.Вставить("ПериодПлатежа",ДатаНач); ИначеЕсли ЭлементыФормы.ПолеВыбораПериодичность.Значение = "Неделя" Тогда ОтборПоДатам.Вставить("ПериодПлатежа",НачалоНедели(ДатаНач)); ИначеЕсли ЭлементыФормы.ПолеВыбораПериодичность.Значение = "Месяц" Тогда ОтборПоДатам.Вставить("ПериодПлатежа",НачалоМесяца(ДатаНач)); КонецЕсли; ОтборПоДатам.Вставить("Контрагент",СтрГ1.Контрагент); ТаблицаВзаиморасчетовТП = тзРезультат.Скопировать(ОтборПоДатам); ОбластьГруппировкаПП1.Параметры.ПлановыеПлатежи = ТаблицаВзаиморасчетовТП.Итог("ПлановыеПлатежи"); Ячейки = ТаблицаРезультата.Присоединить(ОбластьГруппировкаПП1); Ячейки.ЦветФона = Новый Цвет(248,242,216); ДатаНач = НачалоДня(ДатаКон+1); ДатаКон = ПолучитьДатуОкончанияПериода(ДатаНач); КонецЦикла; ОбластьГруппировкаБП1.Параметры.БудущиеПлатежи = ТаблицаВзаиморасчетовГ1.Итог("БудущиеПлатежи"); Ячейки = ТаблицаРезультата.Присоединить(ОбластьГруппировкаБП1); Ячейки.ЦветФона = Новый Цвет(248,242,216); //Вывод информации по платежам ОтборПлатежи = Новый Структура(); ОтборПлатежи.Вставить("Контрагент",СтрГ1.Контрагент); Для Каждого СтрокаНомераПлатежей Из НомераПлатежей Цикл Если СтрокаНомераПлатежей.НомерПлатежа <> Null тогда ОтборПлатежи.Вставить("НомерПлатежа",СтрокаНомераПлатежей.НомерПлатежа); ПлатежиИтоги = тзРезультат.Скопировать(ОтборПлатежи); ОбластьГруппировкаП1.Параметры.СуммаПлатежа = ПлатежиИтоги.Итог("СуммаПлатежа"); Ячейки = ТаблицаРезультата.Присоединить(ОбластьГруппировкаП1); Ячейки.ЦветФона = Новый Цвет(255,255,255); КонецЕсли; КонецЦикла; //Выводим группировку второго уровня ТаблицаРезультата.НачатьГруппуСтрок("2_уровень",Ложь); Отбор = Новый Структура("Контрагент",СтрГ1.Контрагент); ТаблицаГруппировка2 = тзРезультат.Скопировать(Отбор,"Инвойс,СуммаЗаказа,ДебиторскаяЗадолженность,КредиторскаяЗадолженность"); ТаблицаГруппировка2.Свернуть("Инвойс,СуммаЗаказа,ДебиторскаяЗадолженность,КредиторскаяЗадолженность"); ТаблицаГруппировка2.Сортировать("Инвойс"); Для Каждого СтрГ2 ИЗ ТаблицаГруппировка2 Цикл ОбработкаПрерыванияПользователя(); ОтборПоГ2 = Новый Структура; ОтборПоГ2.Вставить("Контрагент",СтрГ1.Контрагент); ОтборПоГ2.Вставить("Инвойс",СтрГ2.Инвойс); ТаблицаВзаиморасчетовГ2 = тзРезультат.Скопировать(ОтборПоГ2); ОбластьГруппировкаГС2 = Макет.ПолучитьОбласть("ГруппировкаСтрока2|ГруппировкаСтолбец"); ОбластьГруппировкаПП2 = Макет.ПолучитьОбласть("ГруппировкаСтрока2|ПлановыеПлатежи"); ОбластьГруппировкаБП2 = Макет.ПолучитьОбласть("ГруппировкаСтрока2|БудущиеПлатежи"); ОбластьГруппировкаП2 = Макет.ПолучитьОбласть("ГруппировкаСтрока2|Платежи"); ОбластьГруппировкаГС2.Параметры.Группировка = СтрГ2.Инвойс; ОбластьГруппировкаГС2.Параметры.СуммаЗаказа = СтрГ2.СуммаЗаказа; ОбластьГруппировкаГС2.Параметры.ДебиторскаяЗадолженность = СтрГ2.ДебиторскаяЗадолженность; ОбластьГруппировкаГС2.Параметры.КредиторскаяЗадолженность = СтрГ2.КредиторскаяЗадолженность; ОбластьГруппировкаГС2.Параметры.ПросроченныеПлатежи = ТаблицаВзаиморасчетовГ2.Итог("ПросроченныеПлатежи"); // ------------------------------------------------------------------------ ОтборПлатежи = Новый Структура(); ОтборПлатежи.Вставить("Инвойс",СтрГ2.Инвойс); Для Каждого СтрокаНомераПлатежей Из НомераПлатежей Цикл Если СтрокаНомераПлатежей.НомерПлатежа <> Null тогда ОтборПлатежи.Вставить("НомерПлатежа",СтрокаНомераПлатежей.НомерПлатежа); ПлатежиГруппировка = тзРезультат.Скопировать(ОтборПлатежи); СтрокаТаблицы = ?(ПлатежиГруппировка.Количество() = 0, Неопределено,ПлатежиГруппировка[0]); Если СтрокаТаблицы <> Неопределено Тогда ОбластьГруппировкаП2.Параметры.Заполнить(СтрокаТаблицы); Иначе ОбластьГруппировкаП2.Параметры.ДатаПлатежа = '00010101000000'; ОбластьГруппировкаП2.Параметры.СуммаПлатежа = 0; КонецЕсли; ТаблицаРезультата.Присоединить(ОбластьГруппировкаП2); КонецЕсли; КонецЦикла; // ------------------------------------------------------------------------ По 2-му уровню группировки первая строка присоединяется в строке 1-го уровня группировки (((. Есть какой-то метод переноса или в чем проблема может быть? Скрин рез-та: https://dropmefiles.com/qFAaq |
|||
1
sash-ml
29.10.15
✎
11:42
|
после начала группировки сток нужно что-то вывести а потом присоединять
ТаблицаРезультата.Вывести(ОбластьГруппировкаГС2); ТаблицаРезультата.Присоединить(ОбластьГруппировкаП2); ... |
|||
2
Vladislava-smile
29.10.15
✎
12:58
|
(1) - Спасибо, знаю что надо вывести, просто невнимательная совсем, в первой группировке проверила, а во второй зачем, конечно ... Ладно, мысли в слух, спасибо в общем еще раз.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |