Ανοίξτε ένα αρχείο από την προσωρινή αποθήκευση 1c. Λήψη της διεύθυνσης στηρίγματος

Σχεδόν κάθε πληροφορία μπορεί να αποθηκευτεί σε ένα κατάστημα αξίας, π.χ.

... εικόνες (φωτογραφίες):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerations.Types of Additional Information of Objects.Image; Storage = NewValueStorage(NewPicture, NewDataCompression()); CurrentImage.Storage = Storage.Get();

// σε αυτό το μέρος εμφανίζει τα πάντα... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...έγγραφο υπολογιστικού φύλλου:

TabDoc=Νέο TabularDocument; TabDoc.Output(FormElements.TabularDocumentField1); Storage=NewValueStorage(TabDoc); Γράφω();

Τέλος Διαδικασίας

Διαδικασία RestoreFromStoragePress(Element)

TabDoc=Storage.Get(); Εάν το TabDoc<>Undefined ThenFormElements.TabularDocumentField1.Output(TabDoc); τέλος εαν;

Τέλος Διαδικασίας

...αυθαίρετα αρχεία (δυαδικά δεδομένα):

XZ = NewValueStorage(NewBinaryData(αρχείο));

Το Eight υποστηρίζει τη συμπίεση των δεδομένων που τοποθετούνται στην αποθήκευση:

XZ = NewValueStorage(NewBinaryData(αρχείο),NewDataCompression(9));

... εξωτερική επεξεργασία και αναφορά:

Διαδικασία LoadProcessingIntoStorage(PropsStorageType)

CompressionRate = NewDataCompression(9); //9 μέγιστο PropsStorageType = New StorageValues(New BinaryData("c:\reports\report.epf", Compression Rate));

Τέλος Διαδικασίας

Διαδικασία StartProcessingFromStorage(PropsStorageType)

TemporaryFileName = TemporaryFileDirectory()+"report.epf"; BinaryData = PropsStorageType.Get(); BinaryData.Write(TemporaryFileName); ExternalProcessing = ExternalProcessing.Create(TemporaryFileName); ExternalProcessing.GetForm().Open();

Τέλος Διαδικασίας

Εργασία με αποθήκευση

Εάν ήταν Δυαδικά Δεδομένα, τότε μπορεί να γίνει επαναφορά από την αποθήκευση τιμών χρησιμοποιώντας τη μέθοδο Get και να εγγραφεί σε ένα αρχείο χρησιμοποιώντας τη μέθοδο Write().

Αν TypeValue (Αποθήκευση)<>Πληκτρολογήστε ("BinaryData") Στη συνέχεια

BinaryData = Storage.Get();

BinaryData = Αποθήκευση;

τέλος εαν; BinaryData.Write(FileName);

Εάν ήταν, για παράδειγμα, ένα έγγραφο του Word (αρχείο doc ή άλλος τύπος εγγεγραμμένου αρχείου), τότε μπορεί να ανοίξει ως εξής:

LaunchApplication(FileName);

Για να διαγράψετε ένα πεδίο τύπου Value Storage, πρέπει να το εκχωρήσετε Undefined:

PropsStorage = Απροσδιόριστο;

Εργασία με αρχεία και εικόνες στην ενσωματωμένη γλώσσα 1C:Enterprise 8

Σκοπός

Η διαχειριζόμενη εφαρμογή εφαρμόζει έναν νέο μηχανισμό για την εργασία με αρχεία. Παρέχει ανταλλαγή αρχείων μεταξύ της βάσης πληροφοριών και της εφαρμογής πελάτη. Η ιδιαιτερότητα αυτού του μηχανισμού είναι ότι έχει σχεδιαστεί για χρήση σε thin client και web client και έχει σχεδιαστεί λαμβάνοντας υπόψη τους περιορισμούς στην εργασία με αρχεία που επιβάλλονται από προγράμματα περιήγησης Web.

Ο μηχανισμός είναι ένα σύνολο μεθόδων που μπορούν να χρησιμοποιηθούν για την τοποθέτηση δεδομένων που είναι αποθηκευμένα τοπικά στον υπολογιστή του χρήστη σε μια προσωρινή αποθήκευση της βάσης πληροφοριών, τη μεταφορά αυτών των πληροφοριών από την προσωρινή αποθήκευση στη βάση δεδομένων και τη λήψη τους πίσω στον υπολογιστή του χρήστη. Τα πιο συνηθισμένα προβλήματα εφαρμογής που επιλύονται με αυτόν τον μηχανισμό είναι η αποθήκευση συνοδευτικών πληροφοριών, για παράδειγμα, εικόνες αγαθών, έγγραφα που σχετίζονται με συμβόλαια κ.λπ.

Πεδίο μεθόδου

Προσωρινή αποθήκευση

Η προσωρινή αποθήκευση είναι μια εξειδικευμένη περιοχή της βάσης πληροφοριών στην οποία μπορούν να τοποθετηθούν δυαδικά δεδομένα. Ο κύριος σκοπός είναι η προσωρινή αποθήκευση πληροφοριών κατά την αλληλεπίδραση πελάτη-διακομιστή πριν μεταφερθούν στη βάση δεδομένων.

Η ανάγκη για προσωρινή αποθήκευση προκύπτει επειδή το μοντέλο λειτουργίας του προγράμματος περιήγησης ιστού απαιτεί το αρχείο που έχει επιλέξει ο χρήστης να μεταφέρεται απευθείας στον διακομιστή χωρίς τη δυνατότητα αποθήκευσής του στον πελάτη. Όταν ένα αρχείο μεταφέρεται, τοποθετείται σε προσωρινή αποθήκευση και στη συνέχεια μπορεί να χρησιμοποιηθεί κατά την εγγραφή ενός αντικειμένου στη βάση δεδομένων.

Η πιο τυπική εργασία εφαρμογής που επιλύεται με την προσωρινή αποθήκευση είναι η παροχή πρόσβασης σε αρχεία ή εικόνες πριν από την εγγραφή του αντικειμένου στη βάση πληροφοριών, για παράδειγμα, με τη μορφή ενός στοιχείου.

Ένα αρχείο ή δυαδικά δεδομένα που τοποθετούνται στον χώρο αποθήκευσης αναγνωρίζονται από μια μοναδική διεύθυνση, η οποία μπορεί αργότερα να χρησιμοποιηθεί σε λειτουργίες εγγραφής, ανάγνωσης ή διαγραφής. Αυτή η διεύθυνση δίνεται με μεθόδους για την εγγραφή ενός αρχείου σε προσωρινή αποθήκευση. Μια ξεχωριστή μέθοδος στην ενσωματωμένη γλώσσα σάς επιτρέπει να προσδιορίσετε εάν η διεύθυνση που περάσατε είναι μια διεύθυνση που οδηγεί σε δεδομένα σε προσωρινή αποθήκευση.

Βάση πληροφοριών

Ο μηχανισμός σάς επιτρέπει να έχετε πρόσβαση σε δυαδικά δεδομένα που είναι αποθηκευμένα σε χαρακτηριστικά του τύπου Value Storage.

Όπως και στην περίπτωση της προσωρινής αποθήκευσης, η πρόσβαση στις πληροφορίες είναι δυνατή μέσω ειδικής διεύθυνσης. Μπορείτε να το λάβετε μέσω μιας ειδικής μεθόδου περνώντας έναν σύνδεσμο προς ένα αντικείμενο ή ένα κλειδί καταχώρισης μητρώου πληροφοριών και το όνομα του χαρακτηριστικού. Σε περίπτωση πίνακα, απαιτείται επιπλέον η μεταφορά του ευρετηρίου σειράς του πίνακα.

Οι μέθοδοι εργασίας με αρχεία έχουν περιορισμούς κατά την εργασία με λεπτομέρειες της βάσης πληροφοριών. Για αυτούς, σε αντίθεση με την προσωρινή αποθήκευση, είναι διαθέσιμη μόνο η ανάγνωση πληροφοριών, αλλά όχι η εγγραφή ή η διαγραφή τους.

Περιγραφή μεθόδων εργασίας με αρχεία

Αποθήκευση δεδομένων σε προσωρινή αποθήκευση

Το πιο τυπικό σενάριο για τη χρήση αυτού του μηχανισμού περιλαμβάνει την αρχική τοποθέτηση δεδομένων χρήστη σε προσωρινή αποθήκευση. Υπάρχουν δύο μέθοδοι για αυτό: PlaceFile() και PlaceFileInTemporaryStorage().

Η πρώτη μέθοδος, PlaceFile(), τοποθετεί ένα αρχείο από το τοπικό σύστημα αρχείων σε προσωρινή αποθήκευση. Η μέθοδος μπορεί να δεχθεί μια διεύθυνση προορισμού στο χώρο αποθήκευσης. Εάν δεν έχει οριστεί ή είναι κενή συμβολοσειρά, τότε θα δημιουργηθεί ένα νέο αρχείο και η μέθοδος θα επιστρέψει τη διεύθυνσή της μέσω της αντίστοιχης παραμέτρου.

Εάν η παράμετρος που καθορίζει τον αλληλεπιδραστικό τρόπο λειτουργίας είναι True, τότε η μέθοδος θα εμφανίσει ένα τυπικό πλαίσιο διαλόγου επιλογής αρχείου στο οποίο μπορείτε να επιλέξετε ένα αρχείο που θα τοποθετήσετε στον χώρο αποθήκευσης. Σε αυτήν την περίπτωση, η μέθοδος θα επιστρέψει επίσης τη διεύθυνση του επιλεγμένου αρχείου.

Ως αποτέλεσμα, η μέθοδος επιστρέφει False εάν ο χρήστης αρνήθηκε διαδραστικά να εκτελέσει μια λειτουργία στο παράθυρο διαλόγου επιλογής αρχείου. Η μέθοδος είναι διαθέσιμη μόνο στον πελάτη.

Η δεύτερη μέθοδος, PlaceFileInTemporaryStorage(), είναι παρόμοια με την προηγούμενη, με τη διαφορά ότι είναι διαθέσιμη στον διακομιστή και τα δεδομένα που πρέπει να εγγραφούν στην προσωρινή αποθήκευση αντιπροσωπεύονται όχι ως διαδρομή στο σύστημα αρχείων, αλλά ως μεταβλητή τύπου BinaryData. Ομοίως, εάν δεν έχει καθοριστεί διεύθυνση προορισμού, δημιουργείται ένα νέο αρχείο στον χώρο αποθήκευσης. Η διεύθυνσή του επιστρέφεται ως αποτέλεσμα της συνάρτησης.

Ανάκτηση αρχείου από προσωρινή αποθήκευση

Όταν γράφετε ένα αντικείμενο στη βάση πληροφοριών, μπορεί να χρειαστεί να εξαγάγετε δεδομένα από την προσωρινή αποθήκευση και να τα τοποθετήσετε, για παράδειγμα, σε ένα χαρακτηριστικό. Υπάρχει μια αντίστοιχη μέθοδος διακομιστή για αυτό - GetFileFromTemporaryStorage(). Αυτή η μέθοδος ανακτά δεδομένα από την προσωρινή αποθήκευση και ως αποτέλεσμα τα επιστρέφει. Για να το κάνετε αυτό, πρέπει να καθορίσετε τη διεύθυνση στην προσωρινή αποθήκευση. Αυτή η διεύθυνση επιστρέφεται με τις μεθόδους PlaceFile() που περιγράφονται παραπάνω και PlaceFileInTemporaryStorage() εάν εκτελεστούν με επιτυχία.

Διαγραφή αρχείου από προσωρινή αποθήκευση

Μετά την αποθήκευση των δεδομένων στις λεπτομέρειες, το αρχείο σε προσωρινή αποθήκευση μπορεί να διαγραφεί. Για το σκοπό αυτό, υπάρχει μια μέθοδος DeleteFileFromTemporaryStorage(), η οποία διαγράφει ένα αρχείο από την προσωρινή αποθήκευση. Η μέθοδος λαμβάνει ως παράμετρο τη διεύθυνση ενός αρχείου σε προσωρινή αποθήκευση. Διαθέσιμο στον διακομιστή.

Έλεγχος της διεύθυνσης για προσωρινή αποθήκευση

Η διεύθυνση αρχείου μπορεί να υποδεικνύει τόσο προσωρινή αποθήκευση όσο και λεπτομέρειες στη βάση πληροφοριών. Για να ελέγξετε τον τύπο του, υπάρχει μια μέθοδος This isTemporaryStorageAddress().

Ελέγχει ότι η διεύθυνση που έχει περάσει είναι μια διεύθυνση που δείχνει προς το κατάστημα. Επιστρέφει True εάν η διεύθυνση οδηγεί σε προσωρινή αποθήκευση. Η μέθοδος είναι διαθέσιμη στον διακομιστή.

Λήψη της διεύθυνσης στηρίγματος

Αφού τα δεδομένα τοποθετηθούν στις λεπτομέρειες στη βάση πληροφοριών, ίσως χρειαστεί να αποκτήσετε πρόσβαση σε αυτά χρησιμοποιώντας μεθόδους αρχείου.

Αλλά προτού λάβετε δεδομένα, για παράδειγμα από μια ιδιοκτησία, πρέπει να λάβετε τη διεύθυνση αυτής της ιδιότητας. Για το σκοπό αυτό, υπάρχει μια μέθοδος GetFileAddressInInformationBase().

Σκοπός του είναι να επιστρέψει τη διεύθυνση αρχείου στη βάση πληροφοριών σύμφωνα με τις αρχικές παραμέτρους. Για να γίνει αυτό, πρέπει να περάσετε το κλειδί αντικειμένου (αυτό μπορεί να είναι είτε ένας σύνδεσμος προς το αντικείμενο είτε ένα κλειδί καταχώρισης μητρώου πληροφοριών) και το όνομα του χαρακτηριστικού. Εάν πρέπει να λάβετε τη διεύθυνση ενός αρχείου που είναι αποθηκευμένο σε ένα χαρακτηριστικό τμήματος πίνακα, πριν από το όνομα του χαρακτηριστικού στην παράμετρο που καθορίζει το όνομα του χαρακτηριστικού, πρέπει να προσθέσετε το όνομα του τμήματος πίνακα και μια τελεία «.». Η μέθοδος είναι διαθέσιμη τόσο στον πελάτη όσο και στον διακομιστή.

Ανάκτηση αρχείου από τη βάση πληροφοριών

Η μέθοδος GetFile() λαμβάνει ένα αρχείο από τη βάση πληροφοριών και το αποθηκεύει στο τοπικό σύστημα αρχείων του χρήστη. Η πρώτη παράμετρος καθορίζει τη διεύθυνση του αρχείου στα στηρίγματα ή στην προσωρινή αποθήκευση αρχείων. Η δεύτερη παράμετρος καθορίζει τη θέση προορισμού του αρχείου που προκύπτει. Σε μη διαδραστική λειτουργία, πρέπει να καθορίσετε τη διαδρομή. Στη διαδραστική λειτουργία, η παράμετρος είναι προαιρετική.

Από προεπιλογή, η μέθοδος εκτελείται σε διαδραστική λειτουργία, δηλαδή η τελευταία παράμετρος είναι True. Αυτό σημαίνει ότι εμφανίζεται ένα παράθυρο διαλόγου στο οποίο μπορείτε να καθορίσετε μια ενέργεια με το ληφθέν αρχείο: να το εκτελέσετε ή να το αποθηκεύσετε σε μια θέση που καθορίζει ο χρήστης. Εάν η διαδραστική λειτουργία είναι ενεργή και η παράμετρος διαδρομή αρχείου δίσκου στόχου δεν έχει καθοριστεί, η λειτουργία ανοίγματος αρχείου δεν είναι διαθέσιμη. Επιστρέφει μια boolean τιμή. False σημαίνει ότι ο χρήστης επέλεξε να ακυρώσει τη λειτουργία στο διαδραστικό παράθυρο διαλόγου αποθήκευσης αρχείου.

Παράδειγμα χρήσης μεθόδων αρχείων

// Λήψη αρχείου από το δίσκο σε διαδραστική λειτουργία // και τοποθέτησή του σε προσωρινή αποθήκευση &Στη διαδικασία πελάτη SelectDiskFileAndWrite()

Μεταβλητή SelectedName; VariableTemporaryStorageAddress; Αν PutFile(TemporaryStorageAddress, SelectedName, True) Τότε Object.FileName = SelectedName; PlaceObjectFile(TemporaryStorageAddress); τέλος εαν;

Τέλος Διαδικασίας

// Αντιγραφή αρχείου από προσωρινή αποθήκευση σε χαρακτηριστικό κατάλογο //, εγγραφή αντικειμένου, διαγραφή αρχείου από προσωρινή // αποθήκευση &Στη διαδικασία διακομιστή Τοποθέτηση αρχείου αντικειμένου (Διεύθυνση προσωρινής αποθήκευσης)

Στοιχείο καταλόγου = Form AttributesValue("Object"); BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress); Directory Element.File Data = NewValueStorage(BinaryData); FilePathOnDisk = Νέο αρχείο(DirectoryItem.FileName); Directory Item.FileName = FilePathOnDisk.Name; Στοιχείο καταλόγου.Write(); Τροποποιημένο = Λάθος; DeleteFileFromTemporaryStorage(TemporaryStorageAddress); ValueВFormAttributes(Στοιχείο καταλόγου, "Αντικείμενο");

Τέλος Διαδικασίας

// Ανάγνωση ενός αρχείου από τα στηρίγματα και αποθήκευση // στον τοπικό δίσκο σε διαδραστική λειτουργία &Στη διαδικασία πελάτη ReadFileAndSaveToDisk()

Address = GetFileAddressInInformationBase(Object.Link, "FileData"); GetFile(Address, Object.FileName, True);

Τέλος Διαδικασίας

Υποστήριξη για διευθύνσεις στο πεδίο εικόνας

Το στοιχείο ελέγχου Picture Field υποστηρίζει την εμφάνιση μιας εικόνας που καθορίζεται από τη διεύθυνση ενός αρχείου σε προσωρινή αποθήκευση ή σε μια βάση δεδομένων.

Για να το κάνετε αυτό, πρέπει να ορίσετε ένα χαρακτηριστικό string type στην ιδιότητα Data του στοιχείου φόρμας. Η τιμή αυτού του χαρακτηριστικού θα ερμηνευτεί ως η διεύθυνση της εικόνας.

Παράδειγμα // Σύνδεση του πεδίου εικόνας στη διεύθυνση εικόνας στην προσωρινή αποθήκευση //. AddressPictures σχηματίζουν λεπτομέρειες τύπου συμβολοσειράς

PlaceFile (Διεύθυνση εικόνας, αληθές)

Picture.Data = AddressPictures

Περιορισμοί κατά την εργασία με το πρόγραμμα-πελάτη Web

Η λειτουργία του περιγραφόμενου μηχανισμού κατά τη χρήση του προγράμματος-πελάτη Web έχει ορισμένους περιορισμούς. Αυτοί οι περιορισμοί σχετίζονται με το μοντέλο ασφαλείας του προγράμματος περιήγησης. Έτσι, για παράδειγμα, ο πελάτης δεν μπορεί να αποθηκεύσει ανεξάρτητα ένα αρχείο στο τοπικό σύστημα αρχείων, δηλαδή είναι διαθέσιμη μόνο η διαδραστική έκδοση των μεθόδων πελάτη PlaceFile() και GetFile(). Δημιουργείται μια εξαίρεση όταν προσπαθείτε να χρησιμοποιήσετε τη μη διαδραστική λειτουργία. Τα παράθυρα διαλόγου που εμφανίζονται διαδραστικά είναι συγκεκριμένα για τον τύπο του προγράμματος περιήγησής σας.

Δυνατότητες κατά την εργασία με το Value Storage στον πελάτη

Πρόβλημα:

Όταν ένα Έγγραφο έχει ένα χαρακτηριστικό του τύπου Value Storage στην ενότητα πίνακα, επιβραδύνει το άνοιγμα της φόρμας εγγράφου εάν αυτό το χαρακτηριστικό περιέχει μεγάλα δεδομένα.

Υποτιθέμενος λόγος:

Ίσως, όταν ανοίγετε μια φόρμα, δεν αποστέλλεται στον πελάτη ο σύνδεσμος προς τα δεδομένα που βρίσκονται στο Value Store, αλλά τα ίδια τα δεδομένα.

Λύση

  • Στις ιδιότητες του χαρακτηριστικού πίνακα της φόρμας υπάρχει η σημαία "Να χρησιμοποιείται πάντα". Εάν έχει οριστεί, τα περιεχόμενα του πεδίου μεταφέρονται πάντα μεταξύ του διακομιστή και του πελάτη - για παράδειγμα, κατά το άνοιγμα μιας φόρμας. Αυτή η σημαία πρέπει να είναι απενεργοποιημένη, αλλά αυτό πρέπει να ληφθεί υπόψη στον κώδικα, καθώς από προεπιλογή δεν θα υπάρχει τιμή για αυτό το πεδίο στον πελάτη. Ένα παράδειγμα μπορεί να βρεθεί στο 1C:Archive.

Είναι ακόμη καλύτερο να το χρησιμοποιήσετε προσωρινή αποθήκευσηγια τη μεταφορά αρχείων μεταξύ πελάτη και διακομιστή.

Αποθήκευση διαμόρφωσης σε 1C 8.2 και 8.3είναι ένα εργαλείο για ομαδική ανάπτυξη λύσεων, ενσωματωμένο στην πλατφόρμα 1C: Enterprise 8. Το αποθετήριο επιτρέπει την ανάπτυξη λύσεων για πολλούς χρήστες από απεριόριστο αριθμό χρηστών. Με τη βοήθειά του, μπορείτε να δείτε το πλήρες ιστορικό της ανάπτυξης ρυθμίσεων και κάθε βήμα των προγραμματιστών λεπτομερώς.

Ας ρίξουμε μια πιο προσεκτική ματιά στις ρυθμίσεις και την εργασία με τον χώρο αποθήκευσης διαμόρφωσης.

Ένα αποθετήριο είναι ουσιαστικά μια βάση δεδομένων όπου αποθηκεύονται οι αλλαγές διαμόρφωσης. Κάθε προγραμματιστής λειτουργεί με τη δική του βάση πληροφοριών που είναι συνδεδεμένη με την αποθήκευση. Η βάση εργασίας μπορεί επίσης να συνδεθεί με την αποθήκευση. Το γενικό διάγραμμα απεικονίζεται καλύτερα σε αυτήν την εικόνα:

Αυτή η βάση δεδομένων αποθηκεύει επίσης πληροφορίες σχετικά με το ποιος κατέλαβε αυτό ή εκείνο το αντικείμενο. Η καταγραφή ενός αντικειμένου είναι μια ετικέτα που ορίζεται από τον προγραμματιστή. Η εγκατεστημένη λήψη σάς επιτρέπει να αποφύγετε συγκρούσεις κατά την ανάπτυξη της ομάδας. Ενώ ένα αντικείμενο καταγράφεται, κανείς δεν μπορεί να το επεξεργαστεί.

Μπορείτε να καταγράψετε είτε ένα ολόκληρο αντικείμενο (αναδρομικά) είτε ένα ξεχωριστό αντικείμενο ή σχήμα.

Αφού ο προγραμματιστής πραγματοποιήσει κάποιες ενέργειες στο αντικείμενο, είναι υποχρεωμένος να τοποθετήσει τις τροποποιήσεις στο αποθετήριο. Και έτσι αφαιρέστε το σημάδι ότι το αντικείμενο έχει συλληφθεί.

Πώς να δημιουργήσετε έναν αποθηκευτικό χώρο 1C

Η δημιουργία ενός αποθετηρίου είναι αρκετά απλή· για να το κάνετε αυτό, πρέπει να επιλέξετε το στοιχείο "Δημιουργία αποθετηρίου" στο μενού "Διαμόρφωση - Αποθετήριο διαμόρφωσης". Στο μενού που εμφανίζεται, απλώς καθορίστε τη διαδρομή προς τη μελλοντική θέση αποθήκευσης και τη σύνδεση/κωδικό πρόσβασης του χρήστη διαχειριστή:

Κατά τη δημιουργία, φροντίστε να δημιουργήσετε έναν λογαριασμό αντιγράφου ασφαλείας με δικαιώματα διαχειριστή - πολύ συχνά αυτό βοηθάει.

Πώς να συνδεθείτε σε χώρο αποθήκευσης 1C

Για να συνδεθείτε στο χώρο αποθήκευσης ρυθμίσεων, πρέπει να επιλέξετε το στοιχείο "Σύνδεση με χώρο αποθήκευσης" στο μενού "Διαμόρφωση - Αποθήκευση διαμόρφωσης". Στο παράθυρο που εμφανίζεται, πρέπει να καθορίσετε τη διαδρομή προς τον αποθηκευτικό χώρο και τη σύνδεση χρήστη/κωδικό πρόσβασης, κάντε κλικ στο «Σύνδεση»:

Λάβετε 267 μαθήματα βίντεο στο 1C δωρεάν:

Τη στιγμή της σύνδεσης, η διαμόρφωσή σας θα αντικατασταθεί με τη διαμόρφωση από το αποθετήριο, να είστε προσεκτικοί.

Διαχείριση αποθήκευσης διαμόρφωσης 1C

Για να διαχειριστείτε τον χώρο αποθήκευσης 1C, πρέπει να επιλέξετε το ακόλουθο στοιχείο στο μενού διαμόρφωσης - "Διαμόρφωση - Αποθήκευση διαμόρφωσης - Διαχείριση":

  • Στην καρτέλα "Χρήστες", μπορείτε να προσθέσετε ή να αφαιρέσετε νέους χρήστες, καθώς και να ορίσετε τα δικαιώματα για καθέναν από αυτούς.
  • Στην καρτέλα "Συνδέσεις", μπορείτε να δείτε όλους τους χρήστες που είναι συνδεδεμένοι στο χώρο αποθήκευσης και, εάν είναι απαραίτητο, να τους αποσυνδέσετε.
  • Στην καρτέλα "Ακύρωση λήψης", μπορείτε να καταργήσετε την καταγραφή οποιουδήποτε χρήστη σε ένα συγκεκριμένο αντικείμενο, εάν, φυσικά, έχετε τα δικαιώματα να το κάνετε.

Πώς να δείτε το ιστορικό της αποθήκευσης 1C

Για να δείτε το ιστορικό, μεταβείτε στο μενού "Διαμόρφωση - Αποθήκευση διαμόρφωσης", επιλέξτε "Ιστορικό αποθήκευσης":

Στο ιστορικό της αποθήκευσης 1C μπορείτε να δείτε πότε, από ποιον και τι άλλαξε.

Ανάπτυξη με αποθήκευση 1C 8.3

Η εργασία με την αποθήκευση μπορεί να χωριστεί χονδρικά σε κύριες ενέργειες:

  • διαμορφώσεις από το αποθετήριο ρυθμίσεων 1C.
  • ενημέρωση καταστάσεων αποθήκευσης 1C.
  • σύλληψη στην αποθήκευση?
  • χώρος αποθήκευσης.

Ας ρίξουμε μια πιο προσεκτική ματιά σε κάθε ενέργεια:

Ενημέρωση καταστάσεων αποθήκευσης 1C

Ανακτά τις πιο πρόσφατες καταστάσεις των αντικειμένων (που έχουν καταγραφεί ή όχι).

Ονομάζεται: "Διαμόρφωση - Αποθήκευση διαμόρφωσης - Ενημέρωση καταστάσεων".

Ενημέρωση της διαμόρφωσης από το χώρο αποθήκευσης ρυθμίσεων 1C

Η ενέργεια θα ανακτήσει όλα τα αλλαγμένα αντικείμενα διαμόρφωσης που έχουν τοποθετηθεί στο χώρο αποθήκευσης. Η εκτέλεση αυτής της εντολής ενημερώνει επίσης τις καταστάσεις αντικειμένων.

Ονομάζεται: "Διαμόρφωση - Αποθήκευση διαμόρφωσης - Ενημέρωση διαμόρφωσης από την αποθήκευση."

Λήψη αποθήκευσης διαμόρφωσης 1C

Χρησιμοποιώντας αυτήν την εντολή, μπορείτε να αποκλείσετε τις αλλαγές σε αυτό το αντικείμενο για άλλους προγραμματιστές: ενώ το αντικείμενο καταγράφεται από εσάς, κανένας χρήστης δεν μπορεί να το αλλάξει μέχρι να επαναφέρετε το αντικείμενο.

Μπορείτε να καταγράψετε κάνοντας δεξί κλικ στο μενού περιβάλλοντος του αντικειμένου μεταδεδομένων:

Στο παράθυρο που ανοίγει, μπορείτε να ορίσετε ορισμένες ρυθμίσεις:

  • Εκτέλεση αναδρομικά- σας επιτρέπει να συλλάβετε όλα τα δευτερεύοντα αντικείμενα - φόρμες κ.λπ.
  • Επιτρέψτε τη λήψη καταγεγραμμένων— επιτρέπει σε άλλους χρήστες να λαμβάνουν ενδιάμεσες εκδόσεις ενός αντικειμένου

Δωμάτιο σε αποθήκη 1C

Μετά την αλλαγή ενός αντικειμένου, πρέπει να επανατοποθετηθεί στο χώρο αποθήκευσης· αυτό γίνεται με τον ίδιο τρόπο όπως η λήψη, επιλέγεται μόνο η επιλογή «Τοποθέτηση σε αποθήκευση»:

Κατά τη δημοσίευση, φροντίστε να συμπληρώσετε το πεδίο «σχολιασμός», αυτό είναι πολύ σημαντικό κατά την ανάπτυξη της ομάδας. Έξι μήνες αργότερα, δεν θα θυμάστε καν γιατί κάνατε ορισμένες ενέργειες. Ακριβώς όπως η λήψη, το δωμάτιο έχει τις δικές του συγκεκριμένες ρυθμίσεις:

  • Εκτέλεση αναδρομικά— σας επιτρέπει να τοποθετήσετε όλα τα δευτερεύοντα αντικείμενα - φόρμες κ.λπ.
  • Αφήστε αιχμάλωτο— σας επιτρέπει να τοποθετήσετε μια «ενδιάμεση» έκδοση ενός αντικειμένου, ενώ αφήνετε τη λήψη από τον χρήστη

Πώς να προσθέσετε ένα νέο αντικείμενο στον χώρο αποθήκευσης 1C

Εκτύπωση (Ctrl+P)

Αυτή η ενότητα περιγράφει τις πιο συνηθισμένες χρήσεις του μηχανισμού για εργασία με προσωρινή αποθήκευση και αρχεία.

Αποθήκευση δεδομένων από ένα αρχείο σε προσωρινή αποθήκευση

Τοποθέτηση ενός αρχείου

Η μέθοδος PlaceFile() τοποθετεί ένα αρχείο από το τοπικό σύστημα αρχείων σε προσωρινή αποθήκευση. Η μέθοδος μπορεί να δεχθεί μια διεύθυνση σε προσωρινή αποθήκευση όπου θα πρέπει να αποθηκευτεί το αρχείο. Εάν η διεύθυνση δεν έχει οριστεί ή είναι μια κενή συμβολοσειρά, τότε θα δημιουργηθεί μια νέα διεύθυνση και η μέθοδος θα την επιστρέψει μέσω μιας ειδικής παραμέτρου.
Σημείωση. Ο όγκος των δεδομένων που μετακινήθηκε μεταξύ του πελάτη και του διακομιστή σε μία κλήση στη μέθοδο PutFile().
Εάν η παράμετρος που καθορίζει τον αλληλεπιδραστικό τρόπο λειτουργίας είναι True, τότε η μέθοδος θα εμφανίσει ένα τυπικό πλαίσιο διαλόγου επιλογής αρχείου στο οποίο μπορείτε να επιλέξετε ένα αρχείο που θα τοποθετήσετε στον χώρο αποθήκευσης. Σε αυτήν την περίπτωση, η μέθοδος θα επιστρέψει επίσης τη διεύθυνση του επιλεγμένου αρχείου.
Η μέθοδος επιστρέφει False ως αποτέλεσμα εάν ο χρήστης αρνήθηκε διαδραστικά να εκτελέσει μια λειτουργία στο παράθυρο διαλόγου επιλογής αρχείου.

Τοποθέτηση ενός συνόλου αρχείων

Μέθοδος PlaceFiles()τοποθετεί πολλά αρχεία σε προσωρινή αποθήκευση σε μία κλήση. Υπάρχουν διάφοροι τρόποι χρήσης αυτής της μεθόδου:
● δημιουργήστε εκ των προτέρων μια λίστα αρχείων που θα προστεθούν, για παράδειγμα, όταν έχετε προηγουμένως επιλέξει τα αρχεία που πρέπει να τοποθετηθούν στη βάση πληροφοριών.
● περάστε μια μάσκα αναζήτησης αρχείων στη μέθοδο, για παράδειγμα, όταν θέλετε να τοποθετήσετε όλα τα αρχεία ενός συγκεκριμένου τύπου, για παράδειγμα, όλες τις εικόνες, στη βάση δεδομένων πληροφοριών.
● περάστε ένα αντικείμενο που έχετε προετοιμάσει προηγουμένως στη μέθοδο Διάλογος επιλογής αρχείουσε λειτουργία ανοίγματος αρχείων.
Αφού τελειώσει η εργασία της, η μέθοδος μπορεί να επιστρέψει μια λίστα με τα πραγματικά προστιθέμενα αρχεία.

// FileList – χαρακτηριστικό της φόρμας του τύπου ValueList,
// που περιέχει μια λίστα με αρχεία που έχουν προστεθεί
FileArray = Νέος πίνακας;
Για κάθε στοιχείο της λίστας από τον κύκλο λίστας αρχείων
FileArray.Add(NewDescriptionofTransferFile(ListElement,));
EndCycle;
PlacedFiles= Νέος πίνακας;
Αποτέλεσμα = PlaceFiles(ArrayFiles, PlacedFiles, False, UniqueIdentifier);

Σημείωση 1: Για να χρησιμοποιήσετε τη μέθοδο PlaceFiles()Το πρόγραμμα-πελάτης web απαιτεί τη σύνδεση μιας επέκτασης επεξεργασίας αρχείων.
Σημείωση 2: Ποσότητα δεδομένων που μετακινούνται μεταξύ πελάτη και διακομιστή ανά κλήση μεθόδου PlaceFiles(), δεν πρέπει να υπερβαίνει τα 4 Gb (σε σειριακή μορφή).

Τοποθέτηση δεδομένων σε προσωρινή αποθήκευση

Η μέθοδος είναι παρόμοια με τη μέθοδο PlaceFile(), με τη διαφορά ότι τα δεδομένα που θα εγγραφούν σε προσωρινή αποθήκευση
δεν αναπαρίστανται ως διαδρομή στο σύστημα αρχείων, αλλά ως τιμή. Ομοίως, εάν δεν έχει καθοριστεί υπάρχουσα διεύθυνση στην προσωρινή αποθήκευση, δημιουργείται μια νέα διεύθυνση. Η διεύθυνση επιστρέφεται ως αποτέλεσμα της συνάρτησης. Όπως και με τα αρχεία, τα αναρτημένα δεδομένα πρέπει να ανήκουν σε κάποια φόρμα και διαγράφονται αυτόματα μετά τη διαγραφή τους.
Σημείωση.Ποσότητα δεδομένων που μετακινούνται μεταξύ πελάτη και διακομιστή ανά κλήση μεθόδου PlaceInTemporaryStorage(), δεν πρέπει να υπερβαίνει τα 4 Gb (σε σειριακή μορφή).
Προσοχή!Όταν τοποθετείται σε προσωρινή αποθήκευση, η τιμή δεν είναι στην πραγματικότητα σειριακή. Μια αναφορά στην τιμή τοποθετείται και αποθηκεύεται στην κρυφή μνήμη για 20 λεπτά. Μετά από αυτό το διάστημα, η τιμή τίθεται σε σειρά, εγγράφεται στο δίσκο (αποθήκευση δεδομένων περιόδου λειτουργίας) και αφαιρείται από τη μνήμη cache.

Ανάκτηση δεδομένων από προσωρινή αποθήκευση

Όταν γράφετε ένα αντικείμενο σε μια βάση πληροφοριών, μπορεί να χρειαστεί να εξαγάγετε δεδομένα από την προσωρινή αποθήκευση και να τα τοποθετήσετε, για παράδειγμα, σε ένα χαρακτηριστικό αντικειμένου βάσης πληροφοριών. Υπάρχει μια ειδική μέθοδος για αυτό - GetFromTemporaryStorage(). Αυτή η μέθοδος ανακτά δεδομένα από την προσωρινή αποθήκευση και τα επιστρέφει ως αποτέλεσμα εκτέλεσης. Για να λάβετε δεδομένα, πρέπει να δηλώσετε τη διεύθυνση προσωρινά
αποθήκευση. Αυτή η διεύθυνση επιστρέφεται με μεθόδους για την τοποθέτηση δεδομένων σε προσωρινή αποθήκευση, εάν είναι επιτυχείς (δείτε προηγούμενες ενότητες).
Προσοχή!Κατά την ανάκτηση μιας τιμής από την προσωρινή αποθήκευση στον διακομιστή, θα πρέπει να λάβετε υπόψη ότι λαμβάνεται με αναφορά. Στην πραγματικότητα, αυτός ο σύνδεσμος δείχνει μια τιμή που είναι αποθηκευμένη στην κρυφή μνήμη. Εντός 20 λεπτών, από τη στιγμή που τοποθετήθηκε στο χώρο αποθήκευσης ή από τη στιγμή της τελευταίας πρόσβασης, η τιμή θα αποθηκευτεί στη μνήμη cache και στη συνέχεια θα γραφτεί στο δίσκο και θα διαγραφεί από τη μνήμη cache. Την επόμενη φορά που γίνεται πρόσβαση στην τιμή, φορτώνεται από το δίσκο και τοποθετείται ξανά στην κρυφή μνήμη.
Μετά την αφαίρεση και την αποκατάσταση των τιμών από την προσωρινή αποθήκευση, οι αναφορές δεν αποκαθίστανται. Η τιμή της προσωρινής μνήμης αποκαθίσταται από το δίσκο. Αλλά μετά τη σειριοποίηση/αποσειριοποίηση, είναι αδύνατο να επαναφέρετε αναφορές σε άλλα αντικείμενα μέσα στην τιμή.

Διαγραφή δεδομένων από προσωρινή αποθήκευση

Μετά την αποθήκευση των δεδομένων στο χαρακτηριστικό αντικείμενο infobase, τα δεδομένα στην προσωρινή αποθήκευση μπορούν να διαγραφούν. Υπάρχει μια μέθοδος για αυτό
RemoveFromTemporaryStorage(),που εκτελεί την αφαίρεση. Η μέθοδος λαμβάνει μια διεύθυνση σε προσωρινή αποθήκευση ως παράμετρο.

Έλεγχος της διεύθυνσης για προσωρινή αποθήκευση

Η διεύθυνση μπορεί να υποδεικνύει τόσο προσωρινή αποθήκευση όσο και λεπτομέρειες στη βάση πληροφοριών. Υπάρχει μέθοδος ελέγχου του τύπου του
This isTemporaryStorageAddress().Ελέγχει ότι η διεύθυνση που έχει περάσει είναι μια διεύθυνση που δείχνει προς το κατάστημα. Επιστρέφει True εάν η διεύθυνση οδηγεί σε προσωρινή αποθήκευση.

Λήψη της διεύθυνσης στηρίγματος

Αφού τα δεδομένα τοποθετηθούν στο χαρακτηριστικό αντικείμενο infobase, ίσως χρειαστεί να αποκτήσετε πρόσβαση σε αυτά χρησιμοποιώντας μεθόδους αρχείου.
Αλλά προτού λάβετε δεδομένα, για παράδειγμα από μια ιδιοκτησία, πρέπει να λάβετε τη διεύθυνση αυτής της ιδιότητας. Υπάρχει μια μέθοδος για αυτό GetNavigationLink().

Μπορεί να επιστρέψει τη διεύθυνση της τιμής στη βάση πληροφοριών με βάση τις αρχικές παραμέτρους. Για να το κάνετε αυτό, πρέπει να περάσετε το κλειδί αντικειμένου (αυτό μπορεί να είναι
τόσο ένας σύνδεσμος προς το αντικείμενο και το κλειδί εισαγωγής του καταχωρητή πληροφοριών) και το όνομα του χαρακτηριστικού. Εάν πρέπει να λάβετε τη διεύθυνση της τιμής που είναι αποθηκευμένη στο χαρακτηριστικό
τμήμα πίνακα και, στη συνέχεια, στο όνομα του χαρακτηριστικού στην παράμετρο που καθορίζει το όνομα του χαρακτηριστικού, πρέπει να προσθέσετε το όνομα του τμήματος πίνακα και μια τελεία «.». Για παράδειγμα: Προϊόντα.Εικόνα

Ανάκτηση αρχείου από τη βάση πληροφοριών

Λήψη ενός αρχείου

Η μέθοδος GetFile() λαμβάνει ένα αρχείο από τη βάση πληροφοριών και το αποθηκεύει στο τοπικό σύστημα αρχείων του χρήστη. Η πρώτη παράμετρος καθορίζει τη διεύθυνση αρχείου στο χαρακτηριστικό αντικείμενο infobase ή στην προσωρινή αποθήκευση αρχείων. Η αποθήκευση δεν θα πραγματοποιηθεί εάν ο χρήστης για λογαριασμό του οποίου εκτελείται η λειτουργία δεν έχει το δικαίωμα Προβολής στις λεπτομέρειες του αντικειμένου της βάσης πληροφοριών. Η δεύτερη παράμετρος καθορίζει τη θέση όπου αποθηκεύεται το αρχείο που προκύπτει. Σε μη διαδραστική λειτουργία, πρέπει να καθορίσετε τη διαδρομή. Σε διαδραστική λειτουργία η παράμετρος είναι
προαιρετικός.
Από προεπιλογή, η μέθοδος εκτελείται διαδραστικά. Αυτό σημαίνει ότι θα δημιουργηθεί ένα πλαίσιο διαλόγου στο οποίο μπορείτε να καθορίσετε μια ενέργεια με το ληφθέν αρχείο: να το εκτελέσετε ή να το αποθηκεύσετε σε μια θέση που καθορίζεται από το χρήστη στο σύστημα αρχείων. Εάν έχει επιλεγεί η διαδραστική λειτουργία και δεν έχει καθοριστεί η επιλογή Όνομα αρχείου, η λειτουργία ανοίγματος αρχείου δεν είναι διαθέσιμη. Η μέθοδος επιστρέφει μια Boolean τιμή. False σημαίνει ότι ο χρήστης επέλεξε να ακυρώσει τη λειτουργία στο διαδραστικό παράθυρο διαλόγου αποθήκευσης αρχείου.

Λήψη ενός συνόλου αρχείων

Η μέθοδος GetFiles() σάς επιτρέπει να λαμβάνετε και να αποθηκεύετε πολλά αρχεία που είναι αποθηκευμένα στη βάση πληροφοριών στο τοπικό σύστημα αρχείων του χρήστη. Η λίστα των μεταφορτωμένων αρχείων μεταβιβάζεται ως παράμετρος.

// FileList – μια λίστα τιμών που περιέχει συνδέσμους προς στοιχεία
// κατάλογος στον οποίο βρίσκονται τα μεταφορτωμένα αρχεία
// Η αναπαράσταση λίστας τιμών είναι το όνομα του αρχείου που μεταφορτώνεται
FileArray = Νέος πίνακας;
Για κάθε στοιχείο της λίστας από τον κύκλο λίστας αρχείων
Αρχείο = Νέο File(String(ListElement.Value));
ReceiveFile = Νέο Περιγραφή του μεταδιδόμενου αρχείου.
ReceiveFile.Name = ListElement.View;
ReceiveFile.Storage= Π getNavigationLink(ListItem.Value, "Data");
FileArray.Add(ReceivingFile);
EndCycle;
Αρχεία που ελήφθησαν= Νέος πίνακας;
Αποτέλεσμα = ReceiveFiles (FilesArray, ReceivedFiles, UploadedFilesPath, False);
Αν ΟΧΙ Αποτέλεσμα Τότε
Μήνυμα = Νέο Μήνυμα προς τον χρήστη;
Μήνυμα.Κείμενο = "Σφάλμα λήψης αρχείων!";
Message.Message();
Τέλος εαν ;

Μετά την ολοκλήρωση, η μέθοδος μπορεί να επιστρέψει μια λίστα με τα πραγματικά ληφθέντα αρχεία, υποδεικνύοντας το πλήρες όνομα κάθε αποθηκευμένου αρχείου.
ΣΗΜΕΙΩΣΗ. Για να χρησιμοποιήσετε τη μέθοδο GetFiles() στο πρόγραμμα-πελάτη ιστού, πρέπει να συνδέσετε την επέκταση αρχείου. Εάν η ιδιότητα Όνομα αντικειμένου Περιγραφή του μεταδιδόμενου αρχείουπεριέχει την απόλυτη διαδρομή προς το αρχείο, το αρχείο θα αποθηκευτεί σε αυτήν τη διαδρομή, ανεξάρτητα από την παράμετρο Τοποθεσία αρχείου.
Η παράμετρος Θέση αρχείου μπορεί να είναι είτε μια διαδρομή στο τοπικό σύστημα αρχείων είτε ένα αντικείμενο διαλόγου επιλογής αρχείου στη λειτουργία επιλογής καταλόγου ή αποθήκευσης αρχείων. Εάν η τιμή της παραμέτρου Τοποθεσία αρχείουκαθορισμένο αντικείμενο Διάλογος επιλογής αρχείουσε λειτουργία
αποθήκευση αρχείων και στη συνέχεια:

● Το παράθυρο διαλόγου θα καλείται για κάθε μεταφερόμενο αρχείο, εκτός από εκείνα τα αρχεία για τα οποία η ιδιότητα όνομα αντικειμένου Περιγραφή μεταδιδόμενου αρχείου περιέχει μια απόλυτη διαδρομή.
● η τιμή του αντικειμένου Name of the Description of the Transmitted File ιδιότητα θα χρησιμοποιηθεί ως το αρχικό όνομα αρχείου στο παράθυρο διαλόγου.
● εάν έχει επιλεγεί άρνηση αποθήκευσης για οποιοδήποτε αρχείο, τότε το Όνομα του αντικειμένου Περιγραφή της ιδιότητας Transferred File θα περιέχει μια κενή συμβολοσειρά.
● η μέθοδος GetFiles() θα επιστρέψει την τιμή True εάν τουλάχιστον ένα αρχείο ελήφθη με επιτυχία.
● θα πρέπει να ληφθεί υπόψη ότι τα αρχεία λαμβάνονται πράγματι αφού ο χρήστης απαντήσει σε ερωτήσεις σχετικά με τον καθορισμό του ονόματος και της διαδρομής
όλα τα ληφθέντα αρχεία.
● εάν ο χρήστης για λογαριασμό του οποίου εκτελείται η μέθοδος GetFile() δεν έχει δικαίωμα προβολής σε τουλάχιστον ένα χαρακτηριστικό του αντικειμένου της βάσης πληροφοριών από το οποίο ανακτώνται τα αρχεία, ολόκληρη η λειτουργία θα αποτύχει.
Παράδειγμα:

TransferredFiles = Νέος πίνακας;
Περιγραφή = Καινούργιο Περιγραφή του μεταδιδόμενου αρχείου("Περιγραφή", Διεύθυνση Αρχείου)
Μεταφερόμενα Αρχεία.Προσθήκη(Περιγραφή);
FileSelect = Νέο FileSelectionDialog(FileSelectionDialogMode.Save);
FileSelect.Header= "Αποθήκευση αρχείου";
Επιλογή αρχείου.Επέκταση= "φερμουάρ";
FileSelect.Filter= "Αρχείο(*.zip)|*.zip|Όλα τα αρχεία|*.*";
FileSelect.FilterIndex = 0;
ReceiveFiles (TransferFiles, SelectFile, False);

Εάν επιλεγεί η διαδραστική λειτουργία για την επιλογή του καταλόγου για την αποθήκευση αρχείων, το πρόγραμμα-πελάτης web θα ζητήσει επιπλέον άδεια αποθήκευσης αρχείων που καθορίζονται με απόλυτες διαδρομές. Σε περίπτωση μη διαδραστικής αποθήκευσης (η διαδρομή προς τον κατάλογο καθορίζεται στην αντίστοιχη παράμετρο), το αίτημα θα εκτελεστεί για ολόκληρη τη λίστα των αποθηκευμένων αρχείων.

Παράδειγμα χρήσης μεθόδων αρχείων

// Ανάκτηση αρχείου από το δίσκο διαδραστικά
// και τοποθέτησή του σε προσωρινή αποθήκευση.
&OnClient
Διαδικασία SelectDiskFileIWrite()
Μεταβλητή SelectedName;
Περέμ TemporaryStorageAddress;
NewObject = Object.Link.Empty();
Αν PlaceFile(TemporaryStorageAddress, "", SelectedName, True)Επειτα
Object.FileName = SelectedName;
PlaceObjectFile(TemporaryStorageAddress);
τέλος εαν;
Τέλος Διαδικασίας
// Αντιγραφή αρχείου από την προσωρινή αποθήκευση σε props
// κατάλογος, εγγραφή αντικειμένου, διαγραφή αρχείου από προσωρινό
// αποθήκευση.
&Στον διακομιστή
Διαδικασία PlaceObjectFile(TemporaryStorageAddress)
Στοιχείο καταλόγου = Form AttributesValue("Object");
BinaryData = GetFromTemporaryStorage(TemporaryStorageAddress);
Directory Element.File Data= Καινούργιο StorageValues(BinaryData, NewDataCompression()) ;
Αρχείο = Νέο Αρχείο (Στοιχείο καταλόγου.Όνομα αρχείου);
Directory Item.FileName = File.Name;
Στοιχείο καταλόγου.Write();
Τροποποιημένο = Λάθος;
DeleteFromTemporaryStorage(TemporaryStorageAddress);
ValueВFormAttributes (Στοιχείο καταλόγου, "Αντικείμενο");
Τέλος Διαδικασίας
// Διαβάστε το αρχείο από τα στηρίγματα και αποθηκεύστε το
// στον τοπικό δίσκο σε διαδραστική λειτουργία.
&OnClient
Διαδικασία ReadFileAndSaveToDisk()
Διεύθυνση = GetNavigationLink(Object.Link"FileData");
GetFile(Address, Object.FileName, True);
Τέλος Διαδικασίας

Άδεια εκτέλεσης μιας ομάδας λειτουργιών αρχείων

Όταν εκτελείτε ορισμένες λειτουργίες στο πρόγραμμα-πελάτη Ιστού, ίσως χρειαστεί να λάβετε άδεια για λειτουργίες πολλαπλών αρχείων.
Για παράδειγμα, πρέπει να ανακτήσετε ένα έγγραφο από μια βάση πληροφοριών και, στη συνέχεια, να ανοίξετε το αποθηκευμένο έγγραφο χρησιμοποιώντας τη σχετική εφαρμογή.
Για να εκτελέσετε αυτήν τη λειτουργία, θα πρέπει να απαντήσετε στην ερώτηση σχετικά με την αποθήκευση του εγγράφου και στην ερώτηση σχετικά με την ανάγκη εκτέλεσής του. Εάν υπάρχουν περισσότερες λειτουργίες, ο χρήστης θα έχει επίσης περισσότερες ερωτήσεις.
Για να μειώσετε τον αριθμό των ερωτήσεων, μπορείτε να χρησιμοποιήσετε τη μέθοδο. Όταν χρησιμοποιείτε αυτή τη μέθοδο
Εμφανίζεται στον χρήστη μια λίστα με όλες τις λειτουργίες που έχουν προγραμματιστεί να εκτελεστούν και του ζητείται να επιτρέψει την εκτέλεση της ομάδας λειτουργιών. Εάν ο χρήστης έχει επιτρέψει την εκτέλεση, τότε οι λειτουργίες που ζητήθηκαν θα εκτελεστούν χωρίς πρόσθετα αιτήματα προς τον χρήστη. Εάν δεν χορηγηθεί άδεια, οι λειτουργίες θα συνεχιστούν κανονικά: ένα αίτημα ανά λειτουργία.
ΣΗΜΕΙΩΣΗ. Για να χρησιμοποιήσετε τη μέθοδο RequestUserPermission()Στο πρόγραμμα-πελάτη Ιστού πρέπει να ενεργοποιήσετε την επέκταση διαχείρισης αρχείων.
Ας δούμε ένα παράδειγμα χρήσης της μεθόδου:

Αν ConnectExtensionWorking With Files()Επειτα
Σύνδεσμος = GetNavigationLink(Object.Link, "FileData");
// Σχηματισμός περιγραφής των μεταφερόμενων αρχείων (στην περίπτωση αυτή υπάρχει μόνο ένα αρχείο)
Μεταφερόμενα Αρχεία= Νέος πίνακας;
Περιγραφή = Νέα περιγραφή του μεταφερόμενου αρχείου (Όνομα αρχείου αντικειμένου, Σύνδεσμος);
TransferredFiles.Add(Description);
// Προετοιμάστε ένα αντικείμενο για λήψη πληροφοριών σχετικά με τα ληφθέντα αρχεία
Μεταφερόμενα Αρχεία= Νέος πίνακας;

// Ορίστε άλλες παραμέτρους μεθόδου
DirectorySave= "c:\temp";
Διαδραστικό = Λάθος ;
Όνομα αρχείου που μεταδόθηκε = Αποθήκευση καταλόγου + "\" + Object.FileName;
// Προετοιμάστε μια περιγραφή των μεθόδων για τη λήψη αδειών
Μέθοδοι = Νέος Πίνακας;

Methods.Add("GetFiles");
Methods.Add(TransferFiles);
Methods.Add(TransferredFiles);
Methods.Add(SaveDirectory);
Methods.Add(Interactive);
Methods.Add(New Array);
Methods.Add("RunApplication");
Methods.Add(TransferredFileName);
Αν όχι RequestUserPermission (Μέθοδοι)Επειτα
Warning ("Ο χρήστης έχει αρνηθεί την άδεια.");
ΕΠΙΣΤΡΟΦΗ;
τέλος εαν;
GetFiles (TransferFiles, TransmittedFiles, SavingDirectory, Interactive);
RunApplication(TransferredFileName);
Σε διαφορετική περίπτωση
Warning("Η εκτέλεση δεν υποστηρίζεται. Η επέκταση αρχείου δεν είναι εγκατεστημένη.");
τέλος εαν;

Πρέπει να σημειωθούν αρκετά χαρακτηριστικά της μεθόδου RequestUserPermission().

1. Ζητείται άδεια μόνο για τις ακόλουθες μεθόδους:

GetFiles()/StartGettingFiles(),
● PlaceFiles()/StartPlaceFiles(),
● FindFiles()/StartSearchFiles(),
● CopyFile()/StartCopyFile(),
● MoveFile()/StartMovingFile(),
●DeleteFiles()/StartDeleteFiles(),
● CreateDirectory()/StartCreatingDirectory(),
● LaunchApplication()/StartRunApplication().

2. Ζητείται άδεια για ένα συγκεκριμένο σύνολο παραμέτρων μεθόδου. Εάν, κατά τη διάρκεια της πραγματικής εκτέλεσης μιας μεθόδου χειρισμού αρχείου, οι τιμές των παραμέτρων διαφέρουν από αυτές για τις οποίες λήφθηκε η άδεια, αυτή η άδεια δεν θα είναι έγκυρη και ο χρήστης θα λάβει ξεχωριστό αίτημα για επιβεβαίωση της λειτουργίας.

3. Εάν πρέπει να εκτελέσετε δύο (ή περισσότερες) ίδιες λειτουργίες με αρχεία (ακόμα και με το ίδιο σύνολο παραμέτρων), θα πρέπει να καθορίσετε τον κατάλληλο αριθμό στοιχείων στον πίνακα παραμέτρων της μεθόδου RequestUserPermission(). Για παράδειγμα, εάν πρέπει να λάβετε το ίδιο αρχείο από τη βάση πληροφοριών δύο φορές και να το τοποθετήσετε σε μια σταθερή θέση στο σύστημα αρχείων, θα πρέπει να ζητήσετε άδεια
για δύο επεμβάσεις.

4. Εάν ζητηθεί άδεια για μια λειτουργία που εκτελεί μια διαδραστική λειτουργία (για παράδειγμα, η συνάρτηση GetFiles(), μεταβιβάζεται ένα αντικείμενο ως παράμετρος Διάλογος επιλογής αρχείου), τότε μια τέτοια λειτουργία αποκλείεται από το αίτημα.

Τα παραχωρημένα δικαιώματα διατηρούνται είτε μέχρι να εκτελεστεί η εξουσιοδοτημένη κλήση είτε μέχρι να ολοκληρωθεί η εκτέλεση της ενσωματωμένης γλώσσας.
ΣΗΜΕΙΩΣΗ. Σε χοντρές και λεπτές πελάτισσες RequestUserPermission()Η μέθοδος επιστρέφει πάντα True, χωρίς αλληλεπίδραση με τον χρήστη.

Εργασία με προσωρινή αποθήκευση σε μια εργασία παρασκηνίου

Ο μηχανισμός εργασίας με προσωρινή αποθήκευση έχει τη δυνατότητα μεταφοράς δεδομένων από μια εργασία παρασκηνίου στην περίοδο λειτουργίας που ξεκίνησε την εργασία παρασκηνίου.
Για μια τέτοια μεταφορά, θα πρέπει να τοποθετήσετε μια κενή τιμή σε προσωρινή αποθήκευση στη γονική περίοδο λειτουργίας (χρησιμοποιώντας τη μέθοδο PlaceInTemporaryStorage()), προσδιορίζοντας οποιοδήποτε αναγνωριστικό της προσωρινής αποθήκευσης που δημιουργείται (παράμετρος διεύθυνσης). Στη συνέχεια, περάστε τη ληφθείσα διεύθυνση στην εργασία παρασκηνίου μέσω των παραμέτρων της εργασίας παρασκηνίου. Επιπλέον, εάν σε μια εργασία παρασκηνίου, αυτή η διεύθυνση χρησιμοποιείται ως η τιμή της παραμέτρου Διεύθυνση μεθόδου PlaceInTemporaryStorage(), τότε το αποτέλεσμα θα αντιγραφεί στη συνεδρία από την οποία ξεκίνησε η εργασία παρασκηνίου.
Τα δεδομένα που τοποθετούνται σε προσωρινή αποθήκευση σε μια εργασία παρασκηνίου δεν θα είναι προσβάσιμα από τη γονική περίοδο λειτουργίας μέχρι να ολοκληρωθεί η εργασία παρασκηνίου.

Υποστήριξη για διευθύνσεις στο πεδίο εικόνας

Το στοιχείο φόρμας Προβολή πεδίου Το πεδίο Εικόνα υποστηρίζει την εμφάνιση μιας εικόνας που καθορίζεται από τη διεύθυνση μιας τιμής (η οποία μπορεί να είναι εικόνα ή δυαδικά δεδομένα) σε προσωρινή αποθήκευση ή σε βάση δεδομένων.
Για να το κάνετε αυτό, πρέπει να ορίσετε ένα χαρακτηριστικό string type στην ιδιότητα Data του στοιχείου φόρμας. Η τιμή αυτού του χαρακτηριστικού θα ερμηνευτεί ως η διεύθυνση της εικόνας.

// Παράδειγμα 1
// Προσωρινή σύνδεση του πεδίου εικόνας στη διεύθυνση εικόνας
// αποθήκευση. AddressPictures – λεπτομέρειες φόρμας τύπου συμβολοσειράς
PlaceFile(ImageAddress, InitialName, SelectedName, True, UniqueIdentifier);
// Παράδειγμα 2
// Λήψη της διεύθυνσης της εικόνας από το χαρακτηριστικό αντικείμενο
// βάση πληροφοριών
FilePictures = Object.FilePictures;
Αν δεν είναι PictureFile.Empty() Τότε
ImageAddress = GetNavigationLink(ImageFile, "FileData");
Σε διαφορετική περίπτωση
ImageAddress = "";
Ατελείωτες;

Πρόσβαση σε τυπικούς καταλόγους

Κατά τη χρήση του συστήματος, απαιτείται χώρος στο σύστημα αρχείων όπου μπορούν να αποθηκευτούν διάφορα δεδομένα αρχείων, τα οποία, αφενός, είναι προσωρινά και, αφετέρου, πρέπει να αποθηκευτούν για αρκετά μεγάλο χρονικό διάστημα. Τέτοια αρχεία περιλαμβάνουν προσχέδια για συστήματα διαχείρισης εγγράφων, εξωτερικά στοιχεία που εκτελούνται στην πλευρά του υπολογιστή-πελάτη κ.λπ.
Ένας ειδικός κατάλογος προορίζεται για την αποθήκευση τέτοιων αρχείων, ο οποίος συνδέεται με έναν συγκεκριμένο χρήστη μιας συγκεκριμένης βάσης πληροφοριών.
Ο ίδιος χρήστης που εργάζεται με δύο βάσεις πληροφοριών θα έχει πρόσβαση σε δύο διαφορετικούς καταλόγους για την αποθήκευση δεδομένων χρήστη. Η θέση αυτού του καταλόγου προσδιορίζεται χρησιμοποιώντας τη μέθοδο WorkUserDataDirectory(). Εάν ο κατάλογος δεν υπάρχει, δημιουργείται την πρώτη φορά που γίνεται πρόσβαση σε αυτόν. Εάν ο κατάλογος δεν μπορεί να δημιουργηθεί, το σύστημα κάνει μια εξαίρεση.
ΣΗΜΕΙΩΣΗ. Η μέθοδος UserDataWorkDirectory() δεν είναι διαθέσιμη από την πλευρά του διακομιστή.
Το λειτουργικό σύστημα διαθέτει έναν ειδικό κατάλογο που διατίθεται για μόνιμη αποθήκευση δεδομένων χρήστη. Θα μπορούσε να είναι μερικά
εκθέσεις, έντυπες μορφές εγγράφων κ.λπ. Τα δεδομένα τοποθετούνται σε αυτόν τον κατάλογο, τα οποία μπορούν αργότερα να σταλούν σε εξωτερικούς
στους καταναλωτές. Η μέθοδος DocumentDirectory() χρησιμοποιείται για πρόσβαση σε αυτόν τον κατάλογο. Η φυσική θέση του καταλόγου ποικίλλει ανάλογα με το λειτουργικό σύστημα.
σύστημα όπου εκτελείται η εφαρμογή και παρατίθεται στον βοηθό σύνταξης.