|
Надо сделать ДеревоЗначений из 4 справочников. | ☑ | ||
---|---|---|---|---|
0
student2012
05.02.12
✎
18:46
|
Здравствуйте! Есть 4 справочника: Цеха, Участки(владелец Цеха), Бригады(владелец Участки), Звено(владелец Бригады). Нужно в обработке на форме вывести в дерево значений справочники и элементы.
Написал запрос, но выводит криво. Как должен правильно выглядеть запрос? Спасибо. База (http://ifolder.ru/28521704)130 кб. Мой запрос: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Цеха.Наименование КАК Цех, | Участки.Наименование КАК Участок, | Бригады.Наименование КАК Бригада, | Звено.Наименование КАК Звено |ИЗ | Справочник.Звено КАК Звено | Правое СОЕДИНЕНИЕ Справочник.Бригады КАК Бригады | Правое СОЕДИНЕНИЕ Справочник.Участки КАК Участки | Правое СОЕДИНЕНИЕ Справочник.Цеха КАК Цеха | ПО Участки.Владелец = Цеха.Ссылка | ПО Бригады.Владелец = Участки.Ссылка | ПО Звено.Владелец = Бригады.Ссылка |ИТОГИ | | ПО | Цех, Участок, Бригада,Звено"; Результат = Запрос.Выполнить(); Выгрузка = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЭлементыФормы.ТабличноеПоле.Дерево = Истина; ЭлементыФормы.ТабличноеПоле.Значение = Выгрузка; ЭлементыФормы.ТабличноеПоле.СоздатьКолонки(); ЭлементыФормы.ТабличноеПоле.ОбновитьСтроки(); |
|||
1
DrShad
05.02.12
✎
19:17
|
а почему ПРАВОЕ?
|
|||
2
DrShad
05.02.12
✎
19:18
|
наоборот нужно делать
|
|||
3
student2012
05.02.12
✎
20:01
|
Если сделать Левое то в дереве будет выводиться только Цех1.
|
|||
4
DrShad
05.02.12
✎
20:03
|
а если все изначально соединять с цехами через левое соединение?
|
|||
5
student2012
05.02.12
✎
20:05
|
не совсем понял что значит изначально?
|
|||
6
student2012
05.02.12
✎
20:41
|
При левом выводит так:
http://s018.radikal.ru/i518/1202/2d/a780e214c4cd.png При правом выводит так: http://s018.radikal.ru/i501/1202/99/893cd68a2044.png Надо чтобы выводило так: http://s017.radikal.ru/i439/1202/64/3cc0797859f8.png |
|||
7
Кокос
05.02.12
✎
20:48
|
попробуй что нибудь типа ВЫБОР КОГДА НЕ ЕстьНулл(Бригада) ТОГДА Участок ИНАЧЕ ВЫБОР КОГДА НЕ ЕСТЬНУЛЛ(Участок) ТОГДА Участок ИНАЧЕ ЦЕХ КОНЕЦ КОНЕЦ КОНЕЦ КАК УзелДерева
|
|||
8
Кокос
05.02.12
✎
20:48
|
только код неточный.:) ну ты мысль понял :) итоги только по узелдерева собирай
|
|||
9
Кокос
05.02.12
✎
20:49
|
ну и со звена начни. я его забыл указать
|
|||
10
DrShad
05.02.12
✎
20:54
|
(7) это то накуя?
|
|||
11
Кокос
05.02.12
✎
20:55
|
(10) ну там в целевой таблице разные элементы в одном узле. вроде должно сработать. :)
|
|||
12
DrShad
05.02.12
✎
20:58
|
тут тогда соединения некатят
|
|||
13
DrShad
05.02.12
✎
21:03
|
и это уже не дерево а собственная иерархия справочников описанная в книге Хрусталевой
|
|||
14
Кокос
05.02.12
✎
21:11
|
(12) ну судя по результату у него почти получилось. только нет корневого узла. может ему там не ИТОГИ надо а Группировку.
|
|||
15
DrShad
05.02.12
✎
21:12
|
да нет соединение даст все равно 4 поля, а нужно 1, так что тут через объединение наборов
|
|||
16
student2012
05.02.12
✎
21:14
|
А можно пример, я не понимаю.
|
|||
17
Кокос
05.02.12
✎
21:15
|
(15) ну да. но в прицнипе если сделать как у меня узловое поле и в табличной форме вывода дерева вырубить остальные колонки то будет результат как надо выглядеть :)
|
|||
18
student2012
06.02.12
✎
00:45
|
что за ошибка?
http://s018.radikal.ru/i509/1202/af/7fd50e6b0e2a.png |
|||
19
DrShad
06.02.12
✎
01:05
|
мля, нет такого в языке запросов ЕстьNULL() юзай
|
|||
20
Кокос
06.02.12
✎
01:42
|
(18) ты язык запросов изучи. мне просто лень было переключать на английский :)
|
|||
21
Кокос
06.02.12
✎
01:43
|
там еще много что нужно по другому написать :)))
|
|||
22
student2012
06.02.12
✎
01:49
|
да, это я понял :)
|
|||
23
student2012
07.02.12
✎
21:29
|
При таком запросе:
ВЫБРАТЬ РАЗЛИЧНЫЕ Звено.Владелец.Владелец.Владелец.Наименование КАК Цех, Звено.Владелец.Владелец.Наименование КАК Участок, Звено.Владелец.Наименование КАК Бригада, Звено.Наименование КАК Звено ИЗ Справочник.Цеха КАК Цеха ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Участки.Владелец КАК Владелец, Участки.Наименование КАК Наименование, Участки.Ссылка КАК Ссылка ИЗ Справочник.Участки КАК Участки) КАК Участки ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Бригады.Владелец КАК Владелец, Бригады.Наименование КАК Наименование, Бригады.Ссылка КАК Ссылка ИЗ Справочник.Бригады КАК Бригады) КАК Бригады ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Звено.Ссылка КАК Ссылка, Звено.Владелец КАК Владелец, Звено.Наименование КАК Наименование ИЗ Справочник.Звено КАК Звено) КАК Звено ПО Бригады.Ссылка = Звено.Владелец ПО Участки.Ссылка = Бригады.Владелец ПО Цеха.Ссылка = Участки.Владелец УПОРЯДОЧИТЬ ПО Цеха.Наименование, Участок, Бригада, Звено ИТОГИ ПО Цеха.Ссылка, Участки.Ссылка, Бригады.Ссылка, Звено.Ссылка результат такой: http://s018.radikal.ru/i507/1202/6e/12661641fb84.png |
|||
24
student2012
08.02.12
✎
21:13
|
up
|
|||
25
student2012
13.02.12
✎
18:52
|
up!
|
|||
26
student2012
13.02.12
✎
19:19
|
может кто подскажет почему при выполнении последнего запроса в первом столбце узлы дерева пустые (только плюсики)?
|
|||
27
vyaz
13.02.12
✎
19:48
|
третья картинка в (6) точно правильная? в консоли запросов в одной колонке разные типы?
|
|||
28
student2012
13.02.12
✎
19:55
|
это я сам в paint'е нарисовал. это так должен выглядеть результат. Или так нельзя сделать?
|
|||
29
student2012
13.02.12
✎
19:57
|
или нужно в цикле забивать результаты запроса в дерево?
|
|||
30
vyaz
13.02.12
✎
20:02
|
(29) если в дереве должна быть одна колонка, то в цикле
|
|||
31
Vladal
13.02.12
✎
20:04
|
Погляди-ка сюда: http://infostart.ru/public/72380/
|
|||
32
student2012
13.02.12
✎
20:08
|
ок, спасибо за наводку.
|
|||
33
vyaz
13.02.12
✎
20:24
|
забираю слова из 30 взад)))
|
|||
34
student2012
13.02.12
✎
20:28
|
#33 почему?
|
|||
35
vyaz
13.02.12
✎
20:35
|
(34) поэтому http://files.mail.ru/HBIMRS?t=1 ))) это тест на твоих данных, чот я затупил про выбор в итогах
|
|||
36
vyaz
13.02.12
✎
20:37
|
+35 но все равно в жизни я бы сделал в цикле, уж сильно изъеб@cто будет писать запрос такой
|
|||
37
BOZKURT
13.02.12
✎
20:43
|
(0) Сто лет к 1С не подходил, но вот чёта загорелся, вот результат:
Выбрать Ссылка.Владелец.Владелец.Владелец Как Цех, Ссылка.Владелец.Владелец Как Участок, Ссылка.Владелец Как Бригада, Ссылка как Звено Из Справочник.Звено Упорядочить по Цех, Участок, Бригада, Звено Итоги по Цех, Участок, Бригада, Звено |
|||
38
vyaz
13.02.12
✎
20:51
|
(37) шляпа твой запрос))) а если есть участок без бригад и звеньев? ну и речь о том, чтоб всю иерархию в одну колонку пихнуть.
ПС: Теперь понятно как, но уже лень))) |
|||
39
student2012
13.02.12
✎
20:53
|
(37) результат вашего запроса такой:
http://i067.radikal.ru/1202/fe/d4613420bdcd.png |
|||
40
student2012
13.02.12
✎
20:54
|
(38) может хоть на словах объясните?
|
|||
41
vyaz
13.02.12
✎
21:00
|
(40) на моей картинке в первой колонке видно сначала цех 1, потом участок 1, что достигается конструкцией ИТОГИ ВЫБОР КОГДА ...
твоя задача получить таблицу в которой есть все возможные сочетания цехов, участков, звеньев, бригад, а потом по этой таблице сделать итоги с ВЫБОР КОГДА вложенным друг в друга. как то так. |
|||
42
student2012
13.02.12
✎
21:02
|
(41) спасибо
|
|||
43
vyaz
13.02.12
✎
21:03
|
+41 либо завести пятую колонку, которая будет заполняться от того, что в предыдущих четырех есть нуль, так даж проще
|
|||
44
BOZKURT
13.02.12
✎
21:05
|
(38) точно, я ж говорю, забыл....
Выбрать спрЦех.Ссылка Как Цех, спрУчасток.Ссылка Как Участок, спрБригада.Ссылка Как Бригада, спрЗвено.Ссылка как Звено Из Справочник.Цех как спрЦех Левое соединение Справочник.Участок как спрУчасток по спрУчасток.Владелец = спрЦех.Ссылка Левое соединение Справочник.Бригада как спрБригада по спрБригада.Владелец = спрЦех.Ссылка Левое соединение Справочник.Звено как спрЗвено по спрЗвено.Владелец = спрЦех.Ссылка Упорядочить по Цех, Участок, Бригада, Звено Итоги по Цех, Участок, Бригада, Звено |
|||
45
BOZKURT
13.02.12
✎
21:07
|
(44)+ нее, тоже фигня получилась, нуиванах, забыл, и нехочу вспоминать..))
|
|||
46
vyaz
13.02.12
✎
21:09
|
(45) совсем забыл))))
|
|||
47
student2012
27.02.12
✎
15:34
|
при таком запросе
ВЫБРАТЬ Цеха.Наименование КАК Цех, Участки.Наименование КАК Участок, Бригады.Наименование КАК Бригада, Звено.Наименование КАК Звено ИЗ Справочник.Цеха КАК Цеха ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Участки КАК Участки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Бригады КАК Бригады ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Звено КАК Звено ПО Звено.Владелец = Бригады.Ссылка ПО Бригады.Владелец = Участки.Ссылка ПО Участки.Владелец = Цеха.Ссылка ИТОГИ ВЫБОР КОГДА Звено.Наименование ЕСТЬ НЕ NULL ТОГДА Звено.Наименование КОГДА Бригады.Наименование ЕСТЬ НЕ NULL ТОГДА Бригады.Наименование КОГДА Участки.Наименование ЕСТЬ НЕ NULL ТОГДА Участки.Наименование КОГДА Цеха.Наименование ЕСТЬ НЕ NULL ТОГДА Цеха.Наименование КОНЕЦ КАК Цех ПО Цех, Участок, Бригада, Звено Такой результат : http://s002.radikal.ru/i198/1202/24/db57c234bb07.png Что нужно исправить чтобы получить необходимый результат?? |
|||
48
student2012
27.02.12
✎
16:39
|
help!
|
|||
49
student2012
27.02.12
✎
20:42
|
кто-нибудь!
|
|||
50
student2012
04.03.12
✎
17:35
|
апну
|
|||
51
Fragster
гуру
04.03.12
✎
17:37
|
(50) соединяй не с 1 таблицей, а с таблицей- владельцем. осиль уже консоль запросов.
|
|||
52
student2012
04.03.12
✎
17:48
|
51 типа такого?
ВЫБРАТЬ Звено.Владелец.Владелец.Владелец.Наименование КАК Цех, Звено.Владелец.Владелец.Наименование КАК Участок, Звено.Владелец.Наименование КАК Бригада, Звено.Наименование КАК Звено ИЗ Справочник.Звено КАК Звено |
|||
53
Fragster
гуру
04.03.12
✎
17:49
|
(52) ну хотя бы так
|
|||
54
Fragster
гуру
04.03.12
✎
17:49
|
хотя в таком случае не выберуться элементы верхнего уровня, у которых неполная иерархия
|
|||
55
student2012
04.03.12
✎
17:51
|
(54) да, пробовал.
в конструкции выбор проблема вроде. |
|||
56
Fragster
гуру
04.03.12
✎
17:52
|
(55) осиль уже конструктор по нормальному
|
|||
57
Fragster
гуру
04.03.12
✎
17:52
|
да и нафига тебе "выбор"?
|
|||
58
student2012
04.03.12
✎
17:55
|
(57)в (31) показали пример у него получилось. У меня тоже почти получилось, http://s002.radikal.ru/i198/1202/24/db57c234bb07.png.
|
|||
59
student2012
04.03.12
✎
17:55
|
только почему то в цех 1 правильно выводит. а в остальных цехах неправильно
|
|||
60
student2012
04.03.12
✎
17:56
|
(59) *почти правильно
|
|||
61
Fragster
гуру
04.03.12
✎
18:06
|
ты текст запроса специально не показываешь?
|
|||
62
student2012
04.03.12
✎
18:10
|
(61) в (47) текст
|
|||
63
Fragster
гуру
04.03.12
✎
18:12
|
(62) в (47) - фигня, прочитай (51) еще раз, делай соединения через конструктор
|
|||
64
student2012
04.03.12
✎
18:15
|
(63) читать то читал, только мало что понял. первая таблица это Цеха?
|
|||
65
Fragster
гуру
04.03.12
✎
18:17
|
ну да, ты цепляешь все к цехам, а надо - цеплять к таблице-владельцу.
ну и сделай отдельное вычисляемое поле и по нему уже итоги |
|||
66
Fragster
гуру
04.03.12
✎
18:17
|
для начала вообще ВЫБОР убери
|
|||
67
student2012
04.03.12
✎
18:25
|
(66) а разве без Выбора получится вывести все справочники в 1 колонку?
|
|||
68
Fragster
гуру
04.03.12
✎
18:29
|
(67) ты пока без него попробуй, да
|
|||
69
Fragster
гуру
04.03.12
✎
18:29
|
пусть тебе выведет как надо но не в ё колонку
|
|||
70
echo77
04.03.12
✎
18:31
|
Я ни хера не пойму в чем вопрос: вроде бы дерево правильно строится...
|
|||
71
student2012
04.03.12
✎
18:40
|
(70) неправильно. Звено 1 содержит в себе Цех 1. Цех 5 содержит в себе Цех 5. На картинке этого не видно
|
|||
72
student2012
04.03.12
✎
18:43
|
(70) вот так: http://s018.radikal.ru/i518/1203/46/a180f7a1b446.png
|
|||
73
echo77
04.03.12
✎
18:51
|
По звену итоги не делай и все
|
|||
74
echo77
04.03.12
✎
18:54
|
А если бригад нет на участке... то все равно разворачивает группировку участок... :-/
надо постобработкой дерева значений фигню убирать |
|||
75
student2012
04.03.12
✎
18:55
|
(73) ошибка будет :http://s017.radikal.ru/i425/1203/61/9c203958e966.png
|
|||
76
student2012
04.03.12
✎
18:56
|
(74) что такое постобработка дерева?
|
|||
77
echo77
04.03.12
✎
19:03
|
(76) это обработка дерева значений после того как оно получено из запроса
|
|||
78
echo77
04.03.12
✎
19:41
|
Вроде так это делается: http://depositfiles.com/files/bsn6hkh19
|
|||
79
student2012
04.03.12
✎
20:06
|
(78) большое спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |