конф: самописная, 1С 7.7 Сложная таблица, как это лучше организовать
04.12.2009
17:26
#14
"нет, сейчас вообще убрал формат<br><br>т.е. написал что-то типа<br><br>знач = запрос.месяц;<br><br>где знач выводится непосредственно на таблицу и получил что-то типа: декабрь 08, январь 09, ...,<br><br>т.е. запрос.месяц - это не дата, а уже форматированная часть даты."
04.12.2009
18:18
#15
"и последний, пока что, вопрос:<br><br>если есть:<br><br>|Группировка Лого упорядочить по количествосумма;<br><br>то имеем сортировку по возрастанию.<br>Как слелать ее по убыванию?"
07.12.2009
18:18
#16
и еще один вопрос: вроде "без итогов" нигде не стоит, но итоги никак получить не могу. В чем может быть дело?
10.12.2009
17:09
#17
"теперь надо немного переиграть, т.е. нужны итоги, как по столбцам, так и по строкам. Ну по строкам понятно, тут можно счетчик сделать, а вот по столбцам видимо придется делать промежуточную таблицу значений и в ней список значений, т.е. что-то типа:<br><br>Таб = СоздатьОбъект("Таблица"); <br> Запрос.Выполнить (ТекстЗапроса); <br>тз = создатьобъект ("ТаблицаЗначений"); <br>тз.новаяколонка ("Логотип");<br>тз.новаяколонка ("СЗ"); <br><br><br>пока запрос.группировка ("Лого") = 1<br>цикл<br> тз.новаястрока ();<br> тз.логотип = запрос.лого; <br> тз.сз = создатьобъект ("СписокЗначений");<br> пока запрос.группировка ("Месяц") = 1<br> цикл<br> тз.сз.добавитьзначение (запрос.количествосумма,запрос.месяц); <br> конеццикла;<br>конеццикла;<br>запрос.группировка ("Лого");<br><br>тз.новаястрока (1);<br>тз.логотип = """";<br>тз.сз = создатьобъект ("Списокзначений");<br> пока запрос.группировка ("Месяц") = 1<br> цикл<br> тз.сз.добавитьзначение (запрос.месяц,запрос.месяц); <br> конеццикла;<br><br><br>запрос.вначаловыборки();<br>тз.выбратьстроки (); <br><br>тз.получитьстроку (); <br>таб.вывестисекцию ("Шапка|лого");<br>счетчик = 1;<br>пока счетчик<тз.сз.размерсписка () цикл<br>месяц1 = тз.сз.получитьзначение (счетчик,вр);<br>счетчик = счетчик+1;<br>таб.присоединитьсекцию ("Шапка|мес");<br>конеццикла;<br><br>пока тз.получитьстроку () = 1<br>цикл<br> логотип = тз.логотип; <br> таб.вывестисекцию ("строка|лого");<br> счетчик = 1;<br> пока счетчик<тз.сз.размерсписка ()<br> цикл<br> счетчик = счетчик+1;<br> колво = тз.сз.получитьзначение(счетчик,вр);<br> таб.присоединитьсекцию ("Строка|мес");<br>конеццикла;<br>конеццикла;<br><br>таб.вывестисекцию ("Подвал|лого"); <br><br>тз.получитьстроку ();<br>пока счетчик >1<br>цикл <br> итогмесяцколво = тз.итог("Логотип");<br> таб.присоединитьсекцию ("Подвал|мес");<br> счетчик = счетчик-1;<br>конеццикла;<br><br>Таб.Показать("Печать", """");<br><br>Но как теперь правильно вычислить и вывести итоги по столбцам? <br> "
11.12.2009
11:48
#18
"1. делать надо ДВА ЗАПРОСа !!!<br>2. регистр ВыпускПродукции оборотный?<br><br><br>вот тебе таблица, без "нижних" итогов<br>для получения их нужно будет "замомнить" все Лого и делать запрос по ним, с группировкой по месяцам<br><br>Запрос = создатьобъект ("Запрос");<br>текстзапроса =<br>"//{{запрос (лого1)<br>|Период с ДатаНач по ДатаКонц;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>//|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Лого;<br>|Группировка Месяц все вошедшиевзапрос;<br>|Условие (ПустоеЗначение(Лого)=0);<br>//|Без Итогов;<br>|"//}}Запрос<br>;<br><br>Запрос.Выполнить (ТекстЗапроса);<br>Таб = СоздатьОбъект("Таблица");<br> <br>//шапку по месяцам - выводим сам )))<br><br>СЗ = СоздатьОбъект("СписокЗначений");<br><br>Пока запрос.группировка(1) = 1 цикл<br> //запомним "Лого"<br> Лого = Запрос.Лого;<br> СЗ.ДобавитьЗначение(Лого);<br> Пока запрос.группировка(2) = 1 цикл<br> //выводим табличную часть<br> <br> КонецЦикла;<br> //выводим сумму по строке<br> <br>КонецЦикла;<br><br>//выводим подвал по месяцам<br>Запрос = создатьобъект ("Запрос");<br>текстзапроса =<br>"//{{запрос (лого1)<br>|Период с ДатаНач по ДатаКонц;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Месяц все вошедшиевзапрос;<br>|Условие (ПустоеЗначение(Лого)=0);<br>|Условие (Лого в СЗ);<br>|"//}}Запрос<br>;<br>Запрос.Выполнить (ТекстЗапроса);<br><br>Пока запрос.группировка(1) = 1 цикл<br> //а теперь заполняем итоги по месяцам<br> <br>КонецЦикла;"
Читают тему
(гостей: 1)