![]() |
|
Упорядочивание данных в запросе | ☑ | ||
---|---|---|---|---|
0
Darklight
21.05.12
✎
09:05
|
Hello PIPL
У меня вот возник любопытный вопросик про запросам в 1C А именно, мне хотелось бы написать запрос, который упорядочивал бы выводимые данные (справочника) по следующей схеме: В справочнике есть реквизит "Следующий", указывающий на следующий элемент справочника в цепочке. На первый элемент ссылок нет, на все остальные - есть (по одной на каждый элемент). Упорядочивание должно выстроить элементы в указанную цепочку. Задача немного усложняется тем, что справочник иерархический (есть иерархия элементов) и на каждой ветви иерархии упорядочивание осуществляется отдельно (первый элемент ветви ссылок на себя не имеет, ссылается только по родителю на своего родителя). Всё это нужно реализовать для динамического списка управляемых форм. Это вообще реально штатными средствами реализовать? Или придётся всё загружать в дерево значений, там вручную сортировать и уже затем выводить в динамическом списке! |
|||
1
Cube
21.05.12
✎
09:08
|
(0) Реквизит "Следующий" в справочнике нужен только для сортировки? Больше он никаких функций не выполняет? Тогда на лицо неверное проектирование структуры справочника.
|
|||
2
Darklight
21.05.12
✎
09:11
|
(1)Ну не только для сортировки. Ещё для построения маршрута бизнеспроцесса
|
|||
3
Cube
21.05.12
✎
09:13
|
(2) А зачем тогда в запросе задавать порядок данных? Не проще воспользоваться упорядочиванием динамического списка?
|
|||
4
Darklight
21.05.12
✎
09:16
|
(2)Хотя, может действительно нужно было бы выстроить последовательность по числовым кодам. Просто тогда при ручной перестановке элементов (а это возможно) придётся перестраивать нижестоящие коды - но это, конечно, решаемо.
(3)Ну, я в задаче так и написал - что в итоге нужно динамический список упорядочить - просто я ещё в нём не разбираюсь - вот и спрашиваю - можно ли ;) |
|||
5
Cube
21.05.12
✎
09:18
|
(4) "можно ли" - разрешаю))
Просто сделай динамический иерархический список и в сортировку положи свой реквизит. |
|||
6
Cube
21.05.12
✎
09:19
|
(4) Да, я тоже за строковый реквизит "ПолеДляСортировки" или что-то вроде.
|
|||
7
Darklight
21.05.12
✎
09:20
|
(5)"Доктор" - этом мне действительно поможет?
|
|||
8
Адинэснег
21.05.12
✎
09:24
|
(0) оО
а можно задачу сюда запостить? С цепочкой еще более менее понятно, а вот порядок по ссылкам... |
|||
9
Darklight
21.05.12
✎
09:26
|
(8)Не понял, что запостить?
|
|||
10
Cube
21.05.12
✎
09:27
|
(7) Проще сделать, чем сказать :)
|
|||
11
Darklight
21.05.12
✎
09:36
|
(10)Нее - что-то не получилсоь :(
Создал такую связь (для наглядности) Э1->Э3->Э2-Э4 Она выводится так Э4 Э3 Э1 Э2 Налицо не верная сортировка Элементы Э1..Э4 были созданы последовательно (колонки внуную на форме не упорядочивал) |
|||
12
Адинэснег
21.05.12
✎
09:37
|
(9) ну дерево по ссылкам еще можно представить, а порядок что из себя представляет?
|
|||
13
Cube
21.05.12
✎
09:38
|
(11) Скрины давай.
|
|||
14
Адинэснег
21.05.12
✎
09:39
|
и вообще, если запретить редактирование кода, и потом по нему упорядочивать?
|
|||
15
Адинэснег
21.05.12
✎
09:40
|
а выборку результат запроса обходить иерархически
|
|||
16
Адинэснег
21.05.12
✎
09:40
|
упорядочив по коду
|
|||
17
Darklight
21.05.12
✎
09:45
|
(12) Вроде всё описал. Ссылки - задают упорядоченную цепочку элементов иерархического справочника, упорядочивая элементы в пределах одного уровня одной ветви. Хотя я уже готов смериться с тем, что это не очень удачная мысль. И придётся делать цисловой (или строковой) реквизит для упорядочивая. А при перестановке элементов (изменения порядка пользователем) перестраивать все нижестоящие коды элементов (заново сортируя их) в обоих точках перестановки. Так же при определении маршрута исполнения каждый следующий элемент придётся определять не напрямую по ссылке, а искать по следующему значению поля упорядочивая.
(13) Скрины чего? Я вроде написал что получилось в итоге? Ну, этого и следовало ожидать - 1С вообще не любит упорядочивая по ссылочным полям. В общем архитектуру стоит переделать - это ясно, так что в остальном остался чисто академический вопрос - и всё же хоть как-то извращённого, изощрённо - это можно сделать? |
|||
18
Darklight
21.05.12
✎
09:50
|
(17)Хотя, можно подумать и о сохранении обоих реквизитов (и ссылки на следующий элемент и кода упорядочивая)
|
|||
19
Cube
21.05.12
✎
09:50
|
(17) А, ну да, точно, там же у тебя ссылки... Не, нафиг такую структуру, делай ПолеДляСортировки))
|
|||
20
Ненавижу 1С
гуру
21.05.12
✎
09:50
|
PIPL это что?
|
|||
21
Cube
21.05.12
✎
09:52
|
||||
22
Darklight
21.05.12
✎
09:53
|
(20) 1С: Народ дот ру ;)
|
|||
23
Cube
21.05.12
✎
09:54
|
(22) Дотрёшь, дотрёшь... :D
|
|||
24
Ненавижу 1С
гуру
21.05.12
✎
09:57
|
(21) people <> pipl
|
|||
25
Darklight
21.05.12
✎
09:58
|
(19)Ладно, забьём, раз 1С такие простые вещи делать неможет - значит не надо ;)
|
|||
26
hhhh
21.05.12
✎
10:49
|
(25)+ да, даже элементарная вроде вещь: порезать лук - и то, 1С не может сделать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |