![]() |
|
v7: реестр накладных в разрезе ТМЦ | ☑ | ||
---|---|---|---|---|
0
anagk
23.10.12
✎
09:49
|
Уж, помогите еще с отчетом, пожалуйста.
Сам отчет работает, но чуток подправить - не получается. |
|||
1
anagk
23.10.12
✎
09:51
|
//*******************************************
Процедура Сформировать() т = СоздатьОбъект("ТаблицаЗначений"); т.НоваяКолонка("Дата","Дата"); т.НоваяКолонка("Контрагент", "Справочник.Контрагенты"); т.НоваяКолонка("ТМЦ", "Справочник.ТМЦ"); т.НоваяКолонка("Кво", "Число", 16, 3); т.НоваяКолонка("Сумма", "Число", 16, 2); Запрос = СоздатьОбъект("Запрос"); ТекстЗапр = "//{{ЗАПРОС(Запрос) |Период с НачДата по КонДата; |РасходнаяНакладная = Документ.РасходнаяНакладная.ТекущийДокумент; |Клиент = Документ.РасходнаяНакладная.Контрагент; |Товар = Документ.РасходнаяНакладная.ТМЦ; |Количество = Документ.РасходнаяНакладная.Кво; |Сумма = Документ.РасходнаяНакладная.СуммаСНДС; |Функция КоличествоСумма = Сумма(Количество); |Функция СуммаСумма = Сумма(Сумма); |Группировка РасходнаяНакладная; |Группировка Товар; |Условие(Клиент в ВыбКонтрагенты); |Условие(Товар в ВыбТМЦ); |";//}}ЗАПРОС Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка("РасходнаяНакладная") = 1 Цикл Пока Запрос.Группировка("Товар") = 1 Цикл Если Запрос.Товар.ВидТМЦ = Перечисление.ВидыТМЦ.Продукция тогда т.НоваяСтрока(); т.Дата = Запрос.РасходнаяНакладная.ДатаДок; т.Контрагент = Запрос.Клиент; т.ТМЦ = Запрос.Товар; т.Кво = Запрос.Количество; т.Сумма = Запрос.Сумма; КонецЕсли; КонецЦикла; КонецЦикла; Если фДни = 0 Тогда т.Свернуть("Контрагент, ТМЦ", "Кво, Сумма"); т.Сортировать("Контрагент,ТМЦ "); Иначе т.Свернуть("Дата, ТМЦ", "Кво, Сумма"); т.Сортировать("Дата,ТМЦ "); КонецЕсли; тИ = СоздатьОбъект("ТаблицаЗначений"); т.Выгрузить(тИ); Если фДни = 1 Тогда тИ.Свернуть("Дата", "Кво, Сумма"); тИ.Сортировать("Дата"); Иначе тИ.Свернуть("Контрагент", "Кво, Сумма"); тИ.Сортировать("Сумма-, Контрагент"); КонецЕсли; тТ = СоздатьОбъект("ТаблицаЗначений"); т.Выгрузить(тТ); тТ.Свернуть("ТМЦ", "Кво, Сумма"); квотТ = тТ.КоличествоСтрок(); тТ.Сортировать("ТМЦ+"); Таб = СоздатьОбъект("Таблица"); заг = "Реализация готовой продукции по "; Если ВыбКонтрагенты.Выбран() = 1 Тогда заг = заг + ВыбКонтрагенты.Наименование; Иначе заг = заг + "покупателям"; КонецЕсли; Если фДни = 1 Тогда заг1 = "Дата"; Иначе заг1 = "Покупатели"; КонецЕсли; Таб.ВывестиСекцию("Секция_4|Секция_1"); тТ.ВыбратьСтроки(); Пока тТ.ПолучитьСтроку() = 1 Цикл Таб.ПрисоединитьСекцию("Секция_4|Секция_2"); КонецЦикла; Таб.ПрисоединитьСекцию("Секция_4|Секция_3"); Если фДни = 0 Тогда Таб.ПрисоединитьСекцию("Секция_4|Секция_33"); КонецЕсли; тИ.ВыбратьСтроки(); Пока тИ.ПолучитьСтроку() = 1 Цикл Таб.ВывестиСекцию("Секция_5|Секция_1"); стр = 0; стртТ = 1; Если фДни = 1 Тогда тек = тИ.Дата; стек = "Дата"; Иначе тек = тИ.Контрагент; стек = "Контрагент"; КонецЕсли; Пока т.НайтиЗначение(тек, стр, стек) = 1 Цикл т.ПолучитьСтрокуПоНомеру(стр); послСтр = 0; Для ии=стртТ По квотТ Цикл тТ.ПолучитьСтрокуПоНомеру(ии); Если тТ.ТМЦ.Код <> т.ТМЦ.Код Тогда Таб.ПрисоединитьСекцию("Секция_5|Секция_22"); Иначе Таб.ПрисоединитьСекцию("Секция_5|Секция_2"); стртТ = тТ.НомерСтроки + 1; послСтр = тТ.НомерСтроки; Прервать; КонецЕсли; КонецЦикла; т.УдалитьСтроку(стр); стр = 0; КонецЦикла; Для иии=послСтр+1 По квотТ Цикл Таб.ПрисоединитьСекцию("Секция_5|Секция_22"); КонецЦикла; Таб.ПрисоединитьСекцию("Секция_5|Секция_3"); Если фДни = 0 Тогда Таб.ПрисоединитьСекцию("Секция_5|Секция_33"); КонецЕсли; КонецЦикла; //итоговая строка Таб.ВывестиСекцию("Секция_6|Секция_1"); тТ.ВыбратьСтроки(); Пока тТ.ПолучитьСтроку() = 1 Цикл Таб.ПрисоединитьСекцию("Секция_6|Секция_2"); КонецЦикла; Таб.ПрисоединитьСекцию("Секция_6|Секция_3"); Если фДни = 0 Тогда Таб.ПрисоединитьСекцию("Секция_6|Секция_33"); КонецЕсли; Таб.ПараметрыСтраницы(2,,,10,0,5,0,0,0,1); Таб.ТолькоПросмотр(0); Таб.Защита(0); Таб.Опции(0,0,,); Таб.Показать("Реализация:",""); КонецПроцедуры |
|||
2
anagk
23.10.12
✎
09:53
|
в даном Запросе нужно только убрать Группировку (Свернуть) по клиентам, нужно, чтобы ТМЦ группировало, а вот Клиенты, чтобы по каждой накладной были
|
|||
3
anagk
23.10.12
✎
09:53
|
сейчас отчет сворачивает и по клиентам и по ТМЦ
|
|||
4
Мимохожий Однако
23.10.12
✎
09:57
|
ОФФ: Студия одного актера...
чем не угодил типовой отчет? |
|||
5
anagk
23.10.12
✎
09:58
|
типовой??
|
|||
6
Ёпрст
гуру
23.10.12
✎
10:00
|
(0)
выкинуть все ТЗ, воткнуть условие в текст запроса на Перечисление.ВидыТМЦ.Продукция, далее тупо обойти группировки отчета. Всё. |
|||
7
Ёпрст
гуру
23.10.12
✎
10:01
|
+6 обойти группировки запроса
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |