Menü
Ingyenes
bejegyzés
itthon  /  Oktatás/ Az előre definiált elem hiányzik az adatokból 1c 8.3. Előre definiált elemek beállítása

Az előre meghatározott elem hiányzik az 1c adatokból 8.3. Előre definiált elemek beállítása

Jó nap.

Ma az előre meghatározott elemekkel kapcsolatos újításról fogunk beszélni a 8.3 platformban.

Bevezetés

Hadd emlékeztessem önöket, hogy korábban, a gyakorlatban, nagyon gyakran meg akartam nézni egy könyvtárelemet, hogy megtudjam az előre meghatározott nevét. Például létrehozott két előre meghatározott vállalkozót, és IPSidorovnak és OOOMeteornak nevezte el őket. És valamiféle logikát varrtak rájuk.

Amikor mindent hibakeresett és működött, kiderült, hogy a feladatot fordítva határozták meg, és az egyéni vállalkozó logikája szükséges az LLC számára, és az LLC logikája szükséges az egyéni vállalkozó számára. „Nem probléma” - mondjuk, és vállalati módban átnevezzük a tételeket. Sokkal nehezebb belépni a kódba. Eltelik egy év, és új feladatot kap: további logikát állít be az IP Sidorov számára. Bemegy a konfigurátorba, megírja a logikát, elkezdi ellenőrizni, és semmi sem működik, mert az IPSidorov konfigurátorában és a vállalkozásban - OOO Meteor. Az agy összetört, és el akarom pusztítani ezt a gereblyét. A legegyszerűbb és legegyszerűbb, ha egy előre definiált elem nevét lista formájában adja ki. Itt egy les, csak a módszerrel szerezheti be a 8.2 -ben előre definiált nevet. A módszernek pedig megvan a maga kellemetlensége, a kérésben nem szerezhető be. Azok. az első kellemetlenség az, hogy az előre definiált nevet a könyvtárra hivatkozva szerezzük be.

A második kellemetlenség az, amikor már rendelkezünk egy könyvtárelemmel, és előre definiálnunk kell. Létrehozunk egy előre meghatározott elemet, és két elemet kapunk a könyvtárban. Az egyik előre meghatározott, a másik működik, amelyre minden dokumentumunk hivatkozik. A linkek cseréje minden bizonnyal segít, de ha az adatbázis nagy, akkor nehéz.

Most az üzletben

Az első az, hogy a referenciakönyv mostantól rendelkezik az "Előre meghatározott adatok frissítése" tulajdonsággal.

Mit ad nekünk ez a mező? Ha a "Ne frissítse automatikusan" beállításra van beállítva, akkor egy előre definiált elem hozzáadásával nem fogjuk azonnal látni a hivatkozásban. Azok. a metaadatoknak semmi közük az adatokhoz. Ha pedig nem a könyvtárban jön létre, akkor a név szerinti hivatkozás a címtárkezelőn keresztül szintaktikai hibát okoz.

Nagyon érdekes, de miért? Hogyan hozzunk létre egy elemet a hivatkozásban? És tetszés szerint létrehozhat, vagy összekapcsolhat egy meglévővel. Most a keresés rendelkezik a "PredefinedDataName" attribútummal. A "References.Contractors.CreateElement ()" segítségével programszerűen hozunk létre egy katalógus elemet a szokásos módon, és kitöltjük annak "PredefinedDataName" attribútumát az előre definiált elem nevével. Vagy ha az elem már létezik, akkor megkapjuk az objektumát, és ismét kitöltjük a "PredefinedDataName" -t. Minden.

És végül egy kis szirup

Ez az új kellék nemcsak olvasni / írni, hanem kérésekben is elérhető. Így feltételeket szabhat rá a lekérdezésekben, meghatározhatja, hogy előre meghatározott -e vagy sem.

Köszönöm a figyelmet.

Véleményem szerint az ötlet, hogy előre meghatározott elemekkel programozva dolgozzunk, nagyon helyes. Csak néhány árnyalatot kell figyelembe venni a munka során.

Először is, világosan meg kell értenie magának, hogy vannak előre definiált elemek a konfigurációban, és vannak előre definiált elemek az infobázisban (IB). A technikailag előre definiált IB elemek a szótárak leggyakoribb elemei, amelyekben a "PredefinedDataName" attribútum megadja, hogy melyik előre meghatározott konfigurációs elemnek felelnek meg. Már nem különböznek a hétköznapi elemektől. Ennek megfelelően bármely közönséges IB elem előre definiálható, bármely előre definiált közönséges elem. Ehhez elegendő a kívánt értéket megadni a kellékek között. "PredefinedDataName".

Időnként kiderül, hogy ez a tulajdonság nem a fejlesztő által biztosított érték. Ennek eredményeként hibák lépnek fel az 1C munkájában. A kritikus, amelyben a munka elvileg lehetetlen, a nem kritikus, amelyben megsértik az algoritmusok logikáját.

Feltételesen meg lehet különböztetni háromféle hiba:
1. "Egy előre meghatározott elem hiányzik az adatokból";

3. Érvénytelen jelzés előre definiált elem;

1. "Egy előre meghatározott elem hiányzik az adatokból" - o A konfigurációban leírt előre definiált elem hiánya az IB adatokban.

Ez a hibakeresés és javítás legegyszerűbb típusa. Az egyszerűsége az, hogy a platform elég helyesen számol be erről a helyzetről "Egy előre meghatározott elem hiányzik az adatokból", és teljesen világos, hogyan javítható.

Amikor a "Könyvtárak.Típusok ContactInformation.EmailContactPerson" kódból hiányzó elemhez fér hozzá, az üzenet megjelenik

Amikor elér egy elemet a "VALUE (Directory.Types of ContactInformation.EmailContactPerson)" kérésben, a következő üzenet jelenik meg:

Ez a hiba akkor fordul elő, ha egy elemet leírnak a konfigurációban, de az elem nincs hozzá társítva az adatbázisban.

Először is tisztázzuk, hogy ez a helyzet nem mindig rossz. Teljesen lehetséges előre definiált adatok használata valamilyen programlogikában, amelyet a legtöbb felhasználó nem használ. Ebben az esetben, annak érdekében, hogy a referenciakönyvet ne terhelje túl a konfiguráció összes felhasználója, logikus, ha előre meghatározott elemeket határoz meg a konfigurációban, de nem hozza létre azokat az összes információbiztonsági rendszerben, hanem csak az amely a szükséges konfigurációs logikát használja. Ebben az esetben a programozó megadhatja a "Ne frissítse az előre definiált adatokat" tulajdonságot a referenciakönyvhez, és programozottan hozhat létre elemeket a modul funkcióinak elérésekor. Vagy lehetővé teszi a felhasználó számára, hogy önállóan kösse össze a modul előre meghatározott elemeit a szokásos elemekkel.

Szintén nem használt automatikus létrehozás előre definiált elemek, ha RIB módban működik. Mivel az új elemeket a központi bázisról kell átvinni, és nem különböző UID -vel rendelkező csomópontokban kell létrehozni.

Azok. Néha hiba egy páratlan elemre hivatkozni, nem pedig egy ilyen elem jelenlétére.

Elemezni kell, hogy az elem miért nem jött létre. Talán akkor kell létrehozni, amikor a program valamelyik módját végrehajtják. Például, miután cserét hajtott végre a RIB -ben. Vagy talán csak véletlenül törölték.

Ha a logika előírja, hogy az előre meghatározott elemeket nem automatikusan, hanem külön módban kell kitölteni, akkor a hívás név szerinti használata előtt " Könyvtárak. A ContactInformation típusai. EmailContactPerson"A kivétel elkerülése érdekében ajánlatos ellenőrizni, hogy az elem már szerepel -e az adatbázisban. Ha az elem hiányzik, akkor tájékoztassa erről a felhasználót, és magyarázza el, hogy milyen módban kell végrehajtania az elem kitöltését. Egy ilyen ellenőrzéshez lekérdezést futtathat az adatokon.

Kérés = Új kérés; Request.Text = "SELECT | Kapcsolattartási adatok fajtái.Link | FROM | Címtár. Kapcsolattartási adatok típusai AS Kapcsolati adatok fajtái | WHERE | Kapcsolati adatok fajtái. PredefinedData Name =" " A kapcsolattartó személy e -mail címe"" "; ElementNoNo.VD = Request.Run (). Empty ();

Ha ez továbbra is hiba az adatbázis adataiban, akkor az IB elem egy előre meghatározott eleméhez kell kötődnie. Azok. el kell magyarázni a rendszernek, hogy az információbiztonság mely elemével kell foglalkozni programkód tovább keresztnév... Technikailag a kötés csak egy tulajdonság előre meghatározott elemének nevét adja meg "PredefinedDataName"IB elem. A telepítéshez csak futtassa a kódot:

2. "Az előre meghatározott elem nem egyedi" - h az előre definiált elemek:

Ez a helyzet abban áll, hogy több IB elem kötődik egy előre meghatározott elemhez. Ebben az esetben, ha előre definiált névre hivatkozik, az elem véletlenszerűen kerül kiválasztásra. Ez a helyzet mindig rossz. Nehézsége abban rejlik, hogy a platform semmilyen módon nem kommunikál róla. Csak az algoritmusok kezdenek helytelenül működni.

A keretrendszer csak az "Előre definiált elem nem egyedi" hibát jeleníti meg, amikor duplikált elemet próbál szerkeszteni.

Amíg senkinek nem kell szerkesztenie az elemet, senki sem fog tudni a hibáról.

Ilyen másolatok hozhatók létre például, ha a referenciakönyvhöz RIB -t használnak, és az "Automatikus frissítés" módot az előre meghatározott adatok tulajdonságai határozzák meg. Ebben az esetben a csere végrehajtásakor a konfiguráció frissítésekor az előre meghatározott adatok egy példánya jön létre. Az előre meghatározott, azonos nevű tételek második példánya a csere során átkerül a központi adatbázisból.

Ezenkívül ezek a párhuzamosságok akkor is felmerülnek, amikor a konfigurációk közötti cserefeldolgozást használják, abban az esetben, ha a különböző információbiztonsági elemek megfelelnek a különböző adatbázisok előre meghatározott elemeinek. Ebben az esetben az előre meghatározott adatok egy példánya már létezik az adatbázisban, a második akkor jön, amikor más UID azonosítójú adatokat tölt be. Ha adatátvitelt végez, el kell döntenie, hogy mely adatbázis elemek tekinthetők elsődlegesnek, és használni kell őket az alárendelt adatbázisban. Az alárendelt bázisban a régi elemek használatát le kell cserélni a főbázis elemeire.

Az adatbázis ilyen hibái az űrlap lekérdezésével észlelhetők:

SELECT típusú kapcsolattartási információk .PredefinedData Név, MENNYISÉG (KÜLÖNBÖZŐ KAPCSOLATI INFORMÁCIÓK. LINK) SZÁMKÉPPONT A könyvtárból. Kapcsolatfelvételi adatok típusai.

Ez a lekérdezés visszaadja az előre definiált elemek listáját, amelyekhez több IB elem tartozik.

Ha vannak ilyen elemek, akkor el kell távolítani a kapcsolatot az egyikhez előre definiált elemmel. Azok. egyértelműen meg kell határozni a rendszer számára, hogy melyik IS elemre kell utalnia a programkódnak e név használatakor. Ehhez csak végre kell hajtania a kódot.

3. Egy előre definiált elem érvénytelen jelzése.

A hiba abban rejlik, hogy az előre meghatározott elem rossz elemnek felel meg, amelyet a programlogika biztosít. Az ilyen hibákat a legnehezebb diagnosztizálni. Az első két típussal ellentétben nem ellenőrizheti automatikusan a konfigurációt ezen hibák tekintetében. Ezeket csak a munka logikájának elemzésével lehet azonosítani. Ha kétségei vannak, ellenőrizheti, hogy a megfelelő elemet használja -e.

Ehhez csak hajtsa végre az egyik parancsot.

// A kívánt előre meghatározott jelentéshez kötött IB elem definíciója (Directories.Types of ContactInformation.EmailContactPerson) // Határozza meg az előre definiált elemet, amelyhez a kiválasztott jelentés kapcsolódik (ReferenceOnItem.Name of PredefinedData)

Ha ilyen hibákat talál, el kell távolítania a helytelen linket a régi elemmel, és hozzá kell adnia egy hivatkozást az új elemhez. Az opcode hasonló az első két típusú hiba javító kódjához.

Nos, röviden a hibákról, amikor programozott munka vagy konfigurátor módban:

"Az előre meghatározott elem nem tartozik ide<Имя справочника>" - hiba lép fel, amikor egy előre definiált elemet próbál megírni olyan névvel, amely nem egyezik a társkonfigurátor nevével.

"A nem előre definiált objektumok nem tartalmazhatnak előre meghatározott szubkonto típusú bejegyzéseket" - hiba lép fel, amikor egy előre definiált számlatábla -elemet definiálatlanná kíván tenni. A hibák kiküszöbölése érdekében törölni kell az "Előre definiált" jelölőnégyzet jelölését az elem alvállalkozói szerződésének minden sora esetén.

"A nem előre definiált objektumok nem rendelkezhetnek előre meghatározott rekordokkal a vezető típusú számításokról"- hiba lép fel, amikor megpróbálja definiálatlanná tenni a számítási típusok diagramjának előre definiált elemét. A hibák kiküszöbölése érdekében törölni kell az "Előre definiált" jelzőt az elemszámítás vezető típusának minden sora esetén.

"Az előre meghatározott tételek nem egyediek"- frissítéskor hiba jelenik meg a konfigurátorban információs bázis konfigurációs kiadáshoz 8.3.4 kompatibilitási mód nélkül. Frissítés előtt ellenőrizni kell és meg kell szüntetni az ismétlődéseket.

"Az előre definiált elem neve nem egyedi" - a hiba akkor fordul elő, ha a platformra történő frissítéskor több előre definiált azonos nevű elem van a konfigurációban8.3.6.2332 és újabb. Szükséges a duplikációk kiküszöbölése a konfigurációban.

Az előre meghatározott adatokkal való munkavégzéshez javaslom a feldolgozást. Tudja, hogyan kell elvégezni bármilyen műveletet előre meghatározott adatokkal, és ellenőrizheti a konfiguráció egészét is, hogy nincs -e az első két típus hibája (duplikált és hiányzó elemek) minden információbiztonsági objektumban (referenciakönyvek, számlatáblázatok, PVC) , PVR).

Egyszerű kezelés előre definiált értékekkel.

Lehetővé teszi az IB elemek összeillesztését a konfigurációban előre meghatározott elemekkel.

Lehetővé teszi, hogy ellenőrizze a teljes konfigurációt a duplikált (több IB -elem egy előre meghatározott elemhez kötött - hiba) és a hiányzó elemek (az IB -elemekkel nem társított előre meghatározott elemek) jelenlétére vonatkozóan. Ilyen elemek léphetnek fel a cserék vagy meghibásodások során, és hibákat okozhatnak a konfigurációban.

Csak megtekintheti az aktuális értékeket, és elvégezheti a szükséges módosításokat.

Működési eljárás:

1. Elkezdjük a feldolgozást.

2. Kiválasztjuk a típust (referenciakönyv, számlaterv, PVC, PVR).

3. Magát a kiválasztott típus könyvtárát választjuk ki.

4. Az IB -ben rendelkezésre álló és a konfigurációban leírt összes előre definiált elem megjelenik a feldolgozás táblázatos részében.

Ha az adatbázisban több elem van egy előre meghatározott tulajdonsághoz kötve, vagy a konfigurációban leírt elemek közül néhányhoz nincs hozzárendelve IB -elem, akkor a rendszer erről tájékoztat, amikor kiválaszt egy referenciakönyvet. Az ismétlődő és hiányzó elemek a lista tetején jelennek meg, és narancssárgával vannak kiemelve.

5. Új értékeket állítottunk be a szükséges előre definiált elemekhez.

Ebben az esetben a vonalak pirossal vannak megjelölve, amihez egy előre definiált elem eltűnik a konfigurációból. Kék vonalak, amelyeknél egy előre meghatározott elem megváltozik, zöld vonalak, amelyeknél egy előre meghatározott elem jelenik meg.
Nagyszámú ismétlődés esetén kényelmes az egérrel kijelölni az összes felesleges sort, és minden kiválasztottnál a visszavonási linket jelezni az "Unmatch" gombbal (1.3.1 verzió óta)

6. Az áthelyezést az "Elemek átcsoportosításának végrehajtása" gombra kattintva hajtjuk végre.

Az ismétlődések ellenőrzése(hiba "Az előre meghatározott elem nem egyedi"):

Amikor megnyomja az "Ismétlődések ellenőrzése" gombot, a feldolgozás ellenőrzi az összes könyvtárat, számlatérképet, PVC -t és PVR -t, és megjeleníti a duplikált elemeket tartalmazó táblázatok listáját, amely jelzi az ismétlődő elemek számát.

Ezt követően külön kell ellenőrizni azokat az objektumokat, amelyeknél hibákat találtak.

Az ellenőrzés elmaradt(hiba "Egy előre meghatározott elem hiányzik az adatokból"):

Amikor a "Hiányzó ellenőrzése" gombra kattint, a feldolgozás ellenőrzi az összes könyvtárat, számlatérképet, PVC -t és PVR -t, és megjeleníti az előre meghatározott elemek listáját, amelyek nem kapcsolódnak az IB -adatokhoz.

A használatához 8.3.3 vagy újabb platform szükséges.

Sokoldalú, bármilyen konfigurációval használható.

Nyelv észlelése afrikaans albán arab örmény azerbajdzsáni baszk bengáli fehérorosz bolgár katalán kínai (egyszerű) kínai (hagyományos) horvát cseh dán holland angol eszperantó észt filippínó finn francia galíciai grúz német görög gudzsaráti haiti kreol héber hindi magyar izlandi indonéz ír olasz japán kannada koreai laoszi latin Litván macedón maláj máltai norvég perzsa lengyel portugál román orosz szerb szlovák szlovén spanyol szuahéli svéd tamil telugu thai török ​​ukrán urdu vietnami walesi jiddis Afrikaans albán arab örmény azerbajdzsáni baszk bengáli belorusz bolgár bolgár katalán kínai (egyszerű) kínai (hagyományos) horvát cseh dán holland angol eszperantó észt filippínó finn francia galíciai grúz német görög gudzsaráti haiti kreol héber hindi magyar izlandi indonéz ír olasz japán kannada koreai laoszi latin litván macedón Maláj máltai norvég perzsa lengyel portugál román orosz szerb szlovák szlovén spanyol szuahéli svéd tamil telugu thai török ​​ukrán urdu vietnami walesi jiddis