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

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

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

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

Нийтлэлд 1С: Аж ахуйн нэгжийн платформ 8.3.4.496-ийг авч үзсэн болно. Энэ материал нь одоогийн платформын хувилбаруудад бас хамааралтай.

1С: Enterprise 8.3 дахь модулиуд

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модуль Тогтмол хэрэглээ Thick Client-ийг горимд ажиллуулах үед ажилладаг Тогтмол хэрэглээ, энэ нь маягт дахь ердийн тушаалын интерфейсийг агуулдаг Үндсэн цэс.

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

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

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

Модуль нээхийн тулд Тогтмол хэрэглээ, та тохиргооны тохиргоонд хандах хэрэгтэй (команд Сонголтуудцэс дээр Үйлчилгээ).

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

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

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

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

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

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

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

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

Үйл явдал Системийг эхлүүлэхийн өмнө Enterprise 8.3-ийг эхлүүлэх үед тохиолддог боловч програм өөрөө дэлгэцэн дээр хараахан гарч ирээгүй байна. Энэ үйл явдал дараах параметртэй байна. Татгалзах.

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

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

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

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

Модульд Тогтмол хэрэглээЗузаан үйлчлүүлэгчийг ачаалах үед энэ модулийг эмхэтгэх тул ийм хязгаарлалт байхгүй. Thick Client-д бараг бүх төрлийн өгөгдөл байдаг.

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

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

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

Хэрэглээний модультай зүйрлэвэл энэ модуль нь програм нээх үйл явдал болон унтрах үйлдлийг боловсруулахад зориулагдсан.

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

Энэ модульд үйл явдлууд байна: Системийг эхлүүлэх үедТэгээд Систем унтрах үед.

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

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

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

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

Сеанс модуль

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

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

Session Module нь үйл явдлыг хангадаг SettingSessionParameters.

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

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

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

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

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

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

  • журам SettingSessionParametersнь зөвхөн системийг эхлүүлэх үед биш, мөн эхлүүлээгүй сессийн параметрүүдэд хандах үед хийгддэг. Тэдгээр. SetSessionParameters зохицуулагчийг програмын ажиллагааны явцад дахин дахин дуудаж болно;
  • хэрэв сессийн параметрийн массив дахь элементүүдийн тоо тэг байвал (шаардлагатай параметрүүдийн массив нь тодорхойгүй өгөгдлийн төрөлтэй) бол энэ нь програмыг эхлүүлэх мөч юм;
  • Session Module нь давуу эрхтэй горимд ажилладаг бөгөөд нэвтрэх эрхийг шалгахгүй тул та өгөгдлийн сангийн объектуудтай маш болгоомжтой ажиллах хэрэгтэй, учир нь хэрэглэгч түүнд өгөх ёсгүй өгөгдөлд хандах боломжтой болно;
  • Систем эхлэхэд уг програмыг эхлүүлэх эсэх нь одоогоор тодорхойгүй байна. Энэ тохиолдолд SetSessionParameters үйл явдлын зохицуулагч дээр шаардлагагүй үйлдлүүдийг хийж болно.

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

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

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

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

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

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

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

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

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

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

Түүнчлэн, дэлхийн нийтлэг модулиудыг ашиглах нь кодын ойлголтод нөлөөлдөг. Глобал бус нийтлэг модулийн аргуудыг нэрээр нь дууддаг Ерөнхий модульмөн аргын нэр, жишээ нь:
Зардлын тооцооны модуль.DistributeIndirectCosts();

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

Учир нь Ерөнхий модульВ Properties палитрта үл хөдлөх хөрөнгийг тохируулж болно Давуу эрхтэй.

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

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

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

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

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

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

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

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

Үүнийг давуу эрхтэйгээр хийх Ерөнхий модульТа шаардлагатай өгөгдөлд хандах процедурыг бий болгох хэрэгтэй.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Объект модуль

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

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

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

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

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

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

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

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

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

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

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

Модулийн контекстийг бүхэлд нь сервер дээр гүйцэтгэдэг.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Үүний дараа Объект модулийн экспортын хувьсагч болон аргууд боломжтой болно. Менежер модулийн хувьд дуудлага хийх нь илүү хялбар, жишээлбэл:
Лавлах.Counterparties.MethhodName

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

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

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

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

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

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

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

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

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

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

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

Нийтлэг модулийн төрөл Нэрийн жишээ Серверийн дуудлага Сервер Гаднах нэгдэл Үйлчлүүлэгч
(энгийн хэрэглээ)
Үйлчлүүлэгч
(удирдлагатай програм)
1. СерверЕрөнхий зориулалт (эсвэл ерөнхий зориулалтын сервер)
2. Үйлчлүүлэгчээс залгах серверGeneralPurposeCallServer
3. ҮйлчлүүлэгчЕрөнхий зориулалтын үйлчлүүлэгч (эсвэл ерөнхий зориулалтын глобал)
4. Үйлчлүүлэгч-серверЕрөнхий зориулалтын клиент сервер

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

  • Сервер(шалгах нүд Серверийн дуудлагадахин тохируулах),
  • Үйлчлүүлэгч (ердийн програм),
  • Гаднах нэгдэл.

Энэ тохиолдолд серверийн горим, функцийг хувиргах төрлийн параметрүүдийг дуудах чадвар баталгаатай болно (жишээлбэл, DirectoryObject, DocumentObjectгэх мэт.). Ихэвчлэн энэ нь:

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

Сервер талын хуваалцсан модулиудыг мета өгөгдлийн объектуудыг нэрлэх ерөнхий дүрмийн дагуу нэрлэсэн.
Жишээлбэл: Файлуудтай ажиллах, Ерөнхий зорилго

Зарим тохиолдолд дэлхийн контекст шинж чанаруудтай нэрийн зөрчилдөөнөөс урьдчилан сэргийлэхийн тулд постфикс нэмж болно "Сервер".
Жишээлбэл: RoutineTasksServer, Өгөгдлийн солилцооны сервер.

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

  • Сервер(шалгах нүд Серверийн дуудлагасуулгасан)

Үйлчлүүлэгчээс дуудлага хийх сервер талын нийтлэг модулиуд нь мета өгөгдлийн объектуудыг нэрлэх ерөнхий дүрмийн дагуу нэрлэгдсэн байх ба постфиксээр нэрлэгдсэн байх ёстой. "Дуудлагын сервер".
Жишээлбэл: FilesCalling сервертэй ажиллах

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

Мөн үзнэ үү:Нийтлэг модулиудын хувьд "Серверийн дуудлага" тугийг тохируулах хязгаарлалт

2.3. Үйлчлүүлэгчийн нийтлэг модулиудҮйлчлүүлэгчийн бизнесийн логик (зөвхөн үйлчлүүлэгчид зориулагдсан функц) агуулсан бөгөөд дараах шинж чанаруудтай:

  • Үйлчлүүлэгч (удирдлагатай програм))
  • Үйлчлүүлэгч (ердийн програм)

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

Үйлчлүүлэгчийн нийтлэг модулиудыг postfix-ээр нэрлэсэн "Үйлчлүүлэгч".
Жишээлбэл: FilesClient-тэй ажиллах, Ерөнхий зориулалтын үйлчлүүлэгч

Мөн үзнэ үү: үйлчлүүлэгч дээр ажиллаж байгаа кодыг багасгах

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

  • Үйлчлүүлэгч (удирдлагатай програм)
  • Сервер(шалгах нүд Серверийн дуудлагадахин тохируулах)
  • Үйлчлүүлэгч (ердийн програм)
  • Гаднах нэгдэл

Энэ төрлийн нийтлэг модулиудыг postfix-ээр нэрлэдэг "ClientServer".
Жишээлбэл: FilesClient-тэй ажиллах, Ерөнхий зориулалтын клиент сервер

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

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

3.1. Нийтлэг модулиудын нэрийг мета өгөгдлийн объектуудыг нэрлэх ерөнхий дүрмийг дагаж мөрдөхийг зөвлөж байна. Ерөнхий модулийн нэр нь дэд систем эсвэл тусдаа механизмын нэр, түүний хэрэгжүүлж буй журам, функцтэй тохирч байх ёстой. Нийтлэг модулиудын нэрэнд "Процедур", "Функц", "Хариуцагч", "Модуль", "Функциональ" гэх мэт ерөнхий үгсээс зайлсхийхийг зөвлөж байна. модулийн зорилгыг илүү бүрэн илчлэх онцгой тохиолдолд л хэрэглэнэ.

Янз бүрийн нөхцөлд гүйцэтгэсэн процедур, функцийг хэрэгжүүлэх зорилгоор бүтээгдсэн нэг дэд системийн нийтлэг модулиудыг ялгахын тулд догол мөрөнд өмнө нь тайлбарласан постфиксүүдийг өгөхийг зөвлөж байна. 2.1-2.4.

Модуль гэж юу вэ, тэдгээр нь яг юунд зориулагдсан бэ? Модуль нь програмын кодыг агуулдаг. 7.7 платформоос ялгаатай нь кодыг маягтын элементийн шинж чанар болон байршлын хүснэгтийн нүднүүдэд байрлуулж болох тул 8.x платформ дээр кодын аль ч мөр нь зарим модульд байрлах ёстой гэдгийг тэмдэглэх нь зүйтэй. . Ерөнхийдөө модуль нь хувьсагчдыг тайлбарлах хэсэг, процедур, функцийг тайлбарлах хэсэг, үндсэн програмын хэсэг гэсэн гурван хэсгээс бүрдэнэ. Энэ бүтэц нь зарим үл хамаарах зүйлийг эс тооцвол бараг бүх платформ модулиудын хувьд ердийн зүйл юм. Зарим модуль нь хувьсагчийг тайлбарлах хэсэг эсвэл үндсэн програмын хэсэггүй байдаг. Жишээлбэл, сессийн модуль болон ерөнхий модуль.

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

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

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

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

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

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

Гадаад холболтын модуль

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

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

Сеанс модуль

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

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

Аппликешныг эхлүүлэх бүрт энэ модулийг ажиллуулдаг тул та үүнд уруу татагдах ёсгүй бөгөөд сессийн параметрүүдийг эхлүүлэхтэй шууд хамааралгүй кодыг оруулах ёсгүй. Энэ нь системийн үйл ажиллагааны явцад SetSessionParameters зохицуулагчийг дахин дахин дуудах боломжтой байдагтай холбоотой юм. Жишээлбэл, энэ нь бид эхлүүлээгүй параметрүүдэд хандах тохиолдолд тохиолддог. Хэдийгээр энэ үйл явдлыг анх эхлүүлэх мөчийг барьж авах боломжтой ч (RequiredParameters нь тодорхойгүй төрөлтэй) энэ модулийг давуу эрхтэй горимд хөрвүүлсэн гэдгийг анхаарах хэрэгтэй. энэ нь нэвтрэх эрхийг хянадаггүй. Хоёрдахь зүйл бол системийг ажиллуулна гэдэгт бид зуун хувь итгэлтэй байж чадахгүй байна. Гэнэт програмын модульд алдаа гарч, бид мэдээллийн баазтай зарим үйлдлийг хийхийг оролдож байна.

Нийтлэг модулиуд

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

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

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

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

Объект модуль

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

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

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

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

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

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

Диаграм дээрх тэмдгүүд: O.M. Үйлчлүүлэгч - Үйлчлүүлэгчийн нийтлэг модуль; О.М. Сервер - серверийн хуваалцсан модуль; М.Ф. Үйлчлүүлэгч - Маягтын модулийн үйлчлүүлэгчийн процедур; М.Ф. Сервер - Маягтын модулийн серверийн процедур.

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

Ерөнхийдөө програм хангамжийн модуль нь гурван хэсгээс бүрдэнэ.

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

Програмын модулийн бүтцийн жишээ:

//******************** ХУВЬСАГЧ ТОДОРХОЙЛОЛТ **********************

Перем Овог Экспорт; / /энэ нь глобал хувьсагч юм
Нэр, овог нэрийг өөрчлөх; //энэ бол модулийн хувьсагч
Перемийн бүтэн нэр; //энэ нь бас модулийн хувьсагч бөгөөд хандах боломжтой

//манай модулийн аливаа процедур, функцээс

//**************** ТАЛБАЙ ЖУРАМ, ЧИГЛЭЛИЙН ТОДОРХОЙЛОЛТ *****************

Процедурын журам1 ()
Хувьсах нийт ; / /Үр дүн нь локал хувьсагч (процедурын хувьсагч)

Нийт = Овог + " "+ Нэр + " "+ Дунд нэр;

Төгсгөлийн процедур

Функц Функц1()

// функцийн операторууд

Буцах(Овог + " "+ Нэр);

Төгсгөлийн функц

//******************** ХӨТӨЛБӨРИЙН ҮНДСЭН Бичвэр ************************

Овог = "Иванов";
Нэр = "Иван";
Овог нэр = "Иванович";

//******************************************************************************

Тодорхой програм хангамжийн модулийн аль нэг хэсэг нь дутуу байж болно.
Хувьсах мэдэгдлийн талбармодулийн текстийн эхнээс эхний Процедур эсвэл Функцийн хэллэг эсвэл ямар нэгэн гүйцэтгэгдэх мэдэгдэл хүртэл байрлуулна. Энэ хэсэг нь зөвхөн хувьсагчийн мэдэгдлийн мэдэгдлүүдийг агуулж болно.

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

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

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

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

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

Хэрэглээний модуль (удирдлагатай эсвэл тогтмол)

Хэрэглээний модуль нь системийн эхлэл ба төгсгөлд эхлүүлсэн үйл явдлын процедурыг (хариуцагч) тайлбарладаг. Жишээлбэл, програм ажиллаж эхлэх үед та зарим тохиргооны өгөгдлийг шинэчлэх боломжтой бөгөөд програмаас гарахдаа програмаас гарах нь зүйтэй эсэхийг асууж болно. Нэмж дурдахад, энэ модуль нь гадаад тоног төхөөрөмж, жишээлбэл, арилжаа эсвэл санхүүгийн үйл явдлуудыг саатуулдаг. Програмын модуль нь зөвхөн програмыг интерактив байдлаар эхлүүлэх, өөрөөр хэлбэл програмын цонхыг эхлүүлэх үед л ажиллана гэдгийг тэмдэглэх нь зүйтэй. Хэрэв програмыг com холболтын горимд ажиллуулсан бол энэ нь тохиолдохгүй.
1С 8 платформ дээр хоёр өөр хэрэглээний модуль байдаг. Эдгээр нь ердийн хэрэглээний модуль ба удирддаг програмын модуль юм. Тэд өөр өөр үйлчлүүлэгчийг ажиллуулах үед идэвхждэг. Ийнхүү вэб клиент, нимгэн клиент болон зузаан клиентийг удирддаг програмын горимд ажиллуулах үед Удирддаг програмын модуль идэвхждэг. Мөн зузаан клиентийг ердийн хэрэглээний горимд ажиллуулах үед ердийн хэрэглээний модуль идэвхждэг. Програмыг эхлүүлэх горимын тохиргоог "Үндсэн эхлүүлэх горим" тохиргооны шинж чанарт заасан болно.

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

Дээр дурдсанчлан, програмын модуль нь програмыг эхлүүлэх, дуусгах үйл явдлуудыг зохицуулдаг. Хэрэглээний модульд эдгээр үйл явдал бүрийг зохицуулахын тулд Өмнө... ба Хэзээ... гэсэн хос зохицуулагч байдаг. Тэдгээрийн ялгаа нь дараах байдалтай байна: Өмнө... зохицуулагч дээр кодыг гүйцэтгэх үед үйлдэл хараахан болоогүй байна. болсон бөгөөд бид үүнийг гүйцэтгэхээс татгалзаж болно. Татгалзах сонголт нь үүнд зориулагдсан юм. On.. зохицуулагч дээр үйлдэл аль хэдийн хийгдсэн бөгөөд бид програмыг эхлүүлэх эсвэл түүнээс гарахаас татгалзах боломжгүй.

Гадаад холболтын модуль

  • бүх 3 хэсгийг агуулж болно
  • тохиргооны үндсэн хэсэгт байрладаг

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

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

Сеанс модуль

  • сервер тал дээр ажилладаг
  • тохиргооны үндсэн хэсэгт байрладаг

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

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

Нийтлэг модулиуд

  • журам, чиг үүргийг тодорхойлсон хэсгийг агуулж болно
  • сервер эсвэл клиент тал дээр гүйцэтгэгддэг (модулийн тохиргооноос хамаарч)
  • "Ерөнхий" - "Ерөнхий модулиуд" тохиргооны объектын модны мөчир дээр байрладаг.

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

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

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

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

  • бүх 3 хэсгийг агуулж болно
  • сервер болон үйлчлүүлэгч тал дээр гүйцэтгэгддэг

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

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

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

Объект модуль

  • бүх 3 хэсгийг агуулж болно
  • сервер тал дээр ажилладаг

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

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

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

  • бүх 3 хэсгийг агуулж болно
  • сервер тал дээр ажилладаг

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

Тушаалын модуль

  • журам, чиг үүргийг тодорхойлсон хэсгийг агуулж болно
  • үйлчлүүлэгч тал дээр гүйцэтгэнэ

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

1C: Enterprise системийн тохиргооны шинэ хувилбаруудад олон функц, процедур нь объектын модулиудаас (баримт бичиг, лавлах гэх мэт) менежерийн модулиудад шилжсэн. Эдгээр хоёр модулийн ялгааг харцгаая.

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

Хэрэв бид энэ бүгдийг 1С: Аж ахуйн нэгжийн системийн нэр томъёонд орчуулбал Объект модульэнгийн аргуудыг агуулдаг. Тэдгээрийг ашиглахын тулд та эхлээд тодорхой объектыг авах ёстой: лавлах, баримт бичиг гэх мэт элемент. Менежерийн модульстатик аргуудыг агуулдаг. Үүнийг ашиглахын тулд тодорхой объект бүрийг тусад нь авах шаардлагагүй бөгөөд энэ нь бүх цуглуулгатай нэг дор ажиллах боломжийг олгодог.

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

Функц NewFunction () Экспорт

Объектын модулиас ийм функцийг ашиглахын тулд эхлээд шаардлагатай объектын холбоостой байж, функцийг ашиглан олж авах хэрэгтэй. GetObject().



Per = Объект. NewFunction();

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

Хувьсагчийн шинэ хувьсагчийн экспорт

Лавлах элемент = Лавлах. Нэршил. FindByCode("000000001" );
Объект = Лавлах элемент. GetObject();
Объект. NewVariable=);

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

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

Процедур NewProcedure() Экспорт

Лавлах элемент = Лавлах. Нэршил. NewProcedure();

Эсвэл хувьсагчийн хувьд:

Хувьсагчийн шинэ хувьсагчийн экспорт

Лавлах элемент = Лавлах. Нэршил. шинэ хувьсагч;

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

Объектын модулийг ашиглах үед код дараах байдалтай харагдана.

Баримт бичгийг хэвлэх функц (холбоос) экспорт
//Та энэ функцэд тодорхой баримт бичгийн холбоосыг дамжуулах ёстой
TabDoc-г буцаах;
Төгсгөлийн функц

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

&OnClient
Хэвлэх журам(Тушаал)
TabDoc = PrintOnServer();
TabDoc. Show();
Төгсгөлийн процедур
&Сервер дээр
PrintOnServer функц()
Doc = FormAttributesValue("Объект" );
Баримт бичгийг буцаах. PrintDocument(Объект. Холбоос);
Төгсгөлийн функц

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

Гүйцэтгэлийн үүднээс аль болох менежерийн модулийг ашиглах нь илүү дээр юм. Бидний жишээн дээр асуудлын шийдэл нь иймэрхүү харагдах болно.
PrintOnServer функц()
Баримт бичгийг буцаах. Манай баримт бичиг. PrintDocument(MassivLinks);
Төгсгөлийн функц

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

Тэгэхээр объектын модулийг хэзээ, менежерийн модулийг хэзээ ашиглах вэ?

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