Имя: Пароль:
1C
1С v8
Группировка по ВСЕМ элементам справочника, включая пустые
0 Желтый домик
 
17.09.13
20:14
Доброе время всем!
Есть задача вывести отчет, в котором для всех ЦФО будут выводиться все элементы справочника СтатьиБюджетов, даже если они пустые.

Если группировку делать Статья - ЦФО, все работает. А вот если ЦФО - Статья, получается, что статьи, по которым не было оборотов выводятся в пустом ЦФО, а в рабочие ЦФО попадают только Статьи с движениями.

Вот код

ВЫБРАТЬ
    Бюджет.ЦФО КАК ЦФО,
    СпрСтатьяБюджета.Ссылка КАК Статья,
    Бюджет.Сумма КАК Сумма
ИЗ
    Справочник.СтатьяБюджета КАК СпрСтатьяБюджета
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Бюджет КАК Бюджет
        ПО (Бюджет.СтатьяБюджета = СпрСтатьяБюджета.Ссылка)
ИТОГИ
    СУММА(Сумма)
ПО
    ЦФО,
    Статья
1 fisher
 
17.09.13
20:19
Делай левое соединение не к статьям бюджета, а к подзапросу, который возвращает все комбинации статей и ЦФО (по ЦФО тоже не забудь соединить).
Все комбинации можно получить соединением по ИСТИНА или просто перечислив источники через запятую. Декартово произведение множеств, называется.
2 fisher
 
17.09.13
20:22
Или объединить выборку из регистра с таким подзапросом.
3 Желтый домик
 
17.09.13
20:30
(2) Тут такой нюанс. Мне это нужно сделать в построителе, чтобы пользователь мог добавлять/убирать произвольно группировки. Сам регистр имеет 6 измерений
4 Желтый домик
 
17.09.13
20:32
(1) Ой, вот  это не дочитал. Сейяас буду пробовать
5 Желтый домик
 
17.09.13
21:05
(1) Все комбинации можно получить соединением по ИСТИНА или просто перечислив источники через запятую

Пытаюсь придумать подзапрос. Не получается. Т.е. ЦФО и Статьи - лва справочника. Общих реквизитов нет. Не могу сделать так

ЦФО 1
     Статья 1
     Статья 2
     Статья 3
ЦФО 2
     Статья 1
     Статья 2
     Статья 3
и т.д.
6 Желтый домик
 
17.09.13
21:14
Кажется начинаю въезжать. Спасибо

ВЫБРАТЬ
    ЦФО.Ссылка КАК ЦФО,
    СтатьяБюджета.Ссылка КАК Статья
ИЗ
    Справочник.СтатьяБюджета КАК СтатьяБюджета
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ЦФО КАК ЦФО
        ПО (ИСТИНА)
7 Repey
 
18.09.13
08:54
(6) Да делай вообще без соединения. Для чего оно там? Тебе же все равно все комбинации нужны.
8 mistеr
 
18.09.13
10:29
(7) >вообще без соединения
Этот вид соединения называется "декартово произведение".
9 Лодырь
 
18.09.13
10:41
(8) Или внешнее соединение? )
10 mistеr
 
18.09.13
10:44
(9) Нет.
11 Ёпрст
 
гуру
18.09.13
10:44
вообще-то , тупо кросс джоин и привет:

ВЫБРАТЬ
    ЦФО.Ссылка КАК ЦФО,
    СтатьяБюджета.Ссылка КАК Статья
ИЗ
    Справочник.СтатьяБюджета КАК СтатьяБюджета
        ,Справочник.ЦФО КАК ЦФО
12 Желтый домик
 
30.09.13
03:12
Декартовым соединением система просто легла. Конечно, я ее на файловой тестил, но производительность меня сильно не устроила. Решил создать отдельно справочник, заполняемый программно и хранящий комбинации всех возможный статей и ЦФО. Еще он выполняет функцию образца для построения иерархии. Производительность многократно увеличилась. Справочник заполняется за 2 мин. один раз в пол года а выборка из него с учетом обработки доп. параметров (цвет строки, иерархия, сортировка, сворачивание) занимает 10 - 15 сек.
13 fisher
 
30.09.13
10:13
(12) Справочник лишний. Если по странной причине план выполнения получается жутко неоптимальный, можно комбинации во временную таблицу загнать.
А вообще покажь итоговый запрос.
14 Желтый домик
 
30.09.13
10:49
Для удобства пользователей использовал построитель отчета. А в построителе с ТЗ не поработаешь, к сожалению. Передать, конечно, ТЗ в построитель можно, а что-то с ним потом сделать - по крайней мере я не знаю как.
15 fisher
 
30.09.13
10:54
Я не о ТЗ. Я о временных таблицах и пакетных запросах.
Построитель это умеет.
16 fisher
 
30.09.13
10:54
А для удобства пользователей надо СКД юзать.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn