Имя: Пароль:
1C
1С v8
Запрос, как получить иерархическую сумму
,
0 DES
 
01.12.21
14:20
Есть многоуровневый справочник и регистр. Связаны по коду.
Как получить сумму элементов (из регистра) по каждому уровню справочника?
Суммировать нужно только элементы справочника.
Элементы в справочнике могут находиться на любом уровне на ряду с группами.
Есть ли решение через Запрос, или нужно морочиться с обходом групп рекурсивно?
1 runoff_runoff
 
01.12.21
14:22
сумма(выбор когда ЭтоГруппа тогда 0 иначе 1 конец)
итоги по иерархия
2 lodger
 
01.12.21
14:23
(1) телепатбот обять несет чушь.
3 fisher
 
01.12.21
14:26
А разве "итоги по иерархия" не для этого придуманы?
4 DES
 
01.12.21
14:29
(3) синтаксис ругатся , куда это прилепить ?
ИТОГИ
    СУММА(ПланОбъем),
    СУММА(ПланСумма)
ПО
    ОБЩИЕ,
    Ссылка
5 mistеr
 
01.12.21
14:29
(0) Решение через запрос есть (1), но морочиться с обходом его итогов нужно. Тут часто ошибаются.
6 mistеr
 
01.12.21
14:30
(4) Доку читат - синтаксис не ругат!
7 fisher
 
01.12.21
14:33
(4) Как добраться до рабочего примера:
В конфигураторе "Справка" - "Содержание справки" (не СП!)
И там "Встроенный язык" - "Работа с запросами" - "Синтаксис текста запросов" - "Ключевые слова и функции" - "Ключевые слова" - "ИТОГИ ПО" - "ИЕРАРХИЯ"
8 fisher
 
01.12.21
14:35
(0) Погоди. Ты именно по уровням хочешь общие итоги получить? Типа "на втором уровне столько-то", "на третьем уровне столько-то"?
9 DES
 
01.12.21
14:39
(8) да
на нижнем уровне - сумма группы элементов.
на родительском сумма сумма группы элементов + сумма элементов вложенной группы элементов
10 fisher
 
01.12.21
14:40
(9) По-моему, опять друг друга не понимаем. Давай от обратного. Чем нужный тебе результат должен отличаться от обычных итогов в обычном отчете по иерархическому справочнику?
11 DES
 
01.12.21
14:44
ну еще раз.
Есть дерево
На дереве есть ветки
...на этих ветках есть ветки
......на этих ветках есть еще ветки и т.д.
листья есть на любых ветках и на на стволе.
нужно получить сумму листьев на каждой ветке и на всем дереве
12 fisher
 
01.12.21
14:46
(11) Ну так ведь именно так и выводятся обычные итоги по иерархии которые можно увидеть в любом типовом отчете с возможностью вывода группировки по иерархии. Нет?
13 Dmitrii
 
гуру
01.12.21
14:47
(10)(7) Осмелюсь предположить, что речь идёт о проблеме, когда невозможно получить в запросе итоги по иерархии, если таблица иерархического справочника не является основной.
То есть, если таблица регистра является основной, а таблица справочника соединяется с ней через левое соединение, то итогов по иерархии не получить.
Придётся переписать запрос так, чтобы таблица справочника стала основной, а данные из регистра лепились бы к ней левым соединением.
14 DES
 
01.12.21
14:48
(13) кажется - да
15 fisher
 
01.12.21
14:49
(13) Какие еще "основные" таблицы в запросе? Где про эти новости можно почитать?
16 DES
 
01.12.21
14:51
(13) т.е. должно быть типа
из Справочника как S левое соединение Регистр как R по S.код=R.код

и в конце
S.Ссылка ИЕРАРХИЯ
17 1Сергей
 
01.12.21
14:54
(13) Чиво?
18 Dmitrii
 
гуру
01.12.21
15:03
(15)(17) https://its.1c.ru/db/pubqlang/content/51/hdoc/_top/итоги%20по%20иерархия%20левое%20соединение

См. листинг 1.88

ВЫБРАТЬ
Товары.Наименование,
Товары.Производитель,
Поступление.Ссылка.Дата,
Поступление.Ссылка.Поставщик
ИЗ
Справочник.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная.Состав КАК Поступление
ПО Товары.Ссылка = Поступление.Товар
ГДЕ
МЕСЯЦ(Поступление.Ссылка.Дата) = 11
УПОРЯДОЧИТЬ ПО
Товары.Наименование ИЕРАРХИЯ

и пояснения:
В результате выполнения запроса ... «пропала» иерархия справочника товаров, так как в результате запроса нет данных для построения иерархии. Так произошло потому, что при накладывании условия отбора на поле правой таблицы при левом соединении тип соединения становится внутренним.
В этом и в некоторых других случаях выходом из ситуации является использование вложенного запроса в качестве источника внешнего запроса.
19 DES
 
01.12.21
15:09
(18) так это плохой пример?
20 fisher
 
01.12.21
15:12
(16) Ты справку открыть поленился, что ли? Ради кого я старался?
(18) Это упорядочивание по иерархии. Упорядочивается действительно в рамках той иерархии, что есть в запросе.
21 Dmitrii
 
гуру
01.12.21
15:14
(19) Показывай уже свой запрос. Хватит сиськи мять.
22 fisher
 
01.12.21
15:21
Да вашу ж мать!

ВЫБРАТЬ
   С.Ссылка,
   Р.Сумма
ИЗ
   Регистр Р
   СОЕДИНЕНИЕ Справочник С
   ПО Р.Код = С.Код
ИТОГИ
   Сумма(Р.Сумма)
ПО
   С.Ссылка ИЕРАРХИЯ
23 azernot
 
01.12.21
15:21
Любой отчёт а ля "Продажи" в любой типовой конфигурации, выдаёт сумму выручки по иерархии номенклатуры. Т.е. проблема получения суммы ресурса из регистра решается легко и просто стандартным запросом.
Если нужна не сумма ресурса, а "количество элементов" - то всё ровно то же самое, только функция другая.

В чём проблема автора - неизвестно. Пока не выложит свой запрос - диагностировать невозможно
24 DES
 
01.12.21
15:25
Спс всем.
вроде допинали не больно
25 DES
 
04.12.21
01:05
А как теперь обойти результаты с этой иерархией?