|   |   | 
| 
 | Иерархию справочника перенести в реквизиты | ☑ | ||
|---|---|---|---|---|
| 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 - мне нравится )))     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |