Skontrolujte prázdne spojenie, dátum alebo reťazec v žiadosti 1C

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.