1C Enterprise tilida dasturlash 8. O'zgaruvchan - sikl hisoblagichidan foydalangan holda tsikllar

Qoidaga ko'ra, har qanday dasturlash tilini o'rganish birinchisini yozish misolidan boshlanadi eng oddiy dastur("Salom Dunyo!"). Bu asosiy sintaktik tuzilmalar bilan ishlashni aniq ko'rsatish uchun amalga oshiriladi. Biz yangi rivojlanish muhitini o'rganishda materialni taqdim etishning ushbu umume'tirof etilgan usulidan istisno qilmaymiz va shuning uchun bizning birinchi maqolamiz xuddi shu nuqtai nazardan ko'rib chiqilishi kerak. Unda biz 1C: Enterprise 8 platformasida dasturlash bo'yicha quyidagi savollarga javoblarni batafsil tahlil qilamiz:

  • O'rnatilgan 1C tilida dastur kodini qayerda va qanday yordam bilan yozish mumkin?
  • Dasturiy ta'minot modullari nima, ular bilan ishlash qoidalari qanday?
  • O'zgaruvchi nima, u bilan qanday ishlash kerak, uni qanday va qayerda e'lon qilish kerak?
  • Qanday taqqoslash, tayinlash va shart operatorlari mavjud va ulardan qanday foydalanasiz?
  • Mantiqiy operatsiyalar - ular nima va ular bilan qanday ishlash kerak?
  • Nima uchun bizga looplar kerak va ulardan qanday foydalanish kerak?

Maqola 1C: Enterprise 8 platformasida rivojlanish bilan hali tanish bo'lmagan, lekin 1C da dasturlashni o'rganishni istaganlar uchun foydali bo'ladi.

Qo'llanilishi

Material 1C: Enterprise 8 platformasi, 8.2 nashri uchun tegishli. va 8.3.

O'zgaruvchilar va operatorlar

Ushbu maqolada biz o'rnatilgan tilni o'rganishni boshlaymiz 1C: Enterprise 8. Bajariladigan kod dastur modullarida mavjud.

Turli hodisalarni boshqarish uchun mo'ljallangan juda ko'p sonli modullar mavjud.

Shunday qilib, foydalanuvchining tizimga kirishi bitta modulda qayta ishlanadi va foydalanuvchining ma'lum bir tugmani bosish jarayoni butunlay boshqa modulda qayta ishlanadi.

Shunday qilib, har bir modul ma'lum bir nuqtada konfiguratsiyaning harakatini tavsiflaydi. Modulda, birinchi navbatda, o'zgaruvchilarni tavsiflash bo'limi mavjud. Bular. modulda ba'zi o'zgaruvchilarni e'lon qilishimiz mumkin.

Kelajakda ular ushbu modulning protseduralari va funktsiyalarida ishlatilishi mumkin. Agar o'zgaruvchi Export kalit so'zi bilan aniqlansa, u tashqarida mavjud bo'ladi ushbu moduldan. O'zgaruvchan deklaratsiya qatoriga misol:

Perem ombori, bo'limi, do'kondor eksporti;

O'zgaruvchilar e'lon qilinganidan keyin protseduralar va funktsiyalar bo'limi mavjud.

Ularning orqasida ushbu modulga kirishda bajariladigan asosiy dasturning bo'limi mavjud.

Masalan, asosiy dasturning bo'limida siz o'zgaruvchilarni ishga tushirishingiz mumkin, ya'ni. ularga boshlang'ich qiymatlarni bering:

Shtat=1;
NewExpression=2;
Natija=3;

Modulni bizga kerak bo'lgan turli xil amallarni bajaradigan turli operatorlarning kombinatsiyasi sifatida qarash mumkin.

Operator ajratuvchi ";" belgisidir. (nuqta vergul). Ushbu belgi bayonotning oxirini belgilaydi. Bular. operator quyidagicha yozilishi mumkin:

Natija=100X200
+400
-600;

Bayonot necha qatorda joylashganligi muhim emas.

Albatta, operatorni bir qatorga joylashtirish ko'pincha qulayroq va tushunarliroq bo'ladi, lekin ba'zida operatorlar ancha uzun bo'ladi (liniyalar soni bir necha o'nlab liniyalarga yetishi mumkin).

Berilgan konstruktsiyaning, masalan, protseduraning yakuniy bayonotida nuqta-vergul qo'yilmasligi mumkin. Bular. quyidagi kod ishlaydi:

CalculateValue() protsedurasi

Boshlang'ich qiymat = 100;
IntermediateValue = InitialValue/5;
FinalValue = InitialValue+IntermediateValue

Jarayonning oxiri

Biroq, yakuniy bayonotda nuqta-verguldan foydalanish yaxshiroqdir. Vaqt o'tishi bilan qurilish davom etishi mumkin va yakuniy bayonot endi yakuniy bo'lmaydi. Biz bu vaziyatni alohida kuzatishimiz kerak bo'ladi.

O'zgaruvchilar har qanday turdagi ma'lumotlarning ba'zi qiymatini saqlash uchun mo'ljallangan. Ular qayta ishlash uchun axborotni oraliq saqlash uchun ishlatiladi.

Ba'zi harakatlarni bajaradigan deyarli har qanday dasturiy modulda turli xil o'zgaruvchilar mavjud. 1C: Enterprise 8 platformasida o'zgaruvchilarni qiymatlar bo'yicha yozish yumshoq.

Masalan, o'zgaruvchida bitta turdagi ma'lumotlarning qiymati bo'lishi mumkin, keyin esa bir necha qatordan keyin - boshqa turdagi:

Yaratilgan = False;
Yaratilgan = rost;
Yaratilgan =100;

Birinchi ikkita operatorda o'zgaruvchilarning qiymati mantiqiy, uchinchisida esa ga o'zgaradi raqamli qiymat. Bular. yozish berilgan o'zgaruvchiga tayinlangan qiymatga bog'liq.
O'zgaruvchilarni ikki yo'l bilan tavsiflash mumkin:

  • yashirin usul (topshiriq operatorining chap tomonidagi eslatma ushbu o'zgaruvchini tavsiflaydi, Variable so'zi bilan o'zgaruvchining dastlabki tavsifi mavjud emas, ya'ni o'zgaruvchilarni tavsiflash uchun maxsus bo'lim mavjud emas);
  • o'zgaruvchilarning aniq tavsifi (Variable Control Data;). O'zgaruvchilarni aniq e'lon qilish, masalan, agar ushbu o'zgaruvchini keyinchalik funktsiyaga o'tkazish mo'ljallangan bo'lsa, qo'llaniladi.

O'zgaruvchilar klassik identifikator tavsifi yordamida nomlanadi. Identifikator harflar, raqamlar va pastki chiziqdan iborat. Identifikator harf yoki pastki chiziq bilan boshlanishi kerak.

Bunday holda, o'zgaruvchining nomi ushbu o'zgaruvchining ma'nosini aks ettirishi kerak. Bir harfli o'zgaruvchilar nomlari (masalan, A, B, C) yomon misollardir. Ular o'zgaruvchilarning mohiyatini aks ettirmaydi.

To'g'ri o'zgaruvchilar nomlariga misollar: Hisoblagich (aylanma uchun ortib borayotgan o'zgaruvchi), Counterparty. Agar o'zgaruvchining nomi bir nechta so'zlardan iborat bo'lsa, aniqlik uchun har bir yangi so'z bosh harf bilan boshlanishi kerak.

Protsedura, Function, Loop, EndLoop kabi zahiralangan so'zlarni o'zgaruvchilar nomlarida ishlatib bo'lmaydi. (bu tuzilmalar dastur modulida qizil rang bilan ajratilgan).

Zaxiralangan so'zlar o'rnatilgan til operatorlari bo'lib, ularning soni juda oz. Ularning barchasi taqdim etilgan Sintaksis yordamchisi.

Shuni ta'kidlash kerakki, ma'lumotlar turlari ajratilgan so'zlar emas (masalan, Array, Boolean, True, False). Tizim bunday o'zgaruvchilar nomlarini to'g'ri qabul qiladi.

Yozish uchun dastur kodi holat muhim emas. Masalan, Protsedura so'zi bosh yoki kichik harf bilan yozilishi mumkin. Bundan tashqari, bir so'z ichida katta va kichik harflarni almashtirish mumkin.

Bu platforma uchun muhim emas. Vaholanki, odob qoidalariga ko‘ra, so‘z boshi bosh harf bilan, qolgan barcha harflar kichik harflar bilan yozilishi kerak.

Til haqida. Siz rus, ingliz yoki ikki tilning kombinatsiyasidan foydalanishingiz mumkin. Agar kimdir uchun qulay bo'lsa, dastur kodini yozish uchun ingliz tilidan xavfsiz foydalanishingiz mumkin, shuningdek, rus va ingliz tillarini birlashtirasiz. Bu platforma uchun muhim emas.

Ko'p sarlavhalar yoqilgan Ingliz tili eslab qolish juda qiyin. Ikki tilning kombinatsiyasidan foydalanganda dastur kodining o'qilishi yomonlashadi.

Mantiqiy operatsiyalar

Taqqoslash operatorlari ko'pincha "True" yoki "False" ni qaytaradigan mantiqiy mantiqdan foydalanadilar.

Masalan, shartli operatorda siz taqqoslashingiz mumkin: Agar Event = Sale Unda algoritm bir tarmoqqa amal qiladi (ya'ni, qiymat True bo'lsa), shart False bo'lsa, algoritmning boshqa bo'limi bajariladi.

Shartlar ancha murakkab bo'lishi mumkin, ular birlashtirilishi mumkin va quyidagi operatorlardan foydalaniladi: AND, OR, va NOT. Shunday qilib, AND operatori uchun:

Haqiqat va haqiqat = haqiqat;
To'g'ri va noto'g'ri = noto'g'ri;
False va True = False;
False VA False = False.

OR operatori uchun operandlardan biri True ga teng bo'lsa kifoya, u holda kombinatsiya qiymati True bo'ladi. False qiymati faqat ikkala operand False bo'lganda olinadi.

NOT operatori shunchaki joriy qiymatni o'zgartiradi (False to True, True to False).

Ushbu operatorlarning kombinatsiyasidan foydalanib, siz juda murakkab sharoitlarni yaratishingiz mumkin. Murakkab shartli bayonotlarni tuzishda siz ustuvorliklarni hisobga olishingiz kerak.

NOT operatori eng yuqori ustunlikka ega, undan keyin AND operatori, keyin esa OR operatori. Qavslar ichida nima bo'lishidan qat'i nazar, eng yuqori ustuvorlikka ega va birinchi bo'lib bajariladi.

Masalan, berilgan ifodadagi amallar uchun ustuvorliklarni (bajarish ketma-ketligini) belgilaymiz:

EMAS (1-shart YOKI 2-shart) va 3-shart YOKI 4-shart
1.Natija1 = (1-shart YOKI 2-shart);
2. Natija2 = Natija EMAS1;
3. Natija3 = Natija2 VA 1-shart;
4. Natija = Natija3 YOKI Shart 4;

Konvertatsiya qilish qoidasi mavjud:

EMAS (1-shart YOKI 2-shart) = Shart EMAS VA 2-shart EMAS.

Biroq, har doim ham ifodani soddalashtirishga harakat qilmaslik kerak, chunki ko'pincha mantiqiy ravishda kengaytirilgan iborani o'qish osonroq bo'ladi.

Tayinlash operatori

Belgilash operatorini tenglik operatori bilan adashtirmaslik kerak, garchi ular bir xil imloga ega bo'lsa ham.

Belgilash operatorining printsipi shundan iboratki, chap qiymatga (chap tomondagi o'zgaruvchiga) tenglik belgisining o'ng tomonidagi qiymat beriladi. Keling, bir misolni ko'rib chiqaylik:

O'zgaruvchi1 = O'zgaruvchi2 = O'zgaruvchi3;

Variable1 ga mantiqiy mantiqdan tenglik qiymati beriladi, ya'ni. O'zgaruvchi2 = O'zgaruvchi3 bo'lsa rost, aks holda noto'g'ri.

Ajam dasturchining pozitsiyasini sinab ko'rishda ikkita o'zgaruvchining qiymatlarini almashtirish juda tez-tez ishlatiladigan vazifadir.

Bu muammo tayinlash operatori yordamida hal qilinadi va ikkita yechimga ega.

Vaqtinchalik o'zgaruvchidan foydalangan holda №1 yechim:
TemporaryVariable = Variable1;
O'zgaruvchi1 = O'zgaruvchi2;
Variable2 = TemporaryVariable;

Yechim №2:
O'zgaruvchi1 = O'zgaruvchi1 + O'zgaruvchi2;
O'zgaruvchi2 = O'zgaruvchi1 - O'zgaruvchi2;
O'zgaruvchi1 = O'zgaruvchi1 - O'zgaruvchi2;

Shartli operator

Bunday operator mavjud If, undan keyin qandaydir shartni tavsiflash kerak bo'lsa (shartning o'zi juda katta bo'lishi mumkin). Shartdan keyin Keyin so'zi va bajariladigan gaplar keladi.

Undan keyin Else kalit so'zi va boshqa bir qator iboralar kelishi mumkin. Agar bir nechta turli shartlar mavjud bo'lsa, siz bir qator kalit so'zlardan foydalanishingiz mumkin Aks holdaAgar(quyidagi misolga qarang). Butun qurilish kalit so'z bilan tugashi kerak EndIf, keyin nuqtali vergul qo'yiladi.

Oddiy va ko'p shartlardan tashqari shart operatorining qisqartirilgan shakli mavjud: ?(Shart, Ifoda1, Ifoda2);

Agar shart rost bo'lsa, u bajariladi Ifoda 1, aks holda - Ifoda 2. Misol kodi: ExpensiveProduct = ?(Mahsulot.Price>100000, Rost, False);

Amalda, yozuvlarni qiymat bilan taqqoslash o'rniga To'g'ri (Yolg'on) turi:

Agar o'zgaruvchi = rost bo'lsa
Va
Agar o'zgaruvchi = noto'g'ri bo'lsa

Haqiqatda qo'llaniladigan ekvivalent belgilar:

Agar o'zgaruvchan bo'lsa
Va
Agar o'zgaruvchan bo'lmasa

Tsiklik operatorlar

Har qanday turdagi halqa uchun ushbu tsiklning oxiri aniq ko'rsatilishi kerak kalit so'z Tsiklning oxiri. Bir necha turdagi tsikllar mavjud.

Hisoblagichda pastadir– belgilangan takroriy sonli tsikl. Tsikldan chiqish sharti chegara qiymatidan oshib ketgan. A qiymatini hisoblash uchun foydalanish misoli!

A = 5;
Faktorial = 1;
Hisoblagich uchun = 1 tsikl bo'yicha
Faktorial = Faktorial * Hisoblagich;
EndCycle;

Shartlar bo'yicha aylanish– berilgan sikl sharti rost bo‘lsagina bajariladi. Misol:

Qolgan miqdor = 1000;
Qo'shimcha mahsulot narxi = 243;
Miqdori = 0;
Qolgan miqdor> 0 tsikl
Miqdor = Miqdor+1;
Qolgan miqdor = Qolgan miqdor - Miqdor*Qo'shimcha mahsulot narxi;
Qo'shimcha mahsulot narxi = Qo'shimcha mahsulot narxi * 0,8;
Tsiklning oxiri
Miqdor = Miqdor-1;

Ushbu tsikl, agar mahsulotning har bir birligini sotib olgandan so'ng, uning oldingi narxi 0,8 koeffitsientga ko'paytirilsa, ma'lum miqdorda (1000 rubl) qancha mahsulot birligini sotib olish mumkinligini hisoblab chiqadi. Mahsulotning asl narxi - 243 rubl.

Yangi boshlanuvchilar uchun ushbu turdagi pastadirdan foydalanishda xatolikka misol qilib, tsiklning sharti dastlab to'g'ri bo'lsa, lekin tsiklning o'zida u hech qanday tarzda o'zgarmasa, abadiy tsikldir.

To'plamlar bo'ylab o'ting (hamma uchun boshqa nom).

Platformada juda ko'p to'plamlar mavjud (bular ma'lum turdagi elementlarni o'z ichiga olgan konteynerlar).

Siz maxsus turdagi sikl yordamida to'plam elementlarini takrorlashingiz mumkin.

Masalan, raqamlar qatori mavjud, siz massivning barcha elementlarining yig'indisini hisoblashingiz kerak:

Miqdori = 0;
Massiv siklidan har bir element uchun
Sum=sum+element;
EndCycle;

Tsikllar uchun mavjud maxsus operatorlar: Davom eting Va Bekor qilish.

Agar siklning qaysidir nuqtasida berilgan siklning keyingi operatorlarining bajarilishi ma'nosiz bo'lib qolsa, u holda operator sikl boshiga qaytish va uning keyingi siklini tashkil qilish uchun ishlatiladi. Davom eting.

Operator Bekor qilish tsiklning sharti rost bo'lsa ham, bajarilishni tugatishga imkon beradi.

Bu bizning ichki 1C tilidagi rivojlanish bilan birinchi tanishuvimizni yakunlaydi.

Hello World haqida nima deyish mumkin? Biz buni hali yozmadik, shunday emasmi? Ha, lekin buni o'zingiz qilishingizga hech narsa to'sqinlik qilmaydi, chunki ... bilim allaqachon yetarli. Xo'sh, agar u ishlamasa, unda siz bu yerga qarashingiz mumkin.

1C: Enterprise dasturlarining o'rnatilgan dasturlash tili - bu 1C: Enterprise buxgalteriya hisobini avtomatlashtirish dasturlari oilasida qo'llaniladigan dasturlash tili. Bu til oldindan kompilyatsiya qilingan yuqori darajadagi domenga xos tillar sinfiga kiradi. Uning ishlash muhiti 1C: Enterprise platformasi (shu jumladan 1C: Buxgalteriya hisobi). Uning vizual ishlab chiqish muhiti "Konfigurator" deb nomlanadi va 1C: Enterprise paketining bir qismidir.

Til rus va ingliz tillarida buyruqlar sintaksisini qo'llab-quvvatlaydi. 1C:7.0, 1C:7.5 va 1C:7.7 versiyalari uchun oʻrnatilgan til dialektlari kichik istisnolar bilan pastdan yuqoriga mos keladi. 1C: 7x dialektlari asosiy operatorlar nuqtai nazaridan 1C: 8x bilan mos keladi, lekin ular dastur ob'ektlari bilan ishlashda sezilarli darajada farq qiladi, buning natijasida kodni 1C: 7x platformasidan boshqasiga o'tkazish deyarli ma'nosizdir. 1C: 8x platformasi.

O'zining sintaksisi bo'yicha 1C: 8 dasturlash tiliga o'xshaydi Vizual til Asosiy. Platforma o'zlarining qo'llanilishi sohasidagi odatiy muammolarni hal qilish uchun mo'ljallangan asosiy sinflarning qat'iy to'plamini taqdim etadi. Ba'zi asosiy sinflar:

  • Hujjat,
  • Hujjatlar jurnali,
  • Doimiy,
  • Davolash,
  • Hisobot,
  • Transfer,
  • Hisoblar jadvali,
  • Katalog va boshqalar.

Ushbu asosiy sinflardan siz vizual konfiguratsiya vositalaridan foydalangan holda istalgan miqdordagi hosila sinflarni yaratishingiz mumkin. Bundan tashqari, dasturiy jihatdan aniqlashning hech qanday usuli yo'q yangi sinf. Sinf merosida faqat aniq qadamga ruxsat beriladi. Olingan sinflar ob'ektlari odatda ma'lumotlar bazasi yozuvlari yoki yozuvlar to'plamidir. 1C tili nuqtai nazaridan ular metadata ob'ektlari deb ataladi va "Metama'lumotlar daraxti" deb ataladigan narsalarni tashkil qiladi.

Ushbu metama'lumotlar ob'ektlarining turlari biznes jarayonlari, Hujjatlar, Vazifalar, Qayta ishlash, Hisobotlar, Hisoblash turlari va xususiyatlarining rejalari, Hisoblar jadvallari, Jamg'arma, hisoblash va ma'lumotlar registrlari, Ma'lumotnomalardir. 1C: Enterprise tilida yozilgan loyihalar konfiguratsiyalar deb ataladi. 1C va uning konfiguratsiyasini sotish, joriy etish va texnik xizmat ko'rsatish 1C hamkor kompaniyalarining asosiy tijorat faoliyati hisoblanadi.

Asosiy sinflarni kengaytiradigan, ularga ruxsat beruvchi qo'shimcha komponentlar ham mavjud bepul yaratish va o'zgartirish. Biroq, bu komponentlar ishlab chiquvchi tomonidan foydalanish uchun tavsiya etilmaydi. Amalda, ulardan foydalanish tark etishga olib keladi texnik yordam 1C kompaniyasi va uning hamkorlaridan.

Masalan, 1C++ komponenti to'liq huquqli OOP yordamida tilni kengaytiradi. Uning ishlatilishi 1C ni sozlash imkoniyatlarini kengaytiradi. Bu ochiq GNU GPL litsenziyasi ostida tarqatiladigan bepul mahsulot.

1C va boshqa dasturiy ta'minot ishlab chiqaruvchilarining xususiy modullaridan foydalanmaydigan bepul 2C loyihasi ham mavjud. Bu noldan qayta yozilgan 1C ga o'xshash tizimning kengaytiriladigan yadrosi bo'lib, u GNU GPL litsenziyasi ostida erkin tarqatiladi. "O'rnatilgan ob'ektlar" 1C, masalan, registrlar va kataloglar, dasturchi tomonidan bekor qilinishi mumkin bo'lgan sinflardir.

Dastlab, 1C tilida "1Sik" ishchi nomi bor edi, u "odinesik" deb talaffuz qilingan. Biroq, u tezda rasmiy manbalarda foydalanishdan g'oyib bo'ldi. Hujjatlarda ushbu o'rnatilgan til tilga olinsa, endi uni "1C dasturlash tili" deb atash odatiy holdir. Yoniq bu daqiqa og'zaki talaffuz uchun qulay bo'lgan o'z nomiga ega emas. 1C: Enterprise paketini muhokama qilishda u ko'pincha oddiygina "o'rnatilgan til" deb ataladi.

Men ko'rib chiqishni dasturlash tilini o'rganayotgan yangi boshlanuvchilar uchun an'anaviy tabrikni ko'rsatadigan misol dasturi bilan yakunlamoqchiman:

Hisobot ("Salom, dunyo!");

Ushbu kod 1C: Enterprise 7.7 versiyasida ishlaydi.

21.12.2010

Oldingi nashrlar:

Dasturlash bilan shug'ullanmoqchi bo'lgan har bir kishiga biz barcha dasturlash darsliklarida aytilmagan ba'zi oddiy narsalarni tushuntirmoqchimiz, ammo 1C tilida dasturlashni noldan o'zlashtirmoqchi bo'lganlar bu haqda bilishlari kerak.

1. Dasturlash tili, eng avvalo, Tildir.

Til o'rganishni boshlashdan oldin, bu jarayon tez emasligiga aqlan tayyor bo'ling. Shunday qilib, siz dasturlash tilini o'rganish nima ekanligini aniq tasavvur qilishingiz uchun - bu chet tilini o'rganish bilan deyarli bir xil. Biz maktabda hamma narsani o'rgandik xorijiy til va har bir kishi juda yaxshi tushunadiki, chet tilidagi lug'atdagi so'zlarni ona tilingizga tarjima qilishni o'rganish uchun tilni bilish etarli emas. Masalan, “Men ingliz tilini bilaman” iborasini: ingliz tilidagi matnni o‘qish, tarjima qilish, xatosiz gaplar tuzish, o‘z fikrini og‘zaki ifodalashga qodir bo‘lgan kishi aytishi mumkin. Chet tilidagi so‘zlarni jumlani to‘g‘ri tuza olmasdan tarjima qilish (dasturlash tili sintaksisini o‘qish), albatta, chet tilini bilish degani emas. Shuning uchun, 1-dars - dasturlash tilini o'rganishga chet tilini to'liq o'zlashtirish maqsadida qanday munosabatda bo'lsangiz, xuddi shunday munosabatda bo'ling.

2. Amaliyot.

Chet tilini yaxshi biladigan ba'zi odamlar uni qo'llash amaliyotisiz asta-sekin unutib qo'yishganini eshitgansiz. 1C da dasturlash asoslarini o'rganganingizdan so'ng, ilgari olingan bilimlarni yo'qotmaslik va asta-sekin murakkabroq vazifalarni bajarish uchun oddiy vazifalarni bajarishda har kuni mashq qiling. O'z mahoratingizni oshiring.

Agar motivatsiya bo'lsa, har qanday biznes yaxshiroq harakat qiladi.Kelajakda siz uchun dasturlash ko'nikmalari pul mukofotidir, yaxshi ish, oson ijtimoiy lift va boshqalar. Hech kimga sir emaski, 1C Enterprise dasturiy mahsuloti postsovet hududida juda mashhur. O'nta kompaniyadan sakkiztasi o'z biznes faoliyatini qayd etish uchun 1C dasturidan foydalanadi. Shunga ko'ra, ularga dasturni saqlaydigan va takomillashtiradigan ma'mur yoki 1C dasturchisi kerak. Tabiiyki, bunday bozor 1C mutaxassislariga muhtoj. Ba'zida kompaniyalar o'z-o'zini yaxshilash sharti bilan munosib ish haqi uchun dasturlash qobiliyatiga ega bo'lgan juda yuqori malakali bo'lmagan xodimni yollashga tayyor. Agar siz tijorat kompaniyasida yoki franchayzingda ishlashni xohlamasangiz ham, yaxshi malakali dasturchi frilanser birjalarida ish topishi yoki maxsus loyihalarni amalga oshirishi mumkin. Umuman olganda, 1C dasturchisi ishsiz qolmaydi.

Kirish qismi bilan dasturlash asoslari biz tugatdik. Qolgan materiallar 1C til kodining asoslarini o'zlashtirishga bag'ishlanadi. Ehtimol, ba'zi qismlar juda qisqacha tavsiflanadi, ammo maqsad ushbu materialdan Bu o'quvchini til sintaksisiga to'liq singdirish emas, balki foydalanuvchining boshida barcha bilimlar osilgan ma'lum bir skelet (tayanch) hosil qilish uchun mutaxassislarni 1C tilining arxitekturasi bilan dastlabki tanishtirishdir. kelajakda.

Ushbu maqolada biz 1C dasturlash tilining bunday tuzilishini ko'rib chiqamiz Velosipedlar.

Looplarni tashkil qilishning uchta usuli mavjud.

  1. Mantiqiy ifoda yordamida tsikllar ( mantiqiy ifoda rost)
  2. To'plamlar bo'ylab aylanish

Keling, ushbu usullarning har birini ko'rib chiqaylik.

Loop hisoblagich o'zgaruvchisi yordamida tsikllar

Sintaksis:

Uchun< Переменная> = < НачальноеЗначение>tomonidan< КонечноеЗначение>CycleEndCycle;

Looplarni tashkil qilishning ushbu usuli bilan hisoblagich o'zgaruvchisiga ma'lum bir boshlang'ich qiymat beriladi va hisoblagich o'zgaruvchining qiymati belgilangan yakuniy qiymatdan kichik yoki unga teng bo'lguncha bajariladi.

Har bir iteratsiya bilan hisoblagich qiymati bir marta ortadi. Mana shunday halqaning eng asosiy misoli:

Hisoblagich uchun = 0 dan 1000 Cycle EndCycle;

Boshqa ko'plab dasturlash tillaridan farqli o'laroq, 1C tsikldagi qadamni belgilash imkoniyatini bermaydi. Agar kerak bo'lsa, bu pastadir ichidagi hisoblagichga kerakli qiymatni qo'shish orqali amalga oshirilishi mumkin

Hisoblagich uchun = 0 dan 1000 gacha bo'lgan tsikl hisoblagichi = Hisoblagich + 10; EndCycle;

Mantiqiy ifodalardan foydalangan holda tsikllar

Sintaksis:

Xayr< ЛогическоеВыражение>CycleEndCycle;

Rad etish = False ; GeneratorRandom = NewRandomNumberGenerator(1) ; Failure Cycle RandomNumber = GeneratorRankgacha. RandomNumber(0, 10); Agar RandomNumber > 5 bo'lsa, u holda Failure = True ; EndIf; EndCycle;

Ya'ni, tsikl beshdan katta tasodifiy son hosil bo'lguncha ishlaydi.

To'plamlar bo'ylab aylanish

1C dasturlash tilida to'plam degan narsa mavjud. Bu ob'ekt ichida joylashgan elementlar to'plamidir.

Biz to'plam kabi ob'ektlarni o'z ichiga olishimiz mumkin: massiv, qiymatlar jadvali, so'rov natijalaridan tanlov, metama'lumotlar va boshqalar. Bu tushuncha juda an'anaviy, ammo u sintaksis yordamchisida har qadamda paydo bo'ladi. Ko'pincha biz biron bir amalni bajarish uchun to'plamning barcha elementlarini ketma-ket takrorlashimiz kerak bo'lgan vazifaga duch kelamiz. Buning uchun sintaktik tuzilma mavjud:

Har biriga< ЭлементКоллекции>Kimdan< Коллекция>CycleEndCycle;

Bu yerga <ЭлементКоллекции> to'plamdagi elementlar ketma-ket joylashtirilgan o'zgaruvchidir. Va pastadir ichida u mos ravishda qayta ishlanadi.
Misol sifatida, men sizga qiymatlar jadvalining qatorlarini kesib o'tish davrini beraman. Uni chaqirilsin Stol mahsulotlari va shunday ko'rinadi:

Keling, ushbu jadvalni tsiklda ko'rib chiqamiz va har bir qator uchun mahsulot nomi va narxi ko'rsatilgan xabarni ko'rsatamiz:

Jadval mahsulotlaridan har bir jadval qatori uchun sikl nomi = Jadval qatori. Ism; Narx = TableRow. Narxi; Xabar = Yangi MessageToUser; Xabar. Matn = "Mahsulot nomi: "

Aslida, xuddi shu narsani birinchi variant yordamida, ya'ni hisoblagich yordamida halqada qilish mumkin:

Qatorlar soni = TableProducts. Miqdor(); Hisoblagich uchun = 0 Qatorlar soni bo'yicha - 1 tsikl Jadval qatori = TableProducts[ Hisoblagich] ; Ism = Jadval qatori. Ism; Narx = TableRow. Narxi; Xabar = Yangi MessageToUser; Xabar. Matn = "Mahsulot nomi: "+ Nomi + "; Narxi: " + Narxi; Xabar. Hisobot qilish (); EndCycle;

Ammo biz ko'rib turganimizdek, yig'ish elementlarini o'tkazishdan foydalanish ancha sodda va qulayroqdir

Yordamchi operatorlar

Ko'pincha, biror narsaga qarab, tsiklning bajarilishini to'xtatish yoki keyingi iteratsiyadan o'tish kerak bo'lgan vaziyat mavjud.

Uzilish operator yordamida amalga oshiriladi Bekor qilish. Bunda siklning bajarilishi uzilib, boshqaruv sikldan keyingi til konstruktsiyasiga o'tkaziladi. Agar siz keyingi iteratsiyaga o'tishingiz kerak bo'lsa, operatordan foydalanishingiz kerak Davom eting. Keyin boshqaruv tsiklning boshiga o'tkaziladi. Keling, kichik bir misol bilan tushuntiramiz:

Hisoblagich uchun = 0 By 100 Cycle Agar Hisoblagich = 0 bo'lsa, Davom eting; EndIf; Hisoblagich = 4 bo'lsa, To'xtating; EndIf; Natija = 1 / Hisoblagich; Xabar = Yangi MessageToUser; Xabar. Matn = String (Natija) ; Xabar. Hisobot qilish (); EndCycle;

Biz nolni o'tkazib yuboramiz, chunki Siz nolga bo'linmaysiz. Va tsikl o'zgaruvchining qiymatlari uchun jami besh marta bajariladi Hisoblagich 0 dan 4 gacha

1. 1C tili nima?
2. Metodlar, o‘zgaruvchilar, boshqa til konstruksiyalari.

1C tili nima?

Har qanday dasturlash tili dasturga bizga kerakli amallarni bajarishga ko'rsatma berish uchun mo'ljallangan. Kodni yozish ko'rsatmalarni yozishga o'xshaydi, unda biz nima qilish kerakligini va qanday tartibda aniqlaymiz. Barcha bajariladigan konfiguratsiya kodlari faqat modullarda joylashgan bo'lishi mumkin, keling, asosiy 4 turni ko'rib chiqaylik:

1. amaliy modul

2. umumiy modullar

3. obyekt moduli

4. shakl moduli.

Har xil turdagi modullarda kod dastur bajarilishining turli bosqichlarida bajariladi. Amaliy modulda kod dastur ishga tushirilganda yoki yopilganda, umumiy modullarda boshqa modullardan qo'ng'iroqlar paytida, ob'ekt modulida - ob'ektdagi harakatlar (yaratish, o'zgartirish, o'chirish), forma modulida - davomida bajarilishi mumkin. shakldagi harakatlar. Kod yozishda nimadan foydalanishingiz mumkin:
O'zgaruvchilar, ob'ektlar va ularning tafsilotlari, biz yaratgan usullar (1C dasturchilari) va tizimli (platformaga o'rnatilgan), shuningdek, o'rnatilgan til konstruktsiyalari.

Metodlar, o‘zgaruvchilar, til konstruksiyalari

O'zgaruvchilar foydalanuvchi sessiyasi davomida ma'lumotlarni saqlash uchun ishlatiladi. O'zgaruvchi - bu harf (rus yoki ingliz) yoki pastki chiziq "_" bilan boshlanadigan va harflar, raqamlar va pastki chiziqdan iborat so'z.
Masalan :

  • Bu o'zgaruvchan
  • _Bu o'zgaruvchi
  • _Bu 1_Oʻzgaruvchi

Harflarning rus va ingliz tillarida bo'lishi mumkinligi turli tillardagi o'xshash dizayndagi harflardan foydalanganda shafqatsiz hazil o'ynashi mumkin.

Koddagi harflar ishi hisobga olinmaydi, ya'ni. “Variable1” va “VARIABLE1” o‘zgaruvchilari dastur kodini bajarishda bir xil bo‘ladi. O'zgaruvchilar nomlari ma'noli bo'lishi maqsadga muvofiqdir. Bu kodni o'qishni yaxshilaydi.

Ob'ektlar va tafsilotlar ma'lumotlar ustida ishlash jarayonida o'qiladi va o'zgartiriladi.
Ob'ekt ma'lum bir xususiyatga ko'ra guruhlangan ma'lumotlar to'plamidir. Odatda, ichidagi ob'ektlar axborot bazasi u hujjatlar, ma'lumotlar ro'yxati, moddiy dunyo sanablarining aksidir. Ob'ekt tafsilotlari asosan ma'lumotlarni saqlaydi.

Masalan: Ob'ekt "Sotish kvitansiyasi 01.01.2005 yildagi 00018-son".
Biz ushbu savdo kvitansiyasini boshqa sotuv kvitansiyalaridan undagi ma'lumotlarga asoslanib ajrata olamiz. Bu “00018” qiymatiga ega “Raqam” atributidir( qatorni yozing ) va “Sana” atributi( sanani yozing ) "01/01/2005" qiymati bilan. Biz ob'ektdan uning tafsilotlarini bilmasdan aniqlashimiz mumkin bo'lgan yagona narsa uning turi "Savdo kvitansiyasi" edi.
Usullari kichik va odatda to'liq ko'rsatmalar.

Masalan, tizim usuli "CurrentDate ()" Nomidan u qaytib kelishi aniq joriy sana kompyuter. Yoki deylik, siz usul yaratishingiz mumkin " StringContainsNumber(String tekshirilmoqda)" javobini qaytaradi To'g'ri yoki Yolg'on, bu erda parametrlarni qavsga o'tkazamiz, ya'ni. usul ba'zi harakatlarni bajarishi kerak bo'lgan ma'lumotlar. Ko'rib chiqilgan ikkala usul ham funktsiyalardir; tilda protsedura usullari ham mavjud. Ular orasida bitta farq bor.Funksiya qiymat qaytarishi kerak.

Boshqa til konstruksiyalari (operatorlar, qiymatlar to'plami va boshqalar) ma'lumotlarni manipulyatsiya qilishga yordam beradigan 1C tizimi tomonidan saqlangan so'zlardir.

Masalan :

To'plamning har bir elementi uchun to'plam nomi Cycle EndCycle;

Misol to'plam elementlarini takrorlash uchun dizaynni ko'rsatadi. Ushbu dizayn deyiladi tsikl . Ko'pgina ob'ektlar turlari, shuningdek, ularning tafsilotlari yuqoridagi usulda takrorlanishi mumkin bo'lgan to'plamlardir va uning indeksini (CollectionName[0]) ko'rsatish orqali to'plam elementiga kirish mumkin. Barcha to'plamlar indeksi = 0 bo'lgan element bilan boshlanadi.