Имя: Пароль:
1C
 
Как получить все конечные субсчета определенного счета в запросе
0 nnn_2006
 
15.07.06
23:12
Как получить все конечные субсчета определенного счета в запросе
То есть, например есть:

15
151
152
1521
1522

надо получить 151,1521,1522
1 nnn_2006
 
16.07.06
00:03
Че никто не знает ?
2 TormozIT
 
гуру
16.07.06
00:05
я не знаю
3 Vozhd
 
16.07.06
01:20
(0) А в чем проблемы? вроде все просто...
4 nnn_2006
 
16.07.06
02:23
Пример кода можно раз это просто..
5 Vozhd
 
16.07.06
02:27
(4) Напомните в понедельник, пришлю код. Сейчас нет 1С под рукой...
6 nnn_2006
 
16.07.06
02:28
Спасибо буду ждать...
прикол в том что нужны ТОЛЬКО субсчета НИЖНЕГО уровня
7 Vozhd
 
16.07.06
02:48
(6) А что в этом прикольного? Задачка то простенькая...
8 nnn_2006
 
16.07.06
10:44
<<Пример кода можно раз это просто..
9 TormozIT
 
гуру
16.07.06
11:16
(8) На самом деле все знают, но стесняются написать))
10 nnn_2006
 
16.07.06
12:04
Смелее...
11 clappa
 
16.07.06
12:46
За правильность не ручаюсь, но общий смысл такой:

ВЫБРАТЬ
  Ссылка
ИЗ
  ПланСчетов
ГДЕ
  (Ссылка В ИЕРАРХИИ (&СчетГруппа))
  И НЕ (Ссылка В (ВЫБРАТЬ Родитель
                  ИЗ ПланСчетов
                  ГДЕ (Ссылка В ИЕРАРХИИ (&СчетГруппа))))
12 Vozhd
 
16.07.06
13:24
(9) А зачем писать элементарные банальности?
13 TormozIT
 
гуру
16.07.06
13:33
(11) А что будет быстрее

ВЫБРАТЬ
  Ссылка
ИЗ
  ПланСчетов
ГДЕ
  (Ссылка В ИЕРАРХИИ (&СчетГруппа))
  И НЕ (Ссылка В (ВЫБРАТЬ Родитель
                  ИЗ ПланСчетов
                  ГДЕ (Ссылка В ИЕРАРХИИ (&СчетГруппа))))

ИЛИ

ВЫБРАТЬ
  Ссылка
ИЗ
  ПланСчетов
ГДЕ
  (Ссылка В ИЕРАРХИИ (&СчетГруппа))
  И НЕ (Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Родитель
                  ИЗ ПланСчетов
                  ГДЕ (Ссылка В ИЕРАРХИИ (&СчетГруппа))))
?
14 Vozhd
 
16.07.06
13:34
(13) Думаю, что быстрее будет через левое соединение...
15 nnn_2006
 
16.07.06
13:40
Сенкс
16 TormozIT
 
гуру
16.07.06
14:04
(14) Так

ВЫБРАТЬ Хозрасчетный1.Ссылка
ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный1
ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный2
ПО Хозрасчетный1.Ссылка = Хозрасчетный2.Родитель
СГРУППИРОВАТЬ ПО Хозрасчетный1.Ссылка
ИМЕЮЩИЕ Количество(Хозрасчетный2.Ссылка) = 0

?
17 Vozhd
 
16.07.06
14:07
(16) Группировать то зачем?
ГДЕ ЕстьNull(Хозрасчетный2.Родитель)
18 TormozIT
 
гуру
16.07.06
14:12
(17) Спасибо. Итак, самый оптимальный вариант

ВЫБРАТЬ Хозрасчетный1.Ссылка
ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный1
ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный2
ПО Хозрасчетный1.Ссылка = Хозрасчетный2.Родитель
ГДЕ ЕСТЬNULL(Хозрасчетный2.Родитель, 0) = 0
19 Vozhd
 
16.07.06
14:14
(18) А как Вы проверяли, что именно этот вариант самый оптимальный?
20 Vozhd
 
16.07.06
14:14
(18) Кстати, Вы забыли про фильтр по группе счетов...
21 TormozIT
 
гуру
16.07.06
14:16
(20) Такого удара от такого опытного человека я никак не ожидал...
Может все таки ответишь на (11)?
22 TormozIT
 
гуру
16.07.06
14:17
(21) + Сори на (13)
23 Vozhd
 
16.07.06
14:19
(21) А запустить замер производительности и посмотреть на результат нельзя?

P.S. У меня доступ к 1С будет только в понедельник...
24 Neco
 
16.07.06
14:42

ВЫБРАТЬ
   Хозрасчетный.Ссылка КАК Ссылка,
   Хозрасчетный.Представление
ИЗ
   ПланСчетов.Хозрасчетный КАК Хозрасчетный
ГДЕ
   Хозрасчетный.Ссылка В ИЕРАРХИИ(&СписокСчетов)
ИТОГИ ПО
   Ссылка
25 TormozIT
 
гуру
16.07.06
14:52
(24) Мимо
26 Neco
 
16.07.06
15:09
(25) Усе в порядке судя по (0)
27 TormozIT
 
гуру
16.07.06
15:12
(26) Твой запрос вернет
15
151
152
1521
1522
28 Neco
 
16.07.06
15:15
(27) Неа. Вот этот вернет:

ВЫБРАТЬ
   Хозрасчетный.Ссылка КАК Ссылка,
   Хозрасчетный.Представление
ИЗ
   ПланСчетов.Хозрасчетный КАК Хозрасчетный
ГДЕ
   Хозрасчетный.Ссылка В ИЕРАРХИИ(&СписокСчетов)
ИТОГИ ПО
   Ссылка ИЕРАРХИЯ
29 Neco
 
16.07.06
15:15
+(28) То что в (27)
30 Neco
 
16.07.06
15:20
Ну и соответственно, только Иерархия:

ИТОГИ ПО
   Ссылка ТОЛЬКО ИЕРАРХИЯ
31 Vozhd
 
16.07.06
15:24
(0) Так вроде в (0) требуется счета, которые не в иерархии...
32 TormozIT
 
гуру
16.07.06
15:30
(31) не такая уж и элементарная задача оказалась...
33 Neco
 
16.07.06
15:33
(31) Как понимать "конечные субсчета определенного счета"?
34 Vozhd
 
16.07.06
15:33
(32) А в чем проблемы то? Вы же сами привели несколько вариантов...
35 Neco
 
16.07.06
15:34
+(33) Запрос в (24) если передать как параметр счет 15, то выдаст все элементы в субсчетах 15 счета. Можете проверить
36 TormozIT
 
гуру
16.07.06
15:46
(35) ты проверь на всем справочнике
37 TormozIT
 
гуру
16.07.06
15:47
Ну или 10-й счет передай в качестве параметра (там больше одного уровня иерархии)
38 Neco
 
16.07.06
15:51
(36) Выдаст все элементы (но не группы) счетов. Еще раз запрос в (24) решение задачи в (0). А не решение задачи: "все счета у кого нет родителя"
(37) С 10м все ОК
39 Neco
 
16.07.06
15:53
+(38) Да кстати у меня Укр. план счетов
40 TormozIT
 
гуру
16.07.06
15:54
(38) Не "у кого нет родителя", а "у кого нет потомков".
41 Neco
 
16.07.06
15:59
(40) Ладно, согласен. Решение в (18)
Программист всегда исправляет последнюю ошибку.