1C proqramlaşdırmada peşəkar yanaşma – biznesiniz üçün optimal həllər

1c Proqramlasdirma Ucun F Rdi H Ll R
1C Avtomatlaşdırma

1C sisteminin fərdiləşdirilməsi, yeni modullar və mövcud funksiyaların genişləndirilməsi.

1c Il Biznesin R Q Msal Avtomatlasdirilmasi
Xidmətlərimiz

1C proqramlaşdırma, fərdi həllər, inteqrasiyalar və biznes proseslərinin avtomatlaşdırılması.

Kodyaz 1c Proqramlasdirma T Limi
Təlimlər

1C proqramlaşdırma dərsləri, praktiki tapşırıqlar və peşəkar inkişaf.

Kodyaz Il R Q Msal Inteqrasiya Ofisi
Rəqəmsal həllər

API inteqrasiyaları, avtomatlaşdırılmış iş axınları və süni intellekt əsaslı həllər.

1c S Rhl Ri  Oxunaqli Kodun Acari

Kodun Gizli Qəhrəmanı

Bir həftə əvvəl yazdığınız koda baxıb “bunu mən niyə belə etmişdim?” deyə düşünmüsünüzmü? Çox proqramçı bu hissi tanıyır. Kod kompüter üçün yazılır, amma onu oxuyacaq insanlar var: komanda yoldaşları, dəstək mütəxəssisləri və bir neçə ay sonrakı özünüz.

1C daxili dilində bu problemi azaldan ən sadə vasitə şərhdir (комментарий). Bu məqalədə şərhin nə olduğunu, necə yazıldığını, hansı şərhin faydalı, hansının zərərli olduğunu və prosedurların necə sənədləşdirildiyini nümunələrlə izah edirik.

1Şərh nədir?

Şərh proqramın icrasına təsir etməyən, yalnız insanın oxuması üçün yazılan mətndir. 1C platforması kodu icra edərkən şərhi tamamilə nəzərə almır. Konfiqurator və EDT kimi redaktorlar şərhi kodun qalan hissəsindən ayırd etmək üçün ayrıca rənglə göstərir (adətən yaşıl).

Nümunə 1: ən sadə şərh1C:Enterprise
// Bu sətir şərhdir, proqram onu icra etmir.
Mesaj = "Salam, KodYaz!";
Сообщить(Mesaj);

Burada yalnız ikinci və üçüncü sətir icra olunur. Birinci sətir kodu oxuyan insana məlumat verir.

Əsas fikir: kod kompüterə nə etməli olduğunu, şərh isə oxucuya bunun nə üçün belə edildiyini deyir.

2Şərhin yazılışı və sintaksis xüsusiyyətləri

1C-də şərh iki əyri xətt ilə, yəni // ilə başlayır. Bu işarədən sətrin sonuna qədər olan hər şey şərh sayılır. Şərhi ayrıca sətirdə və ya əmrin sonunda yazmaq olar.

Nümunə 2: iki yazılış forması1C:Enterprise
// Forma 1: şərh ayrıca sətirdə
Miqdar = 10;

Miqdar = 10;   // Forma 2: şərh əmrin sonunda

Qısa izah üçün ikinci forma rahatdır. Şərh uzundursa, onu əmrin üstündəki ayrıca sətrə keçirin ki, kod sağa doğru uzanmasın.

Çox sətirli şərh yoxdur

Bəzi dillərdə /* ... */ kimi blok şərh var. 1C daxili dilində belə sintaksis yoxdur. Uzun izahı bir neçə sətirə bölürsünüz və hər sətri // ilə başladırsınız.

Nümunə 3: bir neçə sətirlik izah1C:Enterprise
// Sifarişin yekun məbləği hesablanır.
// Endirim yalnız müştəri kartı olduqda tətbiq edilir.
// Endirim faizi satış şöbəsi ilə razılaşdırılıb.
Yekun = Mebleg - Endirim;

Redaktorun mətn menyusunda seçilmiş bir neçə sətri bir əmrlə şərhə almaq və geri qaytarmaq mümkündür. Konkret əmrin adı və qısa yolu redaktorun növündən və versiyasından asılıdır, ona görə öz mühitinizdəki menyuya baxın.

Sətirin içindəki // şərh deyil

Dırnaq içindəki mətn sətir qiymətidir və orada // yazmaq şərhi başlatmır. Bu, internet ünvanlarında tez-tez rast gəlinir.

Nümunə 4: dırnaq içində // işarəsi1C:Enterprise
Unvan = "https://kodyaz.az";   // Dırnaq içindəki // şərh sayılmır
Сообщить(Unvan);              // Ekrana tam ünvan çıxır

Şərhdə Azərbaycan hərfləri

Şərhin içində ə, ş, ı kimi hərfləri sərbəst işlədə bilərsiniz. Bu məhdudiyyət şərhə yox, identifikatorlara (dəyişən və prosedur adlarına) aiddir: adları latın hərfləri ilə, xüsusi simvollar olmadan yazmaq daha etibarlıdır.

3Şərh nə üçün lazımdır: “nə” yox, “niyə”

Kodun özü çox vaxt nə etdiyini göstərir. Oxucunun bilmədiyi şey adətən niyə belə edildiyidir: biznes qaydası, müqavilə şərti, qanun tələbi və ya texniki məhdudiyyət. Yaxşı şərh məhz bu boşluğu doldurur.

Bir nümunəyə baxaq. Aşağıdakı sətir hesablamanı göstərir, amma 1.18 ədədinin nə olduğunu deməyir.

Aydın olmayan1C:Enterprise
Netice = Cem * 1.18;
İzahlı1C:Enterprise
// ƏDV dərəcəsi 18%-dir.
EdvDerecesi = 0.18;
Netice = Cem * (1 + EdvDerecesi);

İkinci variantda həm şərh var, həm də ədəd adlı dəyişənə çıxarılıb. Bu çox vacib məqamdır: bəzən şərh yazmaq əvəzinə kodu özünü izah edəcək şəkildə yazmaq daha yaxşıdır. Şərh isə ad ilə ifadə olunmayan səbəbi izah etmək üçün saxlanılır.

Qeyd: ƏDV faizi və vergi qaydaları dəyişə bilər. Nümunədəki 18% izah məqsədi daşıyır, real layihədə qüvvədə olan qaydaya görə yoxlanmalıdır. Ən yaxşısı belə dərəcələri koda sərt yazmaq yox, uçot parametrlərindən oxumaqdır.

Yaxşı “niyə” şərhlərinin daha üç nümunəsi

Nümunə 5: biznes qaydası1C:Enterprise
// Müqavilə şərtinə görə qiymət qəpiyə qədər yuvarlaqlaşdırılır.
Qiymet = Окр(Qiymet, 2);
Nümunə 6: məhdudiyyət1C:Enterprise
// Anbar qalığı mənfi ola bilməz, ona görə sıfırdan aşağı salmırıq.
Qaliq = Макс(Qaliq - Miqdar, 0);
Nümunə 7: qeyri-adi qərar1C:Enterprise
// Mühasibatlıq sifarişləri ayın 25-dən sonra qəbul etmir,
// ona görə son tarix kimi 25-ci gün götürülür.
SonTarix = Дата(Год(Bugun), Месяц(Bugun), 25);

4Zərərli şərhlər

Hər şərh faydalı deyil. Pis şərh oxucunun vaxtını alır və hətta onu yanlış istiqamətə yönəldir. Üç tipik hal var.

1. Kodu sözbəsöz təkrarlayan şərh

Lazımsız şərh1C:Enterprise
Say = Say + 1;   // Say-ı 1 artırırıq

Kod özü aydındır. Belə şərh heç nə əlavə etmir, yalnız modulu uzadır.

2. Köhnəlmiş şərh

Kod dəyişib, şərh isə qalıb. Bu, ən təhlükəli haldır, çünki oxucu şərhə inanır.

Kodla uyğun gəlməyən şərh1C:Enterprise
// Endirim 10%-dir
Endirim = Mebleg * 0.15;

Şərh 10% deyir, kod isə 15% hesablayır. Hansının düzgün olduğu bəlli deyil. Düzgün yol: kodu dəyişəndə şərhi də yeniləmək və dəyişikliyin səbəbini yazmaq.

Yenilənmiş şərh1C:Enterprise
// Endirim 15%-dir (2026-10-20: satış şöbəsinin tələbi ilə 10%-dən artırıldı).
Endirim = Mebleg * 0.15;

3. Şərhə alınmış köhnə kodun yığılması

Köhnə kod şərhdə qalıb1C:Enterprise
// Endirim = Mebleg * 0.10;
// Endirim = Mebleg * 0.12;
Endirim = Mebleg * 0.15;

Köhnə variantları şərhdə saxlamaq modulu qarışdırır. Dəyişiklik tarixçəsi üçün konfiqurasiya saxlanışı (Хранилище конфигурации) və ya Git kimi versiya nəzarəti sistemindən istifadə edin, kodda isə yalnız aktual variantı saxlayın.

5Prosedur və funksiyaların təsviri

Hər əmri izah etmək lazım deyil, amma prosedur və funksiyanın üstündə qısa təsvir yazmaq çox faydalıdır. 1C-nin işləmə standartları belə təsvirin vahid formasını təklif edir: əvvəlcə qısa izah, sonra Параметры: və Возвращаемое значение: bölmələri. Bu bölmələrin adları standartda belə yazılır, izah mətnini isə öz dilinizdə yaza bilərsiniz.

Nümunə 8: funksiyanın təsviri1C:Enterprise
// Sifarişin yekun məbləğini hesablayır.
//
// Параметры:
//  Miqdar - Число - malın miqdarı
//  Qiymet - Число - vahid qiymət
//  EdvVar - Булево - ƏDV əlavə olunsun, ya yox
//
// Возвращаемое значение:
//  Число - ƏDV nəzərə alınmaqla yekun məbləğ
//
Функция YekunMebleg(Miqdar, Qiymet, EdvVar = Истина) Экспорт

    Mebleg = Miqdar * Qiymet;

    Если EdvVar Тогда
        // ƏDV dərəcəsi 18%-dir.
        Mebleg = Mebleg * 1.18;
    КонецЕсли;

    Возврат Окр(Mebleg, 2);

КонецФункции

Bu cür təsvir üç sualı cavablandırır: funksiya nə edir, hansı parametrləri qəbul edir və nə qaytarır. Başqa proqramçı funksiyanın içinə baxmadan onu düzgün çağıra bilir.

Praktiki tövsiyə: xüsusilə Экспорт ilə elan olunmuş və başqa modullardan çağırılan funksiyaların təsvirini yazın. Onları ən çox başqa adamlar istifadə edir.

6Müvəqqəti şərhlər: sazlama və TODO

Şərhdən müvəqqəti məqsədlər üçün də istifadə olunur. Məsələn, xətanın səbəbini axtararkən şübhəli əmri silmək əvəzinə onu şərhə alırsınız.

Nümunə 9: yoxlama üçün müvəqqəti söndürmə1C:Enterprise
// Yoxlama üçün müvəqqəti söndürülüb, test bitəndən sonra qaytarılmalıdır:
// ShexsiEndirimiTetbiqEt(Sifaris);

Əsas qayda: müvəqqəti şərh həqiqətən müvəqqəti qalmalıdır. İş bitəndən sonra əmri ya geri qaytarın, ya tamamilə silin.

Gələcək işlər üçün qeyd

Hələ edilməmiş işi qeyd etmək üçün TODO kimi vahid söz işlətmək rahatdır. Bəzi redaktorlar belə qeydləri ayrıca siyahıda göstərə bilər, hər halda sözlə axtarış da işləyir.

Nümunə 10: TODO qeydi1C:Enterprise
// TODO: Hazırda yalnız AZN dəstəklənir, valyuta çevirməsi əlavə edilməlidir.
Mebleg = Miqdar * Qiymet;

7Yaxşı şərh üçün qısa qaydalar

QaydaNümunəNiyə faydalıdır?
“Niyə?” sualına cavab verin// Müqavilə şərtinə görə yuvarlaqlaşdırılırBiznes səbəbini saxlayır.
Qısa və konkret yazın// Yalnız aktiv sifarişlər emal olunurOxucu tez başa düşür.
Aydın kodu təkrarlamayınSay = 10; üçün “Say 10 olur” yazmayınLazımsız mətn azalır.
Kodla birlikdə yeniləyinDüstur dəyişəndə şərhə də baxınYanlış izahın qarşısı alınır.
Əvvəl adı yaxşılaşdırın1.18 əvəzinə EdvDerecesiBəzən şərhə ehtiyac qalmır.
Köhnə kodu şərhdə saxlamayınGit və ya saxlanış istifadə edinModul səliqəli qalır.

Sadə yoxlama: şərhi yazmazdan əvvəl özünüzə sual verin: “Bu məlumat kodun özündən görünürmü?” Cavab “xeyr”dirsə, şərh yazın. Cavab “bəli”dirsə, çox güman ki, şərh lazım deyil.

?Özünü yoxla

Əvvəl cavabı özünüz düşünün, sonra açıqlamanı oxuyun.

1. Şərh proqramın icrasına təsir edirmi?

Xeyr. Şərh yalnız insan üçündür, platforma onu icra etmir.

2. 1C-də şərh hansı işarə ilə başlayır?

// ilə. Şərh həmin sətrin sonuna qədər davam edir.

3. 1C-də çox sətirli blok şərh (/* ... */) varmı?

Xeyr. Bir neçə sətirlik izah üçün hər sətri // ilə başlamaq lazımdır.

4. Unvan = "https://kodyaz.az"; sətrində // şərhi başladırmı?

Xeyr. O, dırnaq içindədir və sətir qiymətinin hissəsidir.

5. Şərh “nə edir”, yoxsa “niyə edir” sualına cavab verəndə daha faydalıdır?

Adətən “niyə” sualına cavab verəndə. Kodun özü çox vaxt “nə”ni göstərir, səbəbi isə şərh izah edir.

6. Kod dəyişəndə köhnə şərhi nə etmək lazımdır?

Yeniləmək. Köhnəlmiş şərh oxucunu yanlış istiqamətə yönəldir.

Yekun

Şərh kodun yaddaşıdır. Yaxşı yazılmış şərh gələcək dəyişiklikləri asanlaşdırır və komandada anlaşmanı gücləndirir. Yadda saxlamaq üçün dörd qayda:

  • Şərhi // ilə başladın, çox sətirli blok şərh yoxdur.
  • Kodun özündən görünməyən səbəbi, qaydanı və məhdudiyyəti izah edin.
  • Əvvəl adları yaxşılaşdırın, şərhi isə qalan boşluq üçün yazın.
  • Kod dəyişəndə şərhi də yeniləyin, köhnə kodu şərhdə yığmayın.

Bəs siz öz kodunuzu bir ay sonra açsanız, nə üçün belə yazdığınızı xatırlayacaqsınızmı?

Qeyd: nümunələr tədris məqsədi daşıyır. Redaktorun qısa yolları və göstərilmə qaydaları 1C platformasının və istifadə olunan alətin (Konfiqurator, EDT) versiyasından asılı ola bilər.

Şərh yaz

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir