V 1C vývojári nemajú vstavané nástroje na definovanie nulových referencií, dátumov alebo riadkov. Zvážte, ako skontrolovať prázdny odkaz, dátum alebo reťazec v žiadosti 1C.
Nulové údaje môžete určiť pomocou špeciálnych operátorov.
obsah
- 1 Jazyk úloh
- 2 Skontrolujte obsah null
- 3 Kontrola dátumu
- 4 Referenčná kontrola
- 5 Kontrola reťazca
- 6 Viac informácií o rozbitých a normálnych odkazoch
- 6.1 V systéme 1C-7.7
- 6.2 V systéme 1C-8.x
- 6.3 Odkiaľ pochádzali
Jazyk úloh
Informácie z databázy 1C žiadosť (a potom prijať) pomocou nástroja, ako je jazyk dotazu (dotaz, Eng.). Sú vypracované v latinčine a cyrilike. A jedným z kľúčových slov, príkazy (operátorov) po prijatí informácií je slovo príkazu SELECT (Vybrať, angl.), V kombinácii s niektorými návrhmi. Tu sú niektoré príklady výstavby úloh, ktoré nás zaujímajú:
Skontrolujte obsah null
Túto úlohu vykonáva prevádzkovateľ CHOOSE v kombinácii s konštrukciou "IS NULL":
SELECT
ZakazyOstatki.Zakazchik,
ZakazyOstatki.KolichestvoOstatok
Z
Registrácia akumulácie Objednávky
AKO
OrdersOstatka.NumberDistribution IS NULL
Kontrola dátumu
Prázdny dátum v žiadosti 1C sa zadá konštrukciou "DATE (1, 1, 1, 0, 0, 0)":
SELECT
AccountIncoming Provider.Link,
ÚčetVstupujúci poskytovateľDátum dátumu
Z
Dokument. AccountInbound poskytovateľ AS AccountInbound poskytovateľ
AKO
AccountIncomingSupporter.Date Date = DATE (1, 1, 0, 0, 0)
Referenčná kontrola
Overenie neexistujúcich intraregionálnych hodnôt (pre účtové schémy, referenčné knihy atď.) Sa vykoná pomocou konštrukcie "VALUE (referenčný názov ... prázdny odkaz)":
SELECT
PlanSchetov.Ssylka
Z
Reference.Plan Fakturácia AS PlanCaretov
AKO
Počet grafov = VALUE (Adresár, Graf grafu, Prázdny odkaz)
Kontrola reťazca
Prázdniny v reťazcoch sa nachádzajú pomocou medzery v úvodzovkách ":
SELECT
Pokupateli.Link
Z
Referenčná kniha. Kupujúci ako kupujúci
AKO
Kupujúci Kód = "
Viac informácií o rozbitých a normálnych odkazoch
"Bat" sa považuje za odkaz (Link), ktorý vedie (naznačuje) neexistujúci prvok. V neexistujúcom chápete ten, ktorý nie je v databáze. Je užitočné vedieť o takýchto odkazoch aspoň preto, aby sme dostali upozornenia zo systému v pochopiteľnejšej podobe. Áno, nahrávanie, mazanie a otváranie nerealistických objektov nemá zmysel.
Platformy 1C nemajú vnútorné nástroje na ich vystrihnutie.Musíte tiež pochopiť, že mimo "zlomené" v systéme žijú špeciálne "prázdne linky", ktoré by sa mali rozlišovať jeden od druhého.
Môžete to zistiť bez toho, aby ste dotazovali databázu:
V systéme 1C-7.7
Pre metódu "netopier" metóda Link.Selected () a funkcia EmptyValue () vrátia nulu. Pre "prázdne" - v prvom prípade nula a v druhom - jedna. Pre "normálne" - jedno a nulové. Ukazuje sa, že v 1C-7.7 "rozbité" nie je žiadna neexistujúca hodnota, ktorá sa nepovažuje za vybranú.
V systéme 1C-8.x
Všetko je iné - v obidvoch prípadoch (pre "zlomené" a "normálne") metóda vráti hodnotu False a funkcia sa vráti True. Riešením je: Pre referenčnú metódu "broken". Získať objekt () vráti funkciu "Undefined". Pre "prázdne" - "Kontextová chyba metódy" je hodený. Pre "normálne" - hodnota sa vráti podľa dokumentácie; Ukazuje sa, že v 1C-8.x "zlomené" nie je žiadna neexistujúca funkcia referenčného typu, ktorá vráti nedefinovanú hodnotu objektu.
Odkiaľ pochádzali
Pri navigácii na neexistujúcu adresu nefunkčného odkazu sa používateľovi v najlepšom prípade zobrazí upozornenie, že objekt nebol nájdený, v najhoršom prípade - obrázok stránky servera. Ich najhoršou črtou je stealth.Preto je ťažké kontrolovať ich správnosť. Počas práce s konfiguráciou sa neustále aktualizuje a aktualizuje. Akékoľvek objekty sú predmetom odstránenia, štruktúra sa zmení. A odkaz na odstránený prvok zostáva v konštrukciách a algoritmoch. Preto neexistujú žiadne adresy v systéme po odstránení samotného prvku (spolu s adresou).
V dnešnej publikácii bola zvážená špeciálna konštrukcia dotazov. Uvádzajú sa príklady návrhov. Je to užitočné pre prácu pri hľadaní prázdnych hodnôt.
Nechajte svoje komentáre.