Proces przesyłania danych do pliku XML. Generowanie pliku XML. Łatwe przesyłanie do aplikacji innej firmy. Proces przesyłania danych do xml Jak przesłać plik xml w 1c

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 wgrywania można otrzymać plik XML, w którym zapisane zostaną niezbędne dla klienta dane. 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: tworzenie pliku podczas zapisywania informacji i odczytywanie/zapisywanie 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ć je między bazami danych.

Transfer danych jest bardzo ważnym procesem w każdym systemie księgowym, platforma 1C 8.3 i 8.2 nie jest wyjątkiem. Poniżej przyjrzymy się instrukcjom jak najprościej przenieść dane z jednego systemu do drugiego o podobnej konfiguracji (dla różnych konfiguracji można skorzystać z narzędzia dla programistów - lub).

Zanim konieczne będzie podjęcie jakichkolwiek działań, zmiany są nieodwracalne!

Najłatwiejszym i najwygodniejszym sposobem przesyłania danych z 1C 8.3 do 1C 8.3 Księgowość 3.0 jest użycie przetwarzania Przesyłanie i ładowanie danych w formacie XML (pobierz - dla 8.2 lub dla 1C 8.3 lub na ITS). Zabieg jest uniwersalny i nadaje się do dowolnej konfiguracji.

Nie będziemy wdawać się w szczegóły, spójrzmy na instrukcję krok po kroku migracji danych przy wykorzystaniu tego przetwarzania na przykładzie najprostszego przekazania towaru.

Przesyłanie danych do formatu XML

Na początek otwórzmy przetwarzanie w bazie źródłowej (skąd będziemy rozładowywać towar) i przyjrzyjmy się interfejsowi:

Uzyskaj 267 lekcji wideo na 1C za darmo:

Należy od razu wypełnić pole „Nazwa pliku” – wzdłuż tej ścieżki zostanie utworzony nowy plik z danymi, który prześlemy do bazy odbiorcy. Tuż poniżej, w sekcji tabelarycznej „Dane do przesłania” należy wybrać dane, które chcemy załadować z bazy.

Po wybraniu obiektu z lewej części tabeli można zastosować selekcję w prawej części tabeli:

W naszym przykładzie chcę wyładować wszystkie produkty o nazwie „Rake”.

Po zakończeniu wszystkich ustawień można przesłać dane. W tym celu należy kliknąć przycisk „Prześlij dane”:

Ładowanie danych z xml do 1s 8.3

Dane zostały wyładowane z bazy źródłowej, teraz należy je przenieść do bazy docelowej.

W tym celu należy rozpocząć przetwarzanie już w bazie danych, do której chcemy załadować dane, przejść do zakładki „Pobierz”, wybrać pobrany plik na dysku i kliknąć przycisk „Wczytaj dane”:

Ten przykład nadaje się tylko do przesyłania danych między identycznymi konfiguracjami na platformie 1C. Aby zrozumieć mechanizm wymiany dla programistów, napisaliśmy artykuł -.

Tryby pracy

Przetwarzanie UploadLoadDataXML82 realizuje 2 tryby pracy: Upload (tworzenie pliku uploadu z danymi określonymi przez użytkownika) oraz Load (odczyt pliku upload utworzonego przez tryb o tej samej nazwie i zapisanie zawartych w nim danych). Tryb ustawia się poprzez wybranie go w polu Tryb.

Przed uruchomieniem konkretnego trybu (kliknięcie przycisku Uruchom) należy określić nazwę przesyłanego pliku, wpisując ją ręcznie w polu „Nazwa pliku” lub za pomocą przycisku zaznaczając to pole i standardowe okno dialogowe wyboru pliku .

W trybie pobierania możliwa jest edycja wykorzystania sum podczas zapisywania rejestrów, co może mieć wpływ na prędkość pobierania. Przyciski „Wyłącz sumy” i „Włącz sumy” dostępne są po włączeniu flagi „Włącz możliwość edycji wykorzystania sum podczas ładowania danych” i służą do ręcznego sterowania trybem wykorzystania sum podczas ładowania danych. **Warunki stosowania przetwarzania**

Przetwarzania można dokonać jedynie w przypadku, gdy baza informacji, do której wprowadzono dane, i ta, w której dane zostały wczytane, są jednorodne (konfiguracje są identyczne, dane mogą się różnić) lub wszystkie przesłane obiekty są niemal całkowicie identyczne pod względem skład i rodzaje detali i części tabelarycznych, właściwości „wiodącego” obiektu metadanych itp. Należy zaznaczyć, że ze względu na te ograniczenia przetwarzanie ma na celu głównie wymianę pomiędzy jednorodnymi IS.

Format pliku do przesłania różni się od formatu pliku utworzonego podczas przesyłania zgodnie z planem wymiany w części nagłówkowej. Do przesyłania danych (elementów katalogów, zestawów rekordów rejestrów itp.) przetwarzanie wykorzystuje ten sam mechanizm serializacji XML, co przesyłanie zgodnie z planami wymiany, w tej części formaty plików są identyczne.

Określenie składu rozładunku

Przetwarzanie umożliwia zarówno pełne, jak i częściowe przesłanie danych bazy danych do pliku. Skład przesyłanych danych konfiguruje się w oknie dialogowym zaznaczając pola w kolumnie drzewa wyświetlającego obiekty metadanych, dla których można przesłać dane. Dodatkowa kolumna pól wyboru „W razie potrzeby” określa konieczność rozładunku obiektów tego typu „przez odniesienie”. Oznacza to, że jeśli checkbox zostanie zaznaczony tylko w kolumnie „W razie potrzeby”, wówczas dane dla takiego obiektu nie zostaną pobrane w całości, a jedynie w takim zakresie, w jakim jest to konieczne do zachowania integralności referencyjnej w bazie danych, która załaduje pobrany plik plik.

Podczas otwierania formularza przetwarzanie ustawia znak rozładunku w odniesieniu do wszystkich obiektów, co gwarantuje integralność referencyjną rozładowanego fragmentu bazy informacji.

Po kliknięciu przycisku „Wykryj obiekty pobrane przez łącze” przetwarzanie analizuje, które łącza danych mogą znajdować się w obiektach, które mają ustawioną flagę pełnego pobierania i automatycznie wypełnia kolumnę flag wskazujących konieczność pobrania za pomocą łącza. Jeśli obiekt ma już ustawioną flagę pełnego rozładowania, flaga rozładowania przez odwołanie nie jest ustawiona.

Możliwe zastosowania

Wykorzystanie tego przetwarzania możliwe jest np. do tworzenia pełnej lub częściowej kopii zapasowej danych, wymiany danych pomiędzy bazami informacji, a także jako narzędzie pomocnicze przy przywracaniu problematycznych baz informacji.

2018-11-15T19:32:35+00:00

Uniwersalne przetwarzanie „Przesyłanie i ładowanie danych XML” wykonuje pełne lub częściowe rozładowywanie danych bazy danych do pliku w formacie XML. Następnie plik ten można załadować do bazy danych, stosując tę ​​samą obróbkę. Format pliku do przesłania różni się od formatu pliku utworzonego podczas przesyłania zgodnie z planem wymiany w części nagłówkowej.

Przetwarzania można dokonać jedynie w przypadku, gdy baza informacji, do której wprowadzono dane, i ta, w której dane zostały wczytane, są jednorodne (konfiguracje są identyczne, dane mogą się różnić) lub wszystkie przesłane obiekty są niemal całkowicie identyczne pod względem skład i rodzaje szczegółów i części tabeli, właściwości „wiodącego” obiektu metadanych i tak dalej.

Wykorzystanie tego przetwarzania jest możliwe na przykład do tworzenia pełnej lub częściowej kopii zapasowej danych, wymiany danych pomiędzy bazami danych, a także jako narzędzie pomocnicze przy przywracaniu uszkodzonych baz danych.

Przetwarzanie obsługuje przesyłanie danych z możliwością określenia wyboru według okresu. Zaimplementowano także sprawdzanie obiektów pod kątem obecności nieprawidłowych znaków podczas wymiany poprzez XML.

Z poważaniem (nauczyciel i programista).

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

Obiekty XML Reader/Writer, FastInfoset, 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 = NoweDrzewoWartości();
dzXML.Columns.Add("Nazwa");
dzXML.Columns.Add("Wartość");
dzXML.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ść
Wiersz = 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;
//wraca 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 = NewWriteXML();
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", Attributes.Name);
File.WriteAttribute("Synonim", 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();

Podobało się? Polub nas na Facebooku