![]() |
![]() |
![]() |
|
Просто красивый код. Строит красивый отчет. | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
04.07.06
✎
18:33
|
В то время, как построители бороздят космические просторы, тупой адинэснег я пишет отчеты по-старинке.
Но красиво блин смотрелось бы, если бы не было построителя. Отчет с группировкой по подразделению, отделу, сотруднику. Суммируется два поля Долг и Фонд. Итого внизу. Вот код, ноу комментов. ИндП=0; ОблИ=Макет.ПолучитьОбласть("Итог"); Строки=Новый Массив(); Пока ИндП<ТД.Количество() Цикл ИндО=ИндП; Стр=ТД[ИндП]; ОблП=Макет.ПолучитьОбласть("Подразделение"); ОблП.Параметры.Подразделение = Стр.Подразделение; Строки.Добавить(ОблП); Пока ИндО <ТД.Количество() Цикл Если ТД[ИндО].Подразделение<>ТД[ИндП].Подразделение Тогда Прервать; КонецЕсли; Стр=ТД[ИндО]; ОблО=Макет.ПолучитьОбласть("Отдел"); ОблО.Параметры.Отдел = Стр.Отдел; ОблО.Параметры.Начальник = Стр.Начальник; ОблО.Параметры.ФондНачальника = Стр.ФондНачальника; Строки.Добавить(ОблО); ИндС=ИндО; Пока ИндС < ТД.Количество() Цикл Если ТД[ИндС].Отдел<>ТД[ИндО].Отдел Тогда Прервать; КонецЕсли; СтрСотрудник=ТД[ИндС]; облСтрока = Макет.ПолучитьОбласть("Сотрудник"); облСтрока.Параметры.Сотрудник = СтрСотрудник.Сотрудник; облСтрока.Параметры.ДатаПриема = Формат(СтрСотрудник.Сотрудник.ДатаПриема,"ДФ=dd.MM.yy"); облСтрока.Параметры.Долг = СтрСотрудник.Долг; облСтрока.Параметры.Фонд = СтрСотрудник.Фонд; Строки.Добавить(облСтрока); ОблО.Параметры.Долг=ТолькоЧисло(ОблО.Параметры.Долг)+ТолькоЧисло(СтрСотрудник.Долг); ОблО.Параметры.Фонд=ТолькоЧисло(ОблО.Параметры.Фонд)+ТолькоЧисло(СтрСотрудник.Фонд); ОблП.Параметры.Долг=ТолькоЧисло(ОблП.Параметры.Долг)+ТолькоЧисло(СтрСотрудник.Долг); ОблП.Параметры.Фонд=ТолькоЧисло(ОблП.Параметры.Фонд)+ТолькоЧисло(СтрСотрудник.Фонд); ОблИ.Параметры.Долг=ТолькоЧисло(ОблИ.Параметры.Долг)+ТолькоЧисло(СтрСотрудник.Долг); ОблИ.Параметры.Фонд=ТолькоЧисло(ОблИ.Параметры.Фонд)+ТолькоЧисло(СтрСотрудник.Фонд); ИндС=ИндС+1; КонецЦикла; ИндО=ИндС; КонецЦикла; ИндП=ИндО; КонецЦикла; Строки.Добавить(ОблИ); Для Каждого Обл из Строки Цикл Таб.Вывести(Обл); КонецЦикла; |
|||
1
Гений 1С
гуру
04.07.06
✎
18:34
|
то бишь реализован цикл с продвижением
|
|||
2
Гений 1С
гуру
04.07.06
✎
18:34
|
и отложенный вывод строк
|
|||
3
France
04.07.06
✎
18:37
|
в общем, очеред лисапед?))
|
|||
4
КонецЦикла
04.07.06
✎
18:38
|
Добавил в БЗню, действительно мегакрасиво!
|
|||
5
AversDik2
04.07.06
✎
18:38
|
(0) А у меня некрасивый отчет построил
|
|||
6
Mort
04.07.06
✎
18:41
|
КГ/АМ
КГ - Код Г. Афтар, и чо здесь красивого? |
|||
7
Директор PR отдела
04.07.06
✎
18:43
|
"Дерево Осипова" круче. В (0) КГ.
(6) +1 |
|||
8
Mort
04.07.06
✎
18:43
|
Чо за дерево?
|
|||
9
Директор PR отдела
04.07.06
✎
18:45
|
||||
10
Гений 1С
гуру
04.07.06
✎
18:46
|
(6) тебе уже сказали - цикл с продвижением и отложенный вывод строк
|
|||
11
Гений 1С
гуру
04.07.06
✎
18:47
|
(3) ну лень юзать построитель, здесь хоть я уверен, что все под контролем.
А для простенького отчета что ишо надо? ;-) |
|||
12
Mort
04.07.06
✎
19:05
|
Имхо лень не юзать построитель, а в нём разобраться. Было бы быстрее и красивше.
|
|||
13
Гений 1С
гуру
04.07.06
✎
19:08
|
Да ну, чувак, построитель как и любая универсальная весчь - штука ограниченная. :)
|
|||
14
Гений 1С
гуру
04.07.06
✎
19:08
|
сравни объем кода здесь и в построителе. Делаем одно и тоже.
|
|||
15
Гений 1С
гуру
04.07.06
✎
19:09
|
(0) да, забыл что в начале таблу надо отсортировать. :)
|
|||
16
Mort
04.07.06
✎
19:15
|
Какой объем кода в построителе?
Присваиваем запрос. Устанавливаем параметры по запросу, вставляем доп отборы, определяем поля итогов - и всё. |
|||
17
Mort
04.07.06
✎
19:16
|
Построитель запроса, им. ввиду.
|
|||
18
х86
04.07.06
✎
19:16
|
(0) на меленьком объеме данных будет работать нормально, при приближении в результирующем ТабДоке строк эдак к 10000 тармаза обеспечены
|
|||
19
х86
04.07.06
✎
19:17
|
облСтрока.Параметры.Долг - а что .Заполнить() не юзаешь?
|
|||
20
Mort
04.07.06
✎
19:18
|
А про ограниченность построителя - Дадут тебе задачу добавить пару отборов и итогов - будет веселье.
|
|||
21
х86
04.07.06
✎
19:19
|
ТолькоЧисло() - по моему это в запросе лучше сделать
|
|||
22
Mort
04.07.06
✎
19:20
|
||||
23
Гений 1С
гуру
04.07.06
✎
19:31
|
(21) мне лень было в начале параметрам-итогам присваивать нулевые значения. :)
(22) Суть данного ассемблера в получении ПОЛНОГО контроля над отчетом МИНИМАЛЬНОЙ ценой. А в ДЗ кроме суммы ничего и не сделаешь. :) Это ассемблер чувак, ассемблер. |
|||
24
Гений 1С
гуру
04.07.06
✎
19:31
|
(20) Я про простенькие задачки грю.
|
|||
25
Mort
04.07.06
✎
19:37
|
(23) И в чем же ценность данного продукта?
|
|||
26
vasinok
04.07.06
✎
21:15
|
(1) стесняюсь спросить: че такое "цикл с продвижением"?
|
|||
27
Гений 1С
гуру
05.07.06
✎
09:58
|
(26) Трудоемкость этого алгоритма по выводу отчета N, не N квадрат. Вот это и называется "с продвижением индекса"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |