структура модуля

1С: Прадпрыемства 8.2 /
распрацоўнікам /
Пагаднення пры напісанні кода

змест

1.1. У праграмным модулі (агульныя модулі, модулі аб'ектаў, модулі мэнэджараў аб'ектаў, модулі формаў, каманд і да т.п.) у агульным выпадку могуць прысутнічаць наступныя раздзелы ў прыведзенай ніжэй паслядоўнасці :

Некаторыя раздзелы могуць прысутнічаць толькі ў модулях пэўнага выгляду. Напрыклад, апрацоўшчыкі падзей элементаў формаў могуць прысутнічаць толькі ў модулях формаў, а раздзел апісання зменных і падзел ініцыялізацыі не могуць быць вызначаны ў неглобальных агульных модулях, модулях мэнэджараў аб'ектаў, набораў запісаў, значэнняў канстант і модулі сеансу.

Патрабаванне аб падзеле кода модуля на раздзелы заклікана павысіць чытальнасць кода і спрасціць ўнясенне змяненняў у код рознымі аўтарамі ( распрацоўшчыкамі ) Як пры калектыўнай распрацоўцы, так і пры дапрацоўцы прыкладных рашэнняў на канкрэтных ўкаранення.

1.2. Шаблон (нарыхтоўка для капіявання) раздзелаў для агульных модуляў:

////////////////////////////////////////////////// ////////////////////////////// // // //////////////// ////////////////////////////////////////////////// ////////////// //////////////////////////////////// //////////////////////////////////////////// // праграмны інтэрфейс // ////////////////////////////////////////////////// //////////////////////////// // службовае ПРАЦЭДУРЫ І ФУНКЦЫІ

  • Раздзел «Праграмны інтэрфейс» змяшчае экспартныя працэдуры і функцыі, прызначаныя для выкарыстання іншымі аб'ектамі канфігурацыі або іншымі праграмамі (напрыклад, праз знешняе злучэнне).
  • Раздзел «Службовыя працэдуры і функцыі» змяшчае працэдуры і функцыі, якія складаюць ўнутраную рэалізацыю агульнага модуля. У тых выпадках, калі агульны модуль з'яўляецца часткай некаторай функцыянальнай падсістэмы, якая ўключае ў сябе некалькі аб'ектаў метададзеных, у гэтым раздзеле таксама могуць быць размешчаныя службовыя экспартныя працэдуры і функцыі, прызначаныя толькі для выкліку з іншых аб'ектаў дадзенай падсістэмы.
    Для аб'ёмных агульных модуляў рэкамендуецца разбіваць гэты раздзел на падраздзелы, па функцыянальнай прыкмеце. Падраздзелы папярэднічаюцца каментаром, які рэкамендуецца афармляць аналагічным чынам. напрыклад:

////////////////////////////////////////////////// ////////////////////////////// // Абнаўленне інфармацыйнай базы

1.3. Шаблон афармлення падзелаў для модуляў аб'ектаў, менеджэраў, набораў запісаў, апрацовак, справаздач і да т.п .:

////////////////////////////////////////////////// ////////////////////////////// // праграмны інтэрфейс //////////////// ////////////////////////////////////////////////// ////////////// // апрацоўнікаў падзей //////////////////////////////// //////////////////////////////////////////////// // службовае ПРАЦЭДУРЫ І ФУНКЦЫІ

  • Раздзел «Праграмны інтэрфейс» змяшчае экспартныя працэдуры і функцыі, прызначаныя для выкарыстання ў іншых модулях канфігурацыі або іншымі праграмамі (напрыклад, праз знешняе злучэнне). Не варта ў гэты раздзел змяшчаць экспартныя функцыі і працэдуры, якія прызначаны для выкліку выключна з модуляў самога аб'екта, яго формаў і каманд. Напрыклад, працэдуры запаўнення таблічнай часткі дакумента, якія выклікаюцца з апрацоўкі запаўнення у модулі аб'екта і з формы дакумента ў апрацоўшчыку каманды формы не з'яўляюцца праграмным інтэрфейсам модуля аб'екта, бо выклікаюцца толькі ў самым модулі і з формаў гэтага ж аб'екта. Іх варта размяшчаць у раздзеле «Службовыя працэдуры і функцыі».
  • Раздзел «Апрацоўнікі падзей» змяшчае апрацоўшчыкі падзей модуля аб'екта (ПриЗаписи, ПриПроведении і інш.)
  • Раздзел «Службовыя працэдуры і функцыі» мае такое ж прызначэнне, як і ў агульных модулях.

1.4. Шаблон афармлення падзелаў для модуляў формаў:

////////////////////////////////////////////////// ////////////////////////////// // апрацоўнікаў падзей ФОРМЫ /////////////// ////////////////////////////////////////////////// /////////////// // апрацоўнікаў падзей ЭЛЕМЕНТАЎ шапка ФОРМЫ //////////////////////////// ////////////////////////////////////////////////// // // апрацоўнікаў падзей Табліца ФОРМЫ ////////////////////////////////////////// ////////////////////////////////////// // апрацоўшчык КАМАНД ФОРМЫ /////// ////////////////////////////////////////////////// /////////////////////// // службовае ПРАЦЭДУРЫ І ФУНКЦЫІ

  • Раздзел «Апрацоўнікі падзей формы» змяшчае працэдуры-апрацоўшчыкі падзей формы: ПриСозданииНаСервере, прыадчыненым і да т.п.
  • Раздзел «Апрацоўнікі элементаў шапкі формы» змяшчае працэдуры-апрацоўшчыкі элементаў, размешчаных у асноўнай часткі формы (усе, што не звязана з табліцамі на форме).
  • У раздзелах "Апрацоўнікі падзей табліцы формы <імя табліцы формы>» размяшчаюцца працэдуры-апрацоўшчыкі табліц формы і элементаў табліц. Для працэдур-апрацоўшчыкаў кожнай табліцы павінен быць створаны свой падзел.
  • Раздзел «Апрацоўнікі каманд формы» змяшчае працэдуры-апрацоўшчыкі каманд формы (імёны якіх задаюцца ва ўласцівасці Дзеянне каманд формы).
  • Раздзел «Службовыя працэдуры і функцыі» мае такое ж прызначэнне, што і ў агульных модулях.

Гл. Таксама: Правілы стварэння модуляў формаў

2. Агульныя патрабаванні да раздзелаў праграмных модуляў.

2.1. Загаловак модуля ўяўляе сабой каментар у самым пачатку модуля. У загалоўку модуля тэкст ягонай кароткае апісанне і ўмовы прымянення.
напрыклад:

////////////////////////////////////////////////// ////////////////////////////// // Кліенцкія працэдуры і функцыі агульнага прызначэння: // - для працы са спісамі ў формах; // - для працы з часопісам рэгістрацыі; // - для апрацоўкі дзеянняў карыстальніка у працэсе рэдагавання // шматрадковага тэксту , Напрыклад каментара ў дакументах; // - іншае. // //////////////////////////////////////////////// ////////////////////////////////

Для модуляў формаў у загалоўку рэкамендуецца размяшчаць апісанне параметраў формы.

2.2. Раздзел апісання зменных. Імёны зменных прызначаюцца паводле агульных правілах адукацыі імёнаў зменных , А іх выкарыстанне апісваецца ў артыкуле Выкарыстанне глабальных зменных у праграмных модулях .

Усе зменныя модуля павінны быць забяспечаныя каментаром, дастатковым для разумення іх прызначэння. Каментар рэкамендуецца размяшчаць у той жа радку, дзе абвяшчаецца пераменная.
прыклад:

Перем ВалютаУчета Экспарт; // Валюта, у якой вядзецца ўлік перамены АдресПоддержки Экспарт; // Адрас электроннай пошты, куды накіроўваюцца паведамленні пра памылкі

2.3. Праграмны інтэрфейс. Экспартныя працэдуры і функцыі, якія складаюць яго праграмны інтэрфейс, размяшчаюцца адразу ж пасля апісання зменных. Такія працэдуры і функцыі прызначаныя для выкарыстання іншымі аб'ектамі канфігурацыі або іншымі праграмамі (напрыклад, праз знешняе злучэнне), таму павінны быць размешчаны ў модулі на "бачным месцы".

Гл. Таксама: Апісанне працэдур і функцый

2.4.1 Апрацоўнікі падзей формы, каманд і элементаў формы. Перад службовымі працэдурамі і функцыямі ў модулі формы размяшчаюцца апрацоўшчыкі падзей формы, а таксама апрацоўшчыкі падзей каманд і элементаў формы.

Метадычная рэкамендацыя (карысны савет)

Рэкамендуецца апрацоўшчыкі аднаго элемента формы размяшчаць разам, прытрымліваючыся, пры гэтым, парадку іх прытрымлівання ў панэлі уласцівасцяў рэдактара формы у канфігуратараў .

2.4.2. У кожнага падзеі павінна быць прызначаная свая працэдура-апрацоўшчык. Калі аднолькавыя дзеянні павінны выконвацца пры ўзнікненні падзей у розных элементах формы варта:

  • стварыць асобную працэдуру (функцыю), якая выконвае неабходныя дзеянні

  • для кожнага элемента формы стварыць асобны апрацоўшчык з імем, якi прызначаецца па змаўчанні

  • з кожнага апрацоўшчыка выклікаць патрабаваную працэдуру (функцыю).

Напрыклад, няправільна:

& НаКлиенте Працэдура ПоИсполнителюПриИзменении (Элемент) ПараметрыОтбора = Новы Адпаведнасць (); ПараметрыОтбора .Вставить ( "ПоАвтору", ПоАвтору); ПараметрыОтбора .Вставить ( "ПоИсполнителю", ПоИсполнителю); УстановитьОтборСписка (Спіс, ПараметрыОтбора); КонецПроцедуры & НаКлиенте Працэдура ПоАвторуПриИзменении (Элемент) ПоИсполнителюПриИзменении (нявызначаных); КонецПроцедуры

правільна:

& НаКлиенте Працэдура ПоИсполнителюПриИзменении (Элемент) УстановитьОтбор (); КонецПроцедуры & НаКлиенте Працэдура ПоАвторуПриИзменении (Элемент) УстановитьОтбор (); КонецПроцедуры & НаСервере Працэдура УстановитьОтбор () ПараметрыОтбора = Новы Адпаведнасць (); ПараметрыОтбора .Вставить ( "ПоАвтору", ПоАвтору); ПараметрыОтбора .Вставить ( "ПоИсполнителю", ПоИсполнителю); УстановитьОтборСписка (Спіс, ПараметрыОтбора); КонецПроцедуры

Гэта патрабаванне абумоўлена тым, што лагічна працэдуры-апрацоўшчыкі падзей не прызначаныя для выкарыстання ў кодзе модуля, а выклікаюцца непасрэдна платформай. Змешванне ж гэтых двух сцэнарыяў ў адной працэдуры неапраўдана ўскладняе яе логіку і зніжае яе ўстойлівасць (замест аднаго прадугледжанага сцэнара выкліку - па падзеі з платформы - код працэдуры павінен разлічваць і на іншыя "прамыя" выклікі з кода).

2.5. Апрацоўшчыкі падзей модуляў аб'екта і мэнэджэра аб'екта размяшчаюцца пасля экспартных, але да службовых працэдур і функцый модуля.

Метадычная рэкамендацыя (карысны савет)

Рэкамендуецца размяшчаць апрацоўшчыкі, прытрымліваючыся парадку іх прытрымлівання ў апісанні убудаванага мовы.

2.6. Службовыя працэдуры і функцыі модуля, якія не зьяўляюцца Апрацоўшчык падзей, а складаюць ўнутраную рэалізацыю модуля, размяшчаюцца ў модулі следам за апрацоўшчык падзей.

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

Працэдуры і функцыі, звязаныя паміж сабой па характары або па логіцы працы рэкамендуецца размяшчаць разам. Не рэкамендуецца відавочна групаваць працэдуры і функцыі модуля на серверныя, кліенцкія і функцыі без кантэксту, так як такое «тэхналагічнае» парадкаванне абцяжарвае разуменне логікі модуля, адцягваючы ўвагу распрацоўніка на дэталі яе рэалізацыі.

2.7. Раздзел ініцыялізацыі змяшчае аператары, ініцыялізуецца зменныя модуля або аб'ект (форму). напрыклад:

АдресПоддержки = "[email protected]"; // Адрас для звароту ў службу тэхнічнай падтрымкі ВыполнитьИнициализацию ();

Іншыя матэрыялы па тэме:
абнаўленне інфармацыйнай базы , апрацоўшчыкі падзей , праграмны інтэрфейс , апрацоўшчыкі , працэдуры , шаблон , загаловак , конецпроцедуры , функцыі , інтэрфейс , апісанне , буфер абмену , капіяваць , раздзел , абмен , формы , аб'ект , элемент , канфігураванне , канфігурацыі , дакумент

Матэрыялы з падзелу: 1С: Прадпрыемства 8.2 / Распрацоўнікам / Пагаднення пры напісанні кода

Іншыя матэрыялы па тэме:

Апісанне працэдур і функцый

Асаблівасці маштабавання па тым жа аб'екце

Пераклад канфігурацый на платформе "1С: Прадпрыемства 8.2" на платформу "1С: Прадпрыемства 8.3" без рэжыму сумяшчальнасці з версіяй 8.2

Імёны працэдур і функцый

Выкарыстанне прывілеяванага рэжыму


Нас знаходзяць: структура модуля 1с гэта, служебныепроцедурыифункции, модуля, модуль мэнэджара выклікаць працэдуру 1с 8 2, як выклікаць працэдуру з іншага модуля 1с, загалоўка англійскай модуляў, 1с з формы апрацоўкі выклікаць працэдуру модуля, 1с 8 2 выклікаць працэдуру з модуля мэнэджэра, 1


1С: Прадпрыемства 8