1c буцах утгыг дахин ашиглах. Ерөнхий модулиуд. Гадаад холбоосын туг


   Хэвлэх (Ctrl + P)

Ерөнхий модулийн тохиргооны модны мөчир дээр байрлах объектууд нь бусад тохиргооны модулиудаас дуудах боломжтой функц, процедурын текстийг тэдэнд байрлуулахад зориулагдсан болно.
АНХААРУУЛГА! Нийтлэг модуль нь зөвхөн процедур, функцийн тодорхойлолтыг агуулж болно.
  Гарчгийн хэсэгт Экспортын түлхүүр үгийг зааж өгсөн ерөнхий модулийн горим, функцууд нь дэлхийн контекстийн нэг хэсэг юм. Ерөнхий модульд бичигдэх процедурын талаар нэмэлт мэдээллийг "Програм хангамжийн модулийн код кодын формат", "операторууд" хэсгээс авах боломжтой.
  Ерөнхий модулийг засварлахын тулд General Modules төрлийн төрөл зүйлийн объектын шинж чанаруудын самбар дахь Тохиргоо цонхноос Module проперти дээр нээгдэх холбоос дээр дарна уу. Ерөнхий модулийн текстийг програм хангамжийн модулийн текст засварлах горим дахь 1C: Enterprise системийн текст засварлагч дээр засварлах зорилгоор гаргана.
  Тохиргооны хэсэг болох нийтлэг модулийг зөвхөн тохиргооны хэсэг болгон хадгалдаг.
  Глобал өмч нь ерөнхий модулийн экспортын аргууд нь дэлхийн контекстийн нэг хэсэг эсэхийг тодорхойлдог.
  Хэрэв Global шинж чанарыг Үнэн гэж тохируулсан бол нийтлэг модулийн экспортын аргуудыг дэлхийн контекст аргууд болгон ашиглах боломжтой болно.
  Хэрэв Global үл хөдлөх хөрөнгийг Худал гэж зааж өгсөн бол дэлхийн хэмжээнд мета өгөгдөл дэх нийтлэг модулийн нэртэй тохирч байгаа нэрээр өмч бий болно. Энэ өмч зөвхөн унших боломжтой. Энэ өмчийн үнэ цэнэ нь GeneralModule объект юм. Энэхүү ерөнхий модулийн экспортын аргыг энэ объектоор дамжуулан авах боломжтой. Тиймээс дэлхийн нийтлэг бус модулийн аргуудыг дуудах нь XXXXX.YYYYY мэт харагдаж байна, XXXXX нь нийтлэг модулийн агуулгатай таарч байгаа эд хөрөнгийн нэр, YYYYY нь нийтлэг модулийн экспортын аргын нэр юм.
  Жишээ нь:

Худалдааны тоног төхөөрөмжтэй ажиллах. Сканнер баркод холбох ();

Өөр өөр контекст ба ерөнхий модулиуд

Нийтлэг модулиудын шинж чанарууд болон урьдчилсан процессоруудын зааврыг ашиглан нийтлэг модулиудын янз бүрийн аргуудын гүйцэтгэлийг зөв агуулгаар зохион байгуулж болно.
  Нийтлэг модулийн шинж чанар нь нийтлэг модулийг тодорхой контекстэд хөрвүүлэх (гүйцэтгэх) үүрэгтэй.
  Нийтлэг модулийн аргууд байгаа контекстийг хариуцдаг дараах шинж чанарууд байдаг.
Үйлчлүүлэгч (энгийн програм) - ердийн модулийн аргууд нь зузаан үйлчлүүлэгчдэд ердийн хэрэглээний горимд ашиглах боломжтой болно;
  ● - модулийн нийтлэг аргуудыг нимгэн клиент, вэб клиент, мөн зузаан клиент ашиглах боломжтой
  удирдлагатай програмын горим;
  ● Сервер - ерөнхий модулийн аргуудыг сервер дээр ашиглах боломжтой болно;
Гадаад холболт   - Модулийн нийтлэг аргуудыг гадаад холболт дээр ашиглах боломжтой болно.
  Хэрэв хэд хэдэн шинж чанарыг нэгэн зэрэг тохируулсан бол энэ нь нийтлэг модулийн аргуудыг хэд хэдэн контекстэд ашиглах боломжтой болно гэсэн үг юм.
  Хэрэв ерөнхий модуль нь Серверийн өмч болон бусад өмчийн багцтай бол энэ нь ерөнхий модулийг сервер болон сонгосон үйлчлүүлэгч дээр нэгэн зэрэг ашиглах боломжтой болно гэсэн үг юм. Энэ нь үнэндээ энэ нь хөрвүүлсэн кодын хэд хэдэн хувилбар байх болно гэдгийг сонгох шаардлагатай (сонгосон үйлчлүүлэгчдийн тооноос хамаарч, серверийн хувьд үнэн хэрэгтээ).
  Түүнээс гадна, хэрэв ийм нийтлэг модульд байрлуулсан аргыг үйлчлүүлэгчээс дуудах юм бол нийтлэг модулийн үйлчлүүлэгчийн хуулбар, хэрэв энэ нь серверээс ирсэн бол нөгөөх нь сервер юм. Энэ тохиолдолд урьдчилан боловсруулагчийн зааврыг ашигласнаар (дэлгэрэнгүйг эндээс үзнэ үү) та серверийг үүн дээр ажиллах боломжгүй кодоос "хамгаалж" чадна.
  Нэг жишээ авч үзье. Ерөнхий модуль (үүнийг нимгэн клиент ба сервер дээр гүйцэтгэх боломжтой) нимгэн үйлчлүүлэгч болон серверийн тал дээр арай өөр зан аргатай байдаг. Үүнийг яаж хийж болохыг харцгаая.



# Хэрэв Нимгэн Хэрэглэгч Дараа нь
// анхааруулга харуулах
ShowUser анхааруулга("Үйлчлүүлэгч дээр");
# ӨӨРӨӨ
EndProcedures
  Дараа нь сервер талд код дараах хэлбэрийг авна.
Журам Модулийн ерөнхий арга ()   Экспортлох
// Энд янз бүрийн чухал кодыг байрлуулсан болно
EndProcedures
  Нимгэн үйлчлүүлэгч тал дээр код дараах байдлаар харагдах болно.
GeneralModule Method () Экспортын журам
// Энд янз бүрийн чухал кодыг байрлуулсан болно
// анхааруулга харуулах
  ShowUser Alert ("Үйлчлүүлэгч дээр");
EndProcedures

Хяналтыг үйлчлүүлэгчээс сервер рүү шилжүүлэх хэд хэдэн арга байдаг:
  ● серверийн нийтлэг модулийн аргыг дуудах;
  ● хэлбэр эсвэл командын модулийг дагаж мөрдөх зааврын өмнөх аргыг дуудаж болно & OnServer, & OnServerWithout контекстийг ашиглана уу

Үүний зэрэгцээ, клиентийн нийтлэг модулийн аргуудыг (Серверийн өмчийг тохируулаагүй), серверийн процедураас маягтын модуль буюу команд модулийн клиент аргуудыг дуудаж болохгүй. Ихэнх гадны серверийн дуудлагыг дуусгасны дараа удирдлага нь үйлчлүүлэгч рүү буцна.
  Үл хамаарах зүйл бол хөрвүүлэлтийн заавраас өмнөх хэлбэр, модулийн командын аргууд юм Сервер дээр клиент, Контекстгүй сервер дээр клиент дээр
Дараахь зүйлийг мөн дурдах хэрэгтэй.
  ● Хэрэв нийтлэг модулийг нэгээс олон үйлчлүүлэгч ашиглах боломжтой бол програмын кодыг бичихдээ үйлчлүүлэгчдэд тавигдах хамгийн их хязгаарлалтыг харгалзан үзэх эсвэл тухайн үйлчлүүлэгчдэд зориулагдсан кодыг "тусгаарлах "ын тулд өмнөх боловсруулагчийн зааврыг ашиглах хэрэгтэй.
  ● Нэг нийтлэг модуль нь хэд хэдэн гүйцэтгэх контексттэй, жишээлбэл, гаднах холболт, нимгэн клиент эсвэл зарим нэг клиент, серверийг ашиглахад хялбар байдаг. Энэ тохиолдолд урьдчилан боловсруулагчийн заавар нь сервер дээр ашиглах боломжгүй интерактив кодыг агуулж болох боловч үйлчлүүлэгч дээр ашиглах боломжтой (дээрх жишээг үз).
  Урьдчилан боловсруулсан заавар, эмхэтгэлийн зааварчилгааны талаар дэлгэрэнгүй мэдээлэл авах бол "Тусламжийн заавар ба функцийг гүйцэтгэх" хэсгийг үзнэ үү.
  Серверийн дуудлагын өмчийг клиент кодоос серверийн нийтлэг модулийн экспортын аргыг дуудах боломжийг хянахын тулд ашигладаг.
  Хэрэв өмчийг тохируулсан бол серверийн нийтлэг модулийн экспортын аргыг үйлчлүүлэгчээс дуудлага хийх боломжтой болно. Хэрэв өмчийг тохируулаагүй бол экспортын ийм аргыг зөвхөн серверийн аргуудаас дуудаж болно (серверийн нийтлэг модулийн аргууд, маягтын модуль ба команд модулийн серверийн аргууд).
Зөвлөмж. Серверийн ердийн модуль нь үйлчлүүлэгчээс дуудлага хийхийг хүсээгүй аргуудыг агуулсан байдаг тул (жишээ нь, аюулгүй байдлын үүднээс) Call серверийн шинж чанарыг Худал гэж тохируулахыг зөвлөж байна.
ТэмдэглэлБайна. Хэрэв шинж чанарууд нэгэн зэрэг тохируулагдсан бол Үйлчлүүлэгч (энгийн програм), Үйлчлүүлэгч (удирдлага бүхий програм), Гадаад холболт, дараа нь Сервер дуудлагын шинж чанар автоматаар шинэчлэгддэг. Хэрэв Server call өмчийг тохируулсан бол шинж чанарууд нь автоматаар тохируулагдана Үйлчлүүлэгч (энгийн програм), Үйлчлүүлэгч (удирдлага бүхий програм)   ба Гадаад холболтэдгээр шинж чанаруудыг нэгэн зэрэг тохируулсан бол.
  Эд хөрөнгө Хувьчлагдсан   ерөнхий модулийн аргуудыг гүйцэтгэх үед хандалтын хяналтыг идэвхгүй болгох зориулалттай.
  ТАЙЛБАР Хэрэв эд хөрөнгө Хувьчлагдсан   суулгасны дараа Серверийн шинж чанар автоматаар ерөнхий модульд тавигдах бөгөөд үлдсэн шинж чанарууд нь дахин тохируулагдана ( Үйлчлүүлэгч (энгийн програм), Үйлчлүүлэгч (удирдлага бүхий програм)   ба B гадаад холболт) Давуу эрх бүхий хуваалцсан модулийг зөвхөн сервер дээр гүйцэтгэх боломжтой.

Буцах утгыг дахин ашиглах нь

Хэрэв нийтлэг модуль нь дэлхий нийтийн биш бол буцаах утгыг дахин ашиглах шинж чанартай болно. Энэ өмч нь дараахь утгыг авч болно.
  ● Ашиглахгүй - энэ ерөнхий модулийн функцүүдийн хувьд буцаах утгыг дахин ашиглахгүй.
● Дуудлага хийх үед ба хуралдааны үеэр - ерөнхий модульд өгөгдлийг дахин ашиглахыг тодорхойлох аргыг ашигладаг. Энэ аргын мөн чанар нь код гүйцэтгэх явцад систем нь анхны функцийн дуудлагын дараа параметрүүд ба үр дүнг санаж байдаг. Функцийг ижил параметрүүдээр дахин дуудахад хадгалсан утга нь функцийг өөрөө гүйцэтгэхгүйгээр буцаж ирдэг (эхний дуудлагаас). Хэрэв функц нь түүнийг гүйцэтгэх явцад параметрийн утгыг өөрчилдөг бол функцийг дахин дуудаж болохгүй.
  Дуудлагын үр дүнг хадгалах дараах шинж чанаруудыг ялгаж харах боломжтой.
  ● хэрэв функц нь сервер дээр хийгдэж, серверийн кодоос дуудагдвал параметрийн утга, дуудлагын үр дүн нь серверийн одоогийн сешнд санах болно;
  ● хэрэв функц нь зузаан эсвэл нимгэн клиент дээр хийгдсэн бол дуудлагын параметрүүд ба үр дүнгийн утгууд клиент талд хадгалагдана;
  ● хэрэв функц нь сервер тал дээр хийгдэх бөгөөд клиент кодоос дуудагдах бол дуудлагын параметрүүд үйлчлүүлэгч болон сервер тал дээр хоёуланд нь хадгалагдана (одоогийн сешний хувьд).
  Хадгалсан утгуудыг устгана:
  ● хэрэв хөрөнгийг дуудлагын хугацаанд тохируулсан бол:
  ● серверийн талд - хяналт нь серверээс буцаж ирэхэд;
  ● харилцагчийн талаас - дээд түвшний суулгагдсан хэлний процедур эсвэл функцийг дуусгасны дараа (суулгасан хэлний өөр процедур эсвэл функцээс бус системээс дууддаг);
  ● хэрэв нийтлэг модулийн шинж чанарыг Session Time горимд тохируулсан бол:
  ● серверийн тал дээр - хуралдааны төгсгөлд;
  ● харилцагчийн талд - харилцагчийн програмыг хаах үед.
  Хадгалсан утгуудыг устгах болно
  ● ердийн холболтын хурдтай сервер дээр, зузаан клиент, гаднах холболт, нимгэн үйлчлүүлэгч, вэб клиент дээр - хадгалсан утгыг тооцоолсноос хойш 20 минут эсвэл хамгийн сүүлд ашигласнаас хойш 6 минутын дараа;
  ● холболтын хурд багатай нимгэн клиент ба вэб клиентэд - хадгалсан утгыг тооцоолсноос 20 минутын дараа;
  ● серверийн ажлын урсгалд RAM дутагдалтай;
  ● ажлын урсгалыг дахин эхлүүлэх үед;
  ● Үйлчлүүлэгч өөр ажлын урсгал руу шилжих үед.
  Утга арилгасны дараа экспортлогдсон функцийн дуудлагыг эхний дуудлагын адилаар гүйцэтгэдэг.
  Нийтлэг модулийн энэ шинж чанар нь процедурын гүйцэтгэлд нөлөөлдөггүй - процедурыг үргэлж гүйцэтгэдэг.

Хэрэв ерөнхий модуль нь буцаах утгыг дахин ашиглахаар тохируулсан бол экспортын функцийн параметрийн төрлүүдэд хэд хэдэн хязгаарлалт тавигдана. Зөвхөн параметрийн төрлүүд байж болно.
  ● Үндсэн төрөл ( Тодорхойгүй, NULL, логик, дугаар, мөр, огноо).
  ● Мэдээллийн баазын объектын лавлагаа.
  ● Дээрх төрлүүдийн өмчийн утгатай бүтэц. Энэ тохиолдолд параметрүүдийн таних чанарыг "агуулгын дагуу" хянадаг.
  Хэрэв экспортлогдсон функц нь обьектийг буцааж өгвөл кэшэд хадгалагдсан обьектын лавлагаа буцаагдана. Хэрэв энэ холбоосыг хүлээн авсны дараа обьектын төлөв байдал өөрчлөгдвөл тухайн функцийг гүйцэтгэх дараагийн дуудлага нь функцийг гүйцэтгэхгүйгээр аль хэдийн өөрчлөгдсөн объект руу холбоосыг буцаана. Энэ зан чанар нь хадгалагдсан утгыг устгах хүртэл ажиглагдах болно (ямар ч шалтгаанаар). Өөрөөр хэлбэл, буцаж ирсэн утгыг давтан ашиглах замаар нийтлэг модулөөс функциональ дуудлагын үр дүнд олж авсан объектын төлөв байдал өөрчлөгдөх нь бодит функц дуудлагын үндэс биш юм. Буцаж ирсэн объектуудын кэш нь үл тоомсорлож байгааг санах нь зүйтэй
  буцаж ирсэн утгыг дахин ашиглах замаар функц дуудах үед давуу эрх бүхий горимын төлөв. Энэ шинж чанар нь дараахь зан үйлийг өдөөж болно.
  ● Тусгай эрхтэй горим идэвхжсэн үед буцах дуудлагын утгыг давтан ашиглах функцийн дуудлагын бодит дуудлага (анхны дуудлага) хийгдсэн.
  ● Функцийг ажиллуулахдаа давуу эрх бүхий горимыг хаах боломжгүй зүйлийг хүлээн авсан.
  ● Дараагийн функцийн дуудлага нь давуу эрх олгох горимыг тохируулахгүйгээр хийгддэг.
  ● Гэсэн хэдий ч, буцаж ирсэн объектуудын кэшийг цэвэрлэх эсвэл бодит дуудлагыг давтах хүртэл функц нь албан ёсоор нэвтрэх боломжгүй обьектыг буцаана.
  ● Давуу дуудлага нь давуу эрх бүхий горимыг тохируулахгүйгээр хийсэн тохиолдолд давуу талтай бөгөөд давуу эрх бүхий горимд хүлээн авсан обьект нь буцаагдахгүй.

Хэрэв ерөнхий модуль нь өмчтэй бол Буцах утгыг дахин ашиглах нь   Хэрэв харилцан ярианы туршид тохируулагдсан бол тухайн модулийн функцуудаас буцаасан утгуудад тухайн утгыг ашиглах боломжгүй Түр зуурын хүснэгт менежер.
Хэрэв дахин ашиглагдах нийтлэг модулийн функцийг ижил ерөнхий модулаас дуудагдвал (жишээлбэл, CommonModule нэртэй), та дараах шинж чанарыг санаж байх хэрэгтэй. Хэрэв функцийг MyFunction () нэрээр дуудах юм бол функцийг дуудах бүртээ гүйцэтгэнэ. Байна. Хадгалсан утгыг ашиглахын тулд функцийг бүтэн нэрээр дуудах шаардлагатай.
CommonModule.MoyFunction ().
  Глобал контекст арга нь уг аргыг хаана нэрлэснээс үл хамааран сервер дээр болон клиент тал дээр ашиглах боломжтой бүх утгыг устгадаг. Уг аргыг хэрэгжүүлсний дараа RefreshValues \u200b\u200b()   эхний функц дуудлагыг бүрэн гүйцэд гүйцэтгэх болно.

Ерөнхий модулиуд 1С   - програмын кодыг хадгалдаг 1С 8.3 ба 8.2 мета өгөгдлийг тохируулах обьект, үүнийг ихэвчлэн тохиргоонд нэрлэдэг. Функц / процедурыг тохиргооны аль ч газраас дуудаж болно (хэрэв экспортолсон бол).

Нийтлэг модулийг хэрхэн ашиглах вэ

Нийтлэг модульд процедур эсвэл функцийг нэгээс олон газарт дуудах нь зүйтэй. Нэгдүгээрт, процедурыг тохируулсан тохиолдолд үүнийг зөвхөн нэг газар засах хэрэгтэй. Хоёрдугаарт, энэ нь кодын хувьд илүү их дарааллыг олж авдаг.

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

Модулийн нийтлэг шинж чанарууд

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

267 1C видео хичээлийг үнэгүй авах:

Ерөнхий модулийн шинж чанаруудын палитрыг илүү нарийвчлан авч үзье.

  • Глобал   - далбааг тавьсан тохиолдолд энэхүү модулийн функц, горимууд дэлхийн хэмжээнд боломжтой болно. Байна. тэдгээрийг тохиргооны аль ч хэсэгт дуудаж болно, нийтлэг модулийн нэргүйгээр нэвтрэн орж болно. Гэсэн хэдий ч нөхцлийг нэмж оруулсан болно - энэ ерөнхий модул дахь процедур ба функцийн нэр нь дэлхийн хэмжээнд өвөрмөц байх ёстой.
  • Сервер   - Энэхүү ерөнхий модулийн горим, функцийг сервер дээр гүйцэтгэж болно.
  • Гадаад холболт   - Энэ ерөнхий модулийн програмын кодыг гадны эх үүсвэртэй (жишээлбэл, COM) холбогдсон үед гүйцэтгэж болно.
  • Үйлчлүүлэгч (удирдлага бүхий програм)   - энэхүү ерөнхий модулийн горим, функцийг хэрэглээний горимд зузаан клиент болгон ашиглах боломжтой.
  • Үйлчлүүлэгч (энгийн програм)   - Энэхүү ерөнхий модулийн програмын кодыг ердийн хэрэглээний горимд зузаан клиент болгон ашиглаж болно.
  • Серверийн дуудлага   - үйлчлүүлэгчид энэхүү ерөнхий модулийн горим, функцийг ашиглах боломжийг олгодог туг.
  • - Хэрэв үнэн тохируулагдсан бол энэ ерөнхий модульд зөвшөөрлийн шалгалт идэвхгүй болно.
  • Дахин ашиглах   - буцаж ирсэн утгуудын тохиргоог тодорхойлно. Хэрэв сонголт идэвхжсэн бол эхний гүйцэтгэлийн дараа систем нь өгөгдсөн оролтын параметрүүдийн утгыг санаж, буцаасан утгыг буцаана. Энэ нь дараахь утгуудыг авч болно. ашиглагдаагүй   - унтрах, дуудлагын үеэр   - тодорхой процедурын хугацаанд, хуралдааны туршид   - хэрэглэгч хуралдааныг (програм) хаах хүртэл.

Хэрэв та 1С програмчлалыг сурч эхэлвэл бид танд үнэгүй сургалтаа санал болгож байна (битгий мартаарай)

Энэхүү нийтлэл нь "1С дээр хөгжлийн эхний алхамууд" циклийг үргэлжлүүлж дараахь асуудлуудыг нарийвчлан авч үзнэ.

  • Програм хангамжийн модуль гэж юу вэ, энэ нь ямар хэсгүүдээс бүрддэг вэ?
  • Програмын модуль нь юу вэ? Яагаад хоёр гэж байгаа юм? Хэзээ гүйх вэ? Ажлын нарийн зүйл юу вэ?
  • Системийг эхлүүлэхтэй холбоотой ямар үйл явдлууд, тэдгээрийг хэрхэн, хаана боловсруулах вэ?
  • Гадаад холболтын модуль нь юу вэ? Үүнийг хэзээ, хэрхэн ашиглах вэ?
  • Сешн модулийг хэзээ ашиглах вэ?
  • Ерөнхий модулиуд гэж юу вэ? Түүний шинж чанар, ажлын дүрэм юу вэ? Яагаад "Буцаах утгыг дахин ашиглах" өмчийг ашиглаж байна вэ?
  • Маягтын модулийг хэзээ ашиглаж байгаа ба үүн дэх үйл явдлыг боловсруулах боломжтой вэ?
  • Обьектийн модуль нь юунд зориулагдсан вэ? Энэ ямар хэсгээс бүрдэх вэ? Боломжтой модулийн үйл явдлыг хэрхэн үзэх вэ?
  • Утга менежерийн модулиуд (тогтмол хувьд) болон бичлэг хийх модулиуд (регистрийн хувьд) ямар нарийн зүйл байдаг вэ?
  • Объектын модуль ба менежер модулийн хооронд ямар ялгаа байдаг вэ? Сүүлчийг хэзээ хэрэглэх вэ?

Хэрэглэх боломжтой байдал

Нийтлэлд 1C: Enterprise платформ 8.3.4.496 талаар ярилцана. Энэ материал нь платформын одоогийн хувилбаруудад хамааралтай болно.

1С дахь модулиуд: Аж ахуйн нэгж 8.3

Модулиуд нь програмын кодыг агуулдаг объектууд юм.

Платформ дээр нэлээд олон төрлийн модулиуд байдаг ба тэдгээр нь тус бүр өөрийн зорилго, онцлогтой байдаг.

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

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

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

Ижил нэртэй хэдий ч эдгээр нь хоёр өөр хувьсагч байдаг: нэг нь тодорхой процедур дотор хэрэглэгддэг, нөгөө нь гадна талаас хэрэглэгддэг.

Зарим модулиудад Сервер эсвэл Клиент дээрх нэгтгэсэн байршил (бэлэн байдал) -ийг хувьсагчдад зааж өгч болно. Жишээ нь:

Хувьсагчдыг тайлбарласан хэсгийг энэ модулийн локал аргуудыг зааж өгсөн процедур ба функцийн хэсгийг дагана. Зарим модулиуд нь процедур эсвэл функцийг хаана эмхэтгэхийг зааж өгөх ёстой.

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

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

Тиймээс, жишээлбэл, элементийн хэлбэрийг нээхдээ юуны түрүүнд маягтын модулийн үндсэн програмын хэсгийг гүйцэтгэнэ.

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

Хэрэглээний модуль

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

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

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

Энэ нь хэрэглээний модульд хяналт тавьдаг интерактив системийн нээлт гэдгийг тэмдэглэх нь зүйтэй.

Хэрэв 1C програмыг ажиллуулах тохиолдолд жишээлбэл, com-connection горимд орвол хэрэглээний модуль ажиллахгүй. Энэ тохиолдолд програмын цонхыг үүсгэдэггүй.

Платформ 8.3 дээр програмын хоёр өөр загвар байдаг: Удирддаг програмын модуль ба ердийн хэрэглээний модуль. Удирддаг програмын Нимгэн ба Зузаан клиент ба Вэб клиент ажиллуулах үед удирдлагатай програмын модулийн үйл явдлуудыг боловсруулдаг.

Модуль Тогтмол хэрэглээ   Зузаан үйлчлүүлэгч горимд ажиллаж эхлэх үед ажилладаг Тогтмол хэрэглээхэлбэрээр ердийн командын интерфейс байдаг Үндсэн цэс.

Хэрэв програм ажиллаж байгаа бол Удирддаг, болон Тогтмол хэрэглээ, модулийн хувьд боловсруулагчийн горимыг тайлбарлах шаардлагатай болно Удирддаг програмтиймээс модулийн хувьд Тогтмол хэрэглээ.

Модуль Удирддаг програм   үндсэн тохиргооны зангилааны контекст цэснээс сонгож болно.

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

Модулийг нээхийн тулд Тогтмол хэрэглээ, та тохиргооны тохиргоог (тушаал) авах хэрэгтэй Параметрүүдцэсэнд Үйлчилгээ).

Маягт нээгдэх болно ПараметрүүдБайна. Хавчуурга дээр Ерөнхийтохиргоог засварлах горимыг зааж өгсөн байх ёстой Удирддаг програм   ба Тогтмол хэрэглээ.

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

Боловсруулж болох үйл явдлуудын жагсаалт Удирддагба Тогтмол хэрэглээ   адилхан.

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

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

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

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

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

Үйл явдал Таныг эхлүүлэх системээс өмнөenterprise 8.3-ийг эхлүүлэх үед гарч ирэх боловч програм өөрөө дэлгэц дээр хараахан гарч ирээгүй байна. Энэ арга хэмжээ нь дараахь параметртэй байна Алдаа дутагдал.

Хэрэв энэ параметр болох юм бол Үнэн юм, дараа нь програм эхлэхгүй. Үйл явдал СИСТЕМИЙН ТӨЛӨВЛӨГӨӨүйлдэл нь аль хэдийн дууссан, цонх аль хэдийн бүтээгдсэн гэж үздэг бөгөөд энэ тохиолдолд бид, жишээлбэл, тусгай хэлбэрийг харуулах боломжтой. Одоо хөөргөхөөс татгалзах боломжгүй болсон.

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

Модульд Удирддаг програм   журам, функцийг эмхэтгэх зааврыг заагаагүй болно, учир нь модулийг бүхэлд нь Клиент талаас нь нэгтгэсэн болно. Энэ нь модулийн процедур ба функцуудад бид шууд, жишээлбэл директорууд руу нэвтрэх боломжгүй болно гэсэн үг юм.

Хэрэв модулиас Удирддаг програм   серверийн дуудлага хийх хэрэгтэй бөгөөд үүнийг хийхийн тулд та тусгай үүсгэх хэрэгтэй болно   дарцагласан .

Модульд Тогтмол хэрэглээ   Энэ модуль нь Зузаан Клиентийг ачаалах үед хөрвүүлэх болно. Өөх клиент дээр бараг бүх төрлийн өгөгдөл боломжтой байдаг.

Хэрэглээний модулийн горим, функц, хувьсагчийг экспортлох боломжтой гэж тодорхойлж болно.

Модулийг бүхэлд нь Клиент дээр нэгтгэсэн тул энэ нь үйлчлүүлэгчийн процедур дээр энэ арга, энэ өмчийг авч үзэх боломжтой гэсэн үг юм.

Жишээлбэл, обьектийн хэлбэр модулиас програмын модулийн горим эсвэл функцийг дуудаж болно. Гэсэн хэдий ч ерөнхий алгоритмыг тайлбарлахдаа Ерөнхий Модулиудыг ашиглахыг зөвлөж байна. Хэрэглээний модулийн гол зорилго нь эхлэх цэг ба төгсгөлийн цэгийг боловсруулах явдал юм.

Хэрэглээний модулийн нэгэн адил энэ модулийг програмын нээлттэй үйл явдал, унтрах үйл явдлыг зохицуулах зориулалттай.

Програмыг интерактив эхлүүлэх үед эхлүүлсэн програмын модулиас ялгаатай нь гадаад холболтын модуль нь com-mode горимд ажилладаг. 1C: Enterprise 8 объектыг бий болгож, тодорхой баазтай холболт хийх үед.

Энэ модульд үйл явдал байна: СИСТЕМИЙН ТӨЛӨВЛӨГӨӨба Систем дууссаны дараа.

Гаднах холболтын модулийг үндсэн тохиргооны объектын түвшний контекст цэс эсвэл root зангилааны шинж чанарын палитр ашиглан нээх боломжтой.

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

Гадаад холболтын модульд гадаад 1C: Enterprise 8.3 дуудлага хийх тал дээр боломжтой экспортын хувьсагч ба экспортын аргуудыг тайлбарлах боломжтой.

Гадаад холболтонд хэрэглэгчийн интерфэйс байхгүй тул Гадаад Холболтын Модуль нь бүхэлдээ Сервер дээр хөрвүүлэгдсэн байдаг.

Сессийн модуль

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

Та Сесс Модулийг контекст цэсээр эсвэл үндсэн зангилааны шинж палитраар нээх боломжтой.

Session Module нь үйл явдлыг өгдөг Хурлын тохиргоог тохируулж байна.

Аппликешн эхлэхэд энэ процедурыг хамгийн анхных гэж нэрлэдэг. Сешн параметрүүд нь аливаа апликейшн дээр ажиллаж байх үед шаардлагатай байдаг.

Session Module нь өөр өөр нөхцөл байдлаас хамаарч сессийн параметрүүдийг эхлүүлэхэд чиглэсэн олон арга хэмжээг тодорхойлдог.

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

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

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

Хэрэв систем эхлэхэд Сервер дээр зарим нэг үйлдлийг хийх шаардлагатай бол, жишээлбэл, зарим директорын элементийг үүсгэдэг бол сонголт болгон Session Module-ийг ашиглаж болно. энэ нь Сервер дээр хөрвүүлэгдсэн бөгөөд систем эхлэхэд үргэлж найдвартай хийгддэг. Гэсэн хэдий ч дараахь зүйлийг анхаарч үзэх хэрэгтэй.

  • журам Хурлын тохиргоог тохируулж байнаэнэ нь зөвхөн системийн эхлэхэд төдийгүй, тохируулаагүй сешний параметрүүдэд хандах үед хийгддэг. Байна. Session Parameter Setting handler програмыг ажиллуулах явцад дахин дуудаж болно;
  • сессийн параметрийн массив дахь элементийн тоо тэг бол (шаардлагатай параметрийн цуваа нь өгөгдлийн төрөл тодорхойгүй) байвал тухайн програм эхлэх мөч юм
  • session Module нь давуу эрхтэй горимд ажилладаг бөгөөд нэвтрэх эрхийг баталгаажуулах боломжгүй тул хэрэглэгч түүнд өгөх ёсгүй өгөгдлүүд рүү нэвтрэх боломжтой тул мэдээллийн баазын объектуудтай нягт нямбай ажиллах шаардлагатай байна.
  • систем эхлэхэд уг програмыг ажиллуулах эсэх нь одоогоор тодорхойгүй байна. Үүний зэрэгцээ, хуралдааны параметрүүдийг тохируулах үйл явдлын зохицуулагчийн хувьд шаардлагагүй үйлдлийг гүйцэтгэж болно.

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

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

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

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

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

Ерөнхий модулийн хувьд та энэ модулийн зан төлөвт нөлөөлөх зарим параметрүүдийг тохируулж болно. Хэрэв Global үл хөдлөх хөрөнгийг Ерөнхий модульд тохируулсан бол энэ модульд зарласан экспортын аргуудыг нэмэлт зааваргүйгээр гаднаас шууд авах боломжтой болно.

Байна. өгсөн Ерөнхий модуль   дэлхийн тохируулгын агуулгыг бүрдүүлэхэд оролцоно.

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

Тэд чинь гэж тэмдэглэсэн Глобалсистемийг эхлүүлэх үед хөрвүүлнэ. Ийм модулиуд хэдий чинээ удаан байх тусам програм удааширна.

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

Үүнээс гадна дэлхийн нийтлэг модулийг ашиглах нь кодын ойлголтод нөлөөлдөг. Глобал бус ерөнхий модулийн аргыг нэрийг ашиглан дууддаг Ерөнхий модуль   бас аргын нэр, жишээ нь:
Өртгийн модуль.Шууд бус зардлыг хуваарилах ();

Ерөнхий модулиудын нэрс нь тэдгээрийг тодорхойлсон процедурын агуулгыг тусгасан байх ёстой. Процедурыг дуудахдаа Ерөнхий модулийн нэрийг зааж өгөх нь кодыг илүү сайн ойлгоход хувь нэмэр оруулдаг.

For Ерөнхий модуль   дотор Эд хөрөнгийн палитр   эд хөрөнгийг тохируулах боломжтой Хувьчлагдсан.

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

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

Жишээлбэл, нөөц их шаарддаг үйл ажиллагаа бол цалин хөлс юм. Үүнийг аль болох хурдан дуусгах ёстой. Үүний тулд цалин хөлсийг тооцоолох алгоритмуудыг давуу эрхээр байрлуулна .

Цалингаас цалингийн бичиг баримтыг бөглөх бүх журам нь эдгээрээс гадна байдаг Нийтлэг модулиудБайна. Эдгээр процедурт хандалтын хяналтыг гүйцэтгэдэг.

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

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

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

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

Үүний давуу эрх Нийтлэг модуль   хүссэн өгөгдөлтэй холбоотой журам гаргах ёстой.

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

For Нийтлэг модулиуд   Энэ нь эмхэтгэсэн газрыг зааж өгөх боломжтой. Тугны тусламжтайгаар дараахь зүйлийг тохируулж өгдөг: Ерөнхий модулийг Клиент (менежмент програм), Сервер дээр, Гадаад холболтын ажиллагааны горимд ашиглах боломжтой эсэх.

Нэмж хэлэхэд, хэрэв та тохиргоог засах горимыг Удирддаг програм болон ердийн хэрэглээний програм руу шилжүүлэх юм бол өөр нэг нэгтгэх контекст боломжтой болно - Клиент (ердийн програм).

Тиймээс хөтөлбөрийг ажиллуулах дөрвөн сонголт байдаг. Ажиллаж байгаа програмаас хамаарч, Клиент эсвэл Сервер дээрх ажлын байдлаас хамааран зарим Ерөнхий модулиудыг ашиглах эсвэл ашиглах боломжгүй болно.

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

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

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

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

Байна. үнэндээ журмын хэд хэдэн хуулбарыг хийх болно. Тодорхой эмхэтгэсэн жишээг сонгох нь процедурын дуудлагын байршлаас хамаарна (хамгийн ойр дуудлага хийх дүрмийн дагуу). Ийм процедурын кодыг модулийн хувьд тодорхойлсон бүх контекстэд байгаа эсэхийг харгалзан бичсэн байх ёстой гэдгийг санах нь зүйтэй.

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

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

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

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

Чухал! Ерөнхий модулийн экспортын серверийн аргуудыг Клиентээс авах боломжтой, гэхдээ энэ Ерөнхий модулийг зөвхөн Сервер дээр хөрвүүлсэн тохиолдолд л боломжтой. Үүний зэрэгцээ, үйлчлүүлэгчээс нэвтрэх боломжийг хангах үүднээс тусгай тугийг байрлуулсан болно .

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

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

Анхдагч байдлаар, энэ өмчийг Ашиглахгүй байхаар тохируулсан байна. Бусад боломжит утгууд: кэш Дуудлагын үеэраль аль нь Чуулганы хугацаанд.

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

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

Гэсэн хэдий ч тодорхой хугацааны хязгаар байдаг. Кэшийг цэвэрлэх нь утга нь кэш дээр дарагдсанаас 20 минутын дараа автоматаар хийгддэг.

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

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

Маягтыг хянахтай холбоотой үйлдлүүдээс (товчлуурууд, оруулах талбарууд) гадна маягтын өөрөө шууд үйл явдлууд байдаг.

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

Хяналттай хэлбэрүүд болон энгийн хэлбэрүүд байдаг. Эдгээр хэлбэрийн модулиуд нь үндсэндээ удирдлагатай хэлбэрийн модулийг контекстэд хуваахад ялгаатай байдаг. Процедур (функц) бүр эмхэтгэх заавартай байх ёстой. Ердийн хэлбэрээр бүх кодыг Клиент дээр ашигладаг.

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

Үндсэн програмын програмын кодыг маягт эхлэх үед гүйцэтгэнэ. хэрэглэгч үүнийг нээж эхлэхэд. Зураг дээр удирдаж буй хэлбэрийн стандарт үйл явдлуудын жагсаалтыг харуулав.

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

Удирддаг хэлбэрээр та зүйл бичих үйл явдлыг удирдаж болно. Энэ арга хэмжээ нь зөвхөн обьектуудын хэлбэрүүд (лавлах материал, бичиг баримт, бусад зарим зүйлүүд) -д зориулагдсан болно. Хэрэв маягт нь тодорхой объектод хавсаргаагүй бол ямар ч бичлэг байхгүй болно.

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

Обьектийн модуль

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

Зарчмын хувьд бичлэгийн үйл явдал нь Form Module-д бас байдаг. Гэхдээ Form Module бичлэгийн үйл явдал тодорхой хэлбэртэй ажиллахдаа интерактив бичлэг хийх явцад тохиолддог.

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

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

Энэ объектын модулийг контекст цэсээр, Object Properties палитраас, обьект засварлах цонхноос дуудах боломжтой.

Доорх зурагт лавлах модулийн үйл явдлын жагсаалтыг харуулав.

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

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

Объект Модулийн бүх процедурыг Сервер дээр хөрвүүлсэн гэдгийг тэмдэглэх нь зүйтэй. Иймээс Обьект Модулийн горим, функцийг нэгтгэх зааврыг шаарддаггүй. Зарим тохируулгын объектуудад Object Module байхгүй байна.

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

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

Модулийн бүх агуулгыг Сервер дээр гүйцэтгэдэг.

Бүртгэгчдийн хувьд Recordset Module байдаг.

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

Объектын модулиуд, Утга менежерийн модулиуд (тогтмолууд) болон Record Set Modules (регистрийн хувьд) та экспортлох боломжтой аргуудыг тодорхойлж болох бөгөөд эдгээр аргуудыг гаднаас авах боломжтой болно.

Байна. Обьектын ангийн тогтмол аргыг ашиглахаас гадна Object модульд объектын нэмэлт аргыг бий болгож болно. Энэ модуль нь тохирох процедурыг түлхүүр үгээр тайлбарлах ёстой Экспортлох.

Дараа нь энэ журамд гаднаас хандах боломжтой болно. Түүнээс гадна, энэ аргыг контекст тусламжийн хэсэгт харуулах болно. Контекстийн тусламжийн шинэ аргуудыг цэнхэр өнгөөр \u200b\u200bтодруулсан болно (цэнхэр дүрс) p ()   журам болон е ()функцэд зориулагдсан).

Үүнтэй адилаар та хувьсагчийг түлхүүр үгээр зарлах замаар шинэ өмч үүсгэх боломжтой ЭкспортлохБайна. Энэ өмчийг гадна талаас авах боломжтой.

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

Хэрэв та обьектын мэдээллийн санд хадгалагдах үл хөдлөх хөрөнгийг ашиглахыг хүсч байвал обьектын өмчийг үүсгэх ёстой.

Менежерийн модуль

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

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

Нэмж дурдахад, Менежер Модульд та нэмэлт аргыг бий болгож, тэдгээрийг экспортолж байгааг илтгэж болно. Энэ тохиолдолд эдгээр аргуудыг гаднаас авах боломжтой.

Энэ дуудлагыг хийхийн тулд өгөгдлийн төрлийг авах шаардлагатай DirectoryManager.

Менежерийн модулийн экспортын аргуудын хоорондох ялгаа нь Object Module аргад хандахын тулд та эхлээд обьектыг өөрөө авах хэрэгтэй (өөрөөр хэлбэл холбоосыг олж аваад дараа нь энэ холбоосыг обьект болгон хувиргах хэрэгтэй).

Үүний дараа Экспортын хувьсагч болон Object Module аргуудыг ашиглах боломжтой болно. Менежер Модулийн хувьд давж заалдах нь илүү энгийн, жишээлбэл:
Захирал.Харилцагч талууд Аргын нэр

Эдгээр нь хоёр өөр давж заалдах зүйл юм. Линкээс обьект руу шилжүүлэх (арга GetObject) - энэ нь системийн хувьд нэлээд ноцтой үйлдэл юм, учир нь объект хүлээн авахдаа энэ объектын бүх өгөгдлийг уншдаг бөгөөд энэ нь нэлээд урт байж болно.

Хоёрдахь ялгаа нь энэ Обьектийн модультодорхой элементийн хүрээнд нэрлэдэг. Үүний дагуу бид энэ элементэд хамааралтай гэж үзэж болно (ихэнх тохиолдолд ийм логикийг тавьдаг).

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

Гэхдээ Менежер Модульд хэсэг бүлэг элементүүдийг оруулаад хэвлэх боломжтой илүү нийтлэг механизм хийх боломжтой.

Нэмж хэлэхэд, Обьектийн модульд хандах нь илүү урт үйлдэл юм. Тиймээс менежерийн модульд энэ асуудлыг шийдэх нь илүү дээр юм.

Энэ нь бидний 1C: Enterprise системийн тохиргоонд байгаа модулиудын талаархи ойлголтыг төгсгөв. Хэрэв та дээрх хураангуйг нэгтгэвэл доорхи дүгнэлт нь дараахь дүгнэлт юм.

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

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

Өнөөг хүртэл бид програмынхаа бүх кодыг програмын хэрэглээний шийдлээс хэсэгчлэн шалгаж үзсэн бөгөөд дүрмээр бол үүнийг жижиг тестийн тохиргоонд бичсэн. "Та үүнийг зүгээр л авч чадахгүй" гэдгийг мэдэж байгаа бөгөөд стандарт тохируулгын кодыг засаж эхлэв үү? Байхгүй юу? Дараачийн өгүүллээр бид энэ бүхнийг тайлбарлах болно!

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

Бодолгүйгээр "нислэг дээр" ийм ажлыг дараахь хэлбэрийн бүтцээр шийддэг.

Хэрэв Document Date\u003e Constants.Start DateApplicationsResults1137.Get () Дараа нь

Үүний үр дүнд энэхүү кодыг хэрэгжүүлэх бүрт мэдээллийн бааз “гүйлгэж” ирдэг.

Кодынхоо талаар илүү нухацтай ханддаг програмистууд нь шаардлагатай бүх өгөгдлийг нөөцлөн нэг асуултыг мэдээллийн санд явуулдаг боловч энэ хандлага нь хүссэн мэдээллийн санг буулгахад хүргэдэггүй.

  1. Кодын гүйцэтгэх мөчлөг нь тодорхой бус байж болно (жишээ нь, бүлгийн дахин баримтжуулах)
  2. Дараа нь шаардагдах мэдээллийн хатуу багцыг олж авах нь заримдаа хэцүү эсвэл бүр боломжгүй юм.
  3. Кеш хийгдсэн утгуудыг өөр дуудлага / хэлбэрт ашиглах шаардлагатай

Буцаах үнэ цэнийг дахин ашиглах модуль

Тайлбарласан асуудлыг шийдэхийн тулд платформ нь буцах утгыг дахин ашиглах модулиудтай. Үнэн хэрэгтээ энэ бол нийтлэг түгээмэл модуль (үйлчлүүлэгч эсвэл сервер) бөгөөд үүнийг буцаах утгыг дахин ашиглахыг "Дуудлага хийх үед" эсвэл "Тухайн үеийн үеэр" болгож тохируулдаг. Модулийн өөрөө процедур, функцийг ердийн байдлаар тайлбарласан болно.

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

Буцаагдсан утгууд нь дамжуулсан параметрүүдийн утгатай уялддаг. кодыг гүйцэтгэх үед

Node1 \u003d OurModule.GetNode Нягтлан бодох бүртгэлийн данс ("0001"); Node2 \u003d OurModule.GetNode Нягтлан бодох бүртгэлийн нягтлан бодох бүртгэл ("0002");

Хоёр дуудлага хоёулаа үнэн хэрэгтээ холбогдох процедурыг гүйцэтгэхэд хүргэдэг бөгөөд өөр өөр холбоосуудыг буцааж өгөх бөгөөд дараа нь 0001 эсвэл 0002 код бүхий зангилаа авах оролдлого хийвэл холбогдох зангилаануудыг процедур дуудахгүйгээр буцааж өгөх болно.

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

Юу хийж болохгүй

Нэг хязгаарлалт байдаг. Зөвхөн энгийн төрлүүдийг функцийн параметр болгон зааж өгч болно. Тодорхойгүй, Null, boolean, огноо, мөр, дугаар, холбоос. Ямар ч бүтэц, үнэ цэнэ хүснэгт, объект гэх мэт. Хэрэв та жишээ нь бүтцийг параметр болгон дамжуулахыг оролдвол бүх зүйл ажиллах болно, гэхдээ та үр дүнд хүрсэн утгыг дахин ашиглахаа мартаж болно.

Буцаах утга нь ямар ч төрлийн байж болно.

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

1C-ийн алдаа эсвэл онцлог

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

ValueStructure1 \u003d OurModule.GetStructure нь Нэрсийн жагсаалт (LinkOnObject); Үнийн бүтэц 1. Нэр \u003d "Шинэ нэр"; ValueStructure2 \u003d OurModule.GetStructureVisue of the Requisites (LinkOnObject);

Энэ нь ValueStructure2.Name-д яг "Шинэ нэр" байх болно. Дүрмээр бол үүнийг мэдээллийн баазад өөрчлөгдсөн утгыг шинэчлэхэд ашиглаж болох боловч хаалттай, вандан хаагдсан эсэх нь тодорхойгүй байна. Стандарт шийдлийг боловсруулахдаа үүнийг хориглоно.

Кэш хийгдсэн өгөгдлийг өөрчлөхдөө юу хийх хэрэгтэй

Өгөгдлийн сан дахь кэшийн утгыг өөрчлөхтэй холбоотой асуудлыг шийдвэрлэх ганцхан "хууль ёсны" арга байдаг. Энэ бол RefreshValues \u200b\u200b() арга юм. Бүх модулийн бүх параметрүүдийн бүх функцуудын утгыг дахин тохируулах болно. Тодорхой параметрийн утгууд / функцууд / модулиудаар шинэчлэх боломжгүй.

Үүний дагуу, энэ сайн дурын арга барилаас шалтгаалан энэ функцийг маш болгоомжтой ашиглах шаардлагатай байна: үүнийг ашигласны дараа бүхэл систем нэлээд удаан байх болно.

Бид ариун зүйлийг зөрчиж байна: бид хүсэлтийг давталтад бичдэг

Буцаах утгыг давтан ашиглах функцийг ашиглахад ашиглах боломжтой сонголтуудаас гадна олон сонирхолтой, нийтлэг, стандарт бус хандлага байдаг.

  • Дур зоргоороо холбоосын дэлгэрэнгүй мэдээллийг буцааж өгдөг бүх нийтийн процедурыг бичих (BSP дээр боломжтой)
  • Тогтмол хэмжигдэхүүний утгыг буцаах нэрийг бичих журам (ихэнх тохиолдолд байдаг)
  • Дуудлагын тоог бууруулахад шаардлагатай байгаагаас "арай том" өгөгдлийг буцааж өгөх (жишээлбэл, та хэд хэдэн валютын ханшийг нэг дор авахыг хүсч байгаа бол функцийг огноогоор нь дуудах нь утгагүй болно. Бүх валютын ханшийг авч, дараа нь аль валютаар "ангилж" болно. яг одоо хэрэгтэй байна)
  • Үр дүнг кэш хийх замаар асуулгыг гүйцэтгэдэг процедурыг бичих (оролтын параметрүүд нь асуулгын текст, хэд хэдэн параметрын нэр, утга байх болно)

Гэхдээ би илүү нарийвчлан авч үзэхийг хүсч байгаа өөр нэг арга бий. Энэ бол давталтын буцах утгыг давтан ашиглах замаар DB дуудлага агуулсан функцийг ашиглах явдал юм. Байна. энэ нь үнэндээ давталтын хүсэлт юм. Ерөнхийдөө бид үүнийг хийхгүй гэж заадаг байсан боловч ийм бүтцийг бий болгосноор илүү сайн гүйцэтгэлд хүргэх тохиолдол байдаг.

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

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

Нийтлэлд товч тойм, нийтлэг модулийн буцах утгыг дахин ашиглах гэх мэт функцүүдийн онцлог шинж чанаруудыг өгдөг.

1С-тай ажиллахад асуудал гардаг

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

Иймэрхүү ажлыг хурдан, энгийн байдлаар дараахь төрлийн барилгуудыг ашиглан шийддэг.

Хэрэв Document Date\u003e Constants.Start DateApplicationsResults1137.Get () Дараа нь

Гэхдээ энэ кодыг гүйцэтгэх бүртээ мэдээллийн баазад ханддаг.

Олон програмистууд мэдээллийн санг ачаалахын тулд дараахь аргыг ашигладаг. Тэд зөвхөн нэг асуултыг KB-т биелүүлж, шаардлагатай мэдээллийг кэш хийдэг. Гэсэн хэдий ч, энэ арга нь өгөгдлийн санг хүссэн хэмжээнд хүргэхгүй. Үүний шалтгаан дараахь байж болно.

· Кодын гүйцэтгэх мөчлөг тодорхой биш (жишээлбэл, баримт бичгийг шилжүүлэн өгөх тохиолдолд);

· Одоогийн байдлаар шаардлагагүй хатуу чанд мэдээллийн цуглуулга авах нь заримдаа боломжгүй эсвэл хэцүү байдаг;

· Өмнө нь хадгалсан өгөгдлийг янз бүрийн хэлбэр / дуудлага хэлбэрээр ашиглах.

Буцаах үнэ цэнийг дахин ашиглах модуль

Дээр дурдсан асуудлыг шийдэх нь буцах утгыг давтан ашиглах загварыг ашиглахад тусална. Энэ юу вэ Энэ бол "Дуудлага хийх цаг хугацаа" эсвэл "Хурлын үеэр" функцуудад "Буцах утгыг дахин ашиглах" тохиргоог хийх ёстой ерөнхий үйлчлүүлэгч эсвэл серверийн модуль юм. Модульд шууд байгаа бүх үйл ажиллагаа, функцуудыг өмнөх шиг тайлбарлав.

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

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

Node1 \u003d OurModule.GetNode Нягтлан бодох бүртгэлийн данс ("0001");

   Node2 \u003d OurModule.GetNode Нягтлан бодох бүртгэлийн нягтлан бодох бүртгэл ("0002");

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

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

Цөөхөн хэд

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

Буцаах утга нь ямар ч төрлийн байж болно.

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

1С-ийн онцлог шинж чанар эсвэл алдаа

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

Дараах кодыг оруулах замаар:

ValueStructure1 \u003d OurModule.GetStructure нь Нэрсийн жагсаалт (LinkOnObject);
   Үнийн бүтэц 1. Нэр \u003d "Шинэ нэр";
   ValueStructure2 \u003d OurModule.GetStructureVisue of the Requisites (LinkOnObject);

valueStructure2.Name дээр яг Шинэ нэр гарч ирнэ. Үүнийг мэдээллийн баазад үнэндээ өөрчлөгдсөн утгыг шинэчлэхэд ашиглаж болох боловч хичнээн их хугацаагаар хийх нь тодорхойгүй байна. Учир нь стандарт шийдэл гаргахад үүнийг хийх боломжгүй юм.

Хэрэв кэш хийгдсэн өгөгдөл өөрчлөгдсөн бол

Хэрэв өгөгдлийн сан дахь кэшийн утгыг өөрчилсөн бол түүнийг ашиглах цорын ганц арга зам байдаг - RefreshValues \u200b\u200bарга. Энэ тохиолдолд бүх функцын тохиргоог бүх модульд дахин тохируулдаг. Функц эсвэл модулийн аль нэг параметрийн утгын аль нэгээр нь шинэчлэх боломж байдаггүй.

Хүсэлтийг гогцоонд хэрхэн хийдэг

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

· Дур зоргоороо холбоосын дэлгэрэнгүй мэдээллийг буцааж өгдөг бүх нийтийн журам.

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

Дуудлагын тоог бууруулахад шаардагдах хэмжээнээс бага зэрэг том хэмжээний эзлэхүүнийг буцаах. Жишээлбэл, хэрэв та хэд хэдэн валютын ханшийг нэгэн зэрэг авах шаардлагатай бол валют сонгохгүйгээр функцийг зөвхөн огноогоор нь дуудахыг зөвлөж байна. Бүх сургалтанд хамрагдсаны дараа одоо аль валютын мөнгө хэрэгтэй байгаа, аль нь болохгүй байгааг тодорхойл.

· Үр дүнг кэш хийх явцад хүсэлтийг биелүүлэх процедурыг бий болгох (ирж буй параметрүүд - хүсэлт текст, хэд хэдэн параметрийн нэр, утга).

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

Бид танд зөвхөн жишээ функц, аргыг л өгсөн. Тиймээс тэдгээрийг ашиглахаасаа өмнө таны код ажиллах нөхцөлийг үнэлэх хэрэгтэй.