Үй / Ойын консольдері / 1-ші кәсіпорындағы модульдер. Жалпы модульдер. «Сыртқы қосылу» жалаушасы

1-ші кәсіпорындағы модульдер. Жалпы модульдер. «Сыртқы қосылу» жалаушасы

Жалпы модульдер 1С- конфигурацияда жиі шақырылатын бағдарлама кодын сақтайтын 1С 8.3 және 8.2 конфигурация метадеректерінің объектісі. Функцияны/процедураны конфигурацияның кез келген жерінен шақыруға болады (егер ол экспортталған болса).

Ортақ модульді пайдалану жолы

Процедураны немесе функцияны бірнеше жерде шақырған жағдайда ортақ модульге қою жақсы тәжірибе. Біріншіден, егер процедура түзетілсе, оны тек бір жерде түзету қажет. Екіншіден, ол кодта үлкен тәртіпке қол жеткізеді.

Жалпы модульдің типтік мысалы ретінде кейбір регистр бойынша хабарламаны өңдеу, жұмыс күндеріндегі айырмашылық сомасын алу, валюта бағамын айырбастау, кестелік бөлімдегі мөлшерді/бағаны/сомды қайта есептеу және басқа да функциялар болып табылады.

Жалпы модуль сипаттары

Ортақ модульдер мен басқа модульдер арасындағы негізгі айырмашылықтардың бірі ортақ айнымалы мәндерді жариялау мүмкін еместігі болып табылады.

267 1С бейне сабақтарын тегін алыңыз:

Жалпы модульдің сипаттар палитрасын толығырақ қарастырайық:

  • Ғаламдық- егер жалау орнатылса, осы модульдің функциялары мен процедуралары жаһандық контексте қолжетімді болады. Анау. оларды конфигурацияның кез келген жерінде жалпы модуль атауынсыз шақыруға болады. Дегенмен, шарт қосылады - осы ортақ модульдегі процедуралар мен функциялардың атаулары жаһандық контексте бірегей болуы керек.
  • Сервер- Бұл ортақ модульдің процедуралары мен функцияларын серверде орындауға болады.
  • Сыртқы қосылу- осы жалпы модульдің бағдарламалық кодтары сыртқы көз арқылы қосылған кезде орындалуы мүмкін (мысалы, COM).
  • Клиент (басқарылатын қолданба)— Осы жалпы модульдің процедуралары мен функцияларын басқарылатын қолданба режимінде қалың клиентте пайдалануға болады.
  • Клиент (тұрақты қолданба)— осы ортақ модульдің бағдарламалық кодтары қалың клиентте қалыпты қолданбалы режимде пайдаланылуы мүмкін.
  • Сервер қоңырауы- клиентке осы жалпы модульден процедуралар мен функцияларды пайдалануға мүмкіндік беретін жалауша.
  • - True мәніне орнатылса, осы ортақ модульде кіру құқықтарын тексеру өшіріледі.
  • Қайта пайдалану— қайтарылатын мәндердің параметрлерін анықтайды, егер опция қосылған болса, онда бірінші орындағаннан кейін жүйе осы енгізу параметрлерінің мәнін есте сақтайды және дайын мәнді қайтарады. Ол келесі мәндерді қабылдай алады: қолданылмайды- жабу, қоңырау кезінде- белгілі бір процедураның ұзақтығына, сессия барысында- пайдаланушы сеансты (бағдарламаны) жапқанға дейін.

Егер сіз 1С бағдарламалауды үйрене бастасаңыз, біз тегін курсымызды ұсынамыз (ұмытпаңыз

1.1. Жалпы модульдер кейбір критерийлерге сәйкес біріктірілген процедуралар мен функцияларды жүзеге асыру үшін жасалады. Әдетте, бір конфигурация ішкі жүйесінің процедуралары мен функциялары (сатулар, сатып алулар) немесе ұқсас функционалдық процедуралар мен функциялар (жолдармен жұмыс, жалпы мақсат) бір ортақ модульде орналастырылған.

1.2. Ортақ модульдерді әзірлеу кезінде кодты орындаудың төрт контекстінің бірін таңдау керек:

Жалпы модуль түрі Атау үлгісі Сервер қоңырауы Сервер Сыртқы қосылу Тұтынушы
(тұрақты қолдану)
Тұтынушы
(басқарылатын қолданба)
1. СерверЖалпы мақсаттағы (немесе жалпы мақсаттағы сервер)
2. Клиенттен қоңырау шалатын серверGeneral PurposeCallServer
3. КлиентЖалпы мақсаттағы клиент (немесе жалпы мақсаттағы ғаламдық)
4. Клиент-серверGeneral PurposeClientServer

2.1. Сервердің ортақ модульдеріклиенттік кодта пайдалану үшін қол жетімді емес сервер процедуралары мен функцияларын орналастыруға арналған. Олар қолданбаның барлық ішкі серверлік бизнес логикасын жүзеге асырады.
Конфигурацияның сыртқы қосылымда дұрыс жұмыс істеуі үшін басқарылатын және тұрақты қолданба режимдері, сервер процедуралары мен функциялары келесі сипаттамалары бар ортақ модульдерге орналастырылуы керек:

  • Сервер(құсбелгі Сервер қоңырауытасталды),
  • Клиент (тұрақты қолданба),
  • Сыртқы қосылу.

Бұл жағдайда сервер процедуралары мен функцияларын өзгермелі типті параметрлермен шақыруға болатынына кепілдік беріледі (мысалы, DirectoryObject, DocumentObjectжәне т.б.). Әдетте, бұл:

  • параметр ретінде өзгермелі мәнді (объектіні) қабылдайтын құжаттардың, каталогтардың және т.б. оқиғаларға жазылу үшін өңдеушілер.
  • серверлік процедуралар мен функциялар, оларға объект каталогтар, құжаттар және т.б. модульдерден, сондай-ақ оқиғалар жазылулары бар модульдерден параметр ретінде беріледі.

Сервердің жалпы модульдері метадеректер нысандарын атаудың жалпы ережелеріне сәйкес аталады.
Мысалға: Файлдармен жұмыс, Жалпы мақсат

Кейбір жағдайларда жаһандық мәтінмән сипаттарымен атау қайшылықтарын болдырмау үшін постфикс қосылуы мүмкін. «Сервер».
Мысалға: ScheduledTasksServer, Деректер алмасу сервері.

2.2. Клиенттен шақырылатын сервердің жалпы модульдеріклиенттік кодтан пайдалануға болатын сервер процедуралары мен функцияларын қамтиды. Олар қолданбалы сервердің клиенттік API құрайды.
Мұндай процедуралар мен функциялар атрибуты бар ортақ модульдерде орналастырылған:

  • Сервер(құсбелгі Сервер қоңырауыжинағы)

Клиенттен шақырылатын сервердің жалпы модульдері метадеректер нысандарын атаудың жалпы ережелеріне сәйкес аталады және постфикспен аталуы керек. «Сервер шақыруы».
Мысалға: Файлдармен жұмыс істеу Серверге қоңырау шалу

Мұндай жалпы модульдердегі экспорт процедуралары мен функциялар өзгермейтін түр параметрлерін қамтымауы керек екенін ескеріңіз ( DirectoryObject, DocumentObjectт.б.), өйткені оларды клиенттік кодтан (немесе) ауыстыру мүмкін емес.

Сондай-ақ қараңыз:Жалпы модульдер үшін «Серверді шақыру» жалауын орнатуға шектеу

2.3. Клиенттің ортақ модульдеріклиенттің бизнес логикасын (тек клиент үшін анықталған функционалдылық) қамтиды және келесі сипаттамаларға ие:

  • Клиент (басқарылатын қолданба)
  • Клиент (тұрақты қолданба)

Ерекшелік клиенттік процедуралар мен функциялар басқарылатын қолданба режимінде ғана қолжетімді болуы керек (тек қалыпты қолданба режимінде немесе тек шығыс режимінде). Мұндай жағдайларда осы екі мүмкіндіктің басқа комбинациясы қолайлы.

Клиенттің жалпы модульдері постфикспен аталады «Тұтынушы».
Мысалға: WorkFilesClient, Жалпы мақсаттағы тұтынушы

Сондай-ақ қараңыз: клиенттік кодты азайту

2.4. Кейбір жағдайларда серверде де, клиентте де мазмұны бірдей болатын процедуралары мен функциялары бар клиент-сервер ортақ модульдерін жасауға болады. Мұндай процедуралар мен функциялар мүмкіндіктері бар ортақ модульдерге орналастырылған:

  • Клиент (басқарылатын қолданба)
  • Сервер(құсбелгі Сервер қоңырауытасталды)
  • Клиент (тұрақты қолданба)
  • Сыртқы қосылу

Осы түрдегі жалпы модульдер постфикспен аталады «Клиентсервер».
Мысалға: WorkFilesClient, General PurposeClientServer

Жалпы, сервер мен клиентке (басқарылатын қолданба) ортақ модульдерді бір уақытта анықтау ұсынылмайды. Клиент пен сервер үшін анықталған функционалдылықты әртүрлі жалпы модульдерде енгізу ұсынылады - б. қараңыз. 2.1 және 2.3. Клиент пен сервердің бизнес логикасын мұндай айқын бөлу қолданбалы шешімнің модульділігін арттыру, клиент пен сервердің өзара әрекеттесуін әзірлеушінің бақылауын жеңілдету және клиент пен серверді әзірлеуге қойылатын талаптардың түбегейлі айырмашылығына байланысты қателер қаупін азайтуды қарастырумен байланысты. код (клиентте орындалатын кодты азайту қажеттілігі, нысандар мен платформа түрлерінің әртүрлі қолжетімділігі және т.б.). Бұл ретте конфигурациядағы жалпы модульдер санының сөзсіз көбеюін есте ұстау керек.

Аралас клиент-сервер модульдерінің ерекше жағдайы сервер мен клиенттің бизнес логикасын бір модульде жүзеге асыру үшін арнайы жасалған пішін және пәрмен модульдері болып табылады.

3.1. Жалпы модульдердің атауларын метадеректер нысандарын атау үшін жалпы ережелерге сәйкес құрастыру ұсынылады. Жалпы модульдің атауы ішкі жүйенің немесе процедуралары мен функцияларын ол жүзеге асыратын бөлек механизмнің атауына сәйкес келуі керек. Жалпы модуль атауларында «Процедура», «Функциялар», «Өңдеушілер», «Модуль», «Функционалдық» және т.б. сияқты жалпы сөздерден аулақ болу ұсынылады. және оларды модульдің мақсатын толық ашатын ерекше жағдайларда ғана қолданыңыз.

Әртүрлі контексте орындалатын процедуралар мен функцияларды жүзеге асыру үшін жасалған бір ішкі жүйенің жалпы модульдерін ажырату үшін оларға параграфтарда бұрын сипатталған постфикстерді беру ұсынылады. 2.1-2.4.

1C: Enterprise жүйе конфигурацияларының жаңа нұсқаларында көптеген функциялар мен процедуралар объектілік модульдерден (құжаттар, каталогтар және т.б.) менеджер модульдеріне көшірілді. Осы екі модуль арасындағы айырмашылықтарды қарастырайық.

Объектіге бағытталған программалау теориясына сәйкес объектілердің әдістері екі топқа бөлінеді: статикалық және қарапайым. Қарапайым әдістер тек сыныптың белгілі бір данасына қол жеткізе алады. Статикалық әдістер объектінің деректеріне қол жеткізе алмайды, бірақ тұтас сыныпта жұмыс істейді.

Осының барлығын 1С: Кәсіпорын жүйесінің терминдеріне аударсақ, онда Объектілік модульқарапайым әдістерді қамтиды. Оларды пайдалану үшін алдымен белгілі бір объектіні алу керек: каталог элементін, құжатты және т.б. Басқару модулістатикалық әдістерді қамтиды. Оны пайдалану үшін әрбір нақты нысанды бөлек алудың қажеті жоқ, ол бірден бүкіл жинақпен жұмыс істеуге мүмкіндік береді.

Объектілік модульсырттан қолдануға болатын процедуралар мен функциялар болуы мүмкін. Ол үшін мұндай процедура немесе функция сөзбен белгіленеді Экспорттау.

NewFunction() функциясын экспорттау

Нысандық модульден мұндай функцияны пайдалану үшін алдымен қажетті нысанға сілтеме жасай отырып, оны функция арқылы алу керек. GetObject().



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

Сол сияқты, әртүрлі конфигурация нысандарынан пайдалануға болатын жаңа айнымалылар жасауға болады.

Жаңа айнымалыны экспорттау

DirectoryItem = Каталогтар. Номенклатура. FindByCode("000000001" );
Нысан = Каталог элементі. GetObject();
Объект. NewVariable=);

Осылайша стандартты процедураларды, функцияларды және объектілердің қасиеттерін (айнымалыларын) толықтыруға болады. Мұндай айнымалылар динамикалық болып табылады, олар инфобазада сақталмайды және тек алынған нысанмен жұмыс істеу кезінде болады.

Басқару модулібарлығы бірдей мүмкіндіктерге ие, жалғыз айырмашылығы - оны пайдалану үшін белгілі бір объектіні алудың қажеті жоқ, басқару модулі белгілі бір типтегі объектілердің бүкіл жиынтығымен жұмыс істеуге мүмкіндік береді.

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

DirectoryItem = Каталогтар. Номенклатура. NewProcedure();

Немесе айнымалы үшін:

Жаңа айнымалыны экспорттау

DirectoryItem = Каталогтар. Номенклатура. newVariable;

Құжаттың баспа түрін құру процедурасының мысалында объектілік модуль мен басқарушы модулін қолданудағы айырмашылықтарды қарастырайық.

Объектілік модульді пайдаланған кезде код келесідей болады:

Функция PrintDocument (Сілтеме) Экспорттау
//Бұл функция нақты құжатқа сілтеме берілуі керек
TabDoc қайтару;
EndFunctions

Құжат пішінінде құжатқа сілтемені басып шығару функциясына беретін процедураны жасау керек.

&AtClient
Басып шығару процедурасы(пәрмен)
TabDoc = PrintOnServer();
TabDoc. Show();
EndProcedure
&Серверде
PrintOnServer() функциясы
Doc = FormAttributeToValue("Object" );
Құжатты қайтару. PrintDocument(Объект. Сілтеме);
EndFunctions

Бұл әдістің кемшілігі тек бір нысанды басып шығаруға мүмкіндік береді. Егер бірден бірнеше құжатты басып шығару қажет болса, онда олардың әрқайсысын алу керек, содан кейін объект модулінен функцияны шақыру керек. Бұл маңызды жүйелік ресурстарды қажет етеді, өйткені объект қабылданған кезде ол толығымен жедел жадқа сәйкес келеді.

Өнімділік тұрғысынан басқару модулін мүмкіндігінше пайдалану әлдеқайда жақсы. Біздің мысалда мәселенің шешімі келесідей болады.
PrintOnServer() функциясы
Құжаттарды қайтару. Біздің құжат. PrintDocument(ArrayReferences);
EndFunctions

Менеджер модулін пайдаланған жағдайда басып шығару процедурасын массивтегі бірнеше құжаттарға сілтемелер бере отырып, құжат пішінінен де, тізімдік формадан да шақыруға болады. Бұл жағдайда жүйеге массивтен әрбір құжатты алудың қажеті жоқ, бұл жүйе ресурстарын айтарлықтай үнемдейді.

Сонымен объект модулін қашан пайдалану керек және менеджер модулін қашан пайдалану керек?

Барлығы тапсырмаға байланысты. Егер объектіге сілтеме оны орындау үшін жеткілікті болса (мысалы, басып шығару тапсырмасы), онда менеджер модулін қолданған дұрыс. Егер тапсырма деректерді өзгерту болса, мысалы, құжатты толтыру болса, онда оны алу және объект модулін пайдалану қажет.

Бағдарлама модульдерінде визуалды дамыту құралдары жеткіліксіз болған кезде жүйенің немесе пайдаланушының әрекеттеріне белгілі бір түрде жауап беру үшін қажет 1С тіліндегі орындалатын код бар. Сондай-ақ бағдарлама модульдерінде біз өз әдістерімізді (процедуралар мен функцияларды) сипаттай аламыз.

Әдетте бағдарламалық модуль үш бөлімнен тұрады:

  • айнымалы декларациялау аймағы;
  • процедура мен функцияны сипаттау аймағы;
  • бағдарламаның негізгі мәтіні.

Бағдарламалық модуль құрылымының мысалы:

//******************** АЙНАЛЫМДЫ ДЕКЛАРАЦИЯ АЙМАҚ *************************

Рем тегі экспорт; / /бұл жаһандық айнымалы
Айнымалы аты, әкесінің аты; //бұл модуль айнымалысы
Атын өзгерту; //бұл да модуль айнымалысы және оған кіруге болады

//біздің модульдің кез келген процедурасы мен функциясынан

//**************** РӘСІМІ ЖӘНЕ ФУНКЦИЯСЫ СИПАТТАМАСЫ *****************

Процедура 1 ()
Айнымалы жиынтық ; / /Total – жергілікті айнымалы (процедура айнымалысы)

Барлығы = Тегі + "" + Аты + " "+ Әкесінің аты;

EndProcedure

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

// функция операторлары

Қайтару(Тегі + " " + Аты );

EndFunctions

//************************ БАҒДАРЛАМА НЕГІЗГІ МӘТІН ******************** *

Тегі = «Иванов»;
Аты = «Иван»;
Әкесінің аты = «Иванович»;

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

Белгілі бір бағдарлама модулінде аймақтардың кез келгені болмауы мүмкін.
Айнымалы декларацияның ауқымымодуль мәтінінің басынан Процедураның бірінші операторына немесе Функция операторына немесе кез келген орындалатын операторға дейін орналастырылады. Бұл бөлімде тек айнымалылар туралы мәлімдемелер болуы мүмкін.

Процедуралар мен функцияларды сипаттау аймағыПроцедураның немесе Функция мәлімдемесінің бірінші операторынан процедураның немесе функция декларациясының негізгі бөлігінен тыс кез келген орындалатын операторға дейін орналастырылады.

Бағдарламаның негізгі мәтіндік аймағыпроцедуралар немесе функциялар денесінен тыс бірінші орындалатын оператордан модульдің соңына дейін орналастырылады. Бұл бөлімде тек орындалатын мәлімдемелер болуы мүмкін. Бағдарламаның негізгі мәтінінің аймағы модульді инициализациялау кезінде орындалады. Әдетте, бағдарламаның негізгі бөлімінде модульдің процедураларына немесе функцияларына бірінші шақыру алдында тағайындалуы керек кейбір нақты мәндері бар айнымалыларды инициализациялау үшін мәлімдемелерді орналастыру мағынасы бар.

Бағдарлама модульдері конфигурацияда нақты жұмыс алгоритмдерін сипаттауды қажет ететін орындарда орналасқан. Бұл алгоритмдер алдын ала анықталған жағдайларда жүйенің өзі шақыратын процедуралар немесе функциялар ретінде құрастырылуы керек (мысалы, анықтамалық пішінді ашқанда, диалогтық терезеде түймені басқанда, объектіні өзгерткенде және т.б.).

Әрбір жеке бағдарлама модулін жүйе тұтастай қабылдайды, сондықтан бағдарлама модулінің барлық процедуралары мен функциялары бір контексте орындалады.

Модульдердің орындалу контексті клиенттік және серверлік контексттерге бөлінеді. Сонымен қатар, кейбір бағдарламалық модульдерді клиент жағында да, сервер жағында да құрастыруға болады.

Қолданбалы модуль (басқарылатын немесе тұрақты)

Қолданбалы модуль жүйенің басында және соңында инициализацияланған оқиғалардың процедураларын (өңдеушілерін) сипаттайды. Мысалы, қолданбаны іске қосқан кезде кейбір конфигурация деректерін жаңартуға болады, ал шыққан кезде бағдарламадан мүлдем шығу керек пе деп сұрауға болады. Бұған қоса, бұл модуль сауда немесе фискалдық жабдық сияқты сыртқы жабдықтан оқиғаларды тоқтатады. Қолданбалы модуль қолданбаны интерактивті іске қосу жағдайында ғана орындалатынын атап өткен жөн, яғни бағдарлама терезесі іске қосылғанда. Қолданба режимде іске қосылса, бұл болмайды com қосылымдары.
1С 8 платформасында екі түрлі қолданбалы модуль бар. Бұл жалпы қолданба модулі және басқарылатын қолданба модулі. Олар әртүрлі клиенттер іске қосылғанда іске қосылады. Мысалы, басқарылатын қолданба модулі веб-клиент іске қосылғанда іске қосылады, жұқа клиентжәне басқарылатын қолданба режиміндегі қалың клиент. Ал кәдімгі қолданбалы модуль қалың клиент қалыпты қолданба режимінде іске қосылғанда іске қосылады. Қолданбаны іске қосу режимінің параметрі "Негізгі іске қосу режимі" конфигурация сипатында орнатылған.

Қолданбалы модульде барлық 3 бөлім болуы мүмкін - айнымалылар туралы мәлімдемелер, процедуралар мен функциялардың сипаттамасы, сонымен қатар бағдарламаның негізгі мәтіні. Қолданбалы модуль клиент жағында құрастырылған, бұл бізге деректердің көптеген түрлерін пайдалануды қатты шектейді. Қолданбалы модульдің мәтінмәнін Қоңырау сервері сипаттары жиыны бар ортақ модульдердің әдістерімен кеңейтуге болады. Экспорт ретінде белгіленген қолданбалы бағдарлама модулінің барлық айнымалы мәндері мен әдістері кез келген клиенттік конфигурация модулінде қолжетімді болады. Дегенмен, қаншалықты тартымды болса да, мұнда көптеген процедуралар мен функцияларды орналастыруға болмайды. Берілген модульде неғұрлым көп код болса, соғұрлым компиляция уақыты ұзарады және, демек, қолданбаны іске қосу уақыты.

Жоғарыда айтылғандай, қолданбалы модуль қолданбаның басталу және аяқталу оқиғаларын өңдейді. Қолданбалы модульдегі осы оқиғалардың әрқайсысын өңдеу үшін бірнеше өңдегіштер бар. Бұрын ... және Қашан ... Олардың арасындағы айырмашылықтар келесідей: бұрын ... өңдегішіндегі код орындалғанда, әрекет орындалады. әлі орын алған жоқ және біз оны орындаудан бас тарта аламыз. «Бас тарту» опциясы осыған арналған. On өңдеушілерінде әрекет әлдеқашан орындалды және біз қолданбаны іске қосудан немесе одан шығудан бас тарта алмаймыз.

Сыртқы қосылым модулі

  • барлық 3 аумақты қамтуы мүмкін
  • конфигурацияның түбірлік бөлімінде орналасқан

Модульдің мақсаты қолданбалы модульдің мақсатына ұқсас. Ол қолданбаның басталу және аяқталу оқиғаларын өңдейді. Сыртқы қосылым модулі қолданба қосылым режимінде іске қосылғанда іске қосылады. Сыртқы қосылу процесінің өзі интерактивті процесс емес. Бұл режимде бағдарлама жұмыс істейді ақпараттық базажәне қолданбалы терезе ашылмайды, бұл интерактивті жұмысқа арналған әдістерді қолдануға белгілі бір шектеулер қояды. Бұл режимде диалогтық пішіндерге қоңырауларды, пайдаланушыға ескертулер мен хабарламаларды және т.б. пайдалана алмайсыз. Олар жай жүгірмейді.

Қолданбалы модульдегі сияқты мұнда да барлық үш сала бар: айнымалылар туралы мәлімдемелер, процедуралар мен функциялардың сипаттамасы, сонымен қатар бағдарламаның негізгі мәтіні. Қолданбалы модульден негізгі айырмашылығы - қосылу режимінде инфобазамен барлық жұмыс сервер жағында жүреді, сондықтан сыртқы қосылым модулі сервер жағында құрастырылады. Тиісінше, экспорттық айнымалылар мен жалпы клиенттік модульдердің әдістері онда қол жетімді емес.

сеанс модулі

  • сервер жағында орындалады
  • конфигурацияның түбірлік бөлімінде орналасқан

Бұл тек сеанс параметрлерін инициализациялауға арналған жоғары мамандандырылған модуль. Неліктен сізге бұл үшін өзіңіздің модульіңізді жасау керек болды? Оны пайдалану қосымшаның өзін әртүрлі режимдерде іске қосуға болатындығына байланысты (бұл басқарылатын қолданба модулінің, кәдімгі қолданбалы модульдің немесе сыртқы қосылым модулінің орындалуына әкеледі) және сеанс параметрлерін инициализациялауға қарамастан іске қосу режимі. Осы үш модульде бірдей бағдарлама кодын жазбау үшін бізге қажет болды қосымша модуль, ол қолданбаны іске қосу режиміне қарамастан орындалады.

Сеанс модулінде бір ғана "SetSessionParameters" оқиғасы бар, ол ең бірінші, тіпті қолданбалы модульдің PreSystemBegin оқиғасынан бұрын іске қосылады. Оның айнымалыларды жариялау бөлімі және негізгі бағдарлама бөлімі жоқ. Сондай-ақ экспорттық әдістерді жариялау мүмкін емес. Модуль сервер жағында құрастырылған.

Жалпы модульдер

  • процедуралар мен функцияларды сипаттайтын аумақты қамтуы мүмкін
  • серверде немесе клиент жағында орындалады (модуль параметрлеріне байланысты)
  • «Жалпы» - «Жалпы модульдер» конфигурация объектілерінің тармағында орналасқан.

Жалпы модульдер басқа конфигурация модульдерінен шақырылатын кейбір жалпы алгоритмдерді сипаттауға арналған. Жалпы модульде айнымалыларды жариялау аймақтары мен бағдарламаның негізгі бөлігі жоқ. Онда экспорттау әдістерін жариялауға болады, олардың қолжетімділігі модуль параметрлерімен анықталады (ол қай жағында орындалады: серверде немесе клиент жағында). Айнымалыларды жариялау бөлімі қолжетімді емес болғандықтан, ортақ модульдерде жаһандық айнымалы мәндерді анықтау мүмкін емес. Ол үшін қолданбалы модульді пайдалануға болады.

Ортақ модульдің әрекеті орнатылған параметрлерге байланысты (жаһандық немесе жоқ, әртүрлі компиляция жалаулары, сервер шақыруының қолжетімділігі және т.б.). Мұнда ортақ модульдерді орнату бойынша кейбір кеңестер берілген:

«Жаһандық» жалауды барлық жерде қолданбау жақсы тәжірибе. Бұл қолданбаны іске қосу уақытын қысқартады, сонымен қатар кодтың оқылуын жақсартады (әрине, егер жалпы модульдің толық мағыналы атауы болса);
- Бірден артық компиляция жалауын пайдалану ұсынылмайды. Әртүрлі контексттерде орындауды қажет ететін әдістер соншалықты көп емес, егер мұндай әдістер соған қарамастан қажет болса, онда олар үшін жеке жалпы модульді бөлуге болады;
- «Серверді шақыру» жалауы модуль «Серверде» құрастырылған жағдайда ғана мағыналы болады. Сондықтан, әртүрлі проблемаларды болдырмау үшін барлық басқа компиляция жалауларын алып тастау керек;
- егер модуль әдістерінде мәліметтерді жаппай өңдеу, мәліметтер базасына оқу және жазу болса, онда жұмыс жылдамдығын арттыру үшін «Артықшылықтар» жалауын орнату арқылы қол жеткізуді басқаруды өшірген дұрыс. Бұл режим серверде құрастырылған ортақ модульдер үшін ғана қол жетімді.

Пішін модулі

  • барлық 3 аумақты қамтуы мүмкін
  • сервер және клиент жағында орындалады

Пішін модулі осы пішінмен пайдаланушы әрекеттерін өңдеуге арналған (түймелерді басу оқиғасын өңдеу, пішін атрибутын өзгерту және т.б.). Пішіннің өзіне тікелей қатысты оқиғалар да бар (мысалы, оның ашылуы немесе жабылуы). Басқарылатын және тұрақты пішіндердің модульдері ең алдымен модульде ерекшеленеді басқарылатын пішінконтекст бойынша анық бөлінген. Әрбір процедура немесе функцияның компиляция директивасы болуы керек. Егер компиляция директивасы көрсетілмесе, онда бұл процедура немесе функция сервер жағында орындалады. Әдеттегі пішінде барлық код клиент жағында орындалады.

Басқарылатын пішін құрылымы айнымалыларды жариялау бөлімін, процедуралар мен функциялардың сипаттамаларын және бағдарламаның денесін (форманы инициализациялау кезінде орындалады) қамтиды. Біз стандартты пішін оқиғаларына пішіннің күтілетін процедуралары мен функцияларының тізімі арқылы қол жеткізе аламыз (Ctrl+Alt+P), немесе пішіннің сипаттар палитрасы арқылы.

Егер пішінде тағайындалған негізгі атрибут болса, онда негізгі атрибут ретінде пайдаланылатын қолданбалы нысанның қасиеттері мен әдістері пішін модулінде қолжетімді болады.

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

  • барлық 3 аумақты қамтуы мүмкін
  • сервер жағында орындалады

Бұл модуль конфигурация нысандарының көпшілігі үшін қол жетімді және жалпы нысанға тікелей қатысты оқиғаларды өңдеуге арналған. Мысалы, объектілерді жазу және жою оқиғалары, объектінің реквизиттерінің толтырылғанын тексеру, құжатты орналастыру және т.б.

Кейбір нысан модулінің оқиғалары пішін модулінің оқиғаларын қайталайды. Мысалы, жазбаға қатысты оқиғалар. Дегенмен, форма модулінің оқиғалары объектінің нақты пішінінде, яғни нақты пішін ашылғанда ғана орындалатынын түсіну керек. Ал объект модулінің оқиғалары кез келген жағдайда, тіпті объектпен программалық жұмыс кезінде де шақырылатын болады. Сондықтан, егер сізге объектінің белгілі бір формасына байланбай, объектімен байланысты әдістер қажет болса, онда бұл үшін объект модулін қолданған дұрыс.

Объектілерді басқару модулі

  • барлық 3 аумақты қамтуы мүмкін
  • сервер жағында орындалады

Объектілерді басқару модулі тек 1С 8.2 нұсқасынан бастап пайда болды. Басқару модулі барлық қолданба нысандары үшін бар және осы нысанды конфигурация нысаны ретінде басқаруға арналған. Басқару модулі дерекқор объектісінің нақты данасына емес, конфигурация нысанының өзіне сілтеме жасайтын процедуралар мен функцияларды енгізу (жазу) арқылы объектінің функционалдығын кеңейтуге мүмкіндік береді. Объектілерді басқару модулі берілген объект үшін жалпы процедуралар мен функцияларды орналастыруға және оларға сырттан қол жеткізуге мүмкіндік береді, мысалы, өңдеуден (әрине, егер бұл процедура немесе функция Export түйінді сөзімен болса). Бұл бізге жаңа не береді? Жалпы алғанда, нысандар бойынша процедураларды ұйымдастыру және оларды бөлек орындарда сақтаудан басқа ештеңе жоқ - Object Manager модульдері. Біз бұл процедуралар мен функцияларды ортақ модульдерге де орналастыра аламыз, бірақ 1С жалпы процедуралар мен объектілердің функцияларын Object Manager модулінде орналастыруға кеңес береді. Объектілерді басқару модулінің процедуралары мен функцияларын пайдалану мысалдары: белгілі бір шарттарда анықтамалық немесе құжаттың жеке деректемелерін бастапқы толтыру, белгілі бір шарттарда анықтамалық немесе құжаттың деректемелерінің толтырылуын тексеру және т.б.

Командалық модуль

  • процедуралар мен функцияларды сипаттайтын бөлім болуы мүмкін
  • клиент жағында орындалады

Пәрмендер қолданба объектілеріне немесе тұтастай конфигурацияға бағынатын объектілер болып табылады. Әрбір пәрменде осы пәрменді орындау үшін алдын ала анықталған CommandProcess() процедурасын сипаттауға болатын пәрмен модулі бар.

Модульдер дегеніміз не және олар не үшін арналған? Модульде бағдарлама коды бар. Сонымен қатар, кодты пішін элементтерінің қасиеттерінде де, орналасу кестелерінің ұяшықтарында да орналастыруға болатын 7.7 платформасынан айырмашылығы, 8.x платформасында кодтың кез келген жолы орналасуы керек екенін атап өткен жөн. кейбір модульде. Әдетте, модуль үш бөлімнен тұрады - айнымалыларды сипаттайтын бөлім, процедуралар мен функцияларды сипаттайтын бөлім және негізгі бағдарламаға арналған бөлім. Бұл құрылым кейбір ерекшеліктерді қоспағанда, барлық дерлік платформа модульдеріне тән. Кейбір модульдерде айнымалыларды жариялау бөлімі және негізгі бағдарлама бөлімі жоқ. Мысалы, сеанс модулі және кез келген жалпы модуль.

Модульдердің орындалу контексті әдетте клиенттік және серверлік контексттерге бөлінеді. Сонымен қатар, кейбір модульдерді клиент жағында да, сервер жағында да құрастыруға болады. Ал кейбіреулері тек серверлік немесе клиенттік. Сонымен:

Қолданбалы модуль

Модуль қолданбаны іске қосу (конфигурацияны жүктеу) және оны аяқтау сәттерін ұстауға арналған. Ал сәйкес оқиғаларда сіз тексеру процедураларын реттей аласыз. Мысалы, қолданбаның басында кез келген конфигурация анықтамалық деректерін жаңартыңыз, жұмыстың соңында оны мүлдем қалдыру керек пе деп сұраңыз, мүмкін жұмыс күні әлі аяқталмаған шығар. Бұған қоса, ол сауда немесе фискалдық жабдық сияқты сыртқы жабдықтан оқиғаларды ұстайды. Қолданбалы модуль сипатталған оқиғаларды интерактивті іске қосу жағдайында ғана тоқтататынын атап өткен жөн. Анау. бағдарлама терезесінің өзі жасалған кезде. Қолданба қосылым режимінде іске қосылса, бұл болмайды.

8.2 платформасында екі түрлі қолданбалы модуль бар. Бұл жалпы қолданба модулі және басқарылатын қолданба модулі. Олар әртүрлі клиенттер іске қосылғанда іске қосылады. Веб-клиент, жұқа клиент және қалың клиент басқарылатын қолданба режимінде іске қосылғанда, басқарылатын қолданба модулі осылай іске қосылады. Ал кәдімгі қолданбалы модуль қалың клиент қалыпты қолданба режимінде іске қосылғанда іске қосылады.

Қолданбалы модульде барлық бөлімдерді орналастыруға болады - айнымалылардың, процедуралардың және функциялардың сипаттамалары, сонымен қатар негізгі бағдарламаның сипаттамалары. Қолданбалы модуль клиенттік жағында құрастырылған, сондықтан бұл деректердің көптеген түрлерінің қолжетімділігін айтарлықтай шектейді. Қолданбалы модульдің мәтінмәнін Қоңырау сервері сипаттары жиыны бар ортақ модульдердің әдістерімен кеңейтуге болады. Экспорттау ретінде белгіленген барлық айнымалылар мен әдістер кез келген клиенттік конфигурация модулінде қолжетімді болады. Дегенмен, қаншалықты тартымды болса да, мұнда тым көп әдістерді қоймаңыз. Оның құрамында неғұрлым көп код болса, соғұрлым компиляция уақыты ұзарады, демек, қолданушыларды өте тітіркендіретін қолданбаны іске қосу уақыты.

Жоғарыда айтылғандай, қолданбалы модуль қолданбаның басталу және аяқталу оқиғаларын өңдейді. Қолданбалы модульдегі осы оқиғалардың әрқайсысын өңдеу үшін, бұрын ... және Қашан ... бірнеше өңдегіштер бар. Олардың арасындағы айырмашылық, бұрын ... өңдегішіндегі код орындалғанда, әрекет әлі орындалмаған. орын алды және біз оны орындаудан бас тарта аламыз. «Бас тарту» опциясы осыған арналған. On өңдеушілерінде әрекет әлдеқашан орындалды және біз қолданбаны іске қосудан немесе одан шығудан бас тарта алмаймыз.

Сыртқы қосылым модулі

Модульдің мақсаты қолданбалы модульдің мақсатына ұқсас. Ол қолданбаның бастапқы және соңғы нүктелерін өңдейді. Сыртқы қосылым модулі қолданба қосылым режимінде іске қосылғанда іске қосылады. Сыртқы қосылу процесінің өзі интерактивті процесс емес. Бұл режимде инфобазамен бағдарламалық жұмыс орын алады және қолданбалы терезе ашылмайды, бұл интерактивті жұмысқа арналған әдістерді пайдалануға белгілі шектеулер қояды. Бұл режимде диалогтық пішін қоңырауларын, ескерту хабарламаларын және т.б. пайдалана алмайсыз. Олар жай ғана жұмыс істемейді.

Қолданбалы модульдегі сияқты, мұнда айнымалыларды, әдістерді сипаттайтын бөлімдер және негізгі бағдарламаға арналған бөлім бар. Сондай-ақ экспорттық айнымалылар мен әдістерді жариялауға болады. Айырмашылығы мынада: қосылу режимінде инфобазамен барлық жұмыс сервер жағында орын алады, сондықтан сыртқы қосылым модулі тек серверде құрастырылады. Тиісінше, экспорттық айнымалылар мен жалпы клиенттік модульдердің әдістері онда қол жетімді емес.

сеанс модулі

Бұл жоғары мамандандырылған модуль және тек сеанс параметрлерін инициализациялауға арналған. Неліктен сізге бұл үшін өзіңіздің модульіңізді жасау керек болды? Бұл инициализация процесі кейбір кодтың орындалуын талап етуі мүмкін екендігіне байланысты, сонымен қатар, қосымшаны әртүрлі клиенттерде іске қосуға болады (бұл әртүрлі қолданбалы модульдердің немесе сыртқы қосылым модулінің орындалуына әкеледі) және сеанс параметрлері кез келген іске қосу режимінде инициализациялауға болады. Сондықтан қосымша модуль қажет болды, ол кез келген қолданбаны іске қосу режимінде орындалады.

Сеанс модулінде жалғыз "SetSessionParameters" оқиғасы бар, ол ең бірінші, тіпті қолданбалы модульдің PreSystemBegin оқиғасынан бұрын іске қосылады. Оның айнымалыларды жариялау бөлімі және негізгі бағдарлама бөлімі жоқ. Сондай-ақ экспорттық әдістерді жариялау мүмкін емес. Модуль сервер жағында құрастырылған.

Бағдарлама іске қосылған сайын бұл модуль орындалады деген ырқынан аулақ болыңыз және оған сеанс параметрлерін инициализациялауға тікелей қатысы жоқ кодты орналастырыңыз. Бұл жүйе жұмысы кезінде SetSessionParameters өңдеушісін қайталап шақыруға болатындығына байланысты. Мысалы, бұл инициализацияланбаған параметрлерге қол жеткізген кезде орын алады. Осы оқиғаның алғашқы іске қосылу сәтін ұстауға болатын болса да (RequiredParameters-тің Undefined түрі бар), алайда, бұл модуль артықшылықты режимде құрастырылғанын атап өткен жөн, яғни. ол қол жеткізу құқықтарын бақыламайды. Ал екінші мәселе, біз әлі де жүйенің іске қосылатынына жүз пайыз сенімді бола алмаймыз. Кенеттен қолданбалы модуль сәтсіздікке ұшырайды және біз дерекқормен кейбір әрекеттерді орындауға тырысамыз.

Жалпы модульдер

Модульдер басқа конфигурация модульдерінен шақырылатын кейбір жалпы алгоритмдерді сипаттауға арналған. Жалпы модульде айнымалыларды жариялау бөлімі және негізгі бағдарлама бөлімі жоқ. Сіз оған экспорттау әдістерін жариялай аласыз, олардың қол жетімділік контексті компиляция жалаушалары арқылы анықталады. Айнымалыларды жариялау бөлімі қолжетімді емес болғандықтан, ортақ модульдерде жаһандық айнымалы мәндерді анықтау мүмкін емес. Ол үшін қайтарылатын мәнді кэштеу немесе қолданбалы модуль бар жалпы модульдердің функцияларын пайдалану қажет. Егер ортақ модульді қайта пайдалану сипаты «Сеанс ұзақтығына» орнатылған болса да, бұл жағдайда кэштелген мәндердің қызмет ету мерзімі оларға соңғы рет қол жеткізген сәттен бастап 20 минуттан аспайтынын есте ұстаған жөн. .
Ортақ модульдің әрекеті орнатылған параметрлерге байланысты (жаһандық немесе жоқ, әртүрлі компиляция жалаулары, сервер шақыруының қолжетімділігі және т.б.). Бұл мақалада біз параметрлердің барлық түрлерін, сондай-ақ сипат жалаулары негізсіз орнатылған кезде пайда болатын мінез-құлық ерекшеліктері мен тұзақтарды қарастырмаймыз. Бұл бөлек мақаланың тақырыбы. Жалаушаларды орнату кезінде ұстануға болатын бірнеше жайттарға тоқталайық:

  • «Жаһандық» жалауды барлық жерде қолданбау жақсы ереже. Бұл қолданбаны іске қосу уақытын қысқартады, сонымен қатар кодтың оқылуын жақсартады (әрине, егер жалпы модульдің толық мағыналы атауы болса).
  • Бірден көп компиляция жалауын пайдалану ұсынылмайды. Әртүрлі контексттерде орындауды қажет ететін әдістер соншалықты көп емес, және егер мұндай әдістер әлі де қажет болса, онда олар үшін жеке жалпы модульді бөлуге болады.
  • «Серверге қоңырау шалу» жалауы модуль «Серверде» құрастырылған жағдайда ғана мағыналы болады. Сондықтан, әртүрлі мәселелерді болдырмау үшін барлық басқа компиляция жалауларын алып тастау керек.
  • Егер модуль әдістерінде деректерді көлемді өңдеу, мәліметтер базасына оқу және жазу болса, онда жұмыс жылдамдығын арттыру үшін «Артықшылықты» жалаушаны орнату арқылы қол жеткізуді басқаруды өшірген дұрыс. Бұл режим серверде құрастырылған ортақ модульдер үшін ғана қол жетімді.

Пішін модулі

Ол пайдаланушы әрекеттерін өңдеуге арналған, яғни. мәліметтерді енгізуге және оларды енгізудің дұрыстығын өңдеуге байланысты әртүрлі оқиғалар. Модуль қалыпты пішінтолығымен клиентте құрастырылған. Басқарылатын пішін модулі, керісінше, орындау контекстімен анық бөлінген, сондықтан барлық айнымалылар мен әдістерде компиляция директивасы болуы керек. Егер директива анық көрсетілмесе, онда бұл айнымалы немесе әдіс сервер жағында құрастырылады. Пішін модулінде айнымалылар мен әдістерді сипаттайтын бөлімдер, сонымен қатар негізгі бағдарламаға арналған бөлім бар.

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

Бұл модуль көптеген конфигурация объектілеріне тән және жалпы нысан оқиғаларын өңдеуге арналған. Мысалы, объектілерді жазу және жою оқиғалары, құжаттарды орналастыру оқиғасы және т.б.

Кейбір нысан модулінің оқиғалары пішін модулінің оқиғаларын қайталайды. Мысалы, жазбаға қатысты оқиғалар. Дегенмен, пішін модулінің оқиғалары тек белгілі бір пішін нысанында орындалатынын түсіну керек. Жалпы, бұл формалардың бірнешеуі болуы мүмкін. Ал объект модулінің оқиғалары кез келген жағдайда, тіпті объектпен программалық жұмыс кезінде де шақырылатын болады. Сондықтан барлық жағдайда қандай да бір кодты орындау қажет болса, онда бұл үшін объект модулінің оқиғасын қолданған дұрыс.

Нысандық модуль тек серверде құрастырылған. Онда сіз басқа конфигурация модульдерінде қолжетімді болатын экспорттық айнымалылар мен әдістерді анықтай аласыз. Осы қасиеттер мен әдістердің көмегімен біз объектінің функционалдығын айтарлықтай кеңейте аламыз.

Объектілерді басқару модулі

Бұл модуль көптеген конфигурация нысандары үшін бар. Бұл модульдің негізгі мақсаты - жол бойынша енгізу кезінде болатын стандартты таңдау оқиғасын қайта анықтау және менеджердің функционалдығын кеңейту. Модуль сервер жағында құрастырылған. Экспорттау қасиеттері мен әдістерін анықтауға болады. Менеджердің экспорттау әдістерін шақыру объектінің өзін жасауды қажет етпейді.

Жоғарыда айтылғандардың барлығына басқарылатын қолданба режимінде кейбір конфигурация модульдерінің суретін және өзара әдісті шақыру әдістерін қосуға болады. Көрсеткі сәйкес әдісті шақыру үшін баруға болатын бағытты көрсетеді. Диаграммадан көрініп тұрғандай, сервер контексі толығымен жабық. Бірақ клиент контекстінен сервер әдістеріне қол жеткізуге болады.

Схема бойынша шартты белгілер: О.М. Клиент - Клиенттің жалпы модулі; О.М. Сервер – сервердің ортақ модулі; М.Ф. Клиент – Пішін модулінің клиенттік процедуралары; М.Ф. Сервер – Пішін модулінің серверлік процедуралары.