Отчет - вывод справочника с иерархией

1. halker 27.06.17 10:42 Сейчас в теме
Всем привет!

Такой вопрос: есть справочник СтатьиРасходов с иерархической структурой: все элементы - по группам, вложенных групп нет.
И есть документ ПланРасходов, в котором в табличной части - 2 колонки: СтатьяЗатрат и Сумма, причем в колонке СтатьяЗатрат - строго ссылка на группу справочника (не на отдельный элемент, а всегда на группу).
Делаю отчет с скд, но не получается сделать так, чтобы сумма выводилась именно возле группы: почему-то добавляется в группе дополнительный элемент с названием как у группы, и напротив него ставится сумма.

Делаю так.
Два набора данных:

первый Статьи
ВЫБРАТЬ
	СтатьиРасходов.Ссылка КАК Статьи
ИЗ
	Справочник.СтатьиРасходов КАК СтатьиРасходов



и второй ПланРасходов
ВЫБРАТЬ
	ПланРасходов.СтатьяЗатрат,
	ПланЗатратСписокОпераций.Сумма,
	ПланЗатрат.Проект
ИЗ
	Документ.ПланЗатрат.СписокОпераций КАК ПланЗатратСписокОпераций
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланЗатрат КАК ПланЗатрат
		ПО ПланЗатратСписокОпераций.Ссылка = ПланЗатрат.Ссылка
ГДЕ
	ПланЗатрат.Проект В (&Проект)
Показать


На вкладке Связи наборов данных они связаны через статью затрат.

Во вложении - итоговый вид отчета и пример группы в справочнике.


Можно ли как-то избежать этого дублирования?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 31 27.06.17 10:49 Сейчас в теме
может, два набора данный не использовать, а взять в запросе данные из двух таблиц и связать по статье?
3. halker 27.06.17 11:17 Сейчас в теме
(2)
В смысле, один набор данных, один запрос с соединением?

ВЫБРАТЬ
    ПланРасходов.СтатьяЗатрат,
    ПланЗатратСписокОпераций.Сумма,
    ПланЗатрат.Проект,
    СтатьиРасходов.Ссылка КАК СЗ
ИЗ
    Документ.ПланЗатрат.СписокОпераций КАК ПланЗатратСписокОпераций
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланЗатрат КАК ПланЗатрат
        ПО ПланЗатратСписокОпераций.Ссылка = ПланЗатрат.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтатьиРасходов КАК СтатьиРасходов
		ПО ПланЗатратСписокОпераций.СтатьяЗатрат = СтатьиРасходов.Ссылка
ГДЕ
    ПланЗатрат.Проект В (&Проект)

Показать


Выводит ТОЛЬКО группы справочника, как во вложении.

Я хочу, чтобы выводилась группа справочника, элементы этой группы (с возможностью раскрытия группы) и напротив именно группы - число.
Прикрепленные файлы:
4. halker 27.06.17 11:39 Сейчас в теме
Неужели это совсем невозможно сделать через скд?
5. @Fancy 27.06.17 12:13 Сейчас в теме
(4) Как убрать дубли в иерархии я писала в теме СКД. Иерархия элементов. Посмотрите, может подойдет.
Идея в том, чтобы создать пользовательское поле, содержащее Родителя элемента и потом установить по нему отбор с такими условиями, чтобы дубли групп не выводились.
6. halker 28.06.17 17:54 Сейчас в теме
(5)
Спасибо. Скажите, пожалуйста, можно ли как-то обойти ВычислитьВыражение? - у меня 8.1, и этой функции нет.

Так, как у меня во вложении - это правильно?
Прикрепленные файлы:
7. @Fancy 28.06.17 21:36 Сейчас в теме
(6) Если уровень иерархии > 2, то в Вашем варианте дубли строк будут отображаться.
А в 8.1 есть функция Вычислить()? По идее, она должна работать также, как ВычислитьВыражение(), просто устаревший вариант.
Сейчас нет под рукой 8.1, не могу посмотреть.
8. halker 30.06.17 13:09 Сейчас в теме
(7)
Уровень иерархии ровно 1, всегда.
Сделал так, как во вложении, действительно, дубли убрались, однако суммы напротив группы не появились, хотя в документе, откуда они берутся, есть (последняя картинка - документ, из которого делается запрос).
Прикрепленные файлы:
9. halker 30.06.17 13:13 Сейчас в теме
(7)
Про Вычислить(): функция действительно есть, однако с ней возникли проблемы.
Прикрепленные файлы:
10. @Fancy 30.06.17 14:29 Сейчас в теме
(9)
Про Вычислить(): функция действительно есть, однако с ней возникли проблемы

СтатьяСправ заключите в кавычки. "Иерархия", по-моему, третий параметр, а не второй.
11. halker 30.06.17 17:50 Сейчас в теме
(10)
Пробовал все: СтатьяСправ в кавычках и без, Иерархия побывала и вторым, и третьим параметром - одна и та же ошибка:
Поле не найдено "СтатьяСправ"
12. @Fancy 30.06.17 19:16 Сейчас в теме
Покажите схему, так проще разобраться.
У Вас в группировке по иерархии в таблице поле "Статья справ", а в функции "СтатьяСправ". Может в этом проблема?
Откуда берется "Статья справ"?
13. halker 03.07.17 11:14 Сейчас в теме
(12)
Да, Вы правы, криво переименованные поля не давали применять Вычислить(), сейчас получилось, но поле Родитель-1 с Вычислить() не видно в пользовательских полях.

Прикладываю фото всего процесса.
Прикрепленные файлы:
14. halker 03.07.17 11:15 Сейчас в теме
С полем Родитель получается так, как на первой картинке в этом вложении.
Прикрепленные файлы:
15. @Fancy 03.07.17 11:58 Сейчас в теме
Выложите схему отчета
16. halker 03.07.17 18:07 Сейчас в теме
17. @Fancy 04.07.17 08:37 Сейчас в теме
Ну вроде все нормально. Или нет? Вопрос в том, где суммы?
Подитожу:
1. если Вас устраивает уровень иерархии не больше 2 (и больше уровней никогда не понадобится, т.к. отчет в этом случае будет работать некорректно), то все нормально. Правда, в этом случае можно было обойтись без Пользовательского поля, а просто наложить отбор на поле СтатьиСправ.Родитель.
2. для общего случая используем Пользовательское поле с Вычислить(…) и отбором по нему, как сказано выше.
Ну и для красоты не выводить отбор для группировки (Настройки/Другие настройки)
18. halker 04.07.17 11:30 Сейчас в теме
(17)
Да, уровень всегда будет равен 2.
С отбором для группировки большое спасибо, все не понимал, как убрать эту строчку, теперь красиво.

Фишка моего отчета вот в чем. Данные в него собираются из двух документов: ПланРасходов и Авансы. В ПланРасходов в табличной части указываются расходы ТОЛЬКО групп справочника, в Авансы - ТОЛЬКО элементов справочника. В свой итоговый отчет я хочу собирать данные из этих документов: из Авансы суммы попадают в элементы, из ПланРасходов - в группы, причем, как всегда,суммы по элементам итожатся и прибавляются к той, что уже стоит в группе.
Пример документов и того, что хочу видеть в отчете - в приложении.
У меня получается брать данные из Авансы - числа суммируются в группах, но завяз именно с числами по группе из ПланРасходов.
Прикрепленные файлы:
19. @Fancy 04.07.17 14:22 Сейчас в теме
В качестве идеи. Есть сумма по группе – СуммаГруппа и сумма по элементам – СуммаЭл.
Далее создаем вычисляемое поле СуммаИтог с выражением
ЕстьNull(СуммаЭл,0)

при расчете ресурса для этого поля указываем выражение:
 Сумма(СуммаИтог) + ЕстьNull(СуммаГруппа,0)

Мне трудно точь-в-точь воспроизвести Ваши данные, а малейший нюанс – и выражение уже другое.
Так что только идея – свое выражение в Вычисляемом поле и в ресурсе по нему.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот