Qiymətin yoxlanılması növü 1s 8.3. Müəyyən edilmiş növlərdən istifadə

31.10.2021

Müəyyən edilmiş növlər 8.3 platforma versiyasında ortaya çıxan yeni 1C metaməlumat obyektidir. Obyekt köməkçi xarakter daşıyır. Müəyyən edilmiş növlərin nə olduğunu və bu obyektin həll edə biləcəyi vəzifələri nəzərdən keçirək.

Yeni məlumat növləri müəyyən edilmişdir, onların dəsti proqram həllinin tərtibatçısı tərəfindən müəyyən edilir. Bir neçə etibarlı növdən ibarətdir. Bu məlumat növü müəyyən edilmiş növün özü və " " obyekti istisna olmaqla, istənilən konfiqurasiya atributunun növü ola bilər.

1C-də 267 video dərsi pulsuz əldə edin:

Parametrlər

Bu obyekt üçün o qədər də çox parametr yoxdur:

Bunlar. 1C-də ad və sinonimə əlavə olaraq, müəyyən edilmiş növlər yalnız bir sıra obyekt növlərinə malikdir.

1C 8.3-də müəyyən edilmiş növlərdən istifadə nümunəsi

Bu obyekt üçün çoxlu proqramlar tapa bilərsiniz.

İstifadə nümunələri:

  • fraqment xüsusi konfiqurasiyaya daxil edildikdə müəyyən ediləcək məlumatlara istinad edən konfiqurasiya təfərrüatlarını təsvir edə bilərsiniz;
  • müəyyən edilmiş məlumatların bir növünü hadisə abunələrinin müəyyən bir sırasına təyin etmək;
  • xarakteristika növləri planına alternativ kimi istifadə edin

və daha çox.

Əgər siz 1C proqramlaşdırmasını öyrənməyə başlayırsınızsa, biz bunu tövsiyə edirik pulsuz kurs(unutma

— 1C dəyər növlərinin nə olduğunu və 1C növlərinin çevrilməsini müzakirə etməyə başladıq.

Bu gün biz 1C konfiqurasiya obyektlərinin növləri (1C sənəd növü, 1C kataloq növü və s.) haqqında daha ətraflı danışacağıq.

Proqram kodunda biz dəyərlərlə işlədiyimiz üçün vaxtaşırı onların tipini bilməliyik. Tip 1C həmişə detalların metadatasında - kataloqlarda və sənədlərdə göstərilir.

1C növləri ilə işləmək tez-tez istifadə olunur:

  • Proqramdakı şərtlər
    "Əgər ... Sonra ..." konstruksiyasında 1C dəyərinin növündən asılı olaraq müxtəlif hərəkətlər
  • İnterfeysdə işləyərkən məhdudiyyətlər
    İstifadəçiyə 1C-nin müəyyən növlərinin dəyərlərini formadakı sahəyə daxil etməyi qadağan etmək və ya icazə vermək.
  • Faktiki funksiya/prosedur parametrinin müəyyən edilməsi
    Əgər funksiya/prosedur parametri hər hansı 1C tipli ola bilərsə, onda dəyəri düzgün əldə etmək üçün onu müəyyən etməlisiniz.

Tip 1C əldə edilə bilər:

  • 1C-nin faktiki dəyərinin növünü müəyyənləşdirin
  • Dəyər obyektləri icazə verilən 1C növünü göstərən xassələrə malikdir (məsələn, cədvəl sütununda, forma sahəsində, metadatada icazə verilən 1C növləri) və ya bu 1C növlərini qaytaran üsullar
  • Metaməlumatlardan - konfiquratordakı metadatada göstərildiyi kimi 1C tipini əldə edə bilərsiniz.

1C növləri üç növə bölünə bilər:

  • Əsas növlər 1C
  • 1C verilənlər bazalarının növləri (istinad, obyektlər)
  • 1C növləri.

1C növünün tərifi və 1C növlərinin müqayisəsi

TypeValue (Dəyişən) funksiyasından istifadə edərək 1C dəyərinin növünü öyrənə bilərsiniz.

Bu funksiyanın hansı 1C növünü qaytardığını başa düşmək üçün bizə lazım olan Növü (“TypeName”) göstərməliyik.

Məsələn, 1C tipli dəyişənin tərifi (müqayisə):
Əgər TypeValue(Dəyişən) = Type("TypeName") O zaman

TypeName olaraq hansı növləri yazmalıyam?

Əsas növlər

1C-nin əsas növləri - nömrə, sətir, tarix, boolean.

Misal üçün:
Znch = 12;
Əgər TypeValue(Value) = Type("Number") O zaman
ElseIf Dəyər = Type("String") Sonra
ElseIf Dəyər = Yazın("Tarix") Sonra
ElseIf Dəyər = Type("Boolean") Sonra
endIf;

Verilənlər bazası növləri

1C məlumatları verilənlər bazasında saxlayır, lakin formada deyil fərdi qeydlər, lakin obyektlər şəklində.

Ən çox saxlanılan obyektlər (o cümlədən: kataloqlar, sənədlər, siyahılar, biznes prosesləri, tapşırıqlar) Obyekt (redaktə və yazmaq üçün) və Link (oxumaq üçün) kimi mövcuddur. Ətraflı məlumat üçün "Bağlantılar və Obyektlər"ə baxın.

Misal üçün:
Dəyər = Directories.Organizations.EmptyLink();
Əgər TypeValue(Value) = Type("DirectoryLink.Organizations") O zaman
Əks haldaDəyər = Yazın("DirectoryObject.Organization") Sonra
Əks haldaNövDəyər(Dəyər) = Növ("DocumentLink.Malların Qəbulu") Əgər
Əks haldaDəyər = Növ("DocumentObject.Malın Qəbulu") Sonra
endIf;

Qeydiyyatlar təqdim edilə bilər fərqli növlər. Qeydiyyat növünün adı mürəkkəbdir:
RegisterRegisterTypeAccessType.RegisterName

1C registrlərinin növləri:

  • Məlumat
  • Qənaət
  • Mühasibat uçotu
  • Hesablama.

Qeydiyyata girişin bir neçə növü var. Ən çox istifadə olunur:

  • Rekordları təyin edin
  • Siyahı
  • Nümunə
  • Qeyd
  • Qeyd açarı.

Ümumi, misal:
Əgər TypeValue(Value) = Type("InformationRegisterList.RegisterName") O zaman
Əks halda Dəyər = Yazın("AccumulationRegisterRecordSet.RegisterName") Sonra
endIf;

1C dili proqramda dinamik şəkildə yaradılmış bir çox obyektlərlə işləməyə imkan verir, məsələn, massiv, dəyərlər siyahısı, dəyərlər cədvəli, struktur...

Belə 1C növləri adları ilə göstərilir (bir sözlə, boşluq olmadan). Misal üçün:
Əgər TypeValue(Value) = Type("Array") O zaman
ElseIf Dəyər = Type("Dəyərlərin Siyahısı") Sonra
endIf;

1C istinad növünün dəyərinin müəyyən edilməsi

Bütün verilənlər bazası obyektləri ilə (kataloqlar, sənədlər...) iş keçidlər vasitəsilə həyata keçirilir. Məsələn, əgər biz sənəddə istinad etmək istəyiriksə, onda onun 1C növü “DirectoryLink.DirectoryName” olacaq.

Misal üçün:
Dəyər = Directories.Organizations.EmptyLink();
Əgər Directories.TypeAllLinks().Tərkibindədir(TypeValue(Dəyər)) Sonra
//bu bir istinad kitabıdır
ElseIf Documents.TypeAllLinks().İçerir(TypeValue(Dəyər)) Sonra
//bu sənəddir
endIf;

Bir sorğuda 1C növü iki yolla yoxlanıla bilər.

Birincisi təsvir edilənə bənzəyir, lakin 1C növünün adı “Link” və ya “Obyekt”i göstərmir, yəni “DirectoryLink.Organizations” əvəzinə “Directory.Organizations” yazırıq.

Misal üçün:

Qəbz mövcud növlər 1C

Bir çox obyektlərin 1C növlərinin siyahısını ehtiva edən xüsusiyyət.ValueType var:

  • Yağlı müştəri formasında sahə
    Forma Elementləri.FieldName.ValueType
  • Formadakı sahə Arıq müştəri(istisna: AvailableTypes adlanır)
    Elements.FieldName.AvailableTypes
  • Dəyərlər cədvəlinin sütunu, dəyərlər ağacı
  • Forma təfərrüatları
  • Seçim elementi

Sahədə 1C növlərinin bu siyahısı ilə necə işləmək olar.ValueType - “1C Dili” bölməsində “Növlərin təsviri”nə baxın.

Konfiqurasiya metadatasında 1C detallarının növləri ilə işləmək

Konfiquratorda təfərrüatları əlavə edərkən və redaktə edərkən proqramçı 1C detallarının növünü (növlərini) müəyyənləşdirir. 1C dilində proqram kodunda siz 1C detallarının növ(lər)ini əldə edə (tap edə bilərsiniz).

Əsas üsullar:

  • 1C obyekti üçün, müəyyən bir obyektin metadatasını qaytaran və sonra təfərrüatların siyahısı (və cədvəl bölməsinin təfərrüatları) ilə işləyən Metadata () metodunu çağırın.
    Sənədlər.Malların qəbulu.EmptyLink().Metadata().Təfərrüatlar
  • Bütün konfiqurasiya metadatasını qaytaran qlobal dəyişən "Metadata" istifadə edin və sonra xüsusi obyektin təfərrüatlarına daxil olun
    Metadata.Sənədlər.Malların qəbulu.Detallar

Atribut bu atribut üçün konfiquratorda təyin edilmiş 1C növlərinin siyahısını ehtiva edən bir xüsusiyyətə malikdir.

1C növlərinin bu siyahısı ilə necə işləmək olar - "1C dili" bölməsində "Növlərin təsviri"nə baxın.

1C tipli filtri göstərin

Bir çox obyekt üçün istifadə edilə bilən 1C dəyər növlərinin filtrini təyin etmək mümkündür, məsələn:

  • Dəyərlərin siyahısı (.AvailableValues)
  • İdarə olunan Müştəri Forması Sahəsi (.AvailableTypes)

Filtr modifikasiya üçün mövcud olmadıqda, filtri obyekt metodunda müəyyən etmək mümkündür. Məsələn, dəyərlər cədvəlinin (ağacının) sütununda.ValueType var və biz onu dəyişdirə bilmərik, lakin.Add() metodundan istifadə edərək sütun əlavə edərkən, ikinci parametr mövcud 1C-nin siyahısını müəyyən etmək üçün istifadə edilə bilər. növləri.

Filtr üçün 1C növlərinin siyahısını müəyyən etmək üçün onunla işləmək üçün 1C növlərinin siyahısı istifadə olunur, "1C Dili" bölməsində "Növlərin təsviri"nə baxın;

Serialın əvvəlki məqaləsində başlayan 1C:Enterprise-in yeni funksionallığı ilə tanışlığımızı davam etdiririk. Bu məqalədəki materialları öyrəndikdən sonra öyrənəcəksiniz:

  • Müəyyən edilmiş növlər hansılardır və onlardan necə istifadə olunur?
  • “Əsas rollar” konfiqurasiya xüsusiyyəti nə üçün istifadə olunur?
  • Forma üçün müştəri hadisə idarəçiləri yaratmaq üçün köməkçidən necə istifadə etmək olar?
  • Konfiqurasiyanı XML fayllarına yükləmək necə və nə üçün istifadə olunur?

Uyğunluq

Məqalədə 1C: Enterprise platformasının 8.3.4.437 versiyası müzakirə edilir, lakin onun materialları köhnə buraxılışlarda işləyənlər üçün də faydalı ola bilər.

1C: Enterprise 8.3-də inkişafı necə asanlaşdırmaq olar

Biz 1C: Enterprise 8 platformasında konfiqurasiyanı asanlaşdırmağa yönəlmiş yenilikləri nəzərdən keçirməyə davam edirik.

Müəyyən edilmiş növlər

Platforma 8.3-də “Ümumi” konfiqurasiya filialına yeni obyekt əlavə edildi - Müəyyən edilmiş növlər.

Bu, tez-tez istifadə olunan obyekti təsvir edən və ya tətbiq həlli həyata keçirildikdə dəyişmə ehtimalı olan məlumat növünü müəyyən etmək üçün nəzərdə tutulmuş xüsusi konfiqurasiya obyektidir.

Məsələn, “Qarşı tərəflər” və “Şəxslər” kataloqlarına keçidi ehtiva edən kompozit növü nəzərdən keçirək.

Və bu tip, bəzi hazırlanmış konfiqurasiyada, tez-tez əlaqə məlumatlarını təsvir edən məlumat reyestrində bir ölçü kimi, "Kassa qəbulu orderi" sənədində təfərrüat kimi istifadə olunur.

Belə bir konfiqurasiyanın həyata keçirilməsi zamanı bu növün tərkibi dəyişə bilər - ona yeni obyektlər əlavə edilə bilər və əksinə - lazımsız növlər xaric edilə bilər.

Əgər yeni “müəyyən edilmiş tipimiz” əvəzinə belə bir obyektin istifadə olunduğu hər yerdə kompozit tipdən istifadə ediriksə, o zaman hər yerdə növlərin tərkibini dəyişməli olacağıq. Bu, uzun, çətin, əmək tələb edir və bəzi rekvizitləri unutmaq ehtimalı var.

Müəyyən edilmiş tipdən istifadə edirsinizsə, onda proqram həllinin yekunlaşdırılması prosesi zamanı yalnız bu növün tərifini (və bu cür sahələri emal edən proqram kodunu) dəyişdirmək lazımdır.

Müəyyən edilmiş növün növ kimi göstərildiyi bütün detallar avtomatik olaraq dəyişdiriləcək.

Müəyyən edilmiş növün istifadəsinə dair başqa bir nümunə.

Bəzi təfərrüatlar üçün konfiqurasiya daxilində yazma standartı var. Məsələn, kəmiyyəti 3 dəqiqliklə uzunluğu 15 ədəd, cəmini isə 2 dəqiqliyi ilə 15 uzunluqlu ədəd kimi təyin edirik.

Tutaq ki, şirkət bahalı malların uçotunu aparmalı idi yüksək dəqiqlik onların çəkisi.

Müvafiq olaraq, kəmiyyəti hesablamaq üçün təfərrüatların dəqiqliyini 4 onluq yerə qədər artırmalı olduq. Bu dəyişikliklər bütün sənəd detallarına və reyestr resurslarına eyni vaxtda edilməlidir.

Bu çətin bir iş deyil, lakin çox əmək tələb edir və tərtibatçıdan böyük qayğı və əzm tələb edir.

Yeni müəyyən edilmiş tip yaratdığınız zaman yalnız onun növünü təyin etməlisiniz. Sonra, sənəd təfərrüatlarını yaratarkən və resursları qeydiyyatdan keçirərkən, yaradılmış müəyyən edilmiş növə keçid seçə bilərsiniz.

Bu yanaşma bizə onun istifadə olunduğu bütün yerlərdə eyni məlumat növünə (eyni uzunluq, dəqiqlik, kompozit tipli sahələr üçün eyni tərkib və s.) zəmanət verməyə imkan verir.

Sonra, bütün detalların məlumat növünü dəyişdirmək lazımdırsa, hər bir atributu ayrıca əl ilə düzəltməyə ehtiyac yoxdur, müvafiq müəyyən edilmiş növə dəyişiklik etmək kifayətdir;

Müəyyən edilmiş bir növ kompozit tip kimi yaradıla bilər. Bununla belə, bu konfiqurasiya obyektinin istifadəsinə məhdudiyyətlər var. Beləliklə, müəyyən edilən tip xarakterik tiplər planının dəyər tipinin bir hissəsi ola bilməz, həmçinin başqa bir atributun kompozit məlumat tipinin bir hissəsi ola bilməz.

Qeyd edək ki, platformanın 8.3.5 versiyasında müəyyən edilmiş növlərdən istifadə imkanları müəyyən edilmiş növün bir hissəsi ola biləcək növlər toplusunu genişləndirməklə artırılıb.

qədər heç bir dəyişiklik yoxdur cari versiyalar platforma 8.3.10/8.3.11 müəyyən edilmiş tiplə işləmədi.

"Əsas rollar" konfiqurasiya xüsusiyyəti

Platforma 8.2-də kök konfiqurasiya elementinin “Əsas Rol” xassəsi var idi, burada tərtibatçı bu halda istifadə olunacaq rolu müəyyən edirdi. məlumat bazası heç bir istifadəçi yaradılmayıb.

Platforma 8.3-də istifadəçilərin siyahısı boş olduqda giriş hüquqlarını müəyyən etmək üçün istifadə olunacaq bir neçə rolu müəyyən etmək mümkün oldu. Müvafiq olaraq, əmlak "Əsas rollar" adlandırıldı.

Böyütmək üçün şəklin üzərinə klikləyin.

Form Client Hadisə İşləyicilərinin yaradılması

Konfiqurasiya edərkən idarə olunan tətbiq tərtibatçı müvafiq preprosessor direktivlərindən istifadə edərək proqram kodunun icra kontekstinə diqqətlə nəzarət etməlidir.

Müştəridə məhdud məlumat növləri və metodları mövcud olduğundan, tərtibatçı tez-tez idarəetməni serverə ötürmək üçün müştəri proseduru yaratmalıdır.

8.3 platformasında müştəri forması hadisələri üçün işləyicilər yaratmaq üçün köməkçi peyda oldu.

Böyütmək üçün şəklin üzərinə klikləyin.

İndi tərtibatçıya server metodunu əl ilə yaratmağa və onun çağırışını müştəri proseduru daxilində təyin etməyə ehtiyac yoxdur, lakin bütün diqqətini sistemin tətbiqi məntiqinin həyata keçirilməsinə cəmləyə bilər.

Konfiqurasiya fayllara yüklənir

8.3 platformasının başqa bir yeniliyi bütün konfiqurasiyanı müəyyən strukturun faylları dəsti şəklində diskə yükləmək imkanıdır.

Konfiqurasiya həmişə yüklənmiş obyektləri süzgəcdən keçirmək imkanı olmadan tam şəkildə yüklənir.

Konfiqurasiyanı fayllara yükləmək üçün menyudan Konfiqurasiya – Konfiqurasiyanı fayllara yüklə seçin və açılan dialoq pəncərəsində faylların saxlanacağı qovluğu seçin.

Konfiqurasiya obyektləri XML faylları dəsti kimi yüklənir. Modullar və mətn sxemləri kimi saxlanılır TXT faylları. Konfiqurasiyadan olan şəkillər şəkil faylları (BMP, PNG və s.) kimi saxlanılır. Yardım məlumatı HTML fayllarına yüklənir.

Böyütmək üçün şəklin üzərinə klikləyin.

Gördüyünüz kimi, yaranan fayllar universal formatlardan istifadə etmişdir. Onları redaktə etmək üçün var çoxlu sayda müxtəlif proqram məhsulları.

Siz həmçinin üçüncü tərəfin versiyaya nəzarət sistemlərindən istifadə edə bilərsiniz. Onlar eyni sənədin bir neçə versiyasını saxlamağa və lazım gələrsə, daha çoxuna qayıtmağa imkan verir əvvəlki versiyalar, bu və ya digər dəyişikliyi kimin və nə vaxt etdiyini müəyyənləşdirin.

Redaktə edilmiş fayllar Konfiqurasiya - Fayllardan konfiqurasiyanı yüklə menyu elementindən istifadə etməklə yenidən konfiqurasiyaya yüklənə bilər.

Parametrlərdən istifadə etməklə yeni yükləmə/yükləmə funksiyası ilə işləmək də mümkündür komanda xətti LoadConfigFromFiles və DumpConfigToFiles. Məsələn, bu kimi:

“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe” DİZAYNER /F “X:\Platform8Demo” /N “Administrator” /DumpConfigToFiles “X:\1\”

Əvvəllər 8.2 platformasında konfiqurasiya fayllarının yüklənməsi/endirilməsi mexanizmi mövcud idi ki, bu da konfiqurasiya obyektlərinin bəzi xassələrinin (modullar, tərtibatlar və istinad məlumatları) seçmə şəkildə yüklənməsinə/endirilməsinə imkan verirdi.

Qeyd edilib ki, standart olaraq “Konfiqurasiya fayllarını yüklə” və “Konfiqurasiya fayllarını yüklə” əmrləri 8.3 platformasında konfiquratordan çıxarılıb.

Lakin əsas menyunu fərdiləşdirməklə siz bu əmrləri menyuda göstərə və onlardan istifadə edə bilərsiniz.

Konfiqurasiyaları fayllara yükləmək üçün yeni mexanizm həmişə bütün konfiqurasiya məlumatlarını yükləyir, yükləmə üçün obyektləri konfiqurasiya etmək imkanı təmin edilmir, bununla da konfiqurasiyanın bütövlüyü təmin edilir.

Adi formalar və interfeyslər binar formada (daxili) yüklənir və redaktə edilə bilməz. Provayderin konfiqurasiyası da redaktə olunmaq üçün nəzərdə tutulmayıb.

Qalan obyektlər fayllara yüklənir universal formatlar. Əsasən, mexanizm idarə olunan tətbiqə yönəldilmişdir.

Yeni mexanizm tərtibatçıya konfiquratoru toplu rejimdə işə salmaqla konfiqurasiyanı avtomatik emal etmək imkanı verir.

Həmçinin indi konfiqurasiya xarici tərəfindən redaktə edilə bilər proqram təminatı məsələn, XML formatının istifadəsi sayəsində.

Boşaltma zamanı əlavə konfiqurasiya emalı aparılır: dondurulmuş bağlantılar silinir, istifadə olunmamış məlumatlar da boşalmır (məsələn, mövcud olmayan bir dil üçün kömək).

Konfiqurasiya yüklənərkən, onun bütövlüyü yoxlanılır, qeyri-unikal identifikatorlar, metadata obyektləri, yanlış məlumat tipi adları və s.

Qeyd edək ki, 8.3.7 versiyasından etibarən “ierarxik” adlanan yeni yükləmə formatı yaranıb. Köhnə format "xətti" kimi tanındı. Format seçimi fayl yükləmə pəncərəsində mövcuddur:

8.3.11 versiyasından başlayaraq, “ierarxik” format interaktiv yükləmə zamanı seçilmək üçün yeganə mümkün oldu:

Bu funksiyadan istifadə edirsinizsə, tövsiyə edirik:

  • birincisi, “ierarxik” yükləmə formatından istifadə edin;
  • ikincisi, 8.3.8+ versiyasından aşağı olmayan platformadan istifadə edin, çünki ondan başlayaraq XML fayllarının yüklənmə/yükləmə sürəti əhəmiyyətli dərəcədə artırıldı.

8.3.10 versiyasında konfiqurasiyanın XML fayllarına qismən yüklənməsi dəstəklənməyə başladı. Nəticədə Git ilə birlikdə XML-də konfiqurasiya yükləməsindən istifadə etmək mümkün oldu.

1C: Enterprise 8.x-də məlumat növləri

Daxili dil konstruksiyalarına keçməzdən əvvəl əsas məlumat növləri ilə tanış olmalıyıq. Xoşbəxtlikdən,:

1C platformasını öyrənməyə başlayanlar bəzən məlumat növlərinin tərifi və ortaya çıxan hər cür dil nüansları ilə bağlı çaşqın olurlar. Bu ilk məqalə giriş xarakteri daşıyır və ibtidai 1C məlumat növlərinə həsr olunub, onların sayı o qədər də çox deyil.

Nömrə. 1C-də rəqəmlər həm tam, həm də üzən nöqtə dəyərləri deməkdir. Rəqəm növü dəyərinin maksimum uzunluğu onluq nöqtə daxil olmaqla 32 simvol ola bilər. 32 rəqəmli limitin verilənlər bazasına yazılacaq nömrələrə şamil olunduğunu da nəzərə almaq lazımdır. Dəyişən elan etmək və ona 32 simvoldan çox qiymət təyin etmək mümkündür. Yaddaşda saxlanılan rəqəmli dəyərlər üçün, bu məhdudiyyət Bu işləmir. “Nömrə” tipli dəyişən kimi elan edildikdən sonra onun dəyəri 0 olacaq.

Xətt. Hər hansı digər proqramlaşdırma dili kimi, 1C də sətirlərin manipulyasiyası üçün bütün lazımi funksiyaları həyata keçirir. Dəyərlər bu tipdən Unicode-da təqdim olunur. Sətir tipli dəyişənlərin uzunluğu məhdud deyil.

Tarixi. Tarixin özündən əlavə, bu tip dəyərlərdə vaxt da var. Zaman saatlara, dəqiqələrə və saniyələrə aiddir. Başladıqdan dərhal sonra dəyişən növü“Tarix”ə “01 yanvar 0001 00 saat 00 dəqiqə 00 saniyə” dəyəri təyin olunacaq.

Boolean. Aydındır ki, bu tip dəyişənlər yalnız iki qiymət ala bilər: True, False.

Müəyyən edilməmiş. "Qeyri-müəyyən" tipli dəyərlər başqa bir məlumat növünə aid olmayan boş bir dəyər göstərməyiniz lazım olduğu hallarda istifadə olunur. Məsələn, daha sonra haradasa istifadə olunacaq dəyişəni elan etməlisiniz. Siz ona 0 və ya “” (yəni, boş sətir) kimi bir dəyər təyin edə bilərsiniz, lakin bununla biz dərhal onun üçün uyğun növü (rəqəm və ya sətir) təyin edirik. Bəs bu növlərdən birinin quraşdırılması sonradan müdaxilə edə bilərsə nə etməli? Belə hallarda siz “müəyyən edilməmiş” tipli bir dəyərdən istifadə edə bilərsiniz. Onu da qeyd etmək lazımdır ki, daxili dilin bir çox funksiyaları, uğursuz icra vəziyyətində, nəticədə bu tip bir dəyəri qaytarır. Funksiyalarınızı təsvir edərkən eyni qaydaya riayət etmək tövsiyə olunur.

Sıfır. Nullun ümumi mənası demək olar ki, "müəyyən edilməmiş" ilə eynidir. Bu tip dəyərlər verilənlər bazasında çatışmayan dəyəri göstərmək üçün istifadə olunur. Çox vaxt sorğu dilindən istifadə edərək bu tip dəyərləri əldə edə bilərsiniz. Məsələn, cədvəl birləşmələrindən istifadə edən sorğu. Tutaq ki, cədvəllərdən birinin şərti ödəyən dəyəri yoxdur. Bu halda çatışmayan dəyər Null tipli qiymətlə əvəz olunacaq.

Null tipli qiymətə yalnız sorğularla işləyərkən rast gəlmək mümkündür. Məsələn, Null tipli dəyərlər obyekt tərəfindən istifadə edilməyən atributlar tərəfindən qəbul edilir. Təsəvvür edək ki, bizdə var iyerarxik kataloq“kəmiyyət” atributu ilə. Bu atribut yaradılarkən onun “İstifadə” xassəsi “Element üçün” olaraq təyin edilmişdir. Əgər siz “qrup” tipli kataloq elementi üçün bu atributa daxil olmağa çalışsanız, onun dəyəri Null olacaqdır.

Növ. Bu tip mövcud növləri müəyyən etmək üçün istifadə olunur. Bir az qarışıq səslənir? Yaxşı, bir nümunə ilə izah etməyə çalışacağam. Təsəvvür edin ki, iki dəyişənin növlərini müqayisə etmək vəzifəsi ilə qarşılaşırsınız. Kodda bu belə görünəcək:

Dəyişən1 = 123; //Biz nömrə təyin etdiyimiz üçün dəyişənin növü “nömrə” olacaq.
Variable2 = "string"; //Burada biz sətir təyin etdik, yəni dəyişənin tipi sətir olacaq.

İndi dəyişən1-in ədədi olduğuna 100% əmin olmalısınız. Burada "Növ" növü (gülməli səslənir), həmçinin bir neçə köməkçi funksiya kömək edir. Hələlik təfərrüata varmayacağam. Sadəcə bir nəzər salın və aşağıdakı nümunəni anlamağa çalışın:

Əgər (TypeValue(Variable1) = Type("Number")) Sonra

Report("Dəyişən1 ədəddir!");

Əks halda

Report("Dəyişən1 ədədi DEYİL:()");

endIf;

Bu kiçik kod parçasında mən əvvəlcə TypeValue() funksiyasından istifadə edərək dəyişənin tipini alıram. Bu funksiya tipini almaq istədiyiniz dəyəri parametr kimi qəbul edir. Bizim vəziyyətimizdə bu, “Dəyişən1” dir. Sonra mən "Nömrə" tipini xarakterizə edən "Tip" tipli bir dəyər almalıyam. Bu məqsədlə daxili dil “Type()” funksiyasını təmin edir. Bu, yalnız bir arqument tələb edir - növ adının simli təmsili. “Nömrə” növü ilə müqayisə etməmiz lazım olduğundan, funksiyanın parametri “Nömrə” olacaq.

Bu məqaləni yazmaqda göstərdiyi köməyə görə İqor Antonova təşəkkür edirik.

Bu məqalə “1C-nin inkişafında ilk addımlar” məqalələr silsiləsini davam etdirir. Primitiv məlumat növləri və onlarla işləyərkən ən çox yayılmış funksiyalar haqqında danışacaq. Materialı oxuduqdan sonra öyrənəcəksiniz:

  • Hansı məlumat növləri primitivdir?
  • Simlərlə necə işləyə bilərsiniz və hansı xüsusiyyətləri nəzərə almaq lazımdır?
  • Ədədi ifadələrlə işləməyin incəlikləri nələrdir?
  • Müəyyən bir dəyəri olan bir tarixi necə təsvir etmək olar? Boş tarixi necə təyin etmək olar?
  • Növün çevrilməsi necə işləyir?
  • Null və Undefined – bunlar nədir və fərqlər nələrdir?
  • Obyektin/dəyişənin hansı növ olduğunu necə müəyyən etmək olar?

Uyğunluq

Məqalə 1C platformasının 8.3.4.496 versiyası üçün yazılmışdır, ona görə də məlumat üçün də aktualdır. cari versiya platformalar. Bununla belə, qeyd etmək lazımdır ki, 8.3.6.1977 versiyasında sətirlərlə işləmək üçün yeni funksiyalar əlavə edilmişdir. Buna görə, məqalədəki addımları təkrarladığınız zaman, Sintaksis köməkçisinin müvafiq bölməsində ekran görüntüsündə göstərilməyən bəzi funksiyaları görsəniz, təəccüblənməyin. Biz həmçinin 8.3.10 platformasına əlavə edilmiş yeni StringWithNumber() metodu ilə tanış olmağı tövsiyə edirik.

Primitiv məlumat növləri və onların bəzi funksiyaları

Aşağıdakı primitiv məlumat növləri fərqləndirilir:

Sətir sabitləri

Primitiv məlumat növü Xətt(sətir sabiti) müxtəlif simvollardan ibarətdir. Xətt həmişə dırnaq işarələri ilə əhatə olunur. Sətir sabitinin nümunəsi:

Message.Text = “Boş məlumatlar var”;

Bunlar. atribut üçün “Boş məlumatlar var” sətri təyin edilir Mətn obyekt Mesaj. Sitatlarla əhatə olunmuş hər şey sətir hesab olunur.

Sətir istənilən simvoldan ibarət ola bilər. Sətirlər çox sətirli ola bilər. Bu halda, hər bir yeni sətir dırnaq içərisində müəyyən edilməlidir. Misal üçün:

Mətn = "Yanlış təfərrüatlar dolduruldu"
“Sənədi yerləşdirmək mümkün deyil”;

Nöqtəli vergül yalnız sonuncu sətrin sonunda qoyulur.

Başqa bir yol var - bütün mətni yalnız bir dırnaq işarəsi ilə çərçivəyə qoymaq, lakin hər biri yeni xəttşaquli zolaqdan başlamalıdır.

Bu sintaksis ən çox istifadə olunur tipik konfiqurasiyalar. Xüsusilə, sorğu dilində. Misal üçün:

İstək. Mətn =
"SEÇİN
| İşçilər.Adı AS İşçi,
| İşçilər.Doğum tarixi AS DateDoğum
|FROM
| Directory.Employees NECƏ İşçilər
|HARADA
| İşçilər DEYİL Bu Qrupdur”;

Qeyd etmək lazımdır ki, əlavə əməliyyatı sətirlər üçün müəyyən edilir. Bu arifmetik əməliyyat deyil, birləşmə əməliyyatı adlanır.

Bunlar. misal üçün, iki sətir, sətirlər arasında "+" əlavə işarəsi ilə birləşdirməlisiniz:

Mətn = “Təfsilatlar səhv doldurulub” + “Sənədi yerləşdirmək mümkün deyil”;

Beləliklə, xətlər birləşdirilir. Birləşdirmə əməliyyatı, əlbəttə ki, daha çox sətirlərə şamil edilir. Sətirlər üçün digər əməliyyatlara (çıxma, vurma, bölmə) icazə verilmir.

Əgər sətir daxilindəki sözün dırnaqlar içərisində olması lazımdırsa, o zaman sətir daxilindəki dırnaq işarəsi qoşa dırnaq işarəsi ilə müəyyən edilməlidir. Misal üçün:

Mətn = ““Ümumi modul1” modulunda xəta”;

IN bu misalda Birinci sitat sətiri açır. Bir-birinin yanındakı ikinci və üçüncü dırnaq işarələri dırnaq işarəsini göstərir.

Və sonunda üç dırnaq işarəsi var: ən sonuncu dırnaq işarəsi xətti bağlayır, əvvəlki iki dırnaq işarəsini göstərir.

Sətirlərdə müxtəlif sətir çevirmə əməliyyatları mümkündür, ilk bir neçə sol simvolun müəyyən edilməsi, ən sağdakı bir neçə simvolun müəyyənləşdirilməsi, sətir daxilində alt sətirin axtarışı və s.

Bütün bu funksiyalar konfiqurasiyanın istənilən yerində mövcuddur.

Sintaksis köməkçisində onlar bölmədədirlər Daxili dilin ümumi təsviriQuraşdırılmış funksiyalarString tipli dəyərlərlə işləmək üçün funksiyalar.

Kifayət qədər çox sayda funksiya var və onlar adətən sətir sabitləri ilə işləmək üçün kifayətdir.

Məsələnin sətir funksiyalarından istifadə etməklə həlli nümunəsinə baxaq.

Tapşırıq:

Bir funksiya inkişaf etdirilməlidir. Funksiyaya parametr kimi ixtiyari sətir ötürülür. Sətirdəki simvollar da rəqəmlər ola bilər.

Digər simvollardan boşluqlarla ayrılmış rəqəmlər ardıcıllığı (bir və ya daha çox) müsbət tam ədəd təşkil edir.

Məsələn, “72 ABC 6AP 31 54f -22” sətirində iki tam ədəd var müsbət ədədlər: 72 və 31. Boşluqlardan başqa digər qeyri-əhəmiyyətli simvollar (məsələn, nişan, karetkanın qaytarılması) istifadə edilmir. Funksiya müsbət tam ədədlərin sayını qaytarmalıdır.

O, idarə olunan proqram modulunda yerləşməlidir. Sistemin işə salınması zamanı onun çağırılmasını təmin etmək lazımdır. Dəyişəndən istifadə edərək sətir təyin edin.

Beləliklə, idarə olunan proqram modulunu açaq və konfiqurator panelindəki seçim sahəsindəki siyahıdan seçin Modul standart işləyici AtSystemStart().

İşləyicinin içərisində bir dəyişən təyin edirik Xətt, Misal üçün:

Sıra = “72 ABC 6AP 31 54f -22”;

Quantity = IntegerNumbers (String);

Tam ədədlərin sayı haqqında mesaj göndərək:

Hesabat("Sətrdə " + Nömrə + " tam ədədlər var");

Bu halda, dəyişən Kəmiyyət dolayı şəkildə tipə çevriləcək Simli sabit. Sonra üç sətirdə birləşmə əməliyyatı yerinə yetiriləcək və mesaj ötürüləcəkdir.

Gəlin funksiyanın başlanğıcını və sonunu (yəni şablonunu) təyin edək Tam ədədlərin sayı(String).

İndi bunlardan birinə baxaq mümkün variantlar xüsusiyyətin inkişafı Tam ədədlərin sayı(String). Eyni zamanda, sətirlərlə işləmək üçün nəzərdə tutulmuş bəzi daxili funksiyalarla tanış olacağıq.

Əvvəlcə funksiya ilə tanış olmalısınız Simvol kodu. Bu funksiya ötürülən sətirdə göstərilən nömrə ilə mövqedə yerləşən simvolun kodunu alır.

Sintaksis:

Xarakter Kodu(,)

Seçimlər:

(tələb olunur)

(isteğe bağlı) – bu, kodunu almaq istədiyiniz sətirdəki simvolun nömrəsidir. Sətirdəki simvolların nömrələnməsi 1-dən başlayır.

Qaytarma dəyəri:
Ötürülmüş xarakterin kodu. Kod Unicode kodlaşdırmasına uyğun olaraq qaytarılır.

Nəzərə alın ki, parametr Varsayılan olaraq 1 dəyəri var.

Sətir də bir simvoldan ibarət ola bilər. Beləliklə, 0 kodunu və 9 kodunu müəyyən etmək mümkündür və bütün digər rəqəmlərin kodları, məlum olduğu kimi, onların arasındakı intervaldadır.

Müvafiq dəyişənləri və onların qiymətlərini təyin edək:

Kod0 = Xarakter Kodu (“0”);
Kod9 = Xarakter Kodu (“9”);

Problemi həll etmək üçün aşağıdakı sxemi seçirik:

  1. Əgər sətirdə hər hansı kəmiyyətdə qabaqcıl və ya arxada boşluqlar varsa, onda biz onlardan xilas olacağıq xüsusi funksiya. Sonra daxili boşluqlar arasında simvol qrupları ilə maraqlanacağıq. Qrup yalnız rəqəmlərdən ibarətdirsə, o, tam ədəddir. Birinci məkanın mövqeyini təyin etmək üçün istifadə edilə bilən xüsusi bir funksiya var.
  2. Birinci boşluq mövqeyinə sahib olduqdan sonra, simvollar qrupunu (alt sətir) boşluğun soluna almaq üçün başqa funksiyadan istifadə edə bilərsiniz.
  3. Qrupu təşkil edən simvolları təhlil edək və onun tam ədəd olub-olmadığını müəyyən edək. Müəyyən edilmiş tam ədədlər xüsusi dəyişəndə ​​cəmlənəcək.
  4. İndi boşluqun sağındakı bütün simvolları başqa bir funksiyadan istifadə edərək seçərək ilkin sətri qısaldaq. Bu boşluq sadəcə bir deyil, bir sıra boşluqlar seriyası ola bilər, ona görə də qalan sətirdə xüsusi funksiyadan istifadə edərək bütün ən sol boşluqlardan (ardıcıl olaraq) xilas olub 2-ci nöqtəyə qayıdırıq. 2-ci bənddən 4-cü nöqtəyə qədər sətirdə boşluq qalmaması şərtinə çatana qədər addımlar. Bu halda, qısaldılmış sətir təhlil edilən simvolların son qrupunu təşkil edəcəkdir.

İndi problemi həll etmək üçün lazım olan funksiyalara baxaq.

AbbrLP
Sintaksis: AbbrLP()
Seçimlər: (tələb olunur).
Birincinin solunda boşluqları (əhəmiyyətsiz simvolları) kəsir mənalı simvol sətirdə və sətirdəki son əhəmiyyətli simvolun sağında görünür.

Tapın
Sintaksis: Tap(,)
Seçimlər: (tələb olunur), (tələb olunur).
Tapılmış alt sətirin ilk simvolunun mövqeyini qaytarır.
Sətirdəki simvolların nömrələnməsi 1-dən başlayır. Əgər sətirdə göstərilən alt sətir yoxdursa, o zaman bizim vəziyyətimizdə alt sətir kimi boşluq (“ ”) istifadə edəcəyik.

aslan
Sintaksis: Lev(,)
Seçimlər: (tələb olunur), (tələb olunur).
Sətirin ilk sol simvollarını seçir. Bu funksiyadan istifadə edərək təhlil üçün simvol qruplarını təyin edəcəyik (soldan birinci boşluğa).

StrLength
Sintaksis: StrLength()
Seçimlər: (tələb olunur).
Sətirdəki simvolların sayını alır. Bir simin uzunluğunu müəyyən etmək üçün istifadə edəcəyik.
Funksiya Simvol kodu Tam ədədlər olan simvol qruplarını müəyyən etmək üçün istifadə edəcəyimiz , əvvəllər təsvir edilmişdir.

Sağ
Sintaksis: sağ(,)
Seçimlər: (tələb olunur), (tələb olunur).
Sətirdə ən sağdakı simvolları seçir. Bu funksiyadan istifadə edərək sətirin hələ də işlənməmiş hissəsini seçəcəyik.

AbbrL
Sintaksis: Abreviatura()
Seçimlər: (tələb olunur).
Sətirdəki ilk əhəmiyyətli simvolun solunda boşluqları (qeyri-əhəmiyyətli simvolları) kəsir. Biz bu funksiyadan sətrin qalan hissəsinin sol tərəfindəki mümkün boşluqları silmək üçün istifadə edirik.

Aşağıda şərhlərlə funksiya üçün mümkün alqoritm verilmişdir.

Rəqəm ifadələri

Modulların dəyişənləri və verilənlər bazası obyektlərinin təfərrüatları ədədi ola bilər.
Nömrə üçün rəqəm məhdudiyyəti var. Rəqəmsal təfərrüatlar üçün tam hissənin uzunluğu 32 simvoldan çox ola bilməz.

Kəsr hissəsinin dəqiqliyi 10 rəqəmdən çox ola bilməz. Dəyişən elan edildikdə və ona təyin edildikdə ədədi dəyər, onda onun bit dərinliyi heç bir yerdə qeyd olunmur. Bununla belə, dəyişənlər üçün də məhdudiyyətlər var.

Sintaksis köməkçisi deyir ki, nömrə üçün icazə verilən maksimum bit dərinliyi 38 simvoldur. Belə bir məhdudiyyət heç bir iqtisadi problemin həllinə mane olmur, yəni. Bu rəqəmlərdən istifadə edərək istənilən pul dəyərini təsvir etmək olar.

Bununla belə, bəzi riyazi problemləri həll etmək üçün hələ də böyük kəmiyyətləri təsvir etmək lazımdırsa, o zaman proqramlaşdırma nəzəriyyəsində mövcud məhdudiyyətlərə əsaslanaraq istənilən ölçülü rəqəmləri təsvir etməyə imkan verən alqoritmlər mövcuddur.

Nömrələrə tətbiq olunan əməliyyatlar:

  • adi siravi arifmetik əməliyyatlar(-, +, *, /). Vurma və bölmə toplama və çıxmadan üstündür. Mötərizələr ən yüksək prioritetə ​​malikdir. Üstünlük mötərizədən dərhal sonra gələn + və - operatorları da var;
  • əməliyyat “bölmə qalığı” (%). Məsələn, 12%5=2;
  • ədədlər üçün istifadə edilə bilən riyazi funksiyalar (triqonometrik funksiyalar, eksponentasiya, kvadrat kök, müəyyən bir yer dəyərinə yuvarlaqlaşdırma, ədədin tam hissəsinin seçilməsi)

Əgər rəqəmsal dəyərlərin düzgünlüyündən danışsaq, verilənlər bazası təfərrüatlarına gəldikdə, təbii məhdudiyyətlər var.

Amma dəyişənlərə gəldikdə, burada bir özəllik var. Əslində, siz dəyişənlər üzərində çox işləyə bilərsiniz böyük rəqəmlər, lakin tam hissə uzunluğu 32 simvoldan çox olmayan dəyərlər məlumat bazasında saxlanılacaq.

Boolean dəyərləri

Boolean məlumat növünə gəldikdə, müxtəlif yollarla əldə edilə bilən yalnız iki dəyər var, True və False.

Siz, məsələn, rəqəmlər və ya tarixlər arasında müqayisə əməliyyatlarından istifadə edə bilərsiniz. Nəticədə, gələcəkdə ən çox şərti ifadələrdə və döngə operatorlarında istifadə olunan müəyyən bir Boolean dəyəri əldə ediləcəkdir.

Tarix tipli hərflər

Tarixi təsvir etməyin iki yolu var. Onlardan biri hərfi istifadə edir. Hərfi tək dırnaq içərisində yazılır.

Əvvəlcə il, sonra ay, sonra gün yazılır.

Lazım gələrsə, vaxtı da təyin edə bilərsiniz, çünki 1C: Enterprise 8 sistemində istənilən tarix həm tarixi, həm də vaxtı ehtiva edir. Misal üçün:

Sənəd Tarixi = '20140315121020';

Əgər vaxt göstərilməyibsə, defolt olaraq sıfırdır. Tarixin təsvirində istənilən ayırıcıdan istifadə edə bilərsiniz. Misal üçün:

Sənəd Tarixi = '2014.03.15';

Tarixi təyin etməyin ikinci yolu qlobal kontekst funksiyasından istifadə etməkdir Tarixi(). Bu halda, biz bu funksiyaya parametrlərlə eyni şeyi keçirik: il, ay, vergüllə ayrılmış gün.

Siz həmçinin vaxtı təyin edə bilərsiniz. Onu qeyd etməsəniz, defolt olaraq günün başlanğıcı olacaq.

1C: Enterprise 8 sistemində boş tarix təqvimin ən başlanğıcıdır. Qeyd seçimləri:

EmptyDate = '00010101';
EmptyDate = Tarix (1,1,1);

Hər iki giriş eyni nəticəni verəcək və bu tarix boş hesab olunacaq.

Funksiya rahatlığı Tarixi() Məsələ ondadır ki, biz ona konkret dəyərləri deyil, bəzi dəyişənləri keçə bilərik. Yəni bəzən müxtəlif dəyişənləri toplayaraq tarix qururuq.

Əlavə əməliyyatı tarixə şamil edilir. Əlavə əməliyyatı müəyyən edilmiş saniyə sayını tarixə əlavə edir.

İbtidai məlumat növü çevrilmələri

Çox dəyişənlərin cəmləndiyi tapşırıq bəyanatında (məsələn, Dəyişən = A + B + C), primitiv məlumat növlərinin çevrilməsi mümkündür. Məlumat tipinə çevrilmə birinci məlumat növünün dəyəri ilə həyata keçirilir.

Beləliklə, əgər birinci məlumat növü sətirdirsə, sistem bütün ifadəni sətir etməyə çalışacaq. Birinci məlumat növü rəqəmdirsə, sistem rəqəmsal məlumat tipini əldə etməyə çalışacaq.

Və beləliklə, simli + nömrə = simli. Bəzən sətirdən bəzi ədədi dəyər çıxarıla bilsə (məsələn, 123 + “456”) bir sıra sətirə əlavə edilə bilər.

Məntiqi məlumat növü üçün aşağıdakı ifadələr tətbiq olunur:

Doğrudur VƏ 1 = Doğrudur;
Doğru VƏ 0 = Yanlış.

Sıfırdan böyük istənilən ədəd True, 0 False-ə çevrilir.

Tarix, əvvəl qeyd edildiyi kimi, nömrəyə əlavə edilə bilər. Tarixlər də Boolean məlumat növünə əlavə edilə bilər.

Bu halda True 1-ə, False isə 0-a çevrilir.

Operatorlarda tip çevrilməsinə əlavə olaraq, müvafiq funksiyalardan istifadə edərək açıq tip çevrilməsi mümkündür: String(), Number(), Date(), Boolean().

TO Xətt istənilən məlumat növü çevrilir.

Nömrə Stringdən və ya Booleandan əldə edilə bilər. Məntiqi çevirir: 1-ə doğru, 0-a yanlış.

Əgər tarix dəyərini ehtiva edirsə, sətri Tarixə ötürə bilərsiniz. Məsələn, Tarix("20140315"). Daha əvvəl qeyd edildiyi kimi, mövqeyə görə çevirmək mümkündür:

Tarixi(,).

Siz Nömrəni və Boolean dəyərinin özünü Booleana çevirə bilərsiniz.

Bu funksiyalar proqram kodunda açıq tip çevrilməsini həyata keçirmək üçün istifadə edilə bilər.

Primitiv məlumat növləri Nömrə, Sətir, Tarix və Boolean verilənlər bazası sahələri kimi çıxış edə bilər.

Null və qeyri-müəyyən dəyərlər

NULL hərfidir. Adətən iki və ya daha çox cədvəl birləşdirildikdə verilənlər bazası sorğularında istifadə olunur.

NULL dəyəri ilə doldurulmuş ikinci cədvəldə çatışmayan qeydlərdir. Bunlar. bir növ itkin dəyərdir.

Gələcəkdə nəticəni emal edərkən bu nəzərə alınmalıdır, çünki NULL sıfır deyil, müvafiq məlumat növüdür.

Dəyərin işlənməsi üçün NULL çıxış edilə bilən və ya hesab əməliyyatlarında istifadə oluna bilən bəzi müntəzəm məlumat növünə ötürülməlidir.

NULL tipli bir dəyər daxili dildə də əldə edilə bilər. Siz dəyişəni təyin edə və ona eyni NULL dəyəri təyin edə bilərsiniz. Lakin proqram kodunda belə bir tapşırıq demək olar ki, istifadə edilmir.

Bunlar. NULL həqiqətən sorğularla işləyərkən əldə edilən məlumat növüdür. Sorğu dilində NULL dəyərini xüsusi bir şəkildə idarə etmək lazımdır.

Məhz, A=NULL müqayisəsi sorğu səviyyəsində işləməyəcək; Bununla belə, daxili dildə NULL dəyəri ilə müqayisə düzgün aparılacaqdır.

Məlumat növü Müəyyən edilməmiş bəzi atributun boş olmayan dəyəridir.

Məsələn, kataloq atributunun məlumat növü kimi başqa kataloqa keçidi varsa, bu atributun boş dəyəri Müəyyən edilməmişə bərabər olmayacaq.

Bu tip (Qeyri-müəyyən), ilk növbədə, müəyyən bir dəyişənimiz varsa və o, işə salınmayıbsa (məlumat tipi müəyyən edilməyib) görünür.

İkinci misal: Əgər hərəkəti yerinə yetirmək mümkün olmadıqda, müəyyən edilməmiş məlumat növü bir çox daxili dil funksiyaları tərəfindən qaytarılır.

Məsələn, əgər bəzi kataloqda belə element adı yoxdursa, kataloq elementinin adına görə axtarış. Metod FindByName dəyəri qaytaracaq Müəyyən edilməmiş.

Harada Müəyyən edilməmiş edir açar söz, qırmızı rənglə vurğulanır. Bu həm də yazı üçün hərfidir Müəyyən edilməmiş heç bir sitat, vergül, mötərizə və s. istifadə etməyə ehtiyac yoxdur.

Sənədlərin siyahısı varsa və bu siyahı boşdursa (buna görə də orada heç bir sətir yoxdur), onda cari sətir dəyəri alacaq. Müəyyən edilməmiş.

Əgər infobazada kompozit məlumat növü olan bir atribut varsa, bu atributun boş dəyəri bərabər olacaq Müəyyən edilməmiş.

Lakin məlumat növü kompozit deyilsə, boş dəyər bu növün boş dəyərinə uyğun olacaq (bir tarix üçün bu, birinci ilin birinci ayının ilk gününün ilk saatının ilk saniyəsidir).

NULL və Undefined həm məlumat növləri, həm də bu tiplərdəki dəyərlərdir və bir və yalnız birdir. NULL üçün bu NULL dəyəridir, Undefined üçün isə müəyyən edilməmişdir.

Məlumat növü Növü

Bu məlumat növünün əsas istifadəsi müəyyən bir dəyişənin və ya verilənlər bazası atributunun dəyərini müəyyən bir növlə müqayisə etməkdir.

Bunlar. Alqoritmdə verilmiş obyektin hansı tip olduğunu başa düşməlisiniz.

Qeyd edək ki, bu məlumat növünün hərfi yoxdur. Biz onu NULL və ya Undefined kimi yaza bilmərik, lakin iki funksiyadan istifadə edərək bu növün qiymətini ala bilərik NövTypeValue.

Bəzi obyektin tipini (bu dəyişən, verilənlər bazası atributu və ya forma atributu ola bilər) əldə etmək üçün funksiyadan istifadə olunur. TypeValue.

Bu funksiya məlumat növünü almaq istədiyiniz obyektə ötürülür.

Bu funksiya növün növünü onun qaytarılma dəyəri kimi qaytarır.

Gələcəkdə hər hansı bir maraq növü ilə müqayisə edilməlidir. Misal üçün:

Əgər TypeValue(Element) = Type (“DirectoryLink.Nomenclature”) Sonra
Hesabat ("Bu məhsuldur");
endIf;

Sonda, əhatə olunan bütün materialı ümumiləşdirək.

Biz daxili 1C dilinin əsas strukturlarına baxdıq, dəyişənlərdən və operatorlardan necə istifadə etməyi öyrəndik, prosedur və funksiyalardan niyə və necə istifadə olunacağını anladıq. Qeyd edək ki, bu nöqtəyə qədər əsasən bütün proqram kodlarımız öz-özünə kifayət edirdi - biz hər şeyi sıfırdan özümüz yazdıq və bəzi konfiqurasiya obyektlərindən və ya daxili dildən minimuma qədər istifadə etdik.

Növbəti məqalədə bu obyektləri daha ətraflı araşdıracağıq, ona görə də bizi izləməyə davam edin! ;)