конф: самописная, 1С 7.7 Сложная таблица, как это лучше организовать
30.11.2009
18:13
#1
"есть:<br><br>1. 1с 7.7<br>2. нужно сделать отчет типа:<br><br> январь февраль декабрь всего<br>лого1<br>лого2<br>лого3<br><br>всего<br><br>3. пишем в цикле 12 запросов типа:<br><br> "//{{запрос (лого1)<br> |Период с ДатаМесНач по ДатаМесКонц;<br> |Обрабатывать НеПомеченныеНаУдаление;<br> |Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br> |ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br> |Количество = Регистр.ВыпускПродукции.Количество;<br> |Функция КоличествоСумма = Сумма(Количество);<br> |Группировка Лого; <br> |Условие (ПустоеЗначение(Лого)=0);<br><br>где датамеснач - начало месяца, например 01.01.09, датамесконц - 31.01.09<br><br>создал одну секцию горизонтальную и одну вертикальную, но что-то дальше не соображу куда двигаться, присоединитьсекцию не совсем работает, т.к. движение по запросу идет не слева направо, а сверху вниз."
30.11.2009
18:33
#2
В цикле 12 запросов это круто!!!<br>Есть передопределенная группировка:<br>Группировка Месяц, дальше собири в ТЗ, как надо. <br><br> <br>
01.12.2009
17:06
#4
"А все-таки продскажите еще, пожалуйста, как можно сделать таблицу не только "вниз", но и "вправо":<br><br>"//{{запрос (лого1)<br>|Период с ДатаМесНач по ДатаМесКонц;<br>|Обрабатывать НеПомеченныеНаУдаление;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Лого; <br>|Группировка Месяц;<br>|Условие (ПустоеЗначение(Лого)=0);<br>и выгружаем, но тогда идет что-то типа<br> январь<br>лого1<br>лого2<br>лого3<br> февраль<br>лого2<br>лого3<br>лого5<br> март<br>лого1<br>лого3<br><br>....<br>а как можно сделать, чтобы:<br><br> январь февраль март<br>лого1 10 30<br>лого2 15 10<br>лого3 18 14<br><br>ну и т.д.<br><br>Подскажите хоть в какую сторону копать?"
01.12.2009
17:32
#5
"Если закрыть глаза на "и выгружаем", так как я не понял зачем нужно куда то что то выгружать, то будет так:<br>"//{{запрос (лого1)<br>|Период с ДатаМесНач по ДатаМесКонц;<br>|Обрабатывать НеПомеченныеНаУдаление;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Лого; <br>|Группировка Месяц Все ВошедшиеВЗапрос;<br>|Условие (ПустоеЗначение(Лого)=0);<br><br>и потом<br>Пока Запрос.Группировка("Лого")=1 Цикл<br> Таб.ВывестиСекцию("СекцияЛого");<br> Пока Запрос.Группировка("Месяц")=1 Цикл<br> Таб.ПрисоединитьСекцию("СекцияМесяца");<br> КонецЦикла;<br>КонецЦикла;<br><br>В результате и получим:<br>лого1 10 30<br>лого2 15 10<br>лого3 18 14<br>"
02.12.2009
15:52
#6
""выгружать" - имел ввиду запрос.выгрузить (ТЗ), впрочем это на самом деле не подходящий вариант.<br><br>По поводу Вашего предложения:<br><br>есть "таблица"<br><br>секции\секции<br> Лого Мес<br>Заголовок <br>Оснчасть <логотип> <колво><br>Подвал<br><br>что в остальных частях не имеет сейчас значения.<br><br>Пишу след. код:<br><br>Запрос = создатьобъект ("Запрос");<br> текстзапроса = <br> "//{{запрос (лого1)<br> |Период с ДатаНач по ДатаКонц;<br> |Обрабатывать НеПомеченныеНаУдаление;<br> |Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br> |ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br> |Количество = Регистр.ВыпускПродукции.Количество;<br> |Функция КоличествоСумма = Сумма(Количество);<br> |Группировка Лого;<br> |Группировка Месяц все вошедшиевзапрос; <br> |Условие (ПустоеЗначение(Лого)=0);<br> |"//}}Запрос <br> ;<br><br> Запрос.Выполнить (ТекстЗапроса); <br> <br> <br> Таб = СоздатьОбъект("Таблица");<br> таб.вывестисекцию ("Заголовок");<br> <br> <br> Пока Запрос.Группировка("Лого")=1 Цикл <br> логотип = запрос.лого;<br> Таб.ВывестиСекцию("Лого");<br> <br> Пока Запрос.Группировка("Месяц")=1 Цикл<br> колво = запрос.количествосумма;<br> Таб.присоединитьсекцию("Мес"); <br> КонецЦикла;<br>КонецЦикла;<br><br>Но ничего не выходит.<br><br>Вообще как я не химичу с оснчасть, лого и мес в лучшем случае выходит что-то типа:<br><br>лого1 30<br>лого2 <br>лого3 14<br><br>т.е. выводятся все логотипы, даже которые не были в последнем месяце, но присоединяется только одна секция со значениями за последний месяц."
02.12.2009
18:05
#8
"все, кажись нащупал свет в конце тунеля, ближе всего будет так:<br><br>Запрос = создатьобъект ("Запрос");<br>текстзапроса = <br>"//{{запрос (лого1)<br>|Период с ДатаНач по ДатаКонц;<br>|Обрабатывать НеПомеченныеНаУдаление;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Лого;<br>|Группировка Месяц все вошедшиевзапрос; <br>|Условие (ПустоеЗначение(Лого)=0);<br>|"//}}Запрос <br>;<br><br>Запрос.Выполнить (ТекстЗапроса); <br><br><br>Таб = СоздатьОбъект("Таблица");<br>таб.вывестисекцию ("Заголовок");<br><br><br>Пока Запрос.Группировка("Лого")=1 Цикл <br>логотип = запрос.лого;<br> Таб.ПрисоединитьСекцию("Лого|Оснчасть");<br> <br> Пока Запрос.Группировка("Месяц")=1 Цикл<br> колво = запрос.количествосумма;<br> Таб.Присоединитьсекцию("Мес|Оснчасть"); <br> КонецЦикла;<br>таб.вывести ();<br>КонецЦикла;<br>"
02.12.2009
18:15
#9
"Запрос = создатьобъект ("Запрос");<br>текстзапроса =<br>"//{{запрос (лого1)<br>|Период с ДатаНач по ДатаКонц;<br>|Обрабатывать НеПомеченныеНаУдаление;<br>|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;<br>|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;<br>|Количество = Регистр.ВыпускПродукции.Количество;<br>|Функция КоличествоСумма = Сумма(Количество);<br>|Группировка Лого;<br>|Группировка Месяц все вошедшиевзапрос;<br>|Условие (ПустоеЗначение(Лого)=0);<br>|Без Итогов;<br>|"//}}Запрос<br>;<br><br>в итоге будет одна группировка!"
04.12.2009
16:19
#10
"Да, еще такой вопрос: а можно обратиться (получить) это самое "системное" значение "Месяц" из запроса:<br>т.е. теперь надо<br> ноябрь декабрь декабрь январь февраль март<br>лого1<br>лого2<br>лого3<br><br>... ну понятно.<br><br>Т.е. пишу что-то типа:<br><br>Запрос.Выполнить (ТекстЗапроса); <br> <br> <br> Таб = СоздатьОбъект("Таблица");<br> <br> <br> таб.вывестисекцию ("Заголовок");<br> таб.вывестисекцию ("шапка|лого"); <br> счетчик = 0; <br> <br> запрос.группировка ("Лого");<br> пока запрос.группировка ("месяц") = 1 цикл <br> таб.присоединитьсекцию ("шапка|мес");<br> месяц1 = формат (запрос.месяц, "ММММ");<br> счетчик = счетчик +1; <br> конеццикла;<br> <br> <br> запрос.вначаловыборки();<br> <br> Пока Запрос.Группировка("Лого")=1 Цикл <br> логотип = запрос.лого; <br> Таб.вывестисекцию("строка|лого");<br> <br> Пока Запрос.Группировка("Месяц")=1 Цикл<br> колво = запрос.количествосумма; <br> Таб.присоединитьсекцию("строка|Мес");<br> <br>КонецЦикла; <br> <br><br>КонецЦикла;<br><br><br>Ну нас тут интересует эта часть:<br><br>запрос.группировка ("Лого");<br> пока запрос.группировка ("месяц") = 1 цикл <br> таб.присоединитьсекцию ("шапка|мес");<br> месяц1 = формат (запрос.месяц, "ММММ");<br> счетчик = счетчик +1; <br> конеццикла;<br>Но при любом описании формата, хоть ММММ, хоть ДДММГГ, хоть еще что-то выходит пустой месяц, т.е. если ММММ - то ничего нет, если ДДММГГ - то " . . "."
Читают тему
(гостей: 1)