|
Получить нижний уровень иерахического списка. |
☑ |
0
MAPATNK2
naïve
30.03.22
✎
08:57
|
Всем доброго дня. Как получить нижний уровень иерархического списка 1 запросом?
Вот мой запрос:
|
|
1
MAPATNK2
naïve
30.03.22
✎
08:57
|
ВЫБРАТЬ
ПланСчетовУПП.Ссылка КАК Счет
ПОМЕСТИТЬ ВремТаблица
ИЗ
ПланСчетов.Хозрасчетный.ВидыСубконто КАК ПланСчетовУПП
ГДЕ
ПланСчетовУПП.ВидСубконто В (ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры))
И НЕ ПланСчетовУПП.Ссылка.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
ПланСчетовУПП.Ссылка
ИМЕЮЩИЕ
СУММА(1) = 2
;
|
|
2
MAPATNK2
naïve
30.03.22
✎
08:58
|
Но в случае, если у счета 70.01 есть подчиненный 70.01.01, то выведутся оба. А мне нужен только 70.01.01
|
|
3
MAPATNK2
naïve
30.03.22
✎
09:00
|
Ну и соответственно, ели у счета 70.01 нет подчиненных объектов, то вывестись должен он.
|
|
4
Ненавижу 1С
гуру
30.03.22
✎
09:02
|
бросьте вы это грязное дело
используйте косвенный признак:
НЕ ЗапретитьИспользоватьВПроводках
|
|
5
MAPATNK2
naïve
30.03.22
✎
09:05
|
(4) В любом случае, это не поможет делу
|
|
6
MAPATNK2
naïve
30.03.22
✎
09:10
|
Предполагаем, что есть только 3 уровня.70 ; 70.01; 70.01.01
|
|
7
Ненавижу 1С
гуру
30.03.22
✎
09:12
|
(5)(6) это почему? ну есть три уровня, вам надо вывести я так понимаю "70.01.01" именно только он должен быть так НЕ помечен
|
|
8
Ненавижу 1С
гуру
30.03.22
✎
09:13
|
но более правильно так:
ВЫБРАТЬ
Хозрасчетный.Ссылка КАК Ссылка
ИЗ
ПланСчетов.Хозрасчетный КАК Хозрасчетный
ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный1
ПО Хозрасчетный.Ссылка = Хозрасчетный1.Родитель
ГДЕ
Хозрасчетный1.Ссылка ЕСТЬ NULL
|
|
9
MAPATNK2
naïve
30.03.22
✎
09:19
|
(8) Спасибо большое.
|
|
10
MAPATNK2
naïve
30.03.22
✎
09:22
|
(8) В таком случае "НЕ ЗапретитьИспользоватьВПроводках " использовать так же нет смысла
|
|
11
Мимохожий Однако
30.03.22
✎
09:29
|
Счета без иерархии в запросе нужны?
|
|
12
MAPATNK2
naïve
30.03.22
✎
09:39
|
(11) иерархия не нужна. нужны элементы нижних уровней. Но в (8) уже дали рабочий запрос.
|
|
13
MAPATNK2
naïve
30.03.22
✎
10:01
|
(8) Кстати, запрос неверно отрабатывает например на 63 счете.
Если использовать вашу конструкцию НЕ ЗапретитьИспользоватьВПроводках, то он все равно будет выведен, т.к. он используется в проводках, но имеет верхний уровень.
Поэтому нужно использовать
И НЕ ПланСчетовУПП.Ссылка.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
|
|
14
mikecool
30.03.22
✎
10:57
|
(8) это же для 2го уровня счетов, не?
|
|
15
Ненавижу 1С
гуру
30.03.22
✎
11:31
|
(13) в запросе (8) он отбирается
(14) для многоуровневого
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший