|
Подскажите идею по отчету | ☑ | ||
---|---|---|---|---|
0
LenaAt
15.05.17
✎
13:15
|
Здравствуйте!
Есть регистр накопления Период - Участок - Клиент - Количество. Нужно вывести вот такой отчет: https://hostingkartinok.com/show-image.php?id=86c23ad3f7a10ba4d1672354fdbe815d Как это сделать с минимумом программирвания? Число клиентов за выбранный период построения отчета неизвестно: это может быть и один клиент, а может несколько десятков. |
|||
1
Ёпрст
15.05.17
✎
13:18
|
Открыть универсальный отчет и написать за 2 минуты. Без программирования.
|
|||
2
kumena
15.05.17
✎
13:18
|
а что не получается?
|
|||
3
LenaAt
15.05.17
✎
13:20
|
(2) Не понимаю, как написать запрос такой, чтобы результат его сразу вывести в отчет без дополнительных действий.
|
|||
4
Lexey_
15.05.17
✎
13:21
|
(3) СКД
|
|||
5
LenaAt
15.05.17
✎
13:22
|
(4) Спасибо, я сама пишу запросы и вывожу их в отчет. Никаких СКД мне не надо.
|
|||
6
Джинн
15.05.17
✎
13:22
|
(5) Нашли чем гордиться.
|
|||
7
LenaAt
15.05.17
✎
13:23
|
(6) Я не горжусь, это был ответ на 4. Что мне нужно, это подсказка как лучше написать запрос к регистру накопления.
|
|||
8
Рэйв
15.05.17
✎
13:24
|
(5)Напиши запрос в консоли запросов с построителем и будет тебе красиво
|
|||
9
Ёпрст
15.05.17
✎
13:24
|
(3) Открой для себя функцию Количество() в тексте запроса.
+ 2 группировки Клиент и Участок |
|||
10
kumena
15.05.17
✎
13:24
|
(7) написать запрос итоговыми группировками, и обойти по ним
|
|||
11
kumena
15.05.17
✎
13:26
|
Выбрать
* Из ТвойРегистр Итоги Сумма(Количество) по Участок, Клиент и потом обойти их с выборкой по группировкам |
|||
12
Джинн
15.05.17
✎
13:26
|
(9) Отбор по периоду еще
|
|||
13
Любопытная
15.05.17
✎
13:26
|
(7) Просто на СКД это сделать гораздо проще, чем лепить макет такого вида. Заранее же неизвестно, сколько у вас клиентов и участков. Выводить замучаетесь
|
|||
14
Lexey_
15.05.17
✎
13:27
|
(5) самостоятельная прям, какой вопрос был? "Как это сделать с минимумом программирвания?"
Ну вот и ответ |
|||
15
kumena
15.05.17
✎
13:27
|
а да, отбор еще указать, как тут пишут
|
|||
16
Ёпрст
15.05.17
✎
13:28
|
(13) ?
Любой универсальный отчет сделает это сам, на том же построителе отчета. |
|||
17
LenaAt
15.05.17
✎
13:28
|
(11) спасибо, сейчас попробую
|
|||
18
Ёпрст
15.05.17
✎
13:28
|
ничего кодить не надо. Написать только текст запроса и сказать, что есть измерения, а что ресурсы.. усё.
|
|||
19
Любопытная
15.05.17
✎
13:30
|
(16) Да, но автор пишет, что запросы сама делает и вывод в отчет тоже делает сама.
|
|||
20
Ёпрст
15.05.17
✎
13:31
|
(19) построитель отчета сам всё выведет, в таокм случае. Ежели она скд не хочет
|
|||
21
Ёпрст
15.05.17
✎
13:31
|
даже макет рисовать нет надобности
|
|||
22
kumena
15.05.17
✎
13:31
|
+15, еще нюанс, в выборке для горизонтальной группировки указать период - "ВСЕ".
|
|||
23
Любопытная
15.05.17
✎
13:33
|
(20) да я в курсе. Что имеет в виду автор под "сама вывожу", этого мы не знаем. А впрочем, всё равно от темы отклоняемся
|
|||
24
LenaAt
15.05.17
✎
13:50
|
(11) попробовала, еще больше такой запрос запутывает дело
Уж лучше использовать стандартное sql - ое средство group by ... Буду думать, как теперь все это вывести в отчет. |
|||
25
LenaAt
15.05.17
✎
13:52
|
24+ Подошля бы для этих целей какая - нибудь структура в виде дерева, где корнем является участок, а листьями - клиенты...
|
|||
26
torgm
15.05.17
✎
13:53
|
(11) для быстрого обхода декартово произведение сделать , потом уже таблицу присоединять.
|
|||
27
catena
15.05.17
✎
13:58
|
(25)В (11) так и есть же...
А вообще(шепотом): а какая религия все-таки мешает использовать СКД? Я просто не в курсе, не читала предыдущие серии. |
|||
28
Lexey_
15.05.17
✎
14:08
|
(27) просто она сама пишет запросы и выводит их в отчет с минимумом программирования, а потом думает, как теперь все это вывести в отчет
|
|||
29
azernot
15.05.17
✎
14:13
|
Если уж какая-то религия не позволяет использовать Построитель или СКД, то:
Запрос из (11) ОбщийРезультатЗапроса = Запрос.Выполнить(); ОбщаяВыборкаПоКлиентам = ОбщийРезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Клиент", "Все"); //Вывод шапки //выводим первые колонки заголовка Пока ОбщаяВыборкаПоКлиентам.Следующий() Цикл //присоединяем заголовок таблицы с клиентами КонецЦикла; ВыборкаПоУчасткам = ОбщийРезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Участок") Пока ВыборкаПоУчасткам.Следующий() Цикл //Выводим начало строки (участок) ВыборкаПоКлиентам = ВыборкаПоУчасткам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Клиент", "Все"); Пока ВыборкаПоКлиентам.Следующий() Цикл //присоединяем данные таблицы с клиентами КонецЦикла КонецЦикла; //Вывод подвала ОбщаяВыборкаПоКлиентам.Сбросить() //выводим первые колонки подвала Пока ОбщаяВыборкаПоКлиентам.Следующий() Цикл //присоединяем подвал/итог таблицы с клиентами КонецЦикла |
|||
30
ildary
15.05.17
✎
14:33
|
(38) боюсь что правду мы никогда не узнаем, потому что стыдно признаться, что не умеешь в СКД.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |