|
Интересная сортировка | ☑ | ||
---|---|---|---|---|
0
Юлианна_Н
01.04.24
✎
17:22
|
Всем привет.
Нужен совет Есть задача от юзеров: "В ПФ УПД нужно выводить номенклатуру в определенной последовательности... первыми выходят номенклатуры с родителем Молочная продукция, после - мороженки и т.д, есть определенный список и там же порядок кто за кем, если кого то в списке нет, то сортировка все равно остается определенной, типа сортировка: а, б, в, г, д... если б нетв товарах, то пропускаем и выводим а,в,г,д" Собсна придумать реализацию пока не получается, точнее не так... не очень хочется сортировать по условиям, ну типа в цикле если - тогда и по тищи раз перемещать номенклатуры вверх-вниз, а как то поуниверсальнее... Моя идея заключается еще на уровне запроса по выборке номенклатуры (два варианта) первый - сразу сформировать выборку по родителям и потом к этой таблице тащить номенклатуру второй - через выбор когда тогда, типа Выбор когда РОдитель равно а тогда 1 если б то 2 (ну или как то так) и потом можно отсортировать сразу по возрастанию и в выборке уже иметь отсортированный список.... Может кто что посоветует более элегантное или, если мои решения не такие оптимизированные, что то "по-легче" ибо говнокодить не особо хотелось бы. Заранее спасибо |
|||
1
Garykom
01.04.24
✎
17:27
|
(0) Задать таблицу сортировки в некоем РС с полем упорядоченным (Номенклатура - Индекс)
В запросах соединять левым (по номенклатуре) с этим РС и сортировать по полю |
|||
2
shuhard
01.04.24
✎
17:26
|
(0) сделай доп.реквизит у номенклатуры и пиши в него фоновым заданием, делать это на "лету" не стоит
|
|||
3
Юлианна_Н
01.04.24
✎
17:28
|
(2) неееее, это ужасно будет и хз дадут ли, номенклатура вся централизована и редактировать никто не даст, тем более признак уже есть - родитель
|
|||
4
Юлианна_Н
01.04.24
✎
17:29
|
(1) да, хранить список есть где (мы сделали некий спр типа констант и функц опций и там есть возможность хранить списки и да, мое первое решение примерно о том же, что бы к списку тащить номенклатуру
|
|||
5
Hmster
01.04.24
✎
17:30
|
(0) создаешь свойство или даже не одно и сортируешь по свойству
|
|||
6
Hmster
01.04.24
✎
17:31
|
(3) родитель сегодня один - завтра другой
|
|||
7
Юлианна_Н
01.04.24
✎
17:32
|
(1) сформировали список - в запросе первое поле что то типа АВТОНОМЕРЗАПИСИ() вторым полем этот список - кладем в ВТ - и потом Номенклатуру к ВТ и у нас и номера будут в зависимости от родителя из списка и номенклатура тут же будет, да, наверное так и сделаю....
|
|||
8
Юлианна_Н
01.04.24
✎
17:32
|
(6) не, такого не будет, повторюсь номенклатура централизована и лежит в 11 базах
|
|||
9
Юлианна_Н
01.04.24
✎
17:33
|
(8) а хранится вообще в другой
|
|||
10
Юлианна_Н
01.04.24
✎
17:36
|
(1) (7) ...и тут же в запросе сортируем, и отладить (в консоле) легче и изменить порядок в котором выводить - тоже удобно
думаю это максимально универсальное решение |
|||
11
Юлианна_Н
01.04.24
✎
17:40
|
(6) и да, если родитель поменяется, то номенклатура в конец попадет да и все, и собсна претензий не будет
|
|||
12
Dmitrii
01.04.24
✎
17:48
|
(3) >> признак уже есть - родитель
Задайте у каждого родителя код справочника таким образом, чтобы нужной сортировке соответствовал: 000001000 - Молочная продукция 000002000 - Мороженки и т.д. В запросе для печатной формы допишите:
|
|||
13
Волшебник
01.04.24
✎
17:50
|
(12) Лучше завести новое поле Порядок
|
|||
14
Dmitrii
01.04.24
✎
18:00
|
(13) Наверное, соглашусь.
Но если коды элементов справочника можно менять, то можно обойтись и без дополнительных полей. К тому же это поле надо будет куда-то выводить или рисовать отдельную форму для его редактирования. Есть свои полюсы и минусы у каждого решения. Нюансы только автор может знать - как в его условиях лучше будет. |
|||
15
Юлианна_Н
01.04.24
✎
18:08
|
(12) (13) итого...
решила все таки уточнить у юзеров что да как и да, не будет какого то ограниченного списка, все касается всей номенклатуры И порядок должен быть как в иерархии самого спр Номенклатура, и, даже если номенклатуру куда то переместят, то ее отображение в УПД так же будет зависеть куда ее переместили (пример с торговым оборудованием, сперва это просто оборудование потом это холодильное оборудование, потом ХО что то там еще и по мере перемещения по родителям отображение будет отличаться) и да, теперь НЕ только в УПД а по большинству ПФ, УПД будет как начало глобальной сортировки :) поэтому было принято решение ввести реквизит типа Порядок в которм будет лежать его порядковый номер (и тут тоже момент, у нас трехуровневая иерархия а сотритовать нужно только родителя номенклатуры, без деда и прадеда, поэтому и заполнение "Порядка" будет своеобразным, а что бы никто ничего не слома - реквизит так же централизуем и вешаем на него ТАБУ, что бы не вертели кто как хочет. |
|||
16
Юлианна_Н
01.04.24
✎
18:09
|
а может и без Порядка, а в лоб как родители лежат в списке - так и будем отображать (с новым реквизитом, как по мне чуть больше гарантий)
|
|||
17
Dmitrii
01.04.24
✎
18:22
|
(16) >> как родители лежат в списке
Это как? Автозачасти Карбюраторы Тормозные колодки Молочная продукция Йогурты Кефиры Мороженки Сметана В каком порядке будет выводиться без учета прародителя? Йогурты Карбюраторы Кефиры Мороженки Сметана Тормозные колодки |
|||
18
Гена
01.04.24
✎
18:26
|
А нельзя просто сортировать по сцепке кодов Род+Эл ?
Конечно перед этим один раз коды папок поменять между собой по заданной иерархии? Тогда не будет проблем с переносами элементов из папки в папку. |
|||
19
Гена
01.04.24
✎
18:51
|
Хотя тогда тяжело будет сличать многостраничную реализацию ПФ и дока.
Итого окончательно как в (12), но с поправкой: не стоит новые коды папкам перебивать, портя нумерацию. Надо просто через один стековый код поменять имеющиеся коды местами в заданной иерархии. Потом стек удалить. Действуйте. |
|||
20
Волшебник
01.04.24
✎
20:29
|
(16) Без Порядка получится беспорядок или автоматизированный хаос
|
|||
21
Asmody
01.04.24
✎
20:32
|
Хранить группы номенклатуры в регистре сведений Порядок уже предлагали?
|
|||
22
Гена
01.04.24
✎
21:05
|
(21) А зачем? Если данная иерархия почти неизменна. До увольнения нынешнего финдира.
|
|||
23
Garykom
01.04.24
✎
22:25
|
(22) Надо быть ленивым и при решении любой задачи сразу думать на будущее
Что если будут два и более финдиров одновременно и каждый хочет свою сортировку? |
|||
24
Garykom
01.04.24
✎
22:26
|
(23)+ А тут просто добавляем колонку - имя юзера и все
|
|||
25
Юлианна_Н
02.04.24
✎
09:19
|
(17)
Выводиться будет БЕЗ прародителей, но в порядке как в списке иерархий Карбюраторы Тормозные колодки Йогурты Кефиры Мороженки Сметана ---------------------------------------- (22) иерархия изменяема, но через тридевятьдесяток согласований (к примеру Родитель быдл равен "Какие то запчасти" а потом его пометили на удал создали новую папку "правильные запчасти" и туда переместили Номенклатуру. но в списке номенклатур новая папка будет лежать в определенном месте, соответственно в этом же порядке и нужно будет выводить номенклатуру, и это всех устраивает --------------------------------------- (23) директоров действительно много, т.к. у каждого ЮЛ свой шеф, своя база, но номенклатурной группой пользуются одинаковой, т.к. она транслируется из вне и у все иерархия +- одинаковая (кто то может не торговать какой то позицией) но в этом случае и в ПФ выводить нечего и сортировка остается удовлетворяемой конкретное ЮЛ. Но да, соглашусь, что желания у каждого свои, на сег день согласовано сделать одинаково для всех, а завтра кто то их ФД потребует иначе. ------------------------------------- (19) думаю, что коды точно трогать не будем (ибо все элементы справочника централизованы), если и будем придумывать "половой признак" то только через новый реквизит, по примеру "Порядок", как советовали ранее, но я бы все таки попробовала без него, т.к. иерархия уже есть, в запросе вывести всех (можно и пронумеровать) и потом к этой таблице привяжем номенклатуру, если что пойдет не так - будем пробовать создавать реквизит (заводить РС для хранения некоего сопоставления папок к номеру - точно не будем, а вдруг команда программистов резко поменяется (после этой задачи ;) ) то новым будет чуть сложнее понять что куда откуда и как. |
|||
26
Юлианна_Н
02.04.24
✎
09:25
|
(20) нам (отделу программистов) УТ-шки достались по наследству, и там уже не идеально. Сейчас у нас руководитель отдела толковый вроде как, постепенно ампутирует говнокоды, но пока только по конфе (основной) а еще куча расширений наплодили, динамические подписки на события, печатки и обработки...ужс
но мы стараемся (если чуть похвастаться) я, собсна, поэтому и спросила как будет лучше, что бы внести капельку света в ПФ. |
|||
27
АгентБезопасной Нацио
02.04.24
✎
09:56
|
(25) а как упорядочен "список иерархий"? Т.е. список родителей верхнего уровня? Его ведь можно как минимум упорядочить по коду, по наименованию, и по гуиду? Чем задается порядок? Чем определяется порядок номенклатуры, принадлежащей одной группе?
А вообще, задачка выводить в порядке групп первого уровня - несложная |
|||
28
Юлианна_Н
02.04.24
✎
11:58
|
(27) самый верхний уровень:
01 Наименование 02 Наименование ... 07 наименование В 01 подчиненные даже не по алфавиту и не по коду, скорее всего по дате создания (нет закономерности) В 05 подчиненные так же: - 01 Наименование подчин - 02 --//-- - ... - 14 Наименование подчиненного Внутри этих так же как то рандомно, к примеру 01 подчиненных имеет еще два вхождения групп, а вот 13 и 14 - последние в иерархии, внутри уже лежат элементы Итого Родителей, которые имеют подчиненными саму номенклатуру 132 штуки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |