Mechanisme voor het delen van gegevens 1c. Gegevensscheiding in bsp. Voorloopnullen weergeven

[Knop 7710967300 BUCH RB] Connect = Srvr = "% servernaam%" Ref = "% base_name%"; Extra parameters = / Z "-0, -0, + 7710967300";

Na /Z geven we op volgorde de algemene details aan. Aangezien er al twee algemene systeemkenmerken zijn in onze typische boekhoudafdeling, specificeren we de waarde -0 ervoor zodat ze niet worden gebruikt, en als de derde (die we hebben gemaakt) passeren we de INN.

1000 en 1 selectievakje

Nu moet u bepalen hoeveel van de gegevens voor alle gebieden gemeenschappelijk zijn. Dit alles wordt geconfigureerd via de configurator. In de eigenschappen van het algemene attribuut dat we zojuist hebben gemaakt, is er een "Compositie" -item dat een kleine lijst met 800 parameters opent:

De selectie van parameters wordt overgelaten aan uw discretie, discretie en omgeving. Hier is onze versie (meer precies, er zijn 20.000 pixels).

Het scheidingsteken maakt het ook mogelijk om voor elke database een aparte lijst met gebruikers op te zetten - dit kan handig zijn als je honderden gebruikers hebt - wanneer je een bepaalde database binnengaat, hoef je niet door deze lijst te scrollen om bloederige blaren te krijgen. We gebruiken dit niet omdat we transparante autorisatie hebben geconfigureerd.

Gegevens uit huidige databases verwijderen

Voor het downloaden van gegevens uit actuele databases maken we gebruik van een universele XML-uitwisseling. Je kunt de database niet zomaar pakken en uitladen, je moet de uitwisselingsregels instellen, anders kunnen er fouten en conflicten optreden (en zullen zeker optreden) tijdens het laden, en zal de tweede database het gewoon niet redden. Bedenk dat we het basisgebied voor elke organisatie verdelen en in ons geval werken dergelijke uitwisselingsregels. Als u besluit een ander scheidingsteken te gebruiken, moet u uw hersens en selectievakjes gebruiken. Het belangrijkste is om geen standaard lossing te gebruiken - dit zal leiden tot duplicatie van alle vooraf gedefinieerde records.

Opmerking voor de gastvrouw: mappen en documenten kunt u beter apart uploaden - zo voorkomt u onnodige fouten bij het laden.

Gegevens in een gesplitste database laden

We beginnen 1C met de parameter / Z "-0, -0, +% your separator%", die het scheidingsteken aangeeft van de organisatie waarvan we de gegevens gaan laden. We starten universele uitwisseling en voeden het de bestanden die tijdens het uploaden zijn ontvangen: eerst mappen, dan documenten. We herhalen deze bewerking voor elk basisgebied.

Om de taak te vereenvoudigen, voeren we het lossen in bulk uit, waarbij we eerst een licht gecorrigeerde standaardverwerking starten via de opdrachtregel (/ Uitvoeren c: \ lossen.epf). Vervolgens uploaden we de resulterende bestanden handmatig naar de gesplitste database.

Hoe meer tijd te besteden om minder tijd door te brengen?

Het scheidingsproces gaat niet snel. Bedenk dat we nu meer dan 500 organisaties hebben, maar in een paar weken zijn we erin geslaagd om er slechts 70 te splitsen. We weten echter zeker dat we over zes maanden ons verleden zelf zullen bedanken voor het verrichte werk en veel bespaarde tijd en poging.

Accountants merken de overgang van organisaties van een reguliere basis naar een verdeelde niet, voor hen is het proces pijnloos. Booty burns alleen voor beheerders :)

Bijwerkingen: ruimtebesparing 1 op 20, indirecte snelheidsverhoging is van onschatbare waarde. In absolute aantallen: 50 organisaties nemen 2 GB SQL-ruimte in beslag, terwijl één database 800 MB of meer in beslag neemt.

De beloofde vlieg in de zalf, zelfs vier:

  • als een van de gebruikers gegevens in één organisatie heeft verprutst, moet u de hele gesplitste database terugdraaien - u kunt niet zomaar één gegevensgebied nemen en terugdraaien
  • updates moeten grondiger worden getest, vooral die welke mappen toevoegen of wijzigen
  • als u de database naar de klant moet overbrengen (of de belastingdienst moet leegmaken :), moet u de tegenovergestelde procedure volgen: de organisatie uit de verdeelde database verwijderen met behulp van universele uitwisseling, deze vervolgens in een lege reguliere database laden en opslaan in . dt-bestand
  • het is onmogelijk om geplande taken in een verdeelde database te beheren (het zal bijvoorbeeld niet mogelijk zijn om automatisch wisselkoersen bij te werken)
De eerste drie lepels zijn niet zo bitter - ze zorgen er alleen maar voor dat we meer opletten. Maar wat we met de vierde moeten doen, weten we nog niet, maar we zijn ijverig aan het onderzoeken.

Aandacht! Dit is een inleidende versie van de les, waarvan de materialen mogelijk onvolledig zijn.

Inloggen als student

Log in als leerling om toegang te krijgen tot schoolmateriaal

Interne programmeertaal 1C 8.3 voor beginnende programmeurs: formaat in 1C

Bij het programmeren in 1C moet u vaak (in dezelfde rapporten) waarden van verschillende typen weergeven (strings, datums, cijfers ...). Elk van de betekenissen heeft verschillende representaties.

Dezelfde datum "01.01.2005" kan bijvoorbeeld worden weergegeven als een tekenreeks als:

  1. "01.01.2005"
  2. "1 januari 2005"
  3. "01.01.05"

Dit zijn allemaal tekenreeksrepresentaties met dezelfde waarde, d Voor de vorming waarvan een speciale functie wordt gebruikt in 1C Formaat.

De formaatfunctie gebruiken in 1C

Groepering van cijfers uitschakelen

Stel dat we het getal 10000 willen uitvoeren.

Als we schrijven:

Een opmaakreeks bestaat over het algemeen uit twee delen, gescheiden door een gelijkteken. Links van de is gelijk aan de naam van de parameter die wordt ingesteld (zie help of voorbeelden), en rechts staat de waarde van deze parameter.

In het bovenstaande voorbeeld heeft de notatiereeks "CG = 0" een CG-parameter en een waarde van 0. Deze combinatie annuleert de groepering van de cijfercijfers. En, zoals u kunt zien, wordt nu 10000 weergegeven.

Voorloopnullen weergeven

Het is ook een veelvoorkomende taak om voorloopnullen voor een cijfer af te drukken. Stel dat u het getal 5 wilt weergeven met een voorloopnul ervoor, dat wil zeggen in de vorm "05":

Rapport (Formaat (5, "CHT = 2; CHVN =")); // afdrukken 05

Laten we eens kijken naar de format string "CHT = 2; CHVN =". Het bestaat uit twee opmaakregels, gescheiden door puntkomma's. Laten we ze allemaal afzonderlijk analyseren.

De regel "CHT = 2" stelt het totale aantal weergegeven decimalen van de gehele en fractionele delen in. Het totale aantal posities dat het nummer zal innemen wanneer het wordt weergegeven, is dus gelijk aan 2.

De regel "ЧВН =", zoals volgt uit de help, geeft aan de functie het formaat aan, dat als het nummer de opgegeven lengte niet bereikt (zoals in ons geval, omdat we 2 posities hebben aangegeven en 5 er slechts één inneemt), voorloopnullen moeten worden gebruikt. De eigenaardigheid van deze opmaakstring is dat deze alleen een parameternaam en een gelijkteken heeft, maar dat doet er niet toe. U leest een inleidende versie van de les, volledige lessen zijn te vinden.

De combinatie van de twee formaatstrings geeft het gewenste resultaat "05" in plaats van "5".

Wijzig het scheidingsteken voor gehele en fractionele delen

Stel dat we fractionele getallen moeten weergeven met een asterisk-scheidingsteken in plaats van een punt. Dat wil zeggen, zodat 25.46 wordt weergegeven als "25 * 46":

De format string is de DF parameter en de dddd waarde, wat de functie aangeeft Formaat een lange weergave van de dag van de week weergeven (let op hoeveel d's het bevat).

Datum maand weergave

De beschrijving van de maand op datum wordt als volgt weergegeven:

Rapport (Formaat ("20050101", "DF = MMMM")); // geeft januari weer

De format string heeft dezelfde DF parameter als in het vorige geval. Maar de betekenis is anders. Nu is het gelijk aan MMMM.

Doe de test

Test starten

1. Formaat ("19050505", "DF = MMMM") zal terugkeren

2. Tekenreeks opmaken die het scheidingsteken van de fractionele en integere delen verandert in ^

3. Zodat in plaats van 5 de Format-functie "00005" retourneert, is een format-string geschikt

4. Zodat in plaats van 10 000 de Format-functie "10000" retourneert, is de format-string geschikt

5. De functie Opmaak retourneert een waarde van het type

In het 1C: Enterprise-systeem is het mogelijk om de boekhouding voor meerdere ondernemingen in één informatiebank bij te houden. Hiervoor wordt het boekhoudkundig scheidingsteken gebruikt.

Het gebruik van het boekhoudscheidingsteken is gespecificeerd in de configuratie. Als de configuratie het gebruik van het boekhoudscheidingsteken definieert, is het in het scorebord mogelijk om een ​​specifieke waarde voor het boekhoudkundig scheidingsteken te selecteren, op basis waarvan de boekhoudtotalen worden uitgegeven.

Om de waarde van het boekhoudscheidingsteken in te stellen, gebruikt u het item Boekhoudscheidingsteken menu "Acties" of de overeenkomstige knop op de werkbalk. In dit geval wordt een dialoogvenster voor het instellen van de waarde van het boekhoudscheidingsteken op het scherm weergegeven.

In veld Boekhoudscheidingstekenwaarde u kunt een specifieke waarde opgeven voor het boekhoudscheidingsteken. Hoe de waarde wordt ingevoerd, hangt af van het type boekhoudscheidingsteken dat in de configuratie is gedefinieerd. In de regel is dit een naslagwerk. Gebruik in dit geval om een ​​waarde te selecteren de selectieknop en selecteer de gewenste waarde uit de lijst met waarden in de zoekopdracht.

Knop "Lege waarde" stelt u in staat om de ingevoerde waarde van het boekhoudkundige scheidingsteken te wissen, dat wil zeggen, om een ​​lege waarde in te stellen. Dit is logisch als er naast de specifieke waarden van het boekhoudkundig scheidingsteken ook een lege waarde is gebruikt bij transacties.

Selectievakje "Overal" stelt u in staat om de weergavemodus van totalen in te stellen voor alle waarden van het boekhoudscheidingsteken in het bedrag.

Om de geselecteerde waarden in te stellen, drukt u op de knop "OKE"... Om instellingswaarden te annuleren - de knop "Annuleren".

Na het instellen van de geselecteerde waarden, toont het scorebord totalen voor een specifieke waarde van het boekhoudkundige scheidingsteken of voor een lege waarde of voor alle waarden in de som, afhankelijk van de optie die in het dialoogvenster is geselecteerd.

Ooit hebben we mechanismen besproken voor het beperken van gebruikerstoegang in 1C en in het bijzonder.

Het stelt de gebruiker in staat om de gebruiker niet met alle documenten te laten werken, maar alleen met die waarin een specifieke organisatie of magazijn is aangegeven. De selecties worden dynamisch gemaakt en leggen daarom een ​​zekere belasting op het werk van de database.

Met de eigenschap van de gemeenschappelijke scheidingstekenvariabele - Scheiding van 1C-gebruikers - kunt u de beschikbaarheid van de lijst met gebruikers instellen, afhankelijk van het gebruik van scheidingstekens.

Als het scheidingsteken voor een gebruiker is ingeschakeld, is het zichtbaar in de lijst met gebruikers in 1C Enterprise-modus - anders is het niet zichtbaar.

Op deze manier kunt u verschillende lijsten met gebruikers organiseren voor verschillende delen van de basis.

Met de eigenschap van de gemeenschappelijke scheidingstekenvariabele - Scheiding van 1C-authenticatie - kunt u gebruikers met dezelfde gebruikersnamen maken voor verschillende delen van de database.

Voorwaardelijke scheiding 1C

Voorwaardelijke scheiding 1C stelt u in staat het scheidingsteken in en uit te schakelen op basis van databasegegevens. U kunt dus ketens van onderling afhankelijke scheidingstekens maken die in een of ander geval dynamisch werken.

Om 1C voorwaardelijke scheiding in te schakelen, moet u specificeren in de eigenschap van de gemeenschappelijke scheidingstekenvariabele - 1C voorwaardelijke scheiding - die verantwoordelijk is voor het bepalen of 1C-scheiding is ingeschakeld.

Het is mogelijk om een ​​constante te gebruiken met het booleaanse type of een referentieattribuut met het booleaanse type.

Belangrijk - voor deze constante / deze verwijzing moet u het gebruik uitschakelen (selecteer Niet gebruiken) als onderdeel van de scheidingstekens, alleen dan is het mogelijk om het te selecteren.

Algemene rekwisieten in 1C 8.3 is een platformmetadata-object waarmee u één attribuut kunt gebruiken voor vele configuratie-objecten (directories, documenten, rekeningschema's, enz.). Het object is voornamelijk gemaakt om het werk van de ontwikkelaar en de gegevensscheiding te vergemakkelijken.

Algemene details waren oorspronkelijk geïmplementeerd in versie 1C 7.7, maar de ontwikkelaars hebben dit niet meteen opgenomen in het platform van versie 8. Het mechanisme van algemene details werd pas in release 8.2.14 door de 1C-ontwikkelaars geïntroduceerd.

Het is erg handig om algemene vereisten toe te voegen om standaardobjecten in de configuratie niet te wijzigen, ik gebruik ze vaak samen met.

Na het toevoegen van een algemeen kenmerk, kan het worden gebruikt in query's en worden weergegeven in de vorm van objecten - uiterlijk verschilt het niet van gewone rekwisieten.

De enige beperking van algemene details is dat ze niet kunnen worden gebruikt in.

Laten we eens kijken naar de basisinstellingen en eigenschappen van algemene attributen, die verschillen van andere configuratieobjecten:

Verbinding- een lijst met objecten waarvoor het gemeenschappelijk attribuut zal worden gebruikt, de instelling lijkt op de instelling van een uitwisselingsplan.

Ontvang gratis 267 1C-videotutorials:

Automatisch gebruik- de instelling bepaalt of een gemeenschappelijk attribuut wordt gebruikt voor die objecten waarvoor de gebruiksmodus "Automatisch" is gespecificeerd.

Het delen van gegevens- we zullen deze instelling apart bekijken.

Scheiding van gegevens in 1C met behulp van gemeenschappelijke rekwisieten

Het delen van gegevens- een mechanisme vergelijkbaar met het mechanisme. De prestaties van dit mechanisme zijn echter efficiënter en gemakkelijker te configureren.

Met het mechanisme kunt u de weergave aanpassen van alleen elementen die de gebruiker kan zien. U kunt bijvoorbeeld alle objecten (documenten, mappen, etc.) waar een bepaalde organisatie gevestigd is, afbakenen.

Gegevensscheiding instellen met algemene 1C-details

Voor instelling in het algemene attribuut moet u de gegevensscheiding specificeren - Verdeling... Onmiddellijk na het klikken, zal het systeem aanbieden om standaard boekhoudkundige parameters te creëren:

In dit geval moet u bij het opstarten van het systeem de sessieparameters specificeren, hoe u dit moet doen, met een voorbeeld dat in het artikel werd beschreven.

Hiermee is de installatie voltooid - de gebruiker heeft alleen toegang tot de informatie die is opgegeven in de geselecteerde sessieparameters.

Een voorbeeld van het gebruik van gewone rekwisieten

Laten we de instelling van de algemene rekwisieten in 1C 8.3 analyseren aan de hand van het voorbeeld van een frameconfiguratie en rekwisieten Organisatie:

Er zijn 3 documenten in het systeem waar het nodig is om de organisatievariabele aan te geven: dit is de Ontvangstfactuur, Onkostenfactuur, Salarisopbouw.

De opzet is eenvoudig:

  1. Maak een nieuw algemeen kenmerk, specificeer het type - DirectoryLink.Organization.
  2. In de compositie plaatsen we voor onze documenten - Gebruiken.

Dat is alles, de setup is klaar!

Laten we het resultaat zien:

Het systeem geeft het algemene attribuut "als zijn eigen" weer: in verzoeken, en in de formulierattributen, en op andere plaatsen. Dit is de magie! 🙂

Algemene vereiste 1C 8.3 is niet toegevoegd