1С Enterprise хэлээр програмчлах 8. Хувьсагч - цикл тоолуур ашиглан циклүүд

Дүрмээр бол аливаа програмчлалын хэл сурах нь эхнийх нь бичих жишээнээс эхэлдэг хамгийн энгийн програм("Сайн уу ертөнц!"). Энэ нь үндсэн синтаксийн бүтэцтэй ажлыг тодорхой харуулахын тулд хийгддэг. Бид хөгжлийн шинэ орчинг судлахдаа нийтээр хүлээн зөвшөөрөгдсөн энэхүү материалыг танилцуулах аргаас үл хамаарах зүйл хийхгүй, тиймээс бидний эхний нийтлэлийг мөн адил авч үзэх ёстой. Үүнд бид 1C: Enterprise 8 платформ дээр програмчлалын талаархи дараах асуултын хариултыг нарийвчлан шинжлэх болно.

  • Програмын кодыг 1С хэл дээр хаана, ямар тусламжтайгаар бичих вэ?
  • Програм хангамжийн модуль гэж юу вэ, тэдэнтэй ажиллах дүрэм юу вэ?
  • Хувьсагч гэж юу вэ, түүнтэй хэрхэн ажиллах, хэрхэн, хаана зарлах вэ?
  • Ямар харьцуулалт, даалгавар, нөхцөлт операторууд байдаг бөгөөд тэдгээрийг хэрхэн ашигладаг вэ?
  • Булийн үйлдлүүд - тэдгээр нь юу вэ, тэдэнтэй хэрхэн ажиллах вэ?
  • Бид яагаад гогцоо хэрэгтэй вэ, тэдгээрийг хэрхэн ашиглах вэ?

Энэхүү нийтлэл нь 1С: Enterprise 8 платформ дээрх хөгжүүлэлтийн талаар хараахан мэдэхгүй байгаа боловч 1С дээр хэрхэн програмчлах талаар сурахыг хүсч буй бүх хүмүүст хэрэгтэй болно.

Хэрэглэх чадвар

Энэ материал нь 1C: Enterprise 8 платформ, хэвлэл 8.2-т хамааралтай болно. болон 8.3.

Хувьсагч ба операторууд

Энэ нийтлэлд бид 1С: Аж ахуйн нэгжийн 8 хэлийг судалж эхэлнэ. Гүйцэтгэх код нь програмын модулиудад агуулагддаг.

Төрөл бүрийн үйл явдлыг зохицуулахад зориулагдсан маш олон тооны модулиуд байдаг.

Тиймээс хэрэглэгчийн системд нэвтрэх үйлдлийг нэг модульд, тодорхой товчлуур дээр дарахад хэрэглэгчийн боловсруулалтыг огт өөр модулиар боловсруулдаг.

Тиймээс модуль бүр нь тодорхой цэг дэх тохиргооны үйл ажиллагааг дүрсэлдэг. Модуль нь юуны түрүүнд хувьсагчдыг тайлбарлах хэсгийг агуулна. Тэдгээр. Бид модулийн зарим хувьсагчийг зарлаж болно.

Ирээдүйд тэдгээрийг энэ модулийн журам, функцэд ашиглаж болно. Хэрэв хувьсагч Export түлхүүр үгээр тодорхойлогдвол гаднаас нь ашиглах боломжтой энэ модулийн. Хувьсагчийн мэдэгдлийн шугамын жишээ:

Перем агуулах, хэлтэс, хадгалагч экспорт;

Хувьсагчдыг зарласны дараа процедур ба функцүүдийн хэсэг байдаг.

Тэдний ард энэ модульд хандах үед гүйцэтгэх үндсэн програмын хэсэг байдаг.

Жишээлбэл, үндсэн програмын хэсэгт та хувьсагчдыг эхлүүлэх боломжтой, i.e. тэдэнд анхны утгыг өг:

муж=1;
NewExpression=2;
Үр дүн=3;

Модуль нь бидэнд хэрэгтэй өөр өөр үйлдлийг гүйцэтгэдэг өөр өөр операторуудын нэгдэл гэж ойлгож болно.

Оператор тусгаарлагч нь ";" тэмдэг юм. (цэг таслал). Энэ тэмдэг нь мэдэгдлийн төгсгөлийг харуулж байна. Тэдгээр. операторыг дараах байдлаар бичиж болно.

Үр дүн=100X200
+400
-600;

Мэдэгдэл хэдэн мөрөнд байх нь хамаагүй.

Мэдээжийн хэрэг, операторыг нэг мөрөнд байрлуулах нь илүү тохиромжтой, ойлгомжтой байдаг ч заримдаа операторууд нэлээд урт байдаг (шугамуудын тоо хэд хэдэн арван хүрч болно).

Өгөгдсөн бүтэц, жишээлбэл, процедурын эцсийн мэдэгдэлд цэг таслал тавьж болохгүй. Тэдгээр. дараах код ажиллах болно:

Процедурын тооцооллын утга()

InitialValue = 100;
IntermediateValue = InitialValue/5;
FinalValue = InitialValue+IntermediateValue

Процедурын төгсгөл

Гэсэн хэдий ч эцсийн мэдэгдэлд цэг таслал хэрэглэх нь дээр. Цаг хугацаа өнгөрөхөд барилгын ажил үргэлжилж магадгүй бөгөөд эцсийн мэдэгдэл эцсийнх байхаа болино. Бид энэ байдалд онцгой хяналт тавих ёстой.

Хувьсагч нь ямар ч төрлийн өгөгдлийн зарим утгыг хадгалах зориулалттай. Тэдгээрийг боловсруулахад зориулсан мэдээллийг завсрын хадгалахад ашигладаг.

Зарим үйлдлийг гүйцэтгэдэг бараг бүх програм хангамжийн модульд янз бүрийн хувьсагч байдаг. 1С: Enterprise 8 платформ дээр хувьсагчдыг утгаараа бичих нь зөөлөн.

Жишээлбэл, хувьсагч нь нэг төрлийн өгөгдлийн утгыг агуулж болно, дараа нь хэдэн мөрийн дараа - өөр төрлийн:

Үүсгэсэн = Худал;
Үүсгэсэн = Үнэн;
Үүсгэсэн =100;

Эхний хоёр операторт хувьсагчийн утга нь Boolean, гурав дахь операторт нь өөрчлөгддөг тоон утга. Тэдгээр. бичих нь өгөгдсөн хувьсагчид оноогдсон утгаас хамаарна.
Хувьсагчдыг хоёр аргаар тодорхойлж болно:

  • далд арга (бие даалтын операторын зүүн талд байгаа зүйл нь энэ хувьсагчийг тодорхойлдог, хувьсагчийн урьдчилсан тайлбарыг Variable гэсэн үгээр тайлбарлаагүй, өөрөөр хэлбэл хувьсагчийг тайлбарлах тусгай хэсэг байхгүй);
  • хувьсагчийн тодорхой тайлбар (Хувьсагчийн хяналтын өгөгдөл;). Хувьсагчийн тодорхой зарлалыг, жишээлбэл, энэ хувьсагчийг дараа нь функц рүү шилжүүлэхээр төлөвлөж байгаа бол ашигладаг.

Хувьсагчдыг сонгодог танигчийн тайлбарыг ашиглан нэрлэсэн. Тодорхойлогч нь үсэг, тоо, доогуур зураасаас бүрдэнэ. Тодорхойлогч нь үсэг эсвэл доогуур зураасаар эхлэх ёстой.

Энэ тохиолдолд хувьсагчийн нэр нь энэ хувьсагчийн утгыг тусгах ёстой. Нэг үсэгтэй хувьсагчийн нэр (A, B, C гэх мэт) нь муу жишээ юм. Эдгээр нь хувьсагчийн мөн чанарыг тусгадаггүй.

Хувьсагчийн зөв нэрсийн жишээ: Тоолуур (хувьсагчийг давталтын хувьд нэмэгдүүлэх), Counterparty. Хэрэв хувьсагчийн нэр хэд хэдэн үг агуулсан бол шинэ үг бүрийг тодорхой болгохын тулд том үсгээр эхлэх ёстой.

Procedure, Function, Loop, EndLoop гэх мэт нөөцлөгдсөн үгсийг хувьсагчийн нэрэнд ашиглах боломжгүй. (эдгээр бүтцийг програмын модульд улаанаар тодруулсан).

Нөөцлөгдсөн үгс нь үндсэн хэлний операторууд бөгөөд тэдгээрийн тоо нэлээд бага байдаг. Тэдгээрийг бүгдийг нь танилцуулсан болно Синтакс туслах.

Өгөгдлийн төрлүүд нь хадгалагдсан үгс биш гэдгийг тэмдэглэх нь зүйтэй (жишээ нь, Array, Boolean, True, False). Систем ийм хувьсагчийн нэрийг зөв хүлээн авах болно.

Бичихийн тулд програмын кодхэрэг хамаагүй. Жишээлбэл, Procedure гэдэг үгийг том эсвэл жижиг үсгээр бичиж болно. Түүнээс гадна үг дотор том, жижиг үсгийг ээлжлэн сольж болно.

Энэ нь Платформд хамаагүй. Гэхдээ ёс зүйн дүрмийн дагуу үгийн эхлэлийг том үсгээр, бусад бүх үсгийг жижиг үсгээр бичих ёстой.

Хэлний тухайд. Та Орос, Англи эсвэл хоёр хэлийг хослуулан хэрэглэж болно. Хэрэв энэ нь хэн нэгэнд тохиромжтой бол та англи хэлийг аюулгүйгээр програмын код бичиж, орос, англи хэлийг хослуулж болно. Энэ нь платформын хувьд чухал биш юм.

Олон гарчиг гарч байна Англи хэлсанахад нэлээд хэцүү. Хоёр хэлийг хослуулан хэрэглэх үед програмын кодыг унших чадвар мууддаг.

Булийн үйлдлүүд

Харьцуулах операторууд нь ихэвчлэн Үнэн эсвэл Худал буцаадаг Булийн логикийг ашигладаг.

Жишээлбэл, нөхцөлт оператор дээр та харьцуулж болно: Хэрэв Event = Sale Дараа нь алгоритм нь нэг салбарыг дагах болно (жишээ нь, хэрэв утга нь Үнэн бол), хэрэв нөхцөл худал бол алгоритмын өөр салбар ажиллана.

Нөхцөл байдал нь нэлээд төвөгтэй байж болох бөгөөд тэдгээрийг нэгтгэж болох бөгөөд дараах операторуудыг ашигладаг: AND, OR, and NOT. Тиймээс, AND операторын хувьд:

Үнэн ба үнэн = Үнэн;
Үнэн ба худал = худал;
Худал ба үнэн = худал;
Худал БА Худал = Худал.

OR операторын хувьд операндуудын аль нэг нь Үнэнтэй тэнцүү байх нь хангалттай бөгөөд хослолын утга нь Үнэн байх болно. Хоёр операнд нь худал үед л False утгыг авна.

NOT оператор нь одоогийн утгыг зүгээр л хөрвүүлдэг (False to True, True to False).

Эдгээр операторуудын хослолыг ашигласнаар та нэлээд төвөгтэй нөхцлийг бүрдүүлж чадна. Нарийн төвөгтэй нөхцөлт мэдэгдлийг бичихдээ тэргүүлэх чиглэлийг анхаарч үзэх хэрэгтэй.

NOT оператор нь хамгийн өндөр давуу эрхтэй ба дараа нь AND оператор, дараа нь OR оператор байна. Хаалтанд орсон бүх зүйл хамгийн чухал ач холбогдолтой бөгөөд эхлээд гүйцэтгэгдэнэ.

Жишээлбэл, өгөгдсөн илэрхийлэл дэх үйлдлүүдийн тэргүүлэх чиглэлийг (гүйцэтгэх дараалал) тогтооцгооё:

БИШ(Нөхцөл1 БУЮУ Нөхцөл2) БА Нөхцөл3 БУЮУ Нөхцөл4
1.Үр дүн1 = (Нөхцөл1 ЭСВЭЛ Нөхцөл2);
2. Үр дүн2 = Үр дүн 1 биш;
3. Үр дүн3 = Үр дүн2 БА Нөхцөл1;
4. Үр дүн = Үр дүн3 ЭСВЭЛ Нөхцөл4;

Хөрвүүлэх дүрэм байдаг:

БИШ (Нөхцөл1 БУЮУ Нөхцөл2) = Нөхцөл 1 БА Нөхцөл2 БИШ.

Гэсэн хэдий ч илэрхийллийг хялбарчлахыг үргэлж хичээх ёсгүй, учир нь логикийн хувьд өргөтгөсөн илэрхийллийг уншихад хялбар байдаг.

Даалгаврын оператор

Даалгаврын оператор нь ижил үсэгтэй ч гэсэн тэгш байдлын оператортой андуурч болохгүй.

Оношилгооны операторын зарчим нь зүүн талын утгыг (зүүн талд байгаа хувьсагч) тэнцүү тэмдгийн баруун талд байгаа утгыг өгөх явдал юм. Нэг жишээг харцгаая:

Variable1 = Variable2 = Variable3;

Variable1-д Boolean логикоос тэгш байдлын утгыг өгсөн, өөрөөр хэлбэл. Хэрэв Variable2 = Variable3 бол үнэн, үгүй ​​бол худал.

Шинэхэн програмистын байр суурийг шалгахдаа ихэвчлэн ашигладаг даалгавар бол хоёр хувьсагчийн утгыг солих явдал юм.

Энэ асуудлыг томилох оператор ашиглан шийддэг бөгөөд хоёр шийдэлтэй.

Түр зуурын хувьсагч ашиглан №1 шийдэл:
TemporaryVariable = Variable1;
Variable1 = Variable2;
Variable2 = TemporaryVariable;

Шийдэл №2:
Variable1 = Variable1 + Variable2;
Variable2 = Variable1 – Variable2;
Variable1 = Variable1 – Variable2;

Нөхцөлт оператор

Ийм оператор байдаг, үүний дараа ямар нэг нөхцөлийг тайлбарлах шаардлагатай бол (нөхцөл байдал өөрөө нэлээд том байж болно). Нөхцөлийн араас Дараа нь гэсэн үг, гүйцэтгэх мэдэгдлүүд байна.

Үүний дараа Else гэсэн түлхүүр үг болон бусад хэд хэдэн мэдэгдлүүд орж болно. Хэрэв хэд хэдэн өөр нөхцөл байгаа бол та хэд хэдэн түлхүүр үгсийг ашиглаж болно Үгүй бол(доорх жишээг үзнэ үү). Барилга бүхэлдээ түлхүүр үгээр төгсөх ёстой EndIf, араас нь цэг таслал тавина.

Энгийн болон олон нөхцлөөс гадна нөхцөлт операторын товчилсон хэлбэр байдаг: ?(Нөхцөл, Илэрхийлэл1, Илэрхийлэл2);

Хэрэв нөхцөл үнэн бол түүнийг гүйцэтгэнэ Илэрхийлэл1, эс бөгөөс - Илэрхийлэл2. Жишээ код: ExpensiveProduct = ?(Product.Price>100000, Үнэн, Худал);

Практикт бичлэгүүдийг үнэ цэнээр нь харьцуулахын оронд Үнэн (Худлаа) төрөл:

Хэрэв хувьсагч = үнэн бол
Тэгээд
Хэрэв хувьсагч = худал бол

Бодит хэрэглэгддэг ижил төстэй тэмдэглэгээ нь:

Хэрэв хувьсагч бол Дараа нь
Тэгээд
Хэрэв хувьсагч биш бол Дараа нь

Циклийн операторууд

Ямар ч төрлийн гогцооны хувьд энэ давталтын төгсгөлийг тодорхой зааж өгөх шаардлагатай түлхүүр үг Циклийн төгсгөл. Хэд хэдэн төрлийн мөчлөгүүд байдаг.

Тоолуур дээр гогцоо– тогтмол тооны давталт бүхий мөчлөг. Циклээс гарах нөхцөл нь хязгаарын утгаас хэтэрсэн байна. А утгыг тооцоолох жишээ ашиглах!

A = 5;
Факториал = 1;
Тоолуурын хувьд = 1 мөчлөгөөр
Факториал = Факториал * Тоолуур;
Төгсгөлийн мөчлөг;

Нөхцөлөөр давталт– өгөгдсөн гогцооны нөхцөл үнэн байвал биелнэ. Жишээ:

Үлдсэн дүн = 1000;
Бүтээгдэхүүний нэмэлт үнэ = 243;
Тоо хэмжээ = 0;
Үлдсэн дүн>0 мөчлөг
Тоо хэмжээ = Тоо хэмжээ+1;
Үлдсэн дүн = Үлдсэн дүн – Тоо хэмжээ*Нэмэлт бүтээгдэхүүний үнэ;
Нэмэлт бүтээгдэхүүний үнэ = Нэмэлт бүтээгдэхүүний үнэ * 0.8;
Циклийн төгсгөл
Тоо хэмжээ = Тоо хэмжээ-1;

Энэ мөчлөг нь тухайн бүтээгдэхүүний нэгж бүрийг худалдан авсны дараа өмнөх үнийг 0.8 дахин үржүүлбэл өгөгдсөн хэмжээгээр (1000 рубль) хэдэн нэгж бүтээгдэхүүн худалдан авах боломжтойг тооцдог. Бүтээгдэхүүний анхны үнэ нь 243 рубль юм.

Эхлэгчдэд ийм төрлийн гогцоо ашиглах үед гарч буй алдааны жишээ бол давталтын нөхцөл нь анх үнэн боловч давталтын дотор ямар ч байдлаар өөрчлөгддөггүй мөнхийн гогцоо юм.

Цуглуулга дундуур эргэлдэх (хүн бүрийн өөр нэр).

Платформд нэлээд олон тооны цуглуулгууд байдаг (эдгээр нь тодорхой төрлийн элементүүдийг агуулсан савнууд юм).

Та тусгай төрлийн гогцоо ашиглан цуглуулгын элементүүдийг давтаж болно.

Жишээлбэл, тоонуудын массив байгаа тул та массивын бүх элементүүдийн нийлбэрийг тооцоолох хэрэгтэй.

Дүн = 0;
Массивын давталтын элемент бүрийн хувьд
нийлбэр=нийлбэр+зүйл;
Төгсгөлийн мөчлөг;

Циклийн хувьд байдаг тусгай операторууд: ҮргэлжлүүлэхТэгээд Цуцлах.

Хэрэв мөчлөгийн зарим үед өгөгдсөн давталтын дараагийн операторуудын гүйцэтгэл утгагүй болвол давталтын эхэнд буцаж очоод дараагийн давталтыг зохион байгуулахад операторыг ашиглана. Үргэлжлүүлэх.

Оператор Цуцлахдавталтын нөхцөл үнэн байсан ч гүйцэтгэлийг дуусгах боломжийг олгодог.

Үүгээр дотоод 1С хэл дээрх хөгжүүлэлтийн талаарх бидний анхны танилцсан үе өндөрлөж байна.

Hello World-ийн талаар юу хэлэх вэ? Бид хараахан бичээгүй байгаа биз дээ? Тийм ээ, гэхдээ үүнийг өөрөө хийхэд юу ч саад болохгүй, учир нь ... мэдлэг аль хэдийн хангалттай. Хэрэв бүтэхгүй бол эндээс харна уу.

1С: Аж ахуйн нэгжийн программчлалын програмчлалын хэл нь нягтлан бодох бүртгэлийн автоматжуулалтын програмуудын 1C: Enterprise гэр бүлд хэрэглэгддэг програмчлалын хэл юм. Энэ хэл нь урьдчилан эмхэтгэсэн дээд түвшний домэйны тусгай хэлний ангилалд хамаарна. Үүнийг хэрэгжүүлэх орчин нь 1С: Аж ахуйн нэгжийн платформ (1С: Нягтлан бодох бүртгэлийг оруулаад) юм. Түүний харааны хөгжүүлэлтийн орчин нь "Тохируулагч" гэж нэрлэгддэг бөгөөд 1C: Enterprise багцын нэг хэсэг юм.

Энэ хэл нь орос, англи хэл дээрх командын синтаксийг дэмждэг. 1С:7.0, 1С:7.5 ба 1С:7.7 хувилбаруудын суулгасан хэлний аялгуу нь бага зэргийн үл хамаарах зүйлүүдийг эс тооцвол доороос дээшээ нийцдэг. 1С: 7x-ийн аялгуу нь үндсэн операторуудын хувьд 1С: 8x-тэй нийцдэг боловч хэрэглээний объектуудтай хэрхэн ажилладаг талаараа ихээхэн ялгаатай байдаг тул 1С: 7x платформоос 1С руу код шилжүүлэх нь бараг утгагүй юм. :8х платформ.

Синтаксийн хувьд 1С: 8 програмчлалын хэл нь ижил төстэй байдаг Харааны хэлҮндсэн. Энэхүү платформ нь хэрэглээний талбар дахь ердийн асуудлуудыг шийдвэрлэхэд зориулагдсан үндсэн ангиудын тогтмол багцыг өгдөг. Зарим үндсэн ангиуд:

  • Баримт бичиг,
  • Баримт бичгийн бүртгэл,
  • Тогтмол,
  • Эмчилгээ,
  • Тайлан,
  • шилжүүлэх,
  • Дансны график,
  • Лавлах гэх мэт.

Эдгээр үндсэн ангиудаас та харааны тохиргооны хэрэгслийг ашиглан ямар ч тооны үүсмэл анги үүсгэж болно. Түүгээр ч барахгүй программчлан тодорхойлох арга байхгүй шинэ анги. Ангийн удамшилд зөвхөн тодорхой алхам хийхийг зөвшөөрдөг. Үүсмэл ангиудын объектууд нь ихэвчлэн өгөгдлийн сангийн бүртгэл эсвэл бичлэгийн багц юм. 1С хэлний хувьд тэдгээрийг мета өгөгдлийн объект гэж нэрлэдэг бөгөөд "Мета өгөгдлийн мод" гэж нэрлэгддэг.

Эдгээр мета өгөгдлийн объектын төрлүүд нь Бизнесийн үйл явц, Баримт бичиг, Даалгавар, Боловсруулалт, Тайлан, Тооцооллын төрөл ба шинж чанарын төлөвлөгөө, Дансны график, Хуримтлал, тооцоо, мэдээллийн бүртгэл, Лавлах зэрэг болно. 1С: Enterprise хэл дээр бичигдсэн төслүүдийг тохиргоо гэж нэрлэдэг. 1С болон түүний тохиргоог худалдах, хэрэгжүүлэх, засвар үйлчилгээ хийх нь 1С түнш компаниудын арилжааны үндсэн үйл ажиллагаа юм.

Мөн үндсэн ангиудыг өргөтгөх нэмэлт бүрэлдэхүүн хэсгүүд байдаг бөгөөд тэдгээрийг зөвшөөрдөг үнэгүй бүтээлболон өөрчлөх. Гэсэн хэдий ч эдгээр бүрэлдэхүүн хэсгүүдийг хөгжүүлэгч ашиглахыг зөвлөдөггүй. Практикт тэдний хэрэглээ нь орхихыг шаарддаг техникийн дэмжлэг 1С компани болон түүний түншүүдээс.

Жишээлбэл, 1С++ бүрэлдэхүүн хэсэг нь бүрэн хэмжээний OOP ашиглан хэлийг өргөжүүлдэг. Үүний хэрэглээ нь 1С-ийг тохируулах боломжийг өргөжүүлдэг. Энэ бол нээлттэй GNU GPL лицензийн дагуу түгээгдсэн үнэ төлбөргүй бүтээгдэхүүн юм.

Мөн 1С болон бусад програм хангамж үйлдвэрлэгчдийн өмчлөлийн модулиудыг ашигладаггүй 2С үнэгүй төсөл байдаг. Энэ нь GNU GPL лицензийн дагуу чөлөөтэй тараагддаг эхнээс нь дахин бичсэн 1С-тэй төстэй системийн өргөтгөх боломжтой цөм юм. Бүртгэл, лавлах гэх мэт "Суурилуулсан объектууд" 1С нь програмын програмист хүчингүй болгож болох ангиуд юм.

Эхэндээ 1С хэл нь "1Sik" гэсэн нэртэй байсан бөгөөд үүнийг "odynesik" гэж дууддаг байв. Гэсэн хэдий ч энэ нь албан ёсны эх сурвалжаас хурдан алга болсон. Энэхүү суурилуулсан хэлийг баримт бичигт дурдвал одоо үүнийг "1С програмчлалын хэл" гэж нэрлэх нь заншил болжээ. Асаалттай Энэ мөчаман дуудлага хийхэд тохиромжтой өөрийн гэсэн нэртэй байдаггүй. 1С: Аж ахуйн нэгжийн багцыг хэлэлцэх хүрээнд үүнийг ихэвчлэн "барьсан хэл" гэж нэрлэдэг.

Програмчлалын хэл сурч эхэлж буй хүмүүст зориулсан уламжлалт мэндчилгээг харуулсан жишээ програмаар тоймоо дуусгахыг хүсч байна.

Тайлан("Сайн уу, Дэлхий!");

Энэ код нь 1C: Enterprise 7.7 хувилбар дээр ажиллах болно.

21.12.2010

Өмнөх хэвлэлүүд:

Програмчлалын чиглэлээр суралцах хүсэлтэй хүн бүрт бид бүх програмчлалын сурах бичигт дурдаагүй энгийн зүйлсийг тайлбарлахыг хүсч байна, гэхдээ 1С хэл дээр програмчлалыг эхнээс нь эзэмшихийг хүсч байгаа хүмүүс энэ талаар мэдэж байх ёстой.

1. Програмчлалын хэл нь юуны түрүүнд Хэл юм.

Хэл сурч эхлэхээсээ өмнө энэ үйл явц хурдан биш гэдэгт оюун санааны бэлтгэлтэй байгаарай. Програмчлалын хэл сурах нь гадаад хэл сурахтай бараг ижил зүйл юм. Бид сургуульд бүх зүйлийг сурсан Гадаад хэлГадаад хэлнээс эх хэл рүүгээ орчуулж сурахад хэл мэддэг байх нь хангалтгүй гэдгийг хүн бүр маш сайн ойлгодог. Жишээлбэл, "Би англи хэл мэддэг" хэллэгийг англи хэл дээр текст унших, орчуулах, алдаагүй өгүүлбэр зохиох, амаар илэрхийлэх чадвартай хүн хэлж болно. Өгүүлбэрийг зөв зохиох чадваргүй (програмчлалын хэлний синтаксийг уншина уу) гадаад үгийг орчуулна гэдэг нь мэдээж гадаад хэл мэддэг гэсэн үг биш. Тиймээс 1-р хичээл - програмчлалын хэлийг гадаад хэлийг бүрэн эзэмшинэ гэсэн зорилготойгоор сурдаг шигээ ханд.

2. Дадлага хийх.

Гадаад хэлийг сайн мэддэг зарим хүмүүс хэрэглэх дадлагагүйгээр аажим аажмаар мартдагийг та сонссон байх. 1С дээр програмчлалын үндсийг судалсны дараа өмнө нь олж авсан мэдлэгээ алдахгүйн тулд өдөр бүр энгийн даалгавруудыг хийж, илүү төвөгтэй ажлуудыг аажмаар хийх хэрэгтэй. Ур чадвараа дээшлүүл.

Аливаа бизнес урам зоригтой байвал илүү сайн хөдөлдөг.Ирээдүйд таны хувьд програмчлалын ур чадвар нь мөнгөн шагнал юм. сайн ажил, нийгмийн хялбар лифт гэх мэт. 1С Enterprise програм хангамжийн бүтээгдэхүүн нь Зөвлөлтийн дараахь орон зайд маш их алдартай байдаг нь нууц биш юм. Арван компаниас найм нь 1С программыг ашиглан бизнесийн үйл ажиллагаагаа бүртгэдэг. Үүний дагуу тэдэнд програмыг засварлаж, өөрчлөх администратор эсвэл 1С програмист хэрэгтэй. Мэдээжийн хэрэг, ийм зах зээлд 1С мэргэжилтнүүд хэрэгтэй. Заримдаа компаниуд програмчлалын ур чадвартай тийм ч өндөр ур чадваргүй ажилтныг өөрийгөө сайжруулах нөхцөлтэйгээр зохих цалинтай ажилд авахад бэлэн байдаг. Хэдийгээр та арилжааны компани эсвэл франчайз дээр ажиллахыг хүсэхгүй байгаа ч гэсэн сайн мэргэшсэн програмист бие даасан бирж дээр ажил олох эсвэл захиалгат төсөл хэрэгжүүлэх боломжтой болно. Ерөнхийдөө 1С програмист ажилгүй үлдэхгүй.

Оршил хэсэгтэй програмчлалын үндэсБид дууслаа. Үлдсэн материалыг 1С хэлний кодын үндсийг эзэмшихэд зориулах болно. Магадгүй зарим хэсгийг хэтэрхий товч тайлбарлах болно, гэхдээ зорилго энэ материалынЭнэ нь уншигчийг тухайн хэлний синтакс руу бүрэн оруулах биш, харин хэрэглэгчийн толгойд бүх мэдлэгийг өлгөх тодорхой араг яс (суурь) бий болгохын тулд мэргэжилтнүүдийг 1С хэлний архитектуртай анхлан танилцах явдал юм. ирээдүйд.

Энэ нийтлэлд бид 1С програмчлалын хэлний ийм бүтцийг авч үзэх болно Цикл.

Гогцоог зохион байгуулах гурван арга бий.

  1. Логик илэрхийлэл ашиглан гогцоо (хүртэл гүйцэтгэнэ логик илэрхийлэлүнэн)
  2. Цуглуулгуудаар эргэлдэж байна

Эдгээр аргууд тус бүрийг авч үзье.

Давталтын тоологч хувьсагчийг ашиглан гогцоо

Синтакс:

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

Энэ гогцоонуудыг зохион байгуулах аргын тусламжтайгаар тоолуур хувьсагчид тодорхой анхны утгыг оноож, тоолуурын хувьсагчийн утга заасан эцсийн утгаас бага буюу тэнцүү болтол гүйцэтгэнэ.

Давталт бүрт тоолуурын утга нэгээр нэмэгддэг. Ийм гогцооны хамгийн энгийн жишээ энд байна.

Тоолуурын хувьд = 0-ээс 1000 хүртэлх мөчлөгийн төгсгөл;

Бусад олон програмчлалын хэлнүүдээс ялгаатай нь 1С нь мөчлөгийн алхамыг зааж өгөх боломжийг олгодоггүй. Шаардлагатай бол гогцоон доторх тоолуурт хүссэн утгыг нэмэх замаар үүнийг хийж болно

Тоолуурын хувьд = 0-ээс 1000 хүртэлх мөчлөгийн тоолуур = Тоолуур + 10; EndCycle;

Булийн илэрхийлэл ашигласан гогцоо

Синтакс:

Баяртай< ЛогическоеВыражение>CycleEndCycle;

Татгалзах = Худал; GeneratorRandom = NewRandomNumberGenerator(1) ; Failure Cycle хүртэл RandomNumber = GeneratorRank. RandomNumber(0, 10); Хэрэв RandomNumber > 5 бол Failure = True ; EndIf; EndCycle;

Өөрөөр хэлбэл таваас дээш санамсаргүй тоо үүсэх хүртэл давталт ажиллана.

Цуглуулгуудаар эргэлдэж байна

1С програмчлалын хэлэнд цуглуулга гэж байдаг. Энэ нь объектын доторх элементүүдийн багц юм.

Бид цуглуулга гэх мэт объектуудыг оруулж болно: массив, утгын хүснэгт, асуулгын үр дүнгийн сонголт, мета өгөгдөл гэх мэт. Энэ ойлголт нь нэлээд уламжлалт боловч синтаксийн туслахын алхам бүрт гарч ирдэг. Цуглуулгын бүх элементүүдийг дараалан давтах шаардлагатай үед бид ямар нэгэн үйлдэл хийх шаардлагатай тулгардаг. Үүнд зориулсан синтакс бүтэц байдаг:

Тус бүр< ЭлементКоллекции>-аас< Коллекция>CycleEndCycle;

Энд <ЭлементКоллекции> нь цуглуулгын элементүүдийг дараалан байрлуулсан хувьсагч юм. Мөн гогцооны дотор үүнийг зохих ёсоор боловсруулдаг.
Жишээ болгон би танд утгын хүснэгтийн мөрүүдийг давах гогцоо өгөх болно. Үүнийг нэрлэе Ширээний бүтээгдэхүүнмөн иймэрхүү харагдаж байна:

Энэ хүснэгтийг давталтаар дамжуулж, мөр бүрт бүтээгдэхүүний нэр, үнэ бүхий мессежийг харуулах болно.

Хүснэгтийн бүтээгдэхүүнээс хүснэгтийн мөр бүрийн хувьд Циклийн нэр = Хүснэгтийн мөр. Нэр; Үнэ = Хүснэгтийн мөр. Үнэ; Message = New MessageToUser; Захиа. Текст = "Бүтээгдэхүүний нэр:"

Үнэн хэрэгтээ ижил зүйлийг эхний сонголтыг ашиглан, өөрөөр хэлбэл тоолуур ашиглан гогцоонд хийж болно.

Мөрийн тоо = Хүснэгтийн бүтээгдэхүүн. Тоо хэмжээ(); Тоолуурын хувьд = 0 Мөрийн тоогоор - 1 Цикл Хүснэгтийн Мөр = Хүснэгтийн Бүтээгдэхүүн[ Тоолуур] ; Нэр = Хүснэгтийн мөр. Нэр; Үнэ = Хүснэгтийн мөр. Үнэ; Message = New MessageToUser; Захиа. Текст = "Бүтээгдэхүүний нэр:"+ Нэр + "; Үнэ: " + Үнэ; Захиа. Мэдээлэх() ; EndCycle;

Гэхдээ бидний харж байгаагаар цуглуулгын элементүүдийг хөндлөн гулд ашиглах нь илүү хялбар бөгөөд илүү тохиромжтой

Туслах операторууд

Ямар нэг зүйлээс шалтгаалан давталтын гүйцэтгэлийг тасалдуулах эсвэл дараагийн давталтаас шилжих шаардлагатай нөхцөл байдал ихэвчлэн тохиолддог.

Тасалдал нь операторыг ашиглан хийгддэг Цуцлах. Энэ тохиолдолд давталтын гүйцэтгэл тасалдаж хяналтыг давталтыг дагаж байгаа хэлний бүтэц рүү шилжүүлнэ. Хэрэв та дараагийн давталт руу шилжих шаардлагатай бол операторыг ашиглах ёстой Үргэлжлүүлэх. Дараа нь хяналтыг давталтын эхэнд шилжүүлнэ. Жижиг жишээгээр тайлбарлая:

Тоолуурын хувьд = 0 100-ийн мөчлөг Хэрэв тоолуур = 0 бол Үргэлжлүүлнэ; EndIf; Хэрэв Counter = 4 байвал Abort ; EndIf; Үр дүн = 1 / Тоолуур; Message = New MessageToUser; Захиа. Текст = Мөр(Үр дүн); Захиа. Мэдээлэх() ; EndCycle;

Бид тэгийг алгасдаг, учир нь Та тэгээр хувааж болохгүй. Хувьсагчийн утгуудын хувьд гогцоо нийтдээ таван удаа хийгдэнэ Тоолуур 0-ээс 4 хүртэл

1. 1С хэл гэж юу вэ?
2. Арга, хувьсагч, бусад хэлний бүтэц.

1С хэл гэж юу вэ?

Аливаа програмчлалын хэл нь програмыг бидэнд хэрэгтэй үйлдлүүдийг гүйцэтгэх зааварчилгаа өгөх зорилготой юм. Код бичих нь заавар бичихтэй адил бөгөөд үүнд бид юу хийх, ямар дарааллаар хийхийг зааж өгдөг. Бүх гүйцэтгэгдэх тохиргооны кодыг зөвхөн модулиудад байрлуулж болно; үндсэн 4 төрлийг авч үзье.

1. хэрэглээний модуль

2. нийтлэг модулиуд

3. объектын модуль

4. маягтын модуль.

Өөр өөр төрлийн модулиудад код нь программыг гүйцэтгэх янз бүрийн үе шатанд хэрэгждэг. Хэрэглээний модульд кодыг програмыг эхлүүлэх эсвэл хаах үед, нийтлэг модулиудад бусад модулиудаас дуудлага хийх үед, объектын модульд - объект дээрх үйлдлүүдийн үед (үүсгэх, өөрчлөх, устгах), форм модульд - үед ажиллах боломжтой. маягт дээрх үйлдлүүд. Код бичихдээ юу ашиглаж болох вэ:
Хувьсагчид, объектууд ба тэдгээрийн дэлгэрэнгүй мэдээлэл, бидний бүтээсэн аргууд (1С програмистууд) ба системийн (платформд суурилуулсан), түүнчлэн суурилуулсан хэлний бүтэц.

Арга, хувьсагч, хэлний бүтэц

Хувьсагчнь хэрэглэгчийн сессийн үед өгөгдөл хадгалахад ашиглагддаг. Хувьсагч гэдэг нь үсгээр (Орос эсвэл Англи хэлээр) эсвэл доогуур зураасаар “_” эхэлсэн, үсэг, тоо, доогуур зураасаас бүрдэх үгийг хэлнэ.
Жишээлбэл :

  • Энэ бол хувьсагч юм
  • _Энэ бол хувьсагч
  • _Энэ бол 1_Хувьсагч

Захидал нь орос, англи хэл байж болно гэдэг нь өөр өөр хэл дээрх ижил төстэй загвартай үсгийг ашиглахад хэрцгий хошигнол болж магадгүй юм.

Код дахь үсгийн тохиолдлыг тооцохгүй, i.e. "Variable1" болон "Variable1" хувьсагч нь програмын кодыг гүйцэтгэх үед ижил байна. Хувьсагчийн нэрс нь утга учиртай байх нь зүйтэй. Энэ нь кодын унших чадварыг сайжруулдаг.

Объект ба дэлгэрэнгүй мэдээлэл өгөгдөл дээр ажиллах явцад уншиж, өөрчилдөг.
Объект гэдэг нь тодорхой шинж чанарын дагуу бүлэглэгдсэн өгөгдлийн багц юм. Ихэвчлэн доторх объектууд мэдээллийн баазЭнэ бол материаллаг ертөнцийн баримт бичиг, өгөгдлийн жагсаалт, тооллогын тусгал юм. Объектын дэлгэрэнгүй мэдээлэл нь үндсэндээ өгөгдлийг хадгалдаг.

Жишээ нь: “2005.01.01-ний өдрийн 00018 борлуулалтын баримт” объект.
Бид энэ борлуулалтын баримтыг агуулагдаж буй дэлгэрэнгүй мэдээлэлд үндэслэн бусад борлуулалтын баримтаас ялгаж чадна. Энэ нь "00018" утгатай "Тоо" шинж чанар юм( мөр бичнэ үү ) болон "Огноо" шинж чанар( огноог бичнэ үү ) "01/01/2005" гэсэн утгатай. Бид объектын нарийн ширийн зүйлийг мэдэхгүй байж болох цорын ганц зүйл бол "Борлуулалтын баримт" төрөл юм.
Арга зүйнь жижиг бөгөөд ихэвчлэн бүрэн зааварчилгаа юм.

Жишээлбэл, системийн арга "CurrentDate ()" Нэрнээс нь харахад буцаж ирэх нь тодорхой байна одоогийн огноокомпьютер. Эсвэл та аргыг бий болгож чадна гэж бодъё " StringContainsNumber(Мөр шалгаж байна)" гэсэн хариултыг буцаана Үнэнэсвэл Худлаа, энд бид хаалтанд параметрүүдийг дамжуулдаг i.e. өгөгдөл, дээр ажиллаж байгаа арга нь зарим үйлдлийг гүйцэтгэх ёстой. Харгалзан үзсэн хоёр арга хоёулаа функцууд бөгөөд хэл нь процедурын аргуудтай байдаг. Тэдний хооронд нэг ялгаа бий.Функц нь утгыг буцаах ёстой.

Бусад хэлний бүтэц (операторууд, утгын цуглуулга гэх мэт) нь өгөгдлийг удирдахад тусалдаг 1С системд хадгалагдсан үгс юм.

Жишээлбэл :

Цуглуулгын элемент бүрийн хувьд Цуглуулгын нэр Cycle EndCycle;

Жишээ нь цуглуулгын элементүүдийг давтах загварыг харуулж байна. Энэ загварыг нэрлэдэг мөчлөг . Ихэнх төрлийн объектууд болон тэдгээрийн дэлгэрэнгүй мэдээлэл нь дээр дурдсан аргаар давтагдах боломжтой цуглуулгууд бөгөөд индексийг нь (CollectionName[0]) зааж цуглуулгын элементэд хандах боломжтой. Бүх цуглуулгууд нь индекс нь = 0 элементээр эхэлдэг.