Хүсэлтэд 1 секундын урьдчилан тодорхойлсон лавлагааны утга. Урьдчилан тодорхойлсон элементүүд

Анхаар! Хичээлийн туршилтын хувилбарыг энд оруулав, материал нь бүрэн биш байж магадгүй юм.

Оюутанаар нэвтэрнэ үү

Сургуулийн агуулгад хандахын тулд оюутны хувиар нэвтэрнэ үү

Анхлан програмистуудад зориулсан 1С 8.3 асуулгын хэл: VALUE функц

Чиг үүрэг УТГА зохицуулах зориулалттайхүсэлтийн биед системийн тооллын утгууд рууТэгээд урьдчилан тодорхойлсон өгөгдөл.

Шилжүүлэг болон урьдчилан тодорхойлсон өгөгдөлд өөр юу хэрэгтэй вэ? Бүгдийг дарааллаар нь яръя.

Тооцоолол

Тооцоолол- энэ бол хэрэглээний объект (байгааг та санаж байна Лавлах номуудТэгээд Баримт бичиг). Тэр яагаад хэрэгтэй байсан бэ?

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

Хувиргах чадвар нь тэдний гол хөзөр юм. Эдгээр нь мэдээллийн сангийн тогтмолууд юм.

Хэрэв тохиргооны горимд программист нэрлэгдсэн тооллогыг үүсгэсэн бол Шалболон үнэт зүйлс ЭрэгтэйТэгээд Эмэгтэй, дараа нь програм бичихдээ энэ тооллын утгууд ирээдүйд өөрчлөгдөхгүй гэдэгт итгэлтэй байж болно. Тиймээс тэр кодоос эдгээр утгуудад аюулгүйгээр хандах боломжтой.

Тэр лавлахыг эдгээр зорилгоор ашиглахыг оролдвол юу болохыг төсөөлөөд үз дээ?

Нэгдүгээрт, зарим хэрэглэгчид "Ангарагийн шал" нэмэх болно.

Хоёрдугаарт, өөр хэрэглэгч "тийм" гэж аваад аль хэдийн байгаа хүйсийн аль нэгийг нь устгах эсвэл нэрийг нь өөрчлөх болно.

Үүнээс болж хөтөлбөр тасрах болно, учир нь түүний ажилд яг хоёр хүйс, "Эрэгтэй", "Эмэгтэй" гэсэн нэртэй байх шаардлагатай.

Ийм тохиолдлуудад тооллого байдаг: нэг удаа (тохируулгын үе шатанд ч гэсэн) бүх боломжит утгыг хатуу тогтоож, дараа нь програмын кодонд ашиглахын тулд.

Манай "Гастроном" мэдээллийн санд ийм тооллогын жишээг харцгаая. Та хичээлийн туршилтын хувилбарыг уншиж байна, бүрэн хичээлүүд байрладаг.

Энд манай тоолол нэртэй байна Шал. Энэ нь ямар үнэ цэнийг авч болох вэ?

Зөвхөн хоёр утга байна. "Эрэгтэй", "Эмэгтэй" гэсэн нэртэй. Бидэнд хэрэгтэй зүйл.

Цаашид бид энэ тооллогыг хаана ашиглах вэ? За, мэдээжийн хэрэг, гарын авлагад Үйлчлүүлэгчид. Жагсаалтад шинэ тулгуур байгаа гэдгийг анхаарна уу Шалболон төрөл Enum.Хүйс:

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

Одоо мэдээллийн сангаас үйлчлүүлэгчид болон тэдний хүйсийг сонгосон асуулга хийцгээе.

Одоо зөвхөн эрэгтэйчүүд үлдэхийн тулд асуултыг өөрчилье. Хэрэв бид дараах зүйлийг бичихийг оролдвол:

Дараа нь бид юу ч авахгүй:

Учир нь тооллогын утгуудад ийм байдлаар хандах боломжгүй юм. Тэдэнд функцийг ашиглан хандах хэрэгтэй УТГА:

Тиймээс функцийн нэг үүрэг УТГА- асуулгад тоолох утгыг ашиглах.

урьдчилан тодорхойлсон өгөгдөл

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

Манай "Гастроном" мэдээллийн санд (хэрэглэгчийн горимд) "Хэмжих нэгж" лавлагааг нээнэ үү:

Түүний элементүүдийг анхаарч үзээрэй. Зарим элементийн хажууд байгаа шар өнгийн дугуйг харж байна уу? Эдгээр элементүүд нь (тойрогтой) юм урьдчилан тодорхойлсон өгөгдөл.

Ерөнхийдөө хэрэв лавлахын аль нэг элементийг урьдчилан тодорхойлсон бол (өөрөөр хэлбэл, дээр нь шар тойрог байгаа) энэ элемент онцгой шинж чанартай байдаг.

Нэгдүгээрт, энэ нь элементийг программист тохиргооны үе шатанд үүсгэсэн гэсэн үг юм (бидний тохиолдолд эдгээр нь 1, 2, 3 код бүхий элементүүд юм).

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

Ийм учраас ийм элементийг зүгээр л устгах нь ажиллахгүй болно. Устгахаар тэмдэглэж үзнэ үү:

Одоо тохиргооны горимд шилжиж, эдгээр маш урьдчилан тодорхойлсон элементүүд (энэ тохиолдолд Хэмжилтийн нэгжийн лавлах номын хувьд) хаана үүссэнийг харцгаая.

Эдгээр нь хэмжүүрийн нэгжийн бидний урьдчилан тодорхойлсон бүх элементүүд юм. Урьдчилан тодорхойлсон бүх элементүүд нь хэрэглэгчийн горимд харагдахгүй тусгай нэртэй байдаг гэдгийг анхаарна уу.

1 кодтой элементийн хувьд энэ нэр нь Тон, 2 кодтой - Грам гэх мэт. Энэ нэрийг нэрлэдэг урьдчилан тодорхойлсон элементийн нэрЭнэ нэрээр та үүнийг кодоос (эсвэл манай тохиолдолд хүсэлтээс) лавлаж болно.

Хэмжилтийн нэгжийг яагаад Тон, Грам, Пак гэсэн элементүүдтэй тооллого болгох боломжгүй байсныг та асууж магадгүй юм. Энэ тохиолдолд хэмжилтийн нэгж нь тодорхой тодорхой элементүүдийг (тонн, грамм, сав баглаа боодол) агуулсан байх нь бидний хувьд чухал боловч бид хэрэглэгчдэд тэдгээрийн аль нэг элементийг нэмэхийг хориглохыг хүсэхгүй байна ( килограмм, ширхэг гэх мэт). Та хичээлийн туршилтын хувилбарыг уншиж байна, бүрэн хичээлүүд байрладаг.

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

Мөн бид өмнө нь мэддэг функцийг ашиглан хүсэлтээс урьдчилан тодорхойлсон элементүүддээ хандах боломжтой УТГА:

Шалгалтаа өг

Туршилтыг эхлүүлэх

1. Тооллогын утгуудыг тохируулсан

2. Компанийн агуулахын жагсаалтыг хадгалахын тулд төрөл

3. Агуулахад хэмжих нэгжийн жагсаалтыг хадгалахын тулд төрөл

4. Хэрэглэгчийн жагсаалтад өөрчлөлт оруулах ёсгүй татварын хувь хэмжээг хадгалах, төрөл

5. Асуулгад тоолох утгыг илэрхийлэхийн тулд функц тохиромжтой

6. Татварын хувь хэмжээг хадгалах, тэдгээрийн жагсаалтыг хэрэглэгч өөрчлөх, төрөл

7. Урьдчилан тодорхойлсон өгөгдөл нь ирдэг

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

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

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

Нэмж дурдахад, хэрэв та лавлах элементүүдийн нэр эсвэл кодыг холбосон бол тухайн элементийн холбоосыг хүлээн авах үед лавлах хүснэгтэд хайлт үргэлж хийгдэх болно. Стандарт системийн дэлгэрэнгүй мэдээллийг DBMS индексжүүлдэг хэдий ч зарим тохиолдолд тэдгээрийг хайх нь ихээхэн нөөцийг шаарддаг. Үүнээс гадна, гүйцэтгэхгүй байх нь илүү оновчтой байх болно хайлтын асуулгалавлагааны хүснэгтийн дагуу хэрэв элементийн лавлагаа аль хэдийн "урьдчилан мэдэгдэж байгаа" гэж хэлье.

Үүний нэг арга бол та "Барааны үнийн төрлүүд" лавлахын байнга ашигладаг элемент бүрийн холбоосыг тусдаа тогтмол тоонд хадгалж, асуулгад тэдгээрээс утгыг авах боломжтой. Гэсэн хэдий ч, энэ тохиолдолд хөгжүүлэгч ийм элемент бүрийн хувьд тусдаа тогтмолыг нэмэх шаардлагатай болно. Хэрэв ийм элементүүд нь зөвхөн "Үнийн нэрлэсэн төрлүүд" лавлахаас гадна бусад лавлах ("Объект категори", "Чанар", "Нэршил" болон бусад) байвал нөхцөл байдал илүү төвөгтэй болно. Дараа нь систем дэх тогтмолуудын тоо хэд хэдэн удаа нэмэгдэж болно!

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

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

Нэг цэгийн шийдэл

Бүх нийтийн шийдлийн мөн чанар нь дараах байдалтай байх болно: лавлах үүсгэх бөгөөд үүнд хөгжүүлэгч урьдчилан тодорхойлсон элементүүдийг нэмж оруулах болно. "Утга" шинж чанарыг толь бичигт нэмсэн бөгөөд түүний төрөл нь "Урьдчилан тодорхойлсон толь бичгийн элемент -> Холбогдох утга" гэсэн захидал харилцааг үүсгэх утгаас хамаарна. Лавлах мета өгөгдлийн бүтэц нь иймэрхүү харагдаж байна (дараах дэлгэцийн агшинг үзнэ үү).

Урьдчилан тодорхойлсон элементийг авахын тулд хамгийн сайн сонголтглобал аргыг ашиглах явдал юм "Урьдчилан тодорхойлсон утга(<Имя>)" . Аргын параметр болгон дамжуулсан бүрэн замурьдчилан тодорхойлсон элемент рүү. Синтакс нь асуулгын хэлний "VALUE()" функцтэй төстэй.

Хөгжүүлэлтийн тав тухтай байдлыг хангах үүднээс урьдчилан тодорхойлсон элементтэй холбоотой утгыг нийтлэг модуль болгон авах функцийг шилжүүлэхийг зөвлөж байна. IN туршилтын тохиргоо, нийтлэлийн төгсгөлд байгаа линкээс татаж авах боломжтой, экспортын функцтэй "Урьдчилан тодорхойлсон элементүүдийн үнэ цэнэ" нийтлэг модулийг үүсгэсэн. "PredefinedElementValue авах(<ИмяПредопределенногоЭлемента>)" . Програмын кодфункц нь урьдчилан тодорхойлсон элементийн лавлагааг хүлээн авч, хүсэлтээр "Утга" шинж чанарын утгыг хүлээн авдаг. Дараах дэлгэцийн агшинд функцийн бүрэн жагсаалтыг харуулав.

Бидний харж байгаагаар функц нь параметр болгон дамжуулсан урьдчилан тодорхойлсон элементийн "Утга" шинж чанарын хүсэлтийг үүсгэдэг. Функцийн параметр нь урьдчилан тодорхойлсон элементийн нэртэй мөр юм.
Үүсгэсэн механизм зөв ажиллахын тулд та "Утга" шинж чанарт тохирох элементийг сонгон хэрэглэгчийн горимд урьдчилан тодорхойлсон элементийг ердийн толь бичгийн элементтэй холбох хэрэгтэй. Гүйцэтгэлийн нөлөөллийн асуудал руу шилжье.

Гүйцэтгэлд үзүүлэх нөлөө

Хайлтын хоёр хувилбарын хувьд хурдны тест хийсэн: нэрээр болон урьдчилан тодорхойлсон элементийн холбоосоор. 20 мянган бичилт бүхий “Бараа” лавлахад нэгжлэг хийсэн. Файлын суурь дээр туршилт хийхдээ дараахь үр дүнг авсан.

Үр дүн нь үүнийг харуулсан файлын хувилбарбусад сангуудын байнга ашиглагддаг элементүүдийг авахын тулд урьдчилан тодорхойлсон элементүүдийг ашиглах нь бараг 4 дахин удаан байна!

Үйлчлүүлэгч-серверийн ажлын хувилбарт туршилтын үр дүн огт өөр дүр зургийг харуулж байна. Хүссэн элементийн холбоосыг олж авах хурд төдийлөн буураагүй (туршилтын нэг нь нэрээр хайхад 0.002 секунд, урьдчилан тодорхойлсон элементээр ажиллахад 0.0008 секундыг харуулсан), гэхдээ програмын найдвартай байдал мэдэгдэхүйц нэмэгдсэн!

дүгнэлт

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

Платформтой ажиллах явцад би нэрийг нь өөрчилсний дараа, жишээлбэл, "Нэршлийн үнийн төрлүүд" лавлах номын элементийн стандарт бус тайлангийн ихэнх хэсэг нь эвдэрсэн тохиолдолтой олон удаа тулгарч байсан.

Илүү олон алгоритм нь лавлахуудын ердийн элементүүдтэй код эсвэл нэрээр холбогдсон байх тусам системийн тогтвортой байдал буурдаг.

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

Татаж авсан зүйлс:

  1. Өгүүллийн жишээ бүхий тестийн мэдээллийн санг буулгаж байна.

Урьдчилан тодорхойлсон элементүүд болон ердийн элементүүдийн хоорондох ялгааг хүн бүр мэддэг: "Урьдчилан тодорхойлсон элементүүд нь Тохируулагчийн горимд үүсгэгддэг бөгөөд 1С: Аж ахуйн нэгжийн горимд устгах боломжгүй." Хэрэглэгчийн горимд та урьдчилан тодорхойлсон элементийг хэрэглэгчдийн нэмсэн элементээс тусгай дүрсээр ялгаж болно (дараах дэлгэцийн агшинг үзнэ үү).

Үндсэндээ урьдчилан тодорхойлсон элементүүдийг янз бүрийн тохиргооны объектуудад алгоритмуудыг холбохын тулд хөгжүүлэгчид бий болгодог. Жишээлбэл, "Чанар" лавлах ном дахь "Үйлдвэрлэлийн аж ахуйн нэгжийн менежмент" тохиргоонд хөгжүүлэгчид урьдчилан тодорхойлсон "Шинэ" элементийг нэмсэн.

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

// БҮТЭЭГДЭХҮҮНИЙГ БҮРТГҮҮЛЭЭР БарааБайгууллага. MoveSet = Хөдлөх. Барааны Байгууллага; Хэрэв ReceiptType = Тооцоолол. Барааны баримтын төрлүүд. Дараа нь агуулах руу // Бүртгэлийн бичлэгийн бүтцэд тохирсон утгуудын хүснэгтийг авна уу. MoveTable = MoveSet. буулгах(); // Хөдөлгөөний хүснэгтийг бөглөнө үү.Ерөнхий зорилго. LoadToValueTable(TableByProducts,TableMovements) ; // Дутуу талбарууд.Хөдөлгөөний хүснэгт. FillValues(Байгууллага, "Байгууллага" ); Хөдөлгөөний хүснэгт. FillValues(Тодорхойгүй, "Комисс" ); Хөдөлгөөний хүснэгт. FillValues(Лавлагаа. Чанар. Шинэ , " Чанар " ); // Урьдчилан тодорхойлсон элементээс чанарыг бөглөнө үү

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

Ялгаа

Туршилтын тохиргоонд "Бараа" лавлахыг үүсгэсэн. Үүнд "Туршилтын элементүүд" бүлгийг үүсгэсэн. Та нийтлэлийн эхэнд байгаа дэлгэцийн агшинд бүлгийн агуулгыг харж болно. SQL мэдээллийн сан дахь "Бүтээгдэхүүн" лавлах номын хувьд дараах бүтэцтэй харгалзах "_Reference37" хүснэгт байна.

Гэхдээ тохиргооны модны дэлгэрэнгүй мэдээлэл болон SQL хүснэгтийн талбаруудын хоорондын захидал харилцааг хэрхэн тодорхойлох вэ?

Хүснэгтийн бүтцийн тайлбар бүхий утгын хүснэгтийг буцаана "GetDatabaseStorageStructure()" дэлхийн контекстийн стандарт аргыг ашиглацгаая.

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

Өгөгдлийн сан дахь лавлах хадгалах бүтэцтэй хүснэгтээс харахад "Урьдчилан тодорхойлсон" талбар нь "IsMetadata" талбартай тохирч байна гэж бид тодорхой хэлж чадна. Хэрэв бид SQL өгөгдлийн сан дахь "_Reference37" хүснэгтийн агуулгыг харвал бид дараахь зүйлийг харах болно.

Урьдчилан тодорхойлсон элементийн оруулгад "IsMetadata" талбарын утгыг "0x01" гэж тохируулсан бөгөөд энэ нь ҮНЭН тугтай тохирч байна. Ердийн элементүүдийн хувьд утгыг "0x00" гэж тохируулсан. Энэ нь урьдчилан тодорхойлсон элементүүд болон энгийн элементүүдийн хоорондох гол ялгаа юм. Бусад бүх талбарууд нь хэрэглэгчдийн нэмсэн энгийн зүйлсийн талбаруудын адил мэдээллийн санд хадгалагддаг.

Урьдчилан тодорхойлсон элементүүд нь маш сонирхолтой зорилгыг олж чадна. Тэдгээрийн тусламжтайгаар та лавлах дахь бүлэг элементүүд болон тэдгээрийг нэмж болох бусад объектуудыг устгах / устгахыг тэмдэглэхийг хориглож болно. Хэрэв бид "Туршилтын зүйлс" бүлгийг устгах эсвэл устгахаар тэмдэглэхийг оролдвол. Бид дараах алдааг олж авна.

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

Дуусгах

Урьдчилан тодорхойлсон элементүүд нь ихэнх тохиргооны салшгүй хэсэг юм. Тэдгээрийн хэрэглээ нь хөгжлийг хялбарчилж, функциональ бүтцийг илүү "эв нэгдэлтэй" бөгөөд хатуу болгодог.

1С платформын хувилбарт хүчинтэй: Enterprise 8.3.3 ба түүнээс дээш хувилбар 8.2 хувилбартай нийцтэй горимгүй

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

1.2. Ихэнх тохиолдолд урьдчилан тодорхойлсон элементүүдийг автоматаар үүсгэхийг зөвлөж байна, учир нь тэдгээр нь байнга хэрэгцээтэй байдаг бөгөөд та эдгээр элементүүдэд өөрийн кодоос хандахад хялбар болгохыг хүсдэг.
Жишээлбэл, урьдчилан тодорхойлсон улс Орославлах дотор Дэлхийн улс орнууд, урьдчилан тодорхойлсон хандалтын бүлгүүдийн профайл Администраторгэх мэт.

Үүний төлөө

  • лавлах ном, дансны бүдүүвч, шинж чанарын төлөвлөгөө эсвэл тооцооны төрлүүдийн төлөвлөгөөний өмчид үнэ цэнийг тогтоосон байх ёстой. Автомат(анхдагч) бөгөөд аргын программчлагдсан дуудлагыг зөвшөөрөх ёсгүй SetUpdatePredefinedDataЭнэ горимыг солихын тулд эдгээр объектууд.
  • Дараах эрхийг бүх дүрд идэвхгүй болгосноор хэрэглэгчдийг урьдчилан тодорхойлсон элементүүдийг устгахаас урьдчилан сэргийлэх (анхдагчаар идэвхгүй болгосон):
    • Урьдчилан тодорхойлсон өгөгдлийг интерактив устгах
    • InteractiveDeletionMarkPredefinedData
    • Interactive UnslaggingDeletingPredefinedData
    • InteractiveDeletingLabeled PredefinedData

1.3. Үл хамаарах зүйл нь RIB-ийн хүүхэд зангилаа бөгөөд үүнд урьдчилан тодорхойлсон элементүүд автоматаар үүсгэгддэггүй (мета өгөгдөл өөрчлөгдөхөд шинэчлэгддэггүй), гэхдээ тохиргооны өөрчлөлтийн хамт үндсэн зангилаанаас шилжүүлэх ёстой.

Үүнд:

a) тохиргоо нь мастер зангилаанаас хүлээн авсан урьдчилан тодорхойлсон элементүүдэд ханддаг бусад програмын кодыг гүйцэтгэхээс өмнө солилцооны мессежийг RIB-ийн боол зангилаа руу ачаалах ёстой;

б) үндсэн зангилаанаас өгөгдөл ачаалах програмын логикт (үйл явдал зохицуулагч Мастераас мэдээлэл хүлээн авах үед, объектын бүртгэлийн дүрэм) солилцох мессежээс аль хэдийн ачаалагдсан гэсэн баталгаа байхгүй тул урьдчилан тодорхойлсон элементүүдийн лавлагаа хийхээс зайлсхийх хэрэгтэй;

в) урьдчилан тодорхойлсон элементүүдийг боловсруулдаг IS шинэчлэлтийн зохицуулагчийн кодыг RIB сүлжээний зангилаанд ажиллуулах ёсгүй:

Хэрэв солилцооны төлөвлөгөө. MainNode() = Тодорхойгүй Дараа нь // урьдчилан тодорхойлсон элементүүдийг бөглөнө үү// ... EndIf ;

Стандарт дэд системүүдийн номын сангийн (BSP) 2.1.4 ба түүнээс дээш хувилбарын тохиргоонд "Өгөгдлийн солилцоо" дэд системийг ашиглах үед (a) ба (b) шаардлагыг хассан болно.

1.4. RIB солилцооны төлөвлөгөөний нэг хэсэг биш (мөн RIB солилцооны төлөвлөгөөний нэг хэсэг болох бусад хүснэгтэд дурдаагүй) урьдчилан тодорхойлсон элементүүдтэй хүснэгтүүдийн хувьд өмчийг тохируулахыг зөвлөж байна. Урьдчилан тодорхойлсон өгөгдлийг шинэчилж байнаутга руу оруулав Автоматаар шинэчлэх, түүнчлэн RIB боол зангилааны анхны хөөргөх үед, тогтоосон автомат шинэчлэлтдуудлагатай өгөгдөлд:

Лавлах номууд. DirectoryName> . SetUpdatePredefinedData(UpdatePredefinedData. Автоматаар шинэчлэх) ;

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

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

Үүний төлөө

  • өмчид Урьдчилан тодорхойлсон өгөгдлийг шинэчилж байналавлах ном, дансны бүдүүвч, шинж чанарын график эсвэл тооцооллын төрлүүдийн диаграммыг "Автоматаар шинэчлэхгүй" гэж тохируулсан байх ёстой.
  • Бизнесийн логикоос хамааран урьдчилан тодорхойлсон элементийг үүсгэх (болон хүчингүй болгох) кодоор хангах, жишээлбэл:
Хэрэв GetFunctionOption( "Ажилчдын цагийг цагаар хянах") Дараа нь AccrualObject = Тооцооллын төрлүүдийн төлөвлөгөө. Хуримтлал. CreateCalculationView() ; AccrualObject. PredefinedDataName = "Цагийн цалин" ; // ... AccrualObject. Write(); EndIf;
  • програмын кодонд IS-д урьдчилан тодорхойлсон элементүүд байхгүй байгааг харгалзан үзэх. Үгүй бол код эсвэл хүсэлтийн текстээс байхгүй урьдчилан тодорхойлсон элемент рүү хандах үед үл хамаарах зүйл тохиолдох болно:
. . . = Тооцооллын ургамлын төрөл. Хуримтлал. цагийн цалин; . . . = Урьдчилан тодорхойлсон утга( "Тооцооллын төрлүүдийн төлөвлөгөө. Хуримтлал. Цагаар цалин") ;

Стандарт дэд системүүдийн номын сангийн (SSL) 2.1.4 ба түүнээс дээш хувилбарыг тохиргоонд ашиглах үед функцийг ашиглахыг зөвлөж байна. Урьдчилан тодорхойлсон элементнийтлэг модуль Ерөнхий зориулалтын клиент сервер, буцаж ирдэг Тэмдэглэгдээгүй IB-д байхгүй урьдчилан тодорхойлсон элементүүдийн хувьд.

Хэвлэх (Ctrl+P)

Объект менежер ашиглан урьдчилан тодорхойлсон утгуудтай ажиллах

Та харгалзах объектын менежерийг ашиглан 1C: Enterprise серверийн талаас урьдчилан тодорхойлсон утгыг авах боломжтой. Хүлээн авсан атрибутыг тодорхойлсон мөр нь дараах хэлбэртэй байна.

Урьдчилан тодорхойлсонValueType.MetadataObjectName.Value


Урьдчилан тодорхойлсон утгын төрөл– Урьдчилан тодорхойлсон утгыг авахын тулд дараах өгөгдлийн төрлүүдийг зааж өгч болно
олон тоо):
● Гарын авлага,
● Онцлогуудын төрлүүдийн төлөвлөгөө,
● Дансны график,
● Тооцооллын төрлүүдийн төлөвлөгөө,
● Тооцоолол.
Мета өгөгдлийн объектын нэр

● Утга - дараахын аль нэг нь байж болно:
● тооллогын хувьд тооллогын утгын нэрийг зааж өгсөн;

● RoutePoints.PointName нь бизнесийн үйл явцын маршрутын цэг юм.
Бизнесийн үйл явцын чиглүүлэлтийн цэгийг авах шаардлагатай тохиолдолд хүлээн авсан утгыг дүрсэлсэн мөр дараах байдалтай харагдана.

BusinessProcesses.MetadataObjectName.RoutePoint.RoutePointName
Жишээ:


Төрөл = Тооцоолол.Барааны төрөл.Бараа;
// Урьдчилан тодорхойлсон лавлах өгөгдлийг олж авах.
Элемент = Directories.Currency.Ruble;
// Бизнесийн үйл явцын маршрутын цэг
Цэг = Бизнесийн үйл явц.Баталгаа.Маршрутын цэгүүд.Батлах;

Урьдчилан тодорхойлсон утгуудтай ажиллах Функцийг ашиглах Урьдчилан тодорхойлсон утга()

Үйлчлүүлэгч тал дээр хэрэглээний объектууд байхгүй тул объект менежер ашиглан урьдчилан тодорхойлсон шинж чанаруудыг авах боломжгүй болно. Тиймээс тэдгээрийг авахын тулд PredefinedValue() гэсэн дэлхийн контекст арга байдаг. Энэ аргын параметр нь урьдчилан тодорхойлсон утгыг олж авахыг тодорхойлсон мөр юм. Урьдчилан тодорхойлсон утгыг тайлбарлах синтакс нь асуулгын хэлний VALUE оператортой адил байна.
Хүлээн авсан атрибутыг тодорхойлсон мөр нь дараах хэлбэртэй байна.

Энэ шугамын бүрэлдэхүүн хэсгүүдийг нарийвчлан авч үзье.
Урьдчилан тодорхойлсон утгын төрөл– Урьдчилан тодорхойлсон утгыг авахын тулд дараах өгөгдлийн төрлүүдийг зааж өгч болно
ганц бие):
● Гарын авлага,
Төлөвлөгөөний төрөл,
● Дансны график,
Ургамлын төрлүүдийн тооцоо,
● Жагсаалт,
● Бизнесийн үйл явц.
● Мөн ObjectNameMetadata– тохируулагч дээр заасан мета өгөгдлийн объектын нэрийг зааж өгнө.
● Утга - дараах зүйлсийн аль нэг нь байж болно

● тооллогын хувьд тооллогын утгын нэрийг зааж өгсөн;
● урьдчилан тодорхойлсон утгыг авахын тулд түүний нэрийг тохируулагч дээр зааж өгсөн байдлаар зааж өгөх;
● RoutePoint.PointName – бизнесийн үйл явцын чиглүүлэлтийн цэг;
● EmptyLink - хоосон холбоос авах.
Хэрэв та системийн тооллын утгыг авах шаардлагатай бол аргын параметр дараах байдлаар харагдах болно.
SystemEnumName.SystemEnum Утга.
Жишээлбэл:

ChartType = Урьдчилан тодорхойлсонValue("ChartType.ConcaveSurface"“);
Хэрэв та бизнесийн үйл явцын маршрутын цэгийг авахыг хүсвэл таны олж авсан утгыг тодорхойлсон мөр дараах байдлаар харагдах болно.
Жишээ:

// Тооллогын утгыг авна.
Харах = Урьдчилан тодорхойлсон утга(“Тооллого.Барааны төрөл.Бараа”);
// Хоосон лавлагааны утгыг авна.
Хоосон холбоос =
Урьдчилан тодорхойлсон утга(“Document.Invoice.EmptyReference”);
// Урьдчилан тодорхойлсон лавлах өгөгдлийг олж авах.
Элемент = Урьдчилан тодорхойлсон утга(“Гарын авлага. Валют. Рубль”);
// Бизнесийн үйл явцын цэг
Цэг = Урьдчилан тодорхойлсон утга(“Бизнесийн үйл явц. Гэрээ. Маршрутын цэг. Зөвшөөрөл”);



Ачааж байна...
Топ