Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Рейтинг: 0/5

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Аз не знам колко е ясно от заглавието, това, което ще бъде обсъдено. Проблемът е, както следва: имаме позоваване на йерархията на елементи, йерархията на всяка дълбочина. Изберете някоя водач и че е необходимо да се получат стойностите на едно дърво, в която коренът на един ред с избрания елемент, както и всички елементи, подчинени клонове, които седят в йерархията на избраната клетка в съответствие със структурата на директория.

Необходимо е тя може да бъде да се показват на формата на дърво, или на изхода на доклада, случаи на живот са различни.

Задачата звучи тривиално, защото 1C Всичко е предназначен за показване на йерархията на директориите: динамични списъци, контрол на достъпа, запитвания - навсякъде има всичко, за да работи с йерархията, но има няколко, но това което искам да се премахне. Ето списък на "НЕ":

1. 1C ни дава едно дърво, където главният елемент не е избран, а на върха.

2. В случай на елементи в йерархията на дърво освобождава от дубликатите на заявка за набор на височина. Всеки елемент е последният запис и подробна сметка.

Изглежда дреболия, но за да видите на екрана, не искам допълнителните линии. Екранът трябва да бъде издаден само от информация по случая.

Така че нека да се разбере примерите, с какво всъщност се, че ще се бори, защото Аз prilyudii сигурен факта, че сте разбрали. За изпитванията, могат да бъдат взети всяка проба konfu с ръчен единица или скица им една единствена връзка с йерархията на предмети.

Аз създадох база данни с директорията "етапи" с йерархия на елементи.

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

и се отправили към следната структура:

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Е, такава фантазия имам :)

И така, нека да кажем, имаме нужда от стъпки за изпълнение на 1C в OOO "РИК". Т.е. Това е за това, което бихте искали да видите в дървото:

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Нито най-радикални елементи, без дубликати, но чисто клона на йерархия, които са избрани.

На първо място, в конзолата заявки пишат различни прости въпроси и гледат на резултатите:

Аз дори няма да се появи в резултат, ясно е, че ще има само най-необходимите елементи, но без никаква йерархия, която не ни допадат

депресиращо резултат на това не може да се показва на потребителя

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

3. Направете резултатите от йерархията и елементи

Това е подобно на желания резултат, съществува йерархия, но тя все още somtret уплашен:

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

4. Направете резултатите само за йерархията

Ами сега, поне боклука, но все още има двойки и има допълнителни основните елементи

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Така че, като изтеглите №4 резултатите от заявката в дърво на ценности ние ще получат нещо много подобно на мишената, но нищо друго.

Първата мисъл да тече код на дървото и извадете от него твърде много.

Втората мисъл да изглежда по посока на ACS, защото има такава грозота с двойки в отчетите, тя не изглежда.

Ние се опитваме да докладва за ЦДП.

Създаване на отчет с набор от данни "молба" с прости въпроси, на които се проточат във всички сфери, които имат:

В настройките имаме тук, както и искане, има възможности:

резултатът е супер, има удвоява като обикновена молба

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Резултатът е добър, без повторения и само листата на дървото там :)

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Отново, двадесет и пет :(

Както 1в стойности за изграждане на дърво на структурата на директориите, без допълнителни редове

Така Заключение: CDS е със същия касата като искане - записа на директорията се показва като подробен запис на два пъти и в резултат на подчинените. Да, и как да се отреже елементите на избраното ниво по-горе - не е ясно.

В допълнение към хардуерно базирано контрол на достъпа (да кажа, че нито докладът нито оформлението ACS в базата данни не е необходимо), за да се получи едно дърво на ценности, е необходимо да се създаде много код лица. Самият създаване Софтуерът за оформление, което ще ни струва. Четливостта на кода ще са склонни да 0.

Имаме код, то остава да се избере подход. Бих искал да се възползвам по искане №4, тя се разтоварят в дървото и след това обработва го, но има дървото минус стойността:

1. Не можете да променяте бранша родител. И това ще ни помогне да се намери в дърветата до избрания елемент и да го хвърлят в корена. Но такива методи не го правят. В "майка" в ред на дървото е само за четене.

2. Как да премахнете дублирани елементи? Технически дублиращи редове са идентични. Какво да се отстрани? И къде да поставите подчинени в съответствие са отстранени, и те понякога имат.

Направих решение: искане №1 без никакви резултати. защото Смокиня един ще трябва да се изгради от нулата, е по-лесно да се изгради на базата на линеен TK защото е по-лесно да се справи. Всички браншове ще бъдат създадени в съответствие кеш. Всеки родител елемент получи веднага искане за избягване на достъпи до базата данни в рамките на цикъла. Изграждане ще рекурсивно. Line се добавя към връщането на рекурсия за бранша родител е вече в дървото.

// входяща точка е основната процедура за образуване на дърво

// 1. Създаване на дърво с един ред в основата

Дърво = нов DerevoZnacheny;

// стъпка - променлива форма, която е избрана в полето за въвеждане

// 2. Намери всички подчинени постижения