|
Иерархию справочника перенести в реквизиты | ☑ | ||
---|---|---|---|---|
0
on2
10.09.20
✎
12:55
|
Всем привет!
Любопытная задача есть, подскажите ребята как ее лучше реализовать. Что бы это было удобно реализовано в интерфейсе. В общем есть справочник в нем куча папок (групп), Справочник выстроен в определенной иерархии. Мне нужно избавиться от зависимости этой т.е. затащить понятие иерархии в реквизиты. например, Справочник состоит из 3 вложенностей иерархии (в самой последней расположен элемент): Верхняя группа - "Класс", группа в классе называется например "ПОдкласс", в подклассе группы называются "Типы". На элементе нужно создать три реквизита: "Класс", "Подкласс", "Группа". так что бы у группы была зависимость от выбранного подкласса, а у подкласса зависимость от класса. Каким механизмом правильнее реализовать такое? Кто что думает? |
|||
1
Garykom
гуру
10.09.20
✎
12:58
|
(0) >Каким механизмом правильнее реализовать такое?
нанять программиста |
|||
2
Базис
naïve
10.09.20
✎
13:01
|
Можно сделать через иерархические теги, можно через существующие поля (наверное, даже артикул).
|
|||
3
lubitelxml
10.09.20
✎
13:02
|
зачем?
|
|||
4
ASU_Diamond
10.09.20
✎
13:04
|
Реквизит Родитель?
|
|||
5
Rovan
гуру
10.09.20
✎
13:11
|
(0) программное формирование Дерева значений на форме
|
|||
6
CaIIIka
10.09.20
✎
13:12
|
Просто так не получится. Придется справочник новый создать, где будет указана настройка той самой новой иерархии трех видов элементов. В нем описать все зависимости одних элементов от других (я так понимаю "Класс", "Подкласс", "Группа" не так часто меняются). А в исходном справочнике настроить динамический список так, чтобы при отображении все это учитывалось. Довольно непросто все это будет.
Проще фильтры сделать по трем составляющим на форме списка. |
|||
7
ДенисЧ
10.09.20
✎
13:35
|
Есть хороший инструмент. Правда, сторонний, не 1сный...
Называется hands.exe. Он может сделать любые преобразования. Правда, часто к нему нужен особый драйвер... barin.sys |
|||
8
ДенисЧ
10.09.20
✎
13:35
|
*brain.sys
|
|||
9
trad
10.09.20
✎
13:40
|
(7) у некоторых они вытеснены conceit.dll огромного размера
|
|||
10
mmg
10.09.20
✎
13:55
|
(0) Не надо три реквизита. Достаточно одного.
|
|||
11
on2
10.09.20
✎
14:08
|
На самом деле у меня 5 иерархий))))
Основная цель - при выборе верхнего уровня - система должна предлагать пользователю варианты нижестоящего уровня. При заполнении реквизита : "Класс", в списке реквизита "Подкласс" должны отобразиться именно те подклассы, которые связаны с конкретным классом. (2) - нужно что бы у пользователя гемороя был минимум при заполнении всего этого (4) - реквизит родитель (7) - нужно стандартными |
|||
12
zuza
10.09.20
✎
14:15
|
(11) подчиненные справочники, не?
|
|||
13
Вафель
10.09.20
✎
14:18
|
(11) у подкласса должна быть ссылка на класс
а ля контрагенты - договоры |
|||
14
on2
10.09.20
✎
14:30
|
(13) - аля также надо сделать или аналогично
(12) как вариант |
|||
15
fisher
10.09.20
✎
14:40
|
(0) Твоя иерархия полностью укладывается в стандартную. Поэтому не надо никаких "доп-реквизитов" и прочей ереси. Ты хочешь просто удобную для пользователя форму подбора. Ее и делай.
Можно так, например: слева - дерево групп, справа - список элементов. Пользователь слева кликает на группе любого уровня - справа отображаются все элементы в иерархии выбранной группы. |
|||
16
ASU_Diamond
10.09.20
✎
15:02
|
(11) в чём смысл в отдельных реквизитах указывать каждый уровень?
|
|||
17
vova1122
10.09.20
✎
15:29
|
(0) У меня похожая задача была. Или может не то....
И так. Суть вопроса была адрес контрагента разложить по полочкам (вернее вводить). На форме справочника Контпгенты отдельные реквизиты; АдрессОбласть, АдресРайон, АдрессНасПункт, АдрессУлица, АдрессДом, АдрессКвартира. Улицы находятся в иерархии Обл/район/НасПункт. На форме когда пользователь выбирает населенный пункт. То улицу может выбрать только из нужной папки (которая автоматически открывается в нужном месте иерархии. А вышестоящее реквизиты при этом автоматически заполняются с учетом иерархии. Для пользователей это удобно, и ошибок в полном адресе небудет. |
|||
18
on2
10.09.20
✎
15:38
|
(17) расскажи как реализовал. Задача точно такая же.
|
|||
19
on2
10.09.20
✎
15:39
|
(16) долгая история.
|
|||
20
vova1122
10.09.20
✎
15:48
|
(18) Да уже все почти рассказал. Справочник Адреса. В нем папки (верхней уровень- Область. В каждой области папки Районы.....) (Для папки нужен создать дополнительный реквизит, чтобы понимать на коком уровне иерархии находишься и не дать ваыбрать в реквизит Область например район).
А дальше все просто. На форме справочника Выбрал например район (если облать не заполнена, то выбирается с корня справочника, а если заполнена то по событию "НачалоВыбора" |
|||
21
vova1122
10.09.20
✎
15:51
|
Группа=Справочники.Адреса.НайтиПоКоду(адрОбласть.Код);
Если Не Группа=Справочники.Адреса.ПустаяСсылка() тогда СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Адреса.ПолучитьФормуВыбора(, Элемент); ФормаВыбора.ЭлементыФормы.ТабличноеПоле1.ИерархическийПросмотр = Истина; ФормаВыбора.ЭлементыФормы.ТабличноеПоле1.ТекущийРодитель = Группа; ФормаВыбора.ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока=адрРайон; //ФормаВыбора.ОткрытьМодально(); ФормаВыбора.Открыть(); КонецЕсли; |
|||
22
vova1122
10.09.20
✎
15:55
|
попадаем в нужное место иерархии. А дальше при выборе нужного элемента заполняем вышестояшие реквизиты в форме Контрагента.
|
|||
23
CaIIIka
10.09.20
✎
16:16
|
А чем фильтры не подходят? Тем более у вас 3 отдельных реквизита. Это может быть 1, а могут быть 3 разных справочника, описывающих разные свойства. Добавьте на форму списка 3 реквизита и по ним фильтруйте при изменении. Получится своего рода иерархия, у которой уровни не зависят друг от друга. И на реализацию минут 15 с перекуром.
|
|||
24
on2
10.09.20
✎
16:58
|
-Значит итог таков, делаю 5 справочников плоских, которые подчинены друг другу
-Добавляю 5 реквизитов на форму элемента справочника. -реализовываю механизм отбора при условии заполнения первого реквизита, отбор во втором осуществляется и выводится ограниченный список и так далее Папки рассматриваю как места упорядочивания элементов поэтому завязываться на папки не нужно. Ну вот, поправьте меня. |
|||
25
Ёпрст
10.09.20
✎
17:09
|
(24) поправляю..ересь.
Как будете элементы из "группы" в группу тащить ? Владельца менять ? |
|||
26
Ёпрст
10.09.20
✎
17:10
|
И.. чем обычный справочник с группами не подходит ? Если это всё нужно, чтоб потом быстро иерархию иметь, то храни иерархию папок в отдельной табличке. В запросе имей её, будет мгновенно.
|
|||
27
HawkEye
10.09.20
✎
17:13
|
(24) ты описал обычный иерархический справочник, в чем профит?
|
|||
28
on2
10.09.20
✎
17:37
|
(27) описала ;)
|
|||
29
HawkEye
10.09.20
✎
17:38
|
(28) тем более )))
|
|||
30
on2
10.09.20
✎
17:39
|
(29) редиска ты)))))
|
|||
31
HawkEye
10.09.20
✎
17:41
|
(30) вот ни разу не похож )
|
|||
32
vova1122
10.09.20
✎
18:48
|
А если пользователь скажет, как в фильме,- "Огласите весь список, пожалуйста". Как будешь выкручиваться? Как, например в моем случае, я точно непомню в коком именно районе находится населенный пункт, или занесли не тот район. То просто могу открыть и перенести в нужный район со всеми улицами. При выборе из Справочника.Контрагенты также.
Твоя схема сработает в идеальном мире, когда ненужно создавать новых элементов, и менять переподчинение. Но ведь в 1С такого не бывает |
|||
33
vova1122
10.09.20
✎
19:00
|
+(32) Кроме этого твоя схема не позволит "Перескакивать" через владельцев. Например не заполняя область и район, а сразу выбрать населенный пункт, так как при открытии этого справочника - он просто будет пуст.
|
|||
34
080808Ник
11.09.20
✎
10:31
|
(0) Если я правильно понял суть задачи, а я в отпуске поэтому думаю и понимаю с трудом) то нужно два справочника - первый иерархия элементов, которая будет содержать структуру Классы/подклассы/группы/и миллион иерархических сущностей. У справочника должен быть реквизит Тип элемента. это справочник который будет содержать тип сущности - класс/группа/подкласс. его тоже можно сделать иерархическим, а можно сделать одноуровневый с реквизитом родитель, что бы можно было жестко ограничить значение не только по родителю но и по типу.
Допустим имеем иерархию 1 Класс подкласс 1.1, Группа 1.1.1, подкласс 1.2, Группа 1.2.1 и так далее. таким образом, человек выбирает Класс 1, ему отбираются подчиненные элементы Подклассы с типом только подкласс. Таким образом соблюдается условие - ограничение "сверху" по родителю, ограничение снизу по типу. При этом не нужно плодить реквизиты и справочники и иерархию можно изменить в любой момент, вдруг нужно будет разделить класс или подгруппу. Так же, в случае необходимости можно будет дать выбрать пользователю "через уровень" элемент. |
|||
35
Bigbro
11.09.20
✎
10:40
|
сложно как то.
оставить текущий справочник как есть переименовать его в "структуру" сделать новый справочник без иерархии с элементами и реквизитом ссылкой на элемент "структуры". в новый перелить элементы, дать имя старого. реквизит заполнить по ходу переливания. все. |
|||
36
080808Ник
11.09.20
✎
10:57
|
(35) так я понял им нужна "параллельная структура".
|
|||
37
Bigbro
11.09.20
✎
10:59
|
а я понял что им надо избавиться от иерархии в исходном справочнике превратить его в плоский, но где то эту иерархию сохранить. что я и предлагаю.
|
|||
38
080808Ник
11.09.20
✎
11:03
|
(36) +у меня была похожая задача. Организовали справочник и жестко привязали - родитель верхнего уровня Поставщик- родитель нижнего уровня - тип товара - элемент сам товар. И они перестраивали учет по всем товарам по такой структуре. а нужно было для разных групп товаров свои иерархии. для части товара три уровня, для части 5 уровней, где то вообще один уровень. Поэтому и придумали сделать "иерархию реквизитов", но справочник товаров оставили иеархическим. удобненько получилось, жаль внедрить не успели - начался переход на другую конфу)))
|
|||
39
on2
11.09.20
✎
11:06
|
(35) скорее параллельную вселенную))))))))))))
|
|||
40
080808Ник
11.09.20
✎
13:12
|
(39) так какой вариант решила реализовать?
|
|||
41
ASU_Diamond
11.09.20
✎
13:24
|
Мне интересно чем типовой механизм выбора родителя у элемента справочника не устраивает?
|
|||
42
Ёпрст
11.09.20
✎
13:28
|
(41) ну видать, иеррархия отключена и в "плоском" списке не понятно, чья группа.
|
|||
43
ASU_Diamond
11.09.20
✎
13:42
|
(42) что значит "не понятно, чья группа"?
|
|||
44
080808Ник
11.09.20
✎
13:48
|
(41) ну я так понял, что группы должны быть определенного типа. Например, ты не можешь сделать родителем Группы группу-класс, только подкласс. аналогично подкласс нельзя давать выбрать родителем класса. а в классе вообще не должно быть родителя.
|
|||
45
ASU_Diamond
11.09.20
✎
13:54
|
(44) заводится реквизит с типом элемента/группы и на программном уровне контроль осуществляется.
хотя в (11) такая задача не ставится |
|||
46
Pro-tone
11.09.20
✎
13:56
|
(7) barin.sys звучит круче)
|
|||
47
on2
11.09.20
✎
14:43
|
(40) - в сторонке сижу кофе пью по этой теме(((
|
|||
48
HawkEye
11.09.20
✎
14:55
|
(47) это правильное решение )))
|
|||
49
Timon1405
11.09.20
✎
15:03
|
в типовых на БСП реализована произвольная иерархия(несколько сразу) по свойствам объектов с видом справочник "ЗначенияСвойствОбъектовИерархия"
|
|||
50
mikecool
11.09.20
✎
15:06
|
(7) barin.sys - мне нравится )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |