Jak otworzyć plik xml 1c. Generowanie pliku XML. Łatwe przesyłanie do aplikacji innej firmy. Generowanie dokumentu „Faktura”.

W organizacji księgowość można prowadzić nie tylko w rozwiązaniach na platformie 1C:Enterprise, ale także w innych systemach oprogramowania (Galaktika, Parus, SAP itp.). Rodzi to wyzwanie związane z integracją dwóch aplikacji.

Na przykład pewna aplikacja (nazwijmy ją „X”) musi przeczytać listę dokumentów konfiguracyjnych. Nie będziemy rozmawiać o praktycznych korzyściach rozwiązania takiego problemu, zaznaczę jedynie, że najwygodniejszym i uniwersalnym sposobem w takiej sytuacji byłoby przesłanie listy dokumentów w formacie XML.

Wymiana korzystająca z tego formatu jest uniwersalna, ponieważ większość aplikacji może z nim współpracować. Przyjrzyjmy się, jak przesłać listę dokumentów konfiguracyjnych do pliku XML z 1C:Enterprise.

Prześlij do XML

Przejdźmy więc do najważniejszej rzeczy. Musimy przejrzeć listę metadanych dokumentu i wygenerować listę w pliku XML. Poniższy zrzut ekranu przedstawia algorytm generowania pliku XML:

Funkcja CreateXML() Eksport // Pobierz nazwę pliku tymczasowegoŚcieżka = GetTemporaryFileName() ; // Zainicjuj klasę „Rekord XML”. Wpis = Nowy wpisXML; // Otwórz plik tymczasowy do zapisu- 8 " ) ; // Zapisz deklarację pliku XML Nagrywać. ZapiszDeklaracjaXML() ; // Nagrywać. WriteElementStart(" DokumentyKonfiguracje" ) ; // Pierwszy element // Atrybut pierwszego elementu z datą utworzenia pliku Nagrywać. WriteAttribute(" wygenerowano ", Format(CurrentDate(), " DF = rrrr-MM- ddThh:mm:ss; DLF=DT" ) ) ; // Napisz element dla każdego dokumentu konfiguracyjnego. W tekście umieszczamy nazwę dokumentu. Dla każdego dokumentu z metadanych. Rejestracja cyklu dokumentów. WriteElementStart("Dokument"); Nagrywać. WriteText(Nazwa Dokumentu) ; Nagrywać. WriteEndElement() ; Koniec cyklu ; // Zakończ pisanie pierwszego elementu Nagrywać. WriteEndElement() ; Nagrywać. Zamknąć(); // Zamknij plik // Pobierz dane binarne pliku i umieść je w magazynie tymczasowym BinaryData = nowe BinaryData(Ścieżka) ; Adres = PlaceInTemporaryStorage(BinaryData, New UniqueIdentifier) ​​​​; Adres zwrotny; // Zwraca adres pliku do magazynu Funkcja końcowa

Każdy utworzony element musi zostać poprawnie ukończony. Po wykonaniu „WriteStartofElement()” należy wykonać metodę „WriteEndElement”, w przeciwnym razie struktura pliku XML będzie nieprawidłowa.

Ogólny szablon tworzenia plików XML ma następującą kolejność:

// 1. Zainicjuj klasę „Rekord XML”. Wpis = Nowy wpisXML; // 2. Otwórz plik tymczasowy do nagrania Nagrywać. OpenFile (ścieżka, „UTF - 8 " ) ; // 3. Napisz deklarację pliku XML Nagrywać. ZapiszDeklaracjaXML() ; // // 4. ++ Zapisz zawartość pliku XML Nagrywać. WriteElementStart("XMLElement"); Nagrywać. WriteEndElement() ; // -- Zapisz zawartość pliku XML // 5. Zamknij plik Nagrywać. Zamknąć();

Te pięć kroków umożliwia utworzenie prawie dowolnego pliku XML.

W naszym przykładzie wygenerowany plik jest konwertowany na dane binarne i zwracany do lokalizacji, w której wywoływana jest funkcja CreateXML. Plik ten można następnie zapisać w systemie plików.

Przykład przesłanego pliku możesz zobaczyć na zrzucie ekranu powyżej.

Aplikacja strony trzeciej

Jako przykład stworzyłem aplikację w .NET Framework, aby zademonstrować czytanie pliku XML w aplikacji innej firmy.

Program odczytuje utworzony plik i wyświetla dokumenty w formie listy:

Możesz spróbować sam, aplikację można pobrać korzystając z linku na końcu artykułu.

Wszechstronność

Format XML jest używany w większości konfiguracji do wymiany danych pomiędzy rozwiązaniami aplikacyjnymi na platformie 1C:Enterprise. Inną powszechnie stosowaną metodą komunikacji jest połączenie COM. XML pozwala na wymianę z niemal każdą aplikacją, dlatego zasługuje na miano uniwersalnego.

Pliki do pobrania:

Aplikacja do odczytu plików XML.

Przetwarzanie generacji pliku XML.

Przenoszenie informacji pomiędzy bazami danych jest jednym z zadań ich obsługi i administrowania. W celu skutecznego wdrożenia przetwarzanie jest tworzone w zautomatyzowanych kompleksach 1C. Znacząco ułatwiają rutynową pracę, przyspieszają procesy wysyłania i pobierania informacji, a jednocześnie zapewniają kontrolę nad ich poprawnością. Wgranie z 1c do xml umożliwia utworzenie pliku z zawartością dowolnego skonfigurowanego obiektu konfiguracyjnego i wykorzystanie go w przypadku konieczności wgrania danych do identycznej konfiguracji.

Narzędzia do tworzenia plików do przesłania

Do eksportu informacji zawartych w bazach danych wykorzystuje się głównie format xml. Dla 1C opracowano wiele metod przetwarzania (na przykład UploadLoadDataxml82 epf), za pomocą których można wyprowadzać i ładować dane do pliku. W takim przypadku użytkownik musi otrzymać plik o określonej strukturze, która pozwala na załadowanie przechowywanych w nim informacji do natywnej bazy danych lub przeniesienie ich w inne miejsce. Podczas tworzenia uploadu należy przestrzegać następujących zasad:

  • Zapisz utworzone pliki do czasu całkowitego odzyskania i zakończenia procedur weryfikacji poprawności przesłanych informacji;
  • Jeśli używasz przetwarzania jako narzędzia do tworzenia kopii zapasowych, utwórz osobne podfoldery dla kopii danych i prowadź ich dziennik w celu szybkiego odzyskania.

Dostarczany w programie wsparcia użytkownika 1C, który można znaleźć na stronie internetowej lub dyskach ITS, jest doskonałym narzędziem do eksportowania i importowania informacji. Użytkownik komputera może wgrać zarówno całą bazę danych, jak i jej poszczególne obiekty, a oprócz samego eksportu wykonywane są różne operacje mające na celu sprawdzenie informacji, które pomagają pozbyć się błędów krytycznych w danych. Przetwarzanie przesyłania 1c do pliku XML działa w dwóch trybach:

  • Rozładunek. Tworzy plik zawierający obiekty stronicowalne zdefiniowane przez użytkownika;
  • Ładowanie. Odczytuje wcześniej wyeksportowany plik i zapisuje zawarte w nim informacje do bazy informacji.

Przetwarzanie umożliwia sprawdzenie obiektów pod kątem nieprawidłowych znaków, a także zawiera funkcję eksportowania informacji z ograniczeniami.

Przesyłanie można wykorzystać nie tylko podczas wymiany informacji między bazami danych 1C. Za jego pomocą możesz zapewnić integrację różnych kompleksów, na przykład 1C i systemu Parus. Wszechstronność formatu XML pozwala na tworzenie programów do przesyłania informacji dla niemal dowolnych banków informacji. Przetwarzanie, przesyłanie i pobieranie danych XML to najważniejsze narzędzie wymiany informacji.

Proces przesyłania danych doxml

Przyjrzyjmy się, jak przesłać plik 1c do pliku XML w trybie normalnym. Po pobraniu przetwarzającego pliku UploadLoadDataxml.epf i otwarciu go należy wykonać następujące kroki:

  • Wybierz obiekty do eksportu;
  • Skonfiguruj niezbędne filtry, na przykład według okresu;
  • Określ lokalizację pliku z informacjami o podsystemie dysku;
  • Rozpocznij rozładunek obiektów.

Należy pamiętać, że część nagłówkowa formatu przesyłanego pliku różni się od formatu pliku używanego podczas przesyłania zgodnie z planami wymiany.

xml

Plik xml jest ładowany do 1c do odbierającej bazy danych z konfiguracją identyczną z bazą źródłową. Przed załadowaniem XML 1c do 1c musisz otworzyć przetwarzanie w odbierającej bazie danych. Następnie należy podać ścieżkę do wcześniej wgranego pliku i pobrać dane klikając na przycisk „Wczytaj dane”.

W razie potrzeby aktywowane są checkboxy, które ładują dane w trybie wymiany do rozproszonej bazy danych i ignorują błędy pojawiające się podczas ładowania obiektów.

Następnie należy sprawdzić bazy danych i upewnić się, czy wszystkie elementy zostały poprawnie załadowane, aby ich nie zgubić, jeśli np. po załadowaniu obiektu wystąpił błąd w obsłudze zdarzeń.

Kiedy przedsiębiorstwo stale wykorzystuje w swojej pracy jakiś pakiet oprogramowania, wówczas oczywiście zawsze pojawia się kwestia jego bieżącego wsparcia i administracji. Nie da się uniknąć zadań związanych z wymianą, przechowywaniem i przywracaniem danych. Przyjrzyjmy się, jak załadować lub rozładować dane z 1C w formacie XML, ponieważ jest to ważna procedura w tym temacie.

Są zbudowane w taki sposób, że podczas pobierania możliwe jest uzyskanie pliku XML, w którym zapisane zostaną dane wymagane przez Klienta. Jednocześnie równolegle z rejestracją monitorowana jest poprawność przesyłanych zapisów pod kątem błędów krytycznych.

Zatem załadowanie do pliku XML (import rekordów) z jednej bazy informacji i późniejsze załadowanie z XML do drugiej oznacza wymianę danych w formacie XML pomiędzy bazami danych.

Procedura ta, zwłaszcza przy dużej ilości informacji, pozwala zaoszczędzić dużo pracy ręcznej.

Import (plik wynikowy) można również wykorzystać jako archiwum do odzyskania w nieoczekiwanych sytuacjach (w przypadku utraty lub uszkodzenia).

Opracowano wiele takich narzędzi do przetwarzania i są one dostępne w Internecie. Odpowiedzialność za ich użycie spada na ramiona (i głowę) klienta.

Ale dla oficjalnych użytkowników Odeneski programiści stworzyli uniwersalny procesor „Prześlij/Załaduj dane XML”.

WAŻNY. Eksport do XML w 1C i dalsze ładowanie do XML z 1C jest dopuszczalne przy identycznych konfiguracjach - w przeciwnym razie zostanie uszkodzony.

Uniwersalny uchwyt

Kluczowe punkty dotyczące korzystania z uniwersalnego programisty:

  • Zapisuj importowane pliki do czasu zakończenia przesyłania rekordów i sprawdzenia ich poprawności;
  • W przypadku stosowania jako kopie zapasowe należy zachować ich zapis w celu uporządkowania wyszukiwania.

Jego działanie odbywa się w dwóch trybach: tworzenia pliku podczas zapisywania informacji i odczytywania/zapisywania podczas importu.

Dodatkowo użytkownik może ustawić dodatkowe ograniczenia zarówno przy eksporcie, jak i ładowaniu danych.

Wyodrębnianie rekordów

Dane możesz przesyłać zarówno po całej bazie, jak i wybiórczo – obiekt po obiekcie.

Po pobraniu, zainstalowaniu i otwarciu modułu obsługi następuje następująca sytuacja:


Ich wyboru dokonuje się w oknie dialogowym otwieranym po uruchomieniu. W tym celu zaznacz pola na liście wyświetlającej obiekty metadanych do pobrania;

  1. Skonfigurowano niezbędne filtry (na przykład według daty);
  2. Wybrano miejsce na dysku;
  3. Rozpoczyna się sama operacja.

Przesyłanie nagrań do odbiornika

Pierwszym krokiem do przyjęcia danych do bazy odbiorczej jest otwarcie znajdującego się w niej programu procesora.

Po określeniu ścieżki do pliku źródłowego i włączeniu flag ustawień procedury (jeśli jest taka potrzeba) można rozpocząć proces przyciskiem „Wczytaj dane”.

Teraz wiesz, jak ładować lub rozładowywać dane z 1C w formacie XML, aby zapisywać dane i wymieniać się między bazami danych.

- dobrze znane strony internetowe, które są również analogiem XML ze słabymi kontrolami.

Obiekty do odczytu/zapisu XML, FastInfoset i HTML rozszerzają możliwości odczytu plików tekstowych dzięki wbudowanemu przetwarzaniu znaczników.

Są one również używane w obiektach DOMBuilder/DOMRecord (patrz poniżej) jako źródła danych.

Pliki XML 1C zawierają informacje tekstowe, to znaczy są plikami tekstowymi. Obiekty 1C XML Reader i 1C Write XML to „dodatek”, który ułatwia pracę ze znacznikami XML w pliku 1C.

Obiekty ReadingFastInfoset 1C i WritingFastInfoset 1C, ReadingHTML 1C i WritingHTML 1C są całkowicie podobne do ReadingXML 1C i WritingXML 1C i służą do pracy w ten sam sposób z innymi formatami.

Plik XML 1C użyty w przykładach

Katalog>

Katalog>

Wartość tekstowaProps>
Katalog>
Konfiguracja>

Przykład 1. Odczyt pliku XML 1C do drzewa wartości przy użyciu Reading XML 1C

//otwórz plik XML 1C do odczytu za pomocą ReadingXML 1C
Plik = Nowy ReadXML();
Plik.OpenFile("D:\ConfigurationStructure.xml");

//przygotuj drzewo wartości
//każda gałąź XML może mieć nazwę, atrybuty i wartość
dzXML = NewValueTree();
dXML.Columns.Add("Nazwa");
dzXML.Columns.Add("Wartość");
dXML.Columns.Add("Atrybuty");

//ponieważ ciąg XML może mieć kilka atrybutów, zapiszemy je w tabeli wartości
//każdy atrybut ma nazwę i wartość
tAttributes = Nowa tabela wartości();
tAttributes.Columns.Add("Nazwa");
tAttributes.Columns.Add("Wartość");

//poziom zagnieżdżenia pomoże nam zrozumieć, kiedy musimy dodać zagnieżdżoną gałąź, a kiedy musimy wrócić na wyższy poziom
Poziom zagnieżdżenia = 0;
//bieżąca linia jest linią drzewa, zmieni się wraz ze wzrostem zagnieżdżenia
CurrentRow = Niezdefiniowany;
//odczyt pliku XML 1C nie odbywa się linia po linii, ale zgodnie ze strukturą, po zakończeniu pliku odczyt zwróci FALSE
Podczas gdy File.Read() Pętla

// interesują nas trzy typy węzłów - początek elementu, tekst (wartość elementu) i koniec elementu (aby wrócić na najwyższy poziom)
Jeśli File.NodeType = XMLNodeType.ElementStart Wtedy

Poziom zagnieżdżenia = poziom zagnieżdżenia + 1;

//jeśli jest to pierwsza linia, to dodaj ją na samą górę drzewa i zapisz tylko nazwę
Jeśli CurrentRow = Niezdefiniowany, to
CurrentRow = dXML.Rows.Add();
CurrentLine.Name = Nazwa.Pliku;
Kontynuować;
W przeciwnym razie
//zagnieżdżone linie
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = Nazwa.Pliku; //zapisz nazwę

//czy ten element XML ma atrybuty?
Jeśli File.NumberAttributes() > 0 To
//jeśli tak, skopiuj przygotowaną pustą tabelę, aby zapisać atrybuty
tAttributesNode = tAttributes.Copy();
//przeglądaj liczbę atrybutów tego elementu
Dla konta = 0 według pliku.Number of Attributes()-1 Cycle
//dla każdego atrybutu zapamiętaj nazwę i wartość
String = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Ac);
Koniec cyklu;
//zapisz tabelę atrybutów elementu w bieżącym wierszu
CurrentRow.Attributes = tNodeAttributes;
koniecJeśli;
koniecJeśli;

ElseIf File.NodeType = XMLNodeType.EndElement Następnie
//na początku elementu zwiększamy poziom zagnieżdżenia, na końcu elementu zmniejszamy
Poziom zagnieżdżenia = Poziom zagnieżdżenia - 1;
//zwróć bieżącą linię o jeden poziom wyżej
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Następnie
//jeśli element ma wartość, po prostu go zapisz
CurrentRow.Value = Plik.Wartość;

koniecJeśli;

Koniec cyklu;

Plik.Zamknij();

Przykład 2. Nagrywanie pliku XML 1C przy użyciu obiektu XML Record 1C

//utwórz plik Record XML 1C
Plik = NewXMLRecord();
Plik.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Konfiguracja");

//użyj metadanych do przeglądania wszystkich katalogów (więcej szczegółów znajdziesz w części „Praca z metadanymi”)
Dla każdego katalogu z cyklu Metadata.Directories

//WriteStartofElement - otwiera nową [podrzędną] gałąź
File.WriteElementStart("Katalog");
//WriteAttribute - zapisuje atrybut do wcześniej otwartej gałęzi
File.WriteAttribute("Nazwa", Katalog.Nazwa);
File.WriteAttribute("Synonym", Directory.Synonym);

//używając metadanych przeglądamy wszystkie szczegóły katalogu
Dla każdego Rekwizytu z cyklu Directory.Props




Koniec cyklu;

//użyj metadanych, aby przeglądać wszystkie tabelaryczne części katalogu
Dla każdego PM z Katalogu Części Tabelaryczne Cyklu
File.WriteElementStart("Część tabelaryczna");
File.WriteAttribute("Nazwa", PM.Name);
File.WriteAttribute("Synonim", PM.Synonym);

Za każde Rekwizyty z cyklu PM.Props
File.WriteElementStart("Rekwizyty");
File.WriteAttribute("Nazwa", Attribute.Name);
File.WriteAttribute("Synonym", Attributes.Synonym);
Plik.WriteEndElement();
Koniec cyklu;

Plik.WriteEndElement();
Koniec cyklu;

//WriteEndElement - „zamyka” gałąź wcześniej otwartą za pomocą WriteBeginElement
Plik.WriteEndElement();
Koniec cyklu;

Plik.WriteEndElement();
Plik.Zamknij();

Kontynuując temat:
Internet

Jak stworzyć dochód pasywny - 14 metod pracy + 12 wskazówek dla początkującego biznesmena. Aby odpowiedzieć na pytanie: jak stworzyć dochód pasywny, musisz zrozumieć, jak…