|
v7: вывод ИТЗ с иерархией по Номенклатуре и шахматкой по Складам в mxl | ☑ | ||
---|---|---|---|---|
0
Dolly_EV
27.12.12
✎
13:47
|
Собственно сабж.
http://itmages.ru/image/view/820892/d6640a73 Требуется вывести ИТЗ с иерархией номенклатуры шахматкой по складам. Чего-то туплю, как сделать группировку, чтобы выводилось экономично и быстро |
|||
1
Dolly_EV
27.12.12
✎
13:51
|
Колонки ИТЗ:
тзОст.Группировать("индТовар:*&Товар;индСклад:*Склад","ОстКол,ОстСумма",1); |
|||
2
viktor_vv
27.12.12
✎
13:56
|
Ну либо на омент формирования ТЗ сделать, чтобы по каждой номенклатуре были все скалды, типа ВСЕ вошедшие в запрос.
Либо до группировки выгрузить в другую ТЗ только склады, свернуть. И после вывода номенклатуры обходить эту самую ТЗ со всеми сколадами и искать есть ли в Потомках необходимый склад. Правда с группами не знаю как будет работать. |
|||
3
antoneus
27.12.12
✎
13:58
|
лепить по колонке на каждый склад как вариант
|
|||
4
ADirks
27.12.12
✎
15:59
|
Как и все отчеты подобного рода:
- сформировать список складов тзОст.ДобавитьИндекс("СкладУ", "Склад", 1); тзОст.Выгрузить(сзСклады, "СкладУ", "Склад"); - при выводе группировки Склад цикл не по таблице, а по сзСклады, и поиск склада в таблице. если не нашли - все показатели нулевые. |
|||
5
Ёпрст
27.12.12
✎
16:34
|
(4) ну нет чтоб своим классом поделится..
:) |
|||
6
Ёпрст
27.12.12
✎
16:35
|
в своём классе, тот что итоги по группировкам, не реализовывал иерархию по группам, кстати ? с разворотом вправо, например ?
|
|||
7
ADirks
27.12.12
✎
17:52
|
(5) ну, можно и так: http://infostart.ru/public/15510/ или http://rikcenter.ru/download/RiK_Sums.rar
но он немножечко устарел (т.е. то, что выложено), к тому же сейчас используется в связке с классом ПостроительОтчета. Я бы выложил, не жалко, но выковырять всё это из текущей среды сложновато будет. (6) Нет, это никогда не было нужно. И слава богу :) |
|||
8
Dolly_EV
28.12.12
✎
09:32
|
(4) дык когда я перебираю тзОст - у меня наверху группы - по ним тоже нужны итоги в разрезе складов - а до складов еще неизвестно сколько уровней вниз через тзПотомки... как-то вторую таблицу надо делать из сгруппированной обратно в "плоскую" и индекс в ней по Товар,Склад
"- при выводе группировки Склад цикл не по таблице, а по сзСклады" - это-то как раз понятно |
|||
9
Dolly_EV
28.12.12
✎
09:34
|
буду смотреть "ИтогиПоГруппировкам"
(7) "Я бы выложил, не жалко" может все же выковыряешь? )) |
|||
10
Скользящий
28.12.12
✎
09:39
|
Я такие вещи обычно в БВК_ОтчетПоТЗ.ert http://infostart.ru/public/14794/?ref=174 вывожу, он красиво группирует обычно. Посмотри, может то что надо.
|
|||
11
ADirks
28.12.12
✎
10:43
|
(8) а, вон как... Ну можно конечно налепить колонок типа "Родитель_N" по количеству уровней, и по ним фильтровать, но это изврат какой-то.
В любом случае лучше все эти итоги считать в процессе вывода. И понятнее, и затрат меньше. Только вот итогов по иерархии в том классе нету, ибо не надо никогда было. Поищи на ИС, там этого добра есть. |
|||
12
Dolly_EV
28.12.12
✎
10:47
|
(11) да вот уже думаю родителей в запросе вытащить и сгруппировать там... только как вытащить всех? (Родитель.Родитель.Родитель....)
|
|||
13
Mikeware
28.12.12
✎
10:51
|
(12) сделай уже через квериконсоль, и не парь мосг.
|
|||
14
Dolly_EV
28.12.12
✎
10:56
|
(13) чем мну поможет квериконсоль?
|
|||
15
ADirks
28.12.12
✎
11:01
|
можно слепить такой вот подзапрос
|SELECT | Coalesce(Грп3.ID, Грп2.ID, Грп1.ID, $ПустойИД) Родитель, | | Грп1.ID Грп1, | Грп2.ID Грп2, | Грп3.ID Грп3 |FROM | спрНоменклатура Грп1 | LEFT JOIN спрНоменклатура Грп2 ON | Грп2.ParentID = Грп1.ID | AND Грп2.IsFolder = 1 | LEFT JOIN спрНоменклатура Грп3 ON | Грп3.ParentID = Грп2.ID | AND Грп3.IsFolder = 1 |WHERE | Грп1.IsFolder = 1 | AND Грп1.ParentID = $ПустойИД лепить его естественно динамически, по метаданным |
|||
16
Dolly_EV
28.12.12
✎
11:08
|
(15) т.е. это вытянется иерархия групп "сверху-вниз" (правда Coalesce придется мне заменить на CASE, использую класс "ПрямойЗапрос")
но как его потом соединить с запросом остатков чего-то не могу сообразить |
|||
17
ADirks
28.12.12
✎
11:16
|
как-то так
|SELECT | Остатки.Номенклатура, | | Родители.Грп1, | ... |FROM | ( | ... | ) Остатки | LEFT JOIN спрНоменклатура Номенклатура ON Номенклатура.ID = Остатки.Номенклатура | | LEFT JOIN ( | SELECT | Coalesce(Грп3.ID, Грп2.ID, Грп1.ID, $ПустойИД) Родитель, | | Грп1.ID Грп1, | Грп2.ID Грп2, | Грп3.ID Грп3 | FROM | спрНоменклатура Грп1 | LEFT JOIN спрНоменклатура Грп2 ON | Грп2.ParentID = Грп1.ID | AND Грп2.IsFolder = 1 | LEFT JOIN спрНоменклатура Грп3 ON | Грп3.ParentID = Грп2.ID | AND Грп3.IsFolder = 1 | WHERE | Грп1.IsFolder = 1 | AND Грп1.ParentID = $ПустойИД | ) Родители ON Родители.Родитель = Номенклатура.ParentID А почему Coalesce() нельзя? Как-то криво парсится? Кейс уж больно развесистый будет |
|||
18
Mikeware
28.12.12
✎
11:16
|
(14) там все это делается мышкой. или шестью строками кода...
|
|||
19
Dolly_EV
28.12.12
✎
11:22
|
(17) в доке по "ПрямомуЗапросу" нету Coalesce()
|
|||
20
Dolly_EV
28.12.12
✎
11:24
|
(17) получается Грп у меня будет КолвоУровней СпрНоменклатура -1 ?
|
|||
21
ADirks
28.12.12
✎
11:26
|
(19) Зато в SQL есть. Если я правильно понимаю, то такие вещи через парсер ПрямогоЗапроса должны неизменными проходить.
(20) ага, вроде так |
|||
22
Dolly_EV
28.12.12
✎
11:29
|
(21) щас попробую
|
|||
23
Dolly_EV
28.12.12
✎
11:29
|
(21) а в 1SQLite есть?
|
|||
24
ADirks
28.12.12
✎
11:30
|
(23) не знаю, смотри доку
|
|||
25
Dolly_EV
28.12.12
✎
12:27
|
(17) вместо $ПустойИД в Coalesce() как строкой передать?
' ' ? где-то там "0" же еще надо? |
|||
26
ADirks
28.12.12
✎
12:32
|
' 0 '
только зачем? опять парсер не пропускает? |
|||
27
Dolly_EV
28.12.12
✎
12:32
|
(25) отбой, копипаст подвел)) мне надо писать :ПустойИД, а не $ПустойИД )))
|
|||
28
Dolly_EV
28.12.12
✎
12:41
|
Сначала подумал, что раз класс Coalesce() не парсит, то и то, что внутри не парсит)))
Ну чтож, взлетело, но не совсем. При несбалансированной иерархии у элементов вообще нету родителей http://itmages.ru/image/view/822349/88fc208d остался последний пинок в нужном направлении )) вот сам запрос: |ВЫБРАТЬ | Родители.Грп1 КАК [Грп1 $Справочник.Номенклатура] | ,Родители.Грп2 КАК [Грп2 $Справочник.Номенклатура] | ,Родители.Грп3 КАК [Грп3 $Справочник.Номенклатура] | ,РегПарт.Товар КАК [Товар $Справочник.Номенклатура] | ,РегПарт.Склад КАК [Склад $Справочник.МестаХранения] | ,РегПарт.КоличествоОстаток КАК ОстКол | ,$ПоследнееЗначение.Цены.Цена($СпрЦены.ТекущийЭлемент,:лДатаОст~)*РегПарт.КоличествоОстаток КАК ОстСумма | ,$ПоследнееЗначение.Цены.Цена($СпрЦены.ТекущийЭлемент,:лДатаОст~) КАК [Цена $Число.15.2] |ИЗ | $РегистрОстатки.ПартииТоваров(:лДатаОст~, | (Фирма В (ВЫБРАТЬ val ИЗ #глУсловие1) И Товар В (ВЫБРАТЬ val ИЗ #глУсловие2) И 3=3 И 4=4), | (Товар,Склад), | (Количество,Сумма,НДС)) КАК РегПарт |ЛЕВОЕ СОЕДИНЕНИЕ | Справочник.Номенклатура КАК СпрТов $nolock |ПО | $СпрТов.ТекущийЭлемент=РегПарт.Товар |ЛЕВОЕ СОЕДИНЕНИЕ | (SELECT | Coalesce($Грп3.ТекущийЭлемент, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель | ,$Грп1.ТекущийЭлемент КАК Грп1 | ,$Грп2.ТекущийЭлемент КАК Грп2 | ,$Грп3.ТекущийЭлемент КАК Грп3 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock | ON $Грп2.Родитель = $Грп1.ТекущийЭлемент AND $Грп2.ЭтоГруппа = 1 | LEFT JOIN Справочник.Номенклатура КАК Грп3 $nolock | ON $Грп3.Родитель = $Грп2.ТекущийЭлемент AND $Грп3.ЭтоГруппа = 1 |WHERE |$Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД) КАК Родители |ПО | Родители.Родитель=$СпрТов.Родитель |ЛЕВОЕ СОЕДИНЕНИЕ | Справочник.Цены КАК СпрЦены $nolock |ПО $СпрЦены.Владелец = РегПарт.Товар И $СпрЦены.ТипЦен=:лТипЦен И $СпрЦены.ПометкаУдаления = 0 |ГДЕ ОстКол<>0 |
|||
29
ADirks
28.12.12
✎
12:47
|
Ну нет и нет - нестрашно. Пустое значение это же тоже значение.
|
|||
30
Dolly_EV
28.12.12
✎
12:49
|
(29) "Ну нет и нет - нестрашно. Пустое значение это же тоже значение." ?? это о чем?
|
|||
31
ADirks
28.12.12
✎
12:51
|
это про
"При несбалансированной иерархии у элементов вообще нету родителей ... остался последний пинок в нужном направлении" видимо, я не понял проблемы :) |
|||
32
Dolly_EV
28.12.12
✎
12:52
|
(31) на картинке видно ))
|
|||
33
Dolly_EV
28.12.12
✎
12:53
|
сейчас переделал запрос под реальный справочник - 6 уровней, т.е. Грп1,2,3,4,5 - вообще нет родителей :-((... с Грп3 сработало, т.к. в примере реально над элементами как раз три уровня групп было
|
|||
34
Dolly_EV
28.12.12
✎
13:04
|
(33) отменяется, косяк в условии. Осталась только проблема в 29 (на картинке)
|
|||
35
ADirks
28.12.12
✎
13:10
|
А в чём проблема то? В запрос всё попало как положено. В отчёт не выводится что-ли?
|
|||
36
Dolly_EV
28.12.12
✎
13:13
|
(35) так посмотри на картинку
http://itmages.ru/image/view/822349/88fc208d у элемента "Гербовая Особая 0,5" родитель Грп2 = "(01) ЗАО Русский Алкоголь", Родитель.Родитель Грп1 = "1 - Водка" а запрос возвращает все пусто |
|||
37
ADirks
28.12.12
✎
13:21
|
А, всё, дошло. Хотел всех перехитрить, но не вышло...
Придётся всё-таки так джойнить: ( ... ) КАК Родители ПО Родители.Грп3=$СпрТов.Родитель Родители.Грп2=$СпрТов.Родитель Родители.Грп1=$СпрТов.Родитель |
|||
38
Dolly_EV
28.12.12
✎
13:24
|
(37) через ИЛИ наверное?
|
|||
39
ADirks
28.12.12
✎
13:25
|
ага, лишнего стёр, пока копипастил
|
|||
40
varelchik
28.12.12
✎
13:30
|
Как вариант я делаю так:
1.Запрос к остаткам в разрезе Товар Склад. 2.Создаю индекс Склад (уникальный). 3.Выгружаю с список значений. 4.Создаю новую ИТЗ: Товар,Ост+ИдентификаторСклада,Ост+ИдентификаторСкладаN,..... 5.Группирую по товарам 6.Обходим товары добавляем новую строку в новой ИТЗ а по потомкам заполняем колонку ОстИдентификаторСклада нужным значеним. 7.Группируем Новую ИТЗ по Товару. |
|||
41
Dolly_EV
28.12.12
✎
13:35
|
(40) угу, я примерно так и хотел уже делать, но тут подвернулся вариант с прямым запросом))), им вроде красивше получится. Осталось чуть-чуть добить...
(37) теперь лишнее прихватывается :-(( http://itmages.ru/image/view/822445/f6e40e89 группы в Грп3 - это НЕ родители "Гербовая Особая 0,5" - а просто группы на том же уровне | ... КАК Родители |ПО | Родители.Родитель=$СпрТов.Родитель ИЛИ | Родители.Грп1=$СпрТов.Родитель ИЛИ | Родители.Грп2=$СпрТов.Родитель ИЛИ | Родители.Грп3=$СпрТов.Родитель ИЛИ | Родители.Грп4=$СпрТов.Родитель ИЛИ | Родители.Грп5=$СпрТов.Родитель"; |
|||
42
Dolly_EV
28.12.12
✎
13:37
|
+(41) строку:
| Родители.Родитель=$СпрТов.Родитель ИЛИ выкидывал, порядок (1-5, 5-1) менял, не выходит каменный цветок :-( |
|||
43
ADirks
28.12.12
✎
13:37
|
Порядок сравнений поменяй, чтобы снизу вверх было
|
|||
44
ADirks
28.12.12
✎
13:38
|
| ... КАК Родители
|ПО | Родители.Грп5=$СпрТов.Родитель ИЛИ | Родители.Грп4=$СпрТов.Родитель ИЛИ | Родители.Грп3=$СпрТов.Родитель ИЛИ | Родители.Грп2=$СпрТов.Родитель ИЛИ | Родители.Грп1=$СпрТов.Родитель"; |
|||
45
Dolly_EV
28.12.12
✎
13:41
|
(44) см. (42) не катит :-(
|
|||
46
ADirks
28.12.12
✎
13:41
|
Странно, у меня всё пучком
|
|||
47
Dolly_EV
28.12.12
✎
13:43
|
(46) у тебя SQL ?
|
|||
48
ADirks
28.12.12
✎
13:46
|
да
|
|||
49
Mikeware
28.12.12
✎
13:46
|
||||
50
Dolly_EV
28.12.12
✎
13:50
|
(48) проверил и SQL и 1Sqlite: и там и там выхватывает лишнее в Грп3.
Попутно вопрос, почему в SQL нельзя по алиасу в секции WHERE обращаться? в 1Склайт конструкция "ГДЕ ОстКол<>0" прокатывает, а в СКЛ требует "ГДЕ РегПарт.КоличествоОстаток<>0" (на ОстКол ругается "no such column") (49) Mikeware, не, я теперь добью прямым запросом :-)) квериконсоль бум осваивать позже :-)) |
|||
51
ADirks
28.12.12
✎
13:53
|
а попробуй так
| ... КАК Родители |ПО | Родители.Грп5=$СпрТов.Родитель ИЛИ | (Родители.Грп4=$СпрТов.Родитель И Родители.Грп5=$СпрТов.Родитель Is Null) ИЛИ | (Родители.Грп3=$СпрТов.РодительИ Родители.Грп4=$СпрТов.Родитель Is Null) ИЛИ | (Родители.Грп2=$СпрТов.РодительИ Родители.Грп3=$СпрТов.Родитель Is Null) ИЛИ | (Родители.Грп1=$СпрТов.РодительИ Родители.Грп2=$СпрТов.Родитель Is Null)"; похоже, оптимизатор логических выражений условия вычисляет в удобном ему порядке, а не так как написано в тексте |
|||
52
ADirks
28.12.12
✎
13:53
|
| ... КАК Родители
|ПО | Родители.Грп5=$СпрТов.Родитель ИЛИ | (Родители.Грп4=$СпрТов.Родитель И Родители.Грп5 Is Null) ИЛИ | (Родители.Грп3=$СпрТов.РодительИ Родители.Грп4 Is Null) ИЛИ | (Родители.Грп2=$СпрТов.РодительИ Родители.Грп3 Is Null) ИЛИ | (Родители.Грп1=$СпрТов.РодительИ Родители.Грп2 Is Null)"; |
|||
53
Mikeware
28.12.12
✎
13:53
|
(50) "мыши плакали, кололись, но продолжали жрать кактус..."
|
|||
54
Dolly_EV
28.12.12
✎
13:56
|
(53) Да, да именно так))) Но тут же тоже есть над чем голову поломать, и опыт пригодится - скажешь нет? :))
|
|||
55
Mikeware
28.12.12
✎
13:57
|
я с несбалансированной иерархией поизвращался, да забил. кубиком быстрее.
Да еще десяток настроек хранить - вообще лепота. |
|||
56
Mikeware
28.12.12
✎
13:57
|
(54) опыт - он завсегда полезен. кроме бесполезного...
|
|||
57
ADirks
28.12.12
✎
13:59
|
(49) Красивая картинка, и названия знакомые :) У меня тут тоже есть одни, сырами торгуют.
(53) Пусть человек на более низком уровне абстракций разберётся. Это полезно. |
|||
58
Dolly_EV
28.12.12
✎
14:07
|
|ПО
| (Родители.Грп5=$СпрТов.Родитель) ИЛИ | (Родители.Грп4=$СпрТов.Родитель И Родители.Грп5=:ПустойИД) ИЛИ | (Родители.Грп3=$СпрТов.Родитель И Родители.Грп4=:ПустойИД) ИЛИ | (Родители.Грп2=$СпрТов.Родитель И Родители.Грп3=:ПустойИД) ИЛИ | (Родители.Грп1=$СпрТов.Родитель И Родители.Грп2=:ПустойИД)"; не взлетает, вообще все группы пустые :-( |
|||
59
Dolly_EV
28.12.12
✎
14:09
|
(57) у меня картинка - "вкуснее" ))) , хотя у @ Mikeware закуска на уровне ))
|
|||
60
Mikeware
28.12.12
✎
14:23
|
(59) "давайте дружить домами"©
|
|||
61
ADirks
28.12.12
✎
14:32
|
мда... похоже, это всё принципиально не взлетит.
Надо делать временную табличку с избыточным деревом групп, вида: Водка Водка Журавли Водка Маруся можно конечно и подапрос построить с юнионами, но это будет кошмарчик |
|||
62
Dolly_EV
28.12.12
✎
14:35
|
(61) вот как я этого боялся :-( а как все хорошо начиналось .... видимо или (40) или кубы ...
Может все же как-то проще можно, не? (60) да легко!)) |
|||
63
ADirks
28.12.12
✎
14:42
|
во, ужас!
Set NoCount ON SELECT Номенклатура.ID [Товар $Справочник.Номенклатура], Номенклатура.ParentID [РодительТов $Справочник.Номенклатура], Родители.Грп1 [Грп1 $Справочник.Номенклатура], Родители.Грп2 [Грп2 $Справочник.Номенклатура], Родители.Грп3 [Грп3 $Справочник.Номенклатура], Родители.Грп4 [Грп4 $Справочник.Номенклатура], Родители.Грп5 [Грп5 $Справочник.Номенклатура], Родители.Грп6 [Грп6 $Справочник.Номенклатура], Родители.Грп7 [Грп7 $Справочник.Номенклатура], Родители.Грп8 [Грп8 $Справочник.Номенклатура], Родители.Грп9 [Грп9 $Справочник.Номенклатура], Родители.Грп10 [Грп10 $Справочник.Номенклатура], Родители.Родитель [Родитель $Справочник.Номенклатура] FROM спрНоменклатура Номенклатура LEFT JOIN ( SELECT Coalesce(null, null, null, null, null, null, null, null, null, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, null Грп2, null Грп3, null Грп4, null Грп5, null Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, null, null, null, null, null, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, null Грп3, null Грп4, null Грп5, null Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, null, null, null, null, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, null Грп4, null Грп5, null Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, null, null, null, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, null Грп5, null Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, null, null, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, null Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, null, Грп6.ID, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, Грп6.ID Грп6, null Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 LEFT JOIN спрНоменклатура Грп6 ON Грп6.ParentID = Грп5.ID AND Грп6.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, null, Грп7.ID, Грп6.ID, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, Грп6.ID Грп6, Грп7.ID Грп7, null Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 LEFT JOIN спрНоменклатура Грп6 ON Грп6.ParentID = Грп5.ID AND Грп6.IsFolder = 1 LEFT JOIN спрНоменклатура Грп7 ON Грп7.ParentID = Грп6.ID AND Грп7.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, null, Грп8.ID, Грп7.ID, Грп6.ID, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, Грп6.ID Грп6, Грп7.ID Грп7, Грп8.ID Грп8, null Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 LEFT JOIN спрНоменклатура Грп6 ON Грп6.ParentID = Грп5.ID AND Грп6.IsFolder = 1 LEFT JOIN спрНоменклатура Грп7 ON Грп7.ParentID = Грп6.ID AND Грп7.IsFolder = 1 LEFT JOIN спрНоменклатура Грп8 ON Грп8.ParentID = Грп7.ID AND Грп8.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(null, Грп9.ID, Грп8.ID, Грп7.ID, Грп6.ID, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, Грп6.ID Грп6, Грп7.ID Грп7, Грп8.ID Грп8, Грп9.ID Грп9, null Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 LEFT JOIN спрНоменклатура Грп6 ON Грп6.ParentID = Грп5.ID AND Грп6.IsFolder = 1 LEFT JOIN спрНоменклатура Грп7 ON Грп7.ParentID = Грп6.ID AND Грп7.IsFolder = 1 LEFT JOIN спрНоменклатура Грп8 ON Грп8.ParentID = Грп7.ID AND Грп8.IsFolder = 1 LEFT JOIN спрНоменклатура Грп9 ON Грп9.ParentID = Грп8.ID AND Грп9.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' UNION ALL SELECT Coalesce(Грп10.ID, Грп9.ID, Грп8.ID, Грп7.ID, Грп6.ID, Грп5.ID, Грп4.ID, Грп3.ID, Грп2.ID, Грп1.ID, ' 0 ') Родитель, Грп1.ID Грп1, Грп2.ID Грп2, Грп3.ID Грп3, Грп4.ID Грп4, Грп5.ID Грп5, Грп6.ID Грп6, Грп7.ID Грп7, Грп8.ID Грп8, Грп9.ID Грп9, Грп10.ID Грп10 FROM спрНоменклатура Грп1 LEFT JOIN спрНоменклатура Грп2 ON Грп2.ParentID = Грп1.ID AND Грп2.IsFolder = 1 LEFT JOIN спрНоменклатура Грп3 ON Грп3.ParentID = Грп2.ID AND Грп3.IsFolder = 1 LEFT JOIN спрНоменклатура Грп4 ON Грп4.ParentID = Грп3.ID AND Грп4.IsFolder = 1 LEFT JOIN спрНоменклатура Грп5 ON Грп5.ParentID = Грп4.ID AND Грп5.IsFolder = 1 LEFT JOIN спрНоменклатура Грп6 ON Грп6.ParentID = Грп5.ID AND Грп6.IsFolder = 1 LEFT JOIN спрНоменклатура Грп7 ON Грп7.ParentID = Грп6.ID AND Грп7.IsFolder = 1 LEFT JOIN спрНоменклатура Грп8 ON Грп8.ParentID = Грп7.ID AND Грп8.IsFolder = 1 LEFT JOIN спрНоменклатура Грп9 ON Грп9.ParentID = Грп8.ID AND Грп9.IsFolder = 1 LEFT JOIN спрНоменклатура Грп10 ON Грп10.ParentID = Грп9.ID AND Грп10.IsFolder = 1 WHERE Грп1.IsFolder = 1 AND Грп1.ParentID = ' 0 ' ) Родители ON Родители.Родитель = Номенклатура.ParentID WHERE Номенклатура.IsFolder != 1 |
|||
64
ADirks
28.12.12
✎
14:42
|
///******************************** ADirks 28.12.2012 ************
Функция тзп_Родители() сзРод = СоздатьОбъект("СписокЗначений"); сзРод.ДобавитьЗначение("$ПустойИД"); сзГрп = СоздатьОбъект("СписокЗначений"); Для н = 1 По Метаданные.Справочник("Номенклатура").КоличествоУровней Цикл сзРод.ВставитьЗначение(1, "Грп"+н+".ID"); сзГрп.ДобавитьЗначение("Грп"+н+".ID Грп"+н); КонецЦикла; ТекстЗапроса = ""; зпт = ""; сзДжойн = СоздатьОбъект("СписокЗначений"); Для н = 1 По Метаданные.Справочник("Номенклатура").КоличествоУровней Цикл сзРод = СоздатьОбъект("СписокЗначений"); сзРод.ДобавитьЗначение("$ПустойИД"); сзГрп = СоздатьОбъект("СписокЗначений"); Для н1 = 1 По Метаданные.Справочник("Номенклатура").КоличествоУровней Цикл стрГрп = "null"; Если н1 <= н Тогда стрГрп = "Грп"+н1+".ID"; КонецЕсли; сзРод.ВставитьЗначение(1, стрГрп); сзГрп.ДобавитьЗначение(стрГрп+" Грп"+н1); КонецЦикла; Если н > 1 Тогда сзДжойн.ДобавитьЗначение(" | LEFT JOIN спрНоменклатура Грп"+н+" ON | Грп"+н+".ParentID = Грп"+(н-1)+".ID | AND Грп"+н+".IsFolder = 1"); КонецЕсли; ТекстЗапроса = ТекстЗапроса + зпт + " | SELECT | Coalesce("+СписокВСтроку(сзРод, ", ")+") Родитель, | "+СписокВСтроку(сзГрп, ", ")+" | FROM | спрНоменклатура Грп1 | "+СписокВСтроку(сзДжойн, "")+" | WHERE | Грп1.IsFolder = 1 | AND Грп1.ParentID = $ПустойИД"; зпт = " | UNION ALL |"; КонецЦикла; Возврат ТекстЗапроса; КонецФункции ///******************************** ADirks 28.12.2012 ************ //******************************************* Процедура Сформировать() сзРод = СоздатьОбъект("СписокЗначений"); сзДжойн = СоздатьОбъект("СписокЗначений"); нУровней = Метаданные.Справочник("Номенклатура").КоличествоУровней; Для н = 1 По нУровней Цикл сзРод.ДобавитьЗначение("Родители.Грп"+н+" [Грп"+н+" $Справочник.Номенклатура]"); //Если н = нУровней Тогда // сзДжойн.ВставитьЗначение(1, "Родители.Грп"+н+" = Номенклатура.ParentID"); //Иначе // сзДжойн.ВставитьЗначение(1, "(Родители.Грп"+н+" = Номенклатура.ParentID AND Родители.Грп"+(н+1)+" Is Null)"); //КонецЕсли; КонецЦикла; сзДжойн.ВставитьЗначение(1, "Родители.Родитель = Номенклатура.ParentID"); т = "Set NoCount ON | |SELECT | Номенклатура.ID [Товар $Справочник.Номенклатура], | Номенклатура.ParentID [РодительТов $Справочник.Номенклатура], | | "+СписокВСтроку(сзРод, ", | ")+", | Родители.Родитель [Родитель $Справочник.Номенклатура] | |FROM //| ( //| ... //| ) Остатки //| LEFT JOIN спрНоменклатура Номенклатура ON Номенклатура.ID = Остатки.Номенклатура | | спрНоменклатура Номенклатура | | LEFT JOIN ( | "+тзп_Родители()+" | ) Родители ON | "+СписокВСтроку(сзДжойн, " | OR ")+" | |WHERE | Номенклатура.IsFolder != 1 //| and Номенклатура.Descr = 'PROLINE' |"; оЗапрос = СоздатьОбъект("ТОтчет.Запрос"); оЗапрос.ПоказатьТекстЗапроса(т); тз = ЗапросСКЛ.ВыполнитьИнструкцию(т); РедакторТЗ(тз); КонецПроцедуры |
|||
65
Dolly_EV
28.12.12
✎
14:47
|
(63),(64) ипаааатьколотить!!! :-(((
|
|||
66
ADirks
28.12.12
✎
14:48
|
план запроса - ваще улёт :))
ржем тут с товарищем |
|||
67
Dolly_EV
28.12.12
✎
14:56
|
СписокВСтроку дай еще
|
|||
68
Dolly_EV
28.12.12
✎
15:02
|
А, не надо, он у мну глСписокВСтроку()
|
|||
69
antoneus
28.12.12
✎
15:45
|
а ещё можно лепить по колонке на каждый склад
|
|||
70
Dolly_EV
09.01.13
✎
12:52
|
У меня кстати, запросом - так и не взлетело :-(
вот такой запрос получился: |ВЫБРАТЬ | Родители.Грп1 [Грп1 $Справочник.Номенклатура], | Родители.Грп2 [Грп2 $Справочник.Номенклатура], | Родители.Грп3 [Грп3 $Справочник.Номенклатура], | Родители.Грп4 [Грп4 $Справочник.Номенклатура], | Родители.Грп5 [Грп5 $Справочник.Номенклатура], | Родители.Грп6 [Грп6 $Справочник.Номенклатура] |-- ,Родители.Родитель [Родитель $Справочник.Номенклатура] | ,РегПарт.Товар КАК [Товар $Справочник.Номенклатура] | ,РегПарт.Склад КАК [Склад $Справочник.МестаХранения] | ,РегПарт.КоличествоОстаток КАК ОстКол | ,РегПарт.СуммаОстаток+РегПарт.НДСОстаток КАК ОстСумма | ,(РегПарт.СуммаОстаток+РегПарт.НДСОстаток)/РегПарт.КоличествоОстаток КАК [Цена $Число.15.2] |ИЗ | $РегистрОстатки.ПартииТоваров(:лДатаОст~, | (Фирма В (ВЫБРАТЬ val ИЗ #глУсловие1) И Товар В (ВЫБРАТЬ val ИЗ #глУсловие2) И 3=3 И 4=4), | (Товар,Склад), | (Количество,Сумма,НДС)) КАК РегПарт |ЛЕВОЕ СОЕДИНЕНИЕ | Справочник.Номенклатура КАК СпрТов $nolock |ПО | $СпрТов.ТекущийЭлемент=РегПарт.Товар |ЛЕВОЕ СОЕДИНЕНИЕ ( | | SELECT | Coalesce(0, 0, 0, 0, 0, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, 0 Грп2, 0 Грп3, 0 Грп4, 0 Грп5, 0 Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД | UNION ALL | | SELECT | Coalesce(0, 0, 0, 0, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, $Грп2.ТекущийЭлемент Грп2, 0 Грп3, 0 Грп4, 0 Грп5, 0 Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock ON | $Грп2.Родитель = $Грп1.ТекущийЭлемент | AND $Грп2.ЭтоГруппа = 1 | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД | UNION ALL | | SELECT | Coalesce(0, 0, 0, $Грп3.ТекущийЭлемент, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, $Грп2.ТекущийЭлемент Грп2, $Грп3.ТекущийЭлемент Грп3, 0 Грп4, 0 Грп5, 0 Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock ON | $Грп2.Родитель = $Грп1.ТекущийЭлемент | AND $Грп2.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп3 $nolock ON | $Грп3.Родитель = $Грп2.ТекущийЭлемент | AND $Грп3.ЭтоГруппа = 1 | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД | UNION ALL | | SELECT | Coalesce(0, 0, $Грп4.ТекущийЭлемент, $Грп3.ТекущийЭлемент, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, $Грп2.ТекущийЭлемент Грп2, $Грп3.ТекущийЭлемент Грп3, $Грп4.ТекущийЭлемент Грп4, 0 Грп5, 0 Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock ON | $Грп2.Родитель = $Грп1.ТекущийЭлемент | AND $Грп2.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп3 $nolock ON | $Грп3.Родитель = $Грп2.ТекущийЭлемент | AND $Грп3.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп4 $nolock ON | $Грп4.Родитель = $Грп3.ТекущийЭлемент | AND $Грп4.ЭтоГруппа = 1 | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД | UNION ALL | | SELECT | Coalesce(0, $Грп5.ТекущийЭлемент, $Грп4.ТекущийЭлемент, $Грп3.ТекущийЭлемент, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, $Грп2.ТекущийЭлемент Грп2, $Грп3.ТекущийЭлемент Грп3, $Грп4.ТекущийЭлемент Грп4, $Грп5.ТекущийЭлемент Грп5, 0 Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock ON | $Грп2.Родитель = $Грп1.ТекущийЭлемент | AND $Грп2.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп3 $nolock ON | $Грп3.Родитель = $Грп2.ТекущийЭлемент | AND $Грп3.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп4 $nolock ON | $Грп4.Родитель = $Грп3.ТекущийЭлемент | AND $Грп4.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп5 $nolock ON | $Грп5.Родитель = $Грп4.ТекущийЭлемент | AND $Грп5.ЭтоГруппа = 1 | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД | UNION ALL | | SELECT | Coalesce($Грп6.ТекущийЭлемент, $Грп5.ТекущийЭлемент, $Грп4.ТекущийЭлемент, $Грп3.ТекущийЭлемент, $Грп2.ТекущийЭлемент, $Грп1.ТекущийЭлемент, :ПустойИД) КАК Родитель, | $Грп1.ТекущийЭлемент Грп1, $Грп2.ТекущийЭлемент Грп2, $Грп3.ТекущийЭлемент Грп3, $Грп4.ТекущийЭлемент Грп4, $Грп5.ТекущийЭлемент Грп5, $Грп6.ТекущийЭлемент Грп6 | FROM | Справочник.Номенклатура КАК Грп1 $nolock | LEFT JOIN Справочник.Номенклатура КАК Грп2 $nolock ON | $Грп2.Родитель = $Грп1.ТекущийЭлемент | AND $Грп2.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп3 $nolock ON | $Грп3.Родитель = $Грп2.ТекущийЭлемент | AND $Грп3.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп4 $nolock ON | $Грп4.Родитель = $Грп3.ТекущийЭлемент | AND $Грп4.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп5 $nolock ON | $Грп5.Родитель = $Грп4.ТекущийЭлемент | AND $Грп5.ЭтоГруппа = 1 |LEFT JOIN Справочник.Номенклатура КАК Грп6 $nolock ON | $Грп6.Родитель = $Грп5.ТекущийЭлемент | AND $Грп6.ЭтоГруппа = 1 | WHERE | $Грп1.ЭтоГруппа = 1 | AND $Грп1.Родитель = :ПустойИД) КАК Родители |ПО | Родители.Родитель = $СпрТов.Родитель |ГДЕ РегПарт.КоличествоОстаток<>0 И в результате таже проблема - у несбалансированного элемента - в родителях пусто :-(( Сделал в итоге прилеплением колонок по количеству складов, вот код ежли кому пригодится: //** Группировка/транспонирование по складам //Колонки тзОст: "Товар,"Склад" СтрКолонкиСумм тзОст.ДобавитьИндекс("индУникСклад","Склад",1); лСписСкладов=СоздатьОбъект("СписокЗначений"); тзОст.Выгрузить(лСписСкладов,"индУникСклад","Склад",1); тзОст.ДобавитьИндекс("индТоварСклад","*Товар,*Склад",1); //Сообщить("Уник: "+тзОст.ИндексУникален("индТоварСклад")); лКолСкладов=лСписСкладов.РазмерСписка(); лКолКолонок=лСписКолонок.РазмерСписка(); тзОстГрупп=тзОст.Копия(0,1); тзОстГрупп.УдалитьКолонку("Склад"); тзОстГрупп.Группировать("индТовар:*Товар",СтрСумм,0); СтрСуммТЗ=""; Для сч=1 По лКолСкладов Цикл Для счк=1 По лКолКолонок Цикл имяКолонки=""+сч+лСписКолонок.ПолучитьЗначение(счк); тзОстГрупп.НоваяКолонка(имяКолонки); СтрСуммТЗ=СтрСуммТЗ+имяКолонки+","; КонецЦикла; КонецЦикла; СтрСуммТЗ=Лев(СтрСуммТЗ,СтрДлина(СтрСуммТЗ)-1); сзПоиск=СоздатьОбъект("СписокЗначений"); тзОстГрупп.ВыбратьСтроки(); Пока тзОстГрупп.ПолучитьСтроку() = 1 Цикл сзПоиск.Установить("Товар",тзОстГрупп.Товар); Для сч=1 По лКолСкладов Цикл имяСклада=лСписСкладов.ПолучитьЗначение(сч); сзПоиск.Установить("Склад",имяСклада); Для счк=1 По лКолКолонок Цикл имяКолонки=лСписКолонок.ПолучитьЗначение(счк); Если тзОст.НайтиСтроку("индТоварСклад",сзПоиск,0,1)=0 Тогда знчПоиск=0; Иначе знчПоиск=тзОст.ПолучитьЗначение(,имяКолонки); КонецЕсли; тзОстГрупп.УстановитьЗначение(,""+сч+имяКолонки,знчПоиск); КонецЦикла; КонецЦикла; КонецЦикла; тзОст=""; //освобождаем память тзОстГрупп.УдалитьИндекс("индТовар"); СтрСуммТЗ=СтрСумм+","+СтрСуммТЗ; тзОстГрупп.Группировать("индТовар:*&Товар",СтрСуммТЗ,0); Далее - вывод в mxl рекурсией... |
|||
71
Dolly_EV
09.01.13
✎
13:13
|
О! Автор запроса пришел))
|
|||
72
Ёпрст
09.01.13
✎
13:16
|
для скульлайта, Орефков слепил расширенный аналог coalesce.. и приводил пример получения иерархии справочника с его помощью.
Хотя, в ИТЗ и так всё можно слепить (если выборка не большая) |
|||
73
Dolly_EV
09.01.13
✎
13:20
|
(72) "(если выборка не большая)" - в том и дело... для текущей ИБ манипуляции с заполнением/группировкой ИТЗ при максимуме складов/товаров отожрали 300 Мб, но если вс е умножить хотя бы на 5 - все рухнет
|
|||
74
Dolly_EV
09.01.13
✎
13:21
|
"и приводил пример получения иерархии справочника с его помощью" - можно носом ткнуть? на 1cpp в ветке по скулайту?
|
|||
75
Ёпрст
09.01.13
✎
13:21
|
coalesceex
|
|||
76
Ёпрст
09.01.13
✎
13:23
|
такое имя функции, если не ошибаюсь, позволяет возвращать первое по нумеру не нулевое значение
|
|||
77
Mikeware
09.01.13
✎
13:24
|
(73) мозготрах!
|
|||
78
Dolly_EV
09.01.13
✎
13:25
|
(77) :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |