Module structuur

1C: Enterprise 8.2 /
Voor ontwikkelaars /
Code Conventies

Inhoudsopgave

1.1. In de programmamodule (algemene modules, modules van objecten, modules van objectbeheerders, modules van formulieren, opdrachten, etc.) kunnen in het algemeen de volgende secties aanwezig zijn in de volgende sequentie :

Sommige secties zijn mogelijk alleen aanwezig in modules van een bepaald type. Eventhandlers voor formulierelementen kunnen bijvoorbeeld alleen aanwezig zijn in formuliermodules en de sectie met de variabele beschrijving en de initialisatie kunnen niet worden gedefinieerd in niet-globale algemene modules, objectbeheermodules, recordsets, constante waarden en sessiemodule.

De vereiste om de modulecode in secties te verdelen is bedoeld om de leesbaarheid van de code te vergroten en de introductie van wijzigingen in de code door verschillende auteurs te vereenvoudigen ( door ontwikkelaars ) zoals bij de collectieve ontwikkeling en bij de verfijning van applicatie-oplossingen voor specifieke implementaties.

1.2. Sjabloon (leeg voor kopiëren) secties voor veelgebruikte modules:

////////////////////////////////////////////////// ////////////////////////////// // // // // //////////// ////////////////////////////////////////////////// ////////////// ////////////////////////////////////// //////////////////////////////////////////// // // SOFTWARE-INTERFACE // ////////////////////////////////////////////////// //////////////////////////// // SERVICEPROCEDURES EN FUNCTIES

  • De sectie "Programma-interface" bevat exportprocedures en functies die bedoeld zijn voor gebruik door andere configuratieobjecten of andere programma's (bijvoorbeeld via een externe verbinding).
  • De sectie "Hulpprogramma's en functies" bevat de procedures en functies die deel uitmaken van de interne implementatie van een gemeenschappelijke module. In gevallen waarin de gemeenschappelijke module deel uitmaakt van sommige functioneel subsystemen die verschillende metadata-objecten bevatten, kan deze sectie ook service-exportprocedures en -functies bevatten die alleen bedoeld zijn om vanuit andere objecten van dit subsysteem te worden aangeroepen.
    Voor algemene bulkmodules wordt aanbevolen om deze sectie te verdelen in subsecties, volgens het functionele kenmerk. Subsecties worden voorafgegaan door een commentaar, dat wordt aanbevolen om op een vergelijkbare manier uit te geven. Bijvoorbeeld:

////////////////////////////////////////////////// ////////////////////////////// // Update van informatiebasis

1.3. Sjabloon voor het ontwerp van secties voor objectmodules, managers, recordsets, behandelingen, rapporten, enz.:

////////////////////////////////////////////////// ////////////////////////////// // SOFTWARE-INTERFACE ////////////// // ////////////////////////////////////////////////// ////////////// // PROCESSORS VAN GEBEURTENISSEN //////////////////////////////// //////////////////////////////////////////////// // // SERVICEPROCEDURES EN FUNCTIES

  • Sectie "Programma-interface" bevat exportprocedures en functies die bedoeld zijn voor gebruik in andere configuratiemodules of andere programma's (bijvoorbeeld via een externe verbinding). Het is niet nodig om in deze sectie exportfuncties en -procedures te plaatsen die bedoeld zijn om uitsluitend vanuit de modules van het object zelf, zijn vormen en commando's te worden aangeroepen. De procedures voor het vullen van het tabelgedeelte van een document die worden aangeroepen vanuit de vulverwerking in de objectmodule en vanuit het documentformulier in de formulieropdrachthandler, zijn niet de programma-interface van de objectmodule, omdat worden alleen in de module zelf genoemd en vanuit de vormen van hetzelfde object. Ze moeten worden geplaatst in de sectie "Hulpprogramma's en functies."
  • De sectie "Event Handlers" bevat event-handlers voor de module van het object ( Prizavisi , PRO , etc.)
  • De sectie "Hulpprogramma's en functies" heeft hetzelfde doel als in de algemene modules.

1.4. Sectieontwerpsjabloon voor formuliermodules:

////////////////////////////////////////////////// ////////////////////////////// // BEHANDELAAR EVENEMENTEN VAN DE VORM ///////////// ////////////////////////////////////////////////// /////////////// // BEHANDELAARS VAN EVENEMENTEN VAN ELEMENTEN VAN DE VORM VAN DE VORM //////////////////////////// ////////////////////////////////////////////////// // // PROCESSOREN VAN EVENEMENTEN FORMULIEREN TABELLEN ////////////////////////////////////////// ////////////////////////////////////// // PROCESSORS VAN TEAMS VAN DE VORM /////// ////////////////////////////////////////////////// /////////////////////// // SERVICEPROCEDURES EN FUNCTIES

  • De sectie "Form event-handlers" bevat de procedures voor form event-handlers : Een server maken , openen , enz.
  • De sectie "Handlers voor formulierelementen" bevat procedures voor het verwerken van elementen in het hoofdgedeelte van het formulier (alles wat niet gerelateerd is aan de tabellen op het formulier).
  • In de secties "Gebeurtenisafhandelaars van de formuliertabel <naam formuliertabel>" staan ​​procedures voor de handlers van de formuliertabel en de tabelelementen. Voor handlerprocedures moet elke tabel een eigen partitie hebben.
  • De sectie "Form opdrachthandlers" bevat procedures voor formulieropdrachthandlers (waarvan de namen zijn opgegeven in de eigenschap Action van formulieropdrachten).
  • De sectie "Hulpprogramma's en functies" heeft hetzelfde doel als in de algemene modules.

Zie ook: Regels voor het maken van formuliermodules

2. Algemene vereisten voor secties van softwaremodules.

2.1. De modulekop is een opmerking helemaal aan het begin van de module. De kop van de module geeft een korte beschrijving en toepassingsvoorwaarden.
Bijvoorbeeld:

////////////////////////////////////////////////// //////////////////////////// // // Klantprocedures en -functies van algemene betekenis: // - voor het werken met lijsten in formulieren; // - om met het logboek te werken; // - voor het verwerken van acties gebruiker wordt uitgevoerd uitgeven // multiline tekst , bijvoorbeeld opmerkingen in documenten; // - andere. // ////////////////////////////////////////////////// ////////////////////////////////

Voor formuliermodules wordt aanbevolen om een ​​beschrijving van formulierparameters in de koptekst te plaatsen.

2.2. Variabele omschrijving sectie . Variabelenamen worden toegewezen volgens het algemene naam variabelen en het gebruik ervan wordt beschreven in het artikel. Globale variabelen gebruiken in softwaremodules .

Alle modulevariabelen moeten worden voorzien van een opmerking die voldoende is om hun doel te begrijpen. Het wordt aanbevolen om het commentaar op dezelfde regel te plaatsen als de variabele.
bijvoorbeeld:

Pem Valuta Accounting Export; // Valuta waarin de boekhouding wordt bijgehouden Perem Address ondersteunt Export; // E-mailadres waar foutmeldingen worden verzonden

2.3. Software-interface Exportprocedures en functies waaruit de programmeerinterface bestaat, worden onmiddellijk na de beschrijving van de variabelen geplaatst. Dergelijke procedures en functies zijn bedoeld voor gebruik door andere configuratieobjecten of andere programma's (bijvoorbeeld via een externe verbinding) en moeten daarom op een 'zichtbare plaats' in de module worden geplaatst.

Zie ook: Beschrijving van procedures en functies.

2.4.1 Form event-handlers, opdrachten en formulierelementen . Voordat serviceprocedures en functies in de formuliermodule worden uitgevoerd, bevinden zich eventhandlers van het formulier, evenals eventhandlers voor opdrachten en formulierelementen.

Methodische aanbeveling (nuttig advies)

Het wordt aanbevolen dat handlers van één formulierelement samen worden geplaatst, volgens de volgorde van hun volgende in het eigenschappenvenster van de formuliereditor. in de configurator .

2.4.2. Elke gebeurtenis moet zijn eigen handlerprocedure hebben. Als dezelfde acties moeten worden uitgevoerd wanneer gebeurtenissen plaatsvinden in verschillende elementen van het formulier:

  • maak een afzonderlijke procedure (functie) die de nodige acties uitvoert

  • maak voor elk formulierelement een afzonderlijke handler met de standaardnaam

  • roep de vereiste procedure (functie) op van elke handler.

Bijvoorbeeld verkeerd:

& OnClient-procedure voor het uitvoeren van Toepassing (Element) Selectie Parameters = Nieuwe naleving (); Selectie van opties. Plakken ("Op auteur", Op auteur); Selectie van opties Plakken ("Executive", Executive); Lijstselectie instellen (Lijst, Selectieopties); KonetsProtsedury & On Client Procedure voor authoring door verandering (element) in Executive door verandering (ongedefinieerd); KonetsProtsedury

correct:

& OnClient-procedure voor PerformIndicator (item) SetSelection (); Einde procedure & bij client Procedure door auteur Wijziging (element) Installatieselectie (); EndProcedures & OnServer Procedure SetSelection () Selectieparameters = Nieuwe naleving (); Selectie van opties. Plakken ("Op auteur", Op auteur); Selectie van opties Plakken ("Executive", Executive); Lijstselectie instellen (Lijst, Selectieopties); KonetsProtsedury

Deze vereiste is te wijten aan het feit dat de logica van de gebeurtenishandlerprocedures niet bedoeld is voor gebruik in de modulecode, maar rechtstreeks door het platform wordt aangeroepen. Het combineren van deze twee scenario's in één procedure compliceert de logica onnodig en vermindert de robuustheid (in plaats van het beoogde scenario - bij een gebeurtenis van het platform - moet de procedurecode rekenen op andere directe oproepen vanuit de code).

2.5. De gebeurtenishandlers voor de objectmodules en de objectmanager worden na de export geplaatst, maar vóór de hulpprogramma-procedures en modulefuncties.

Methodische aanbeveling (nuttig advies)

Het wordt aanbevolen om handlers te plaatsen volgens de volgorde van hun volgende in de beschrijving van de ingesloten taal.

2.6. Hulpprogramma's en modulefuncties die geen gebeurtenishandlers zijn, maar de interne implementatie van een module vormen, worden in de module naast eventhandlers geplaatst.

In gevallen waarin een gemeenschappelijke module deel uitmaakt van een functioneel subsysteem dat verschillende metadata-objecten bevat, kan deze sectie ook service-exportprocedures en -functies bevatten die alleen bedoeld zijn om vanuit andere objecten van dit subsysteem te worden aangeroepen.

Aanbevolen wordt om procedures en functies door de aard of werklogica aan elkaar te koppelen. Het wordt niet aanbevolen om de procedures en functies van de module expliciet te groeperen in server, client en functies zonder context, omdat een dergelijke "technologische" ordening het begrip van de logica van de module bemoeilijkt, waardoor de aandacht van de ontwikkelaar wordt afgeleid naar de details van de implementatie.

2.7. De initialisatiesectie bevat instructies die de variabelen van de module of het object (formulier) initialiseren. Bijvoorbeeld:

Ondersteuningsadres = "[email protected]"; // Adres voor contact met technische ondersteuning Initialisatie uitvoeren ();

Andere materialen over het onderwerp:
database bijwerken . event handlers . software-interface . handlers . procedures . sjabloon . hoofd . einde procedure . functies . interface . beschrijving . klembord . kopiëren . sectie . uitwisseling . vorm . een object . het element . configureren . configuratie . document

Materialen uit de sectie: 1C: Enterprise 8.2 / Ontwikkelaars / Overeenkomsten bij het schrijven van code

Andere materialen over het onderwerp:

Beschrijving van procedures en functies

Kenmerken van schaling voor het geselecteerde object

Overdracht van configuraties op het 1C: Enterprise 8.2-platform naar het 1C: Enterprise 8.3-platform zonder compatibiliteitsmodus met versie 8.2

Namen van procedures en functies

Gebruik van de geprivilegieerde modus


We vinden: module 1c structuur , serviceprocedures en functies , module, manager module oproepprocedure 1c 8 2, hoe een procedure uit een andere module 1c aan te roepen, Engelse modulekop, 1c uit het verwerkingsformulier oproepmoduleprocedure, 1c 8 2 oproepprocedure uit managermodule, 1


1C: Enterprise 8