Директории, от 1s учебника
Directory е даден списък с възможни стойности на реквизит. Позоваването използват в случаите, когато това е необходимо за премахване на двусмислен входа на информация. Така например, в полза на купувача, продавача, складодържателя, директорът знаеше какъв продукт под въпрос, всеки трябва да го наричат по същия начин. И в този случай е необходима препратка. Обикновено, търговецът на дребно има формата на ценова листа, а ако такава директория се съхраняват в компютъра, той ще носи цялата възможна гама от стоки, работи с търговско дружество.
1C: Enterprise позволява почти неограничен брой изисквани директории. Всеки водач е даден списък на подобни обекти: служители, организации, продукти, и т.н. Всеки такъв обект се нарича референтен елемент ...
От гледна точка на потребителя, трябва да се има предвид, че не е създаден позоваването в конфигуратора като списък от стойности, и се развива подготовка наръчник шаблоните. По време на конфигурация, структура на информацията, която се съхранява в екрана на директория е разработено и, ако е необходимо, отпечатана представителството на директорията, са дадени различни аспекти на неговото "поведение".
Както задължителните реквизити всеки референтен има код и наименование. референтен код елемент може да бъде или цифров или текстово. 1C: Enterprise предоставя големи възможности за работа с кодове директория елемента: автоматично задаване на кодове, автоматично управление и друг уникален код.
В допълнение към кода и името, в директории 1C: Enterprise може да съхранява допълнителна информация за члена ръководство. За запазване на такава информация в директорията може да бъде създаден списък с подробности. С помощта на наръчника детайли на механизма, че е лесно да се организира, например, картотека служители. Например, препратка персонал почти със сигурност ще има атрибути заглавие. Заплата и други. 1C очаква програмисти, въведени във всички директории вече дадени два признака: име и код. Всъщност, почти всеки обект от реалния свят съдържа тези атрибути. Например, код на служителите служи броят на персонала и името - първо собствено, бащино (пълно име).
За всеки атрибут, директорията, в която трябва да посочите своя тип данни, например, "номер", "низ", "дата" (във версия 8.0, има вид на Булева - Вярно или невярно). Това са основните типове, но можете да посочите сложни типове данни. Например функция атрибут има позиции тип данни. В този случай, стойността на този атрибут ще бъде избран от Позиции на директориите. По този начин изпълнява една проста връзка между директории, когато стойностите на атрибутите на избрана директория от друга директория.
Полуотворена () процедура
. SpravochnikSpisok.Otbor.Kartochka.Ustanovit (Година 1980);
. // въпроси от Читателите: Как да се предпазим от потребителя да промени критериите за подбор?
KonetsProtsedury
Статично филтър (само версия 7.7)
В 1С 7.7 не може да се настрои чрез подбор периодичен подпори или няколко детайли едновременно (комплекс филтър). В този случай, на изхода от позицията може да бъде метод IspolzovatSpisokElementov. Този метод е необходимо да се премине на списък с елементи, които трябва да бъдат показани. Предварително е необходимо да се създаде този списък.
SpisokElementov sozdatObekt = ( "SpisokZnacheny");
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.IspolzovatDatu (RabochayaData ());
SprSotr.VybratElementy ();
Докато SprSotr.PoluchitElement () = 1 цикъл
. Ако (SprSotr.Roditel = gruppaRabotayuschie) И (SprSotr.Dolzhnost = dlzhPlotnik) След това
. SpisokElementov.DobavitZnachenie (SprSotr.TekuschiyElement ());
. ENDIF;
KonetsTsikla;
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
Режим = 0; // изберете без оглед на йерархията 1 - като се вземат предвид (по подразбиране).
SprSotr.VybratElementy (режим);
Докато SprSotr.PoluchitElement () = 1 цикъл
. <действия с очередным элементом/группой>
KonetsTsikla;
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
RezhimIerarhii = 1; // 1, избрано като се вземат предвид йерархията 0 - без
RezhimGrupp = 0; // 0 - не се включва в групата на проба 1 - включва
ImyaRekvizita = "Година"; // в конфигуратора в реквизита трябва да е активиран селекция
Стойност = 1980;
SprSotr.VybratElementyPoRekvizitu (ImyaRekvizita, стойност RezhimIerarhii, RezhimGrupp);
Докато SprSotr.PoluchitElement () = 1 цикъл
. <действия с очередным элементом>
KonetsTsikla;
Филтрирането в цикъла
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.IspolzovatRoditelya (grpRabotayuschie);
SprSotr.IspolzovatDatu (RabochayaData ());
SprSotr.VybratElementy ();
Докато SprSotr.PoluchitElement () = 1 цикъл
Ако SprSotr.Dolzhnost <> Тогава dlzhPlotnik
. продължи; // липсва на работника или служителя, отидете на върха на линия
ENDIF;
<действия с очередным элементом>
Преди да се вземе проба, можете да укажете реда на сортиране на следните методи:
PoryadokKodov ()
PoryadokNaimenovany ()
PoryadokRekvizita (ImyaRekv) // у подпори трябва да бъдат избрани в сортиране Configurator
ObratnyyPoryadok ()
Например, по-ниски оферти служители проба, подредени по низходящ брой:
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.PoryadokKodov ();
SprSotr.ObratnyyPoryadok ();
SprSotr.VybratElementy ();
Молба до директорията
Се изпълнява за директорията, могат да бъдат организирани по заявка. Това често е по-удобно, когато се използва комплекс състояние избор или групиране на елементи. За подробности вижте. Заявки
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
Ако SprSotr.NaytiElement (VybrSotr) = 1 Тогава
. // елемент става ток
. SprSotr.Roditel = grpRabotayuschie;
. SprSotr.Zapisat ();
ENDIF;
Ако SprSotr.NaytiPoKodu (1) = 1 Тогава
. ElementIliGruppa SprSotr.TekuschiyElement = ();
ENDIF;
Търси по име
Ако SprSotr.NaytiPoNaimenovaniyu ( "работи") = 1 Тогава
. grpRabotayuschie SprSotr.TekuschiyElement = ();
ENDIF;
= 1 режим; // 1 - търсене в посочените представяне (майка) (по подразбиране.); 0 - Търсене във всички директория
FlagPoiska = 0; // 1 - да се намери точно съвпадение; 0 - намерите името на първите символи (по подразбиране)
SprSotr.IspolzovatRoditelya (grpRabotayuschie);
Ако SprSotr.NaytiPoNaimenovaniyu (режим "Ева", FlagPoiska) = 1 Тогава
. PervyyRabotayuschiyIv SprSotr.TekuschiyElement = ();
ENDIF;
Търсене подпори
ImyaRekv = "Година"; // в подпори трябва да бъде избран в сортиране Конфигуратора на
FlagGlobPoiska = 1; 1 // Търсене в цялата директория, 0 - да търсите в рамките на субординацията
Ако SprSotr.NaytiPoRekvizitu (ImyaRekv 1980 FlagGlobPoiska) = 1 Тогава
. NaydennyyElement SprSotr.TekuschiyElement = ();
ENDIF;
Търсене на артикул в примката
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.IspolzovatRoditelya (grpRabotayuschie);
SprSotr.IspolzovatDatu (RabochayaData ());
SprSotr.VybratElementy ();
Докато SprSotr.PoluchitElement () = 1 цикъл
Ако SprSotr.Dolzhnost = dlzhPlotnik Тогава
. прекъсване; // намери работа като дърводелец! измъкнем от цикъла
ENDIF;
KonetsTsikla;
<действия с найденным элементом>
Молба до директорията
Търсене директория елемент могат да бъдат организирани по заявка. Това често е по-удобно, когато се използва комплекс състояние селекция. За подробности вижте. Заявки
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.NaytiElement (VybrSotrudnik);
SprSotr.Udalit (); // директно отстраняване
Внимание! Ако директно преместване на актива, а след това се уверете, че той не е имал връзки към други сайтове. Например, за да изтриете един служител може да бъде използван в документа и празнични дни. При отстраняване референтна цялост на базата данни ще бъдат разбити. В този случай, се препоръчва да се използва марката за изтриване.
Човек може да се получи списък на софтуерни обекти, съдържащи позоваване на обекта, за да се заличи от NaytiSsylki (обект).
Маркиране отстраняване
Да контролира целостта на изтрити елементи референтна база данни, отбелязани само за изтриване. След това, на специална команда меню Операции => "Изтриване белязани предмети" в изключителната система 1C режим ще провери референтна цялост и физически отстраняване на елементите от базата данни, ако те имат връзки към други сайтове.
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr. NaytiElement (VybrSotrudnik);
SprSotr. Изтриване (0); // отстраняване марки
// можете да тествате дали позицията е маркиран за изтриване
// връща 1 - ако е маркиран, 0 - ако не
Маркиране = SprSotr. PometkaUdaleniya ();
// можете да махнете отметката отстраняване
SprSotr. NaytiElement (VybrSotrudnik);
SprSotr. SnyatPometkuUdaleniya ();
При изтриване на множество направляващи елементи, за да се ускори работния цикъл може да сключи сделка. В този случай, действителното отстраняване (марка за заличаване) на всички елементи се появява само по команда ZafiksirovatTranzaktsiyu (). В момента на справката на операциите блокиран.
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
BeginTransaction ();
SprSotr.VybratElementy ();
Докато SprSotr.PoluchitElement () = 1 цикъл
. SprSotr.Udalit (0); // отстраняване марки
KonetsTsikla;
Списък директория елементи в 1С система: Enterprise може да бъде на няколко нива. В този случай, всички референтни линии ще бъдат разделени на 2 типа: "прости" елементи на директорията и групата директория. Групи позволяват да се премине към по-ниски нива на много нива директория. Най-големият брой нива на влагане директория, посочени в дизайнер.
Използването на няколко нива директории ви позволява да организирате входа на информацията в наръчника с необходимата степен на детайлност. Предмети и групи от елементи в многостепенна указател могат да се прехвърлят от една група в друга.
Внимание! Йерархичната директория - тя също е директория на няколко нива или директория с групите.
директория група 1C често се нарича "майка".
Софтуер група създаване
SprSotr.NovayaGruppa ();
SprSotr.Naimenovanie = "работа";
SprSotr.Zapisat ();
SprSotr.NovayaGruppa ();
SprSotr.Naimenovanie = "уволнен";
SprSotr.Zapisat ();
Внимание! В конфигуратора, можете да зададете реквизита, че това е валидно само за елемента, само за една група или и за двете. Например, област DataPriema няма смисъл за групата да се работи. Поради това, че не е необходимо за достъп до информация от елементи, ако се работи с група, както и обратното.
Монтаж на текущата група
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.IspolzovatRoditelya (grpRabotayuschie); // сега сме в Групата оперира
SprSotr.VybratElementy (); // отворите извадката елементи работят групи
SprSotr SozdatObekt = ( "Spravochnik.Sotrudniki");
SprSotr.IspolzovatRoditelya (grpRabotayuschie);
SprSotr.Novy (); // създаване на нов запис в работната група
Информация за текущия елемент
Ако директорията на няколко нива, ще бъде полезно да се използват следните методи и атрибути, които предоставят информация за текущия елемент директория:
Връща низ, съдържащ пълното наименование на избрания елемент на указателя с всички по-високото ниво, разделени от "/".
Избор на група необходимия диалог
Често е удобно за подробности за формата са от тип Directory, забранете възможността да изберете група. Тогава само точка и не може да бъде избрана група може да бъде избран в тази област. Като цяло, това е по-лесно да се опита веднъж, отколкото да обясни няколко пъти.
Forma.VybrSotrudnik.VyborGruppy (0); // деактивиране способността да изберете група
собственик Directory. тя е и препратка домакин.
собственик Directory и референтен роб също се казва, че са свързани директории.
От гледна точка на релационни собственика на директорията на базата данни - таблица родител и подчинен справка - това е масата за дете.
Назначаване на подчинените директории
Всяко позоваване може да се използва само по себе си, или да бъде предмет на всяка друга директория. Например, референтните договори могат да се използват самостоятелно, и могат да бъдат свързани с една директория на организациите.
За да подчинен препратка към някоя от директориите, които вече съществуват в системата, в "подчинение", изберете името на директорията. Тази справка в 1С: Enterprise нарича собственика.
За разлика от директорията на няколко нива, в който всички елементи имат една и съща структура, използването на директории подчинен механизъм позволява да се свърже различните елементи на конструкцията. В този случай, всеки елемент от подчинен директория е свързан с един от водача на предмети-титуляр.
Външни работи с подчинен указател в 1С: Enterprise ще бъде, както следва.
Ако режим подчинен дисплей указател е настроен в йерархичен списък, преди да използвате указателя, трябва първо да се избере елемент собственик директория. Когато показвате на екрана роб директория ще включи в своята име на собственик заглавна елемент, както и списък на предметите, подчинен директория ще съдържа само елементи, отнасящи се до елемент-собственик. Ако промените информацията за собственика клетка в подчинен прозорец директория ще бъде съответно актуализирано.
Ако отворите подчинен справка, а не избора на елемент-собственик, в подчинен прозорец директория няма да се показва всеки елемент, и в заглавната лента ще получите съобщение "Не настройвайте собственика на елемент".
Когато се работи с 1C: Prednriyatie за подчинен указател може да бъде включена в йерархичен списък. В този случай, подчинен директорията, в прозореца ще се покажат всички елементи на директорията, която е, предмети закърпени на различни собственици, ще бъдат показани последователно. Въпреки това, всеки елемент на подчинен указател "знае" собственика си: Когато режимът на указателя е включено "Редактиране в диалог" (.. Виж по-долу параграф "Създаване на форми директория"), име на член-собственик ще бъде даден елемент за редактиране на заглавието на прозореца на директория.
Настройка на сегашния собственик
SprDogovory SozdatObekt = ( "Spravochnik.Dogovory");
SprDogovory.IspolzovatVladeltsa (VybrKontragent);
SprDogovory.VybratElementy (); // отворите проба на договорите избран изпълнител
<.>
Информация за текущия елемент
Ако подчинен справка, че ще бъде полезно да се прилагат следните методи и атрибути, които предоставят информация за текущия елемент директория: