Verileri xml'e yükleme işlemi. Bir XML dosyası oluşturuluyor. Üçüncü taraf uygulamaları için kolay yükleme. Xml'e veri yükleme işlemi 1c'de bir xml dosyası nasıl yüklenir

Bir işletme, çalışmalarında sürekli olarak bir tür yazılım paketi kullandığında, doğal olarak sürekli destek ve yönetim sorunu her zaman ortaya çıkar. Veri alışverişi, depolama ve geri yükleme görevlerinden kaçınmanın hiçbir yolu yoktur. Bu konu için önemli bir prosedür olduğundan, 1C'den XML formatında verilerin nasıl yükleneceği veya kaldırılacağına bakalım.

Yükleme sırasında müşteri için gerekli verilerin kaydedileceği bir XML dosyası alabileceğiniz şekilde oluşturulmuştur. Aynı zamanda kayıtla eş zamanlı olarak aktarılan kayıtların kritik hatalara karşı doğruluğu da takip edilmektedir.

Bu nedenle, bir bilgi tabanından bir XML dosyasına yükleme (kayıtları içe aktarma) ve ardından XML'den diğerine yükleme, veritabanları arasında XML formatındaki veri alışverişini temsil eder.

Özellikle büyük miktarda bilgi içeren bu prosedür, birçok manuel çalışmadan tasarruf sağlar.

İçe aktarma (sonuç olarak ortaya çıkan dosya), beklenmedik durumlarda (kaybolması veya hasar görmesi durumunda) kurtarma için bir arşiv olarak da kullanılabilir.

Bu tür işleme araçlarının birçoğu geliştirildi ve bunlara internette erişilebiliyor. Kullanımlarının sorumluluğu müşterinin omuzlarına (ve başına) düşer.

Ancak Odeneski'nin resmi kullanıcıları için geliştiriciler evrensel bir "XML Verilerini Yükle/Yükle" işlemcisi oluşturdular.

ÖNEMLİ. 1C'de XML'e aktarma ve 1C'den XML'e daha fazla yükleme, aynı yapılandırmalar için kabul edilebilir - aksi takdirde hasar görür.

Evrensel işleyici

Evrensel geliştiriciyi kullanmanın önemli noktaları:

  • Kayıtların aktarımı tamamlanana ve doğrulukları kontrol edilene kadar içe aktarılan dosyaları kaydedin;
  • Yedek kopya olarak kullanıldığında, aramayı sıralamak için bunların bir kaydı tutulmalıdır.

Çalışmasının iki modu vardır: bilgileri kaydederken dosya oluşturmak ve içe aktarırken dosyayı okumak/yazmak.

Ek olarak kullanıcı, verileri hem dışa aktarırken hem de yüklerken ek kısıtlamalar belirleyebilir.

Kayıtları çıkarma

Verileri hem veritabanının tamamına hem de nesne nesneye göre seçerek yükleyebilirsiniz.

İşleyiciyi indirdikten, kurduktan ve açtıktan sonra aşağıdakiler gerçekleşir:


Seçimleri, lansmandan sonra açılan iletişim kutusunda yapılır. Bunu yapmak için, alınacak meta veri nesnelerini görüntüleyen listedeki kutuları işaretleyin;

  1. Gerekli filtreler yapılandırılmıştır (örneğin tarihe göre);
  2. Disk alanı seçilir;
  3. Operasyonun kendisi başlıyor.

Kayıtların alıcıya yüklenmesi

Alıcı veritabanına veri kabul etmenin ilk adımı, içindeki işlemci programını açmaktır.

Kaynak dosyanın yolu belirtildikten ve prosedür ayarları bayrakları etkinleştirildikten (gerekirse) sonra “Veri yükle” butonu ile işlemi başlatabilirsiniz.

Artık verileri kaydetmek ve veritabanları arasında alışveriş yapmak için 1C'den XML formatında verileri nasıl yükleyeceğinizi veya kaldıracağınızı biliyorsunuz.

Veri aktarımı herhangi bir muhasebe sisteminde çok önemli bir süreçtir; 1C 8.3 ve 8.2 platformu da istisna değildir. Aşağıda, verileri bir sistemden benzer konfigürasyona sahip diğerine aktarmanın en kolay yoluna ilişkin talimatlara bakacağız (farklı konfigürasyonlar için programcılara yönelik bir araç kullanabilirsiniz - veya).

Herhangi bir eylem gerekli olmadan önce değişiklikler geri alınamaz!

1C 8.3'ten 1C 8.3 Accounting 3.0'a veri aktarmanın en kolay ve en uygun yolu, verileri XML formatında yükleme ve yükleme işlemini kullanmaktır (indirme - 8.2 veya 1C 8.3 için veya ITS'de). Tedavi evrenseldir ve her türlü konfigürasyona uygundur.

Ayrıntılara girmeyeceğiz; en basit mal aktarımı örneğini kullanarak bu işlemeyi kullanarak verileri taşımak için adım adım talimatlara bakalım.

Verileri XML'e yükleme

Öncelikle kaynak veritabanında (malları boşaltacağımız yerden) işlemeyi açalım ve arayüze bakalım:

1C'de 267 video dersini ücretsiz alın:

Hemen "Dosya adı" alanını doldurmalısınız - bu yol boyunca alıcı veritabanına yükleyeceğimiz yeni bir veri dosyası oluşturulacaktır. Hemen altında, “Yüklenecek veriler” tablo bölümünde, veritabanından yüklemek istediğimiz verileri seçmeniz gerekiyor.

Tablonun sol kısmından bir nesne seçtikten sonra sağ tablo kısmında seçimi uygulayabilirsiniz:

Örneğimizde “Rake” isimli tüm ürünleri boşaltmak istiyorum.

Tüm ayarlar tamamlandıktan sonra veriler yüklenebilir. Bunu yapmak için “Veri yükle” düğmesine tıklayın:

Xml'den 1s 8.3'e veri yükleme

Veriler kaynak veritabanından kaldırıldı; şimdi hedef veritabanına aktarılması gerekiyor.

Bunu yapmak için, verileri yüklemeniz gereken veritabanında zaten işlemeye başlamanız ve "İndir" sekmesine gitmeniz, indirilen dosyayı diskte seçmeniz ve "Verileri yükle" düğmesine tıklamanız gerekir:

Bu örnek yalnızca 1C platformundaki aynı konfigürasyonlar arasında veri aktarımı için uygundur. Programcılar için değişim mekanizmasını anlamak için bir makale yazdık -.

Çalışma modları

UploadLoadDataXML82'nin işlenmesi 2 çalışma modunu uygular: Yükleme (kullanıcı tarafından belirlenen verilerden oluşan bir yükleme dosyası oluşturma) ve Yükleme (aynı adlı mod tarafından oluşturulan bir yükleme dosyasını okuma ve içindeki verileri yazma). Mod, Mod alanında seçilerek ayarlanır.

Belirli bir modu başlatmadan önce (Çalıştır düğmesine tıklayarak), yükleme dosyasının adını "Dosya adı" alanına manuel olarak girerek veya bu alanı ve standart dosya seçimi iletişim kutusunu seçmek için düğmeyi kullanarak belirtmeniz gerekir. .

İndirme modunda, indirme hızını etkileyebilecek kayıtlar yazarken toplamların kullanımını düzenlemek mümkündür. "Toplamları devre dışı bırak" ve "Toplamları etkinleştir" düğmeleri, "Verileri yüklerken toplamların kullanımını düzenleme yeteneğini etkinleştir" bayrağı ayarlandığında kullanılabilir ve verileri yüklerken toplamları kullanma modunu manuel olarak kontrol etmek için kullanılır. **İşlemenin uygulanabilirlik koşulları**

İşleme yalnızca verilerin yüklendiği bilgi tabanı ile verilerin yüklendiği bilgi tabanının homojen olduğu (konfigürasyonlar aynı, veriler farklı olabilir) veya yüklenen tüm nesnelerin neredeyse tamamen aynı olduğu durumlarda kullanılabilir. ayrıntı ve tablo parçalarının bileşimi ve türleri, "öncü" meta veri nesnesinin özellikleri vb. Bu sınırlamalar nedeniyle işlemenin esas olarak homojen IS'ler arasındaki alışverişi amaçladığına dikkat edilmelidir.

Yükleme dosyası formatı, başlık kısmındaki değişim planına göre yükleme sırasında oluşturulan dosya formatından farklıdır. Verileri (dizin öğeleri, kayıt kayıtları kümeleri vb.) yüklemek için işleme, değişim planlarına göre yüklemeyle aynı XML serileştirme mekanizmasını kullanır; bu bölümde dosya formatları aynıdır.

Boşaltma bileşiminin belirlenmesi

İşleme, bilgi tabanı verilerinin bir dosyaya hem tam hem de kısmi olarak yüklenmesine olanak tanır. Yüklenen verilerin bileşimi, iletişim kutusunda, verilerin yüklenebileceği meta veri nesnelerini görüntüleyen ağacın sütunundaki kutular işaretlenerek yapılandırılır. Ek bir onay kutusu sütunu olan "Gerekirse", bu tür nesnelerin "referans yoluyla" kaldırılması ihtiyacını belirler. Yani, yalnızca "Gerekirse" sütununda onay kutusu işaretlenirse, böyle bir nesnenin verileri tamamen indirilmeyecek, yalnızca indirmeyi yükleyecek bilgi tabanındaki referans bütünlüğünü korumak için gerekli olduğu ölçüde indirilecektir. dosya.

Bir formu açarken işleme, tüm nesnelere referans olarak boşaltma işaretini belirler; bu, bilgi tabanının boşaltılan kısmının referans bütünlüğünü garanti eder.

"Bağlantıyla indirilen nesneleri algıla" düğmesini tıkladığınızda, işleme, tam indirme bayrağı ayarlanmış nesnelerde hangi veri bağlantılarının bulunabileceğini analiz eder ve bağlantıyla indirme ihtiyacını belirten bayraklar sütununu otomatik olarak doldurur. Nesnede zaten tam boşaltma bayrağı ayarlanmışsa, referansa göre boşaltma bayrağı ayarlanmaz.

Olası uygulamalar

Bu işlemin kullanımı, örneğin verilerin tam veya kısmi bir yedek kopyasını oluşturmak, bilgi tabanları arasında veri alışverişi yapmak ve ayrıca sorunlu bilgi tabanlarını geri yüklerken yardımcı bir araç olarak kullanmak mümkündür.

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

Evrensel işleme "XML verilerini yükleme ve yükleme", bilgi tabanı verilerinin XML biçimindeki bir dosyaya tamamen veya kısmen boşaltılmasını gerçekleştirir. Daha sonra bu dosya aynı işlem kullanılarak bilgi tabanına yüklenebilir. Yükleme dosyası formatı, başlık kısmındaki değişim planına göre yükleme sırasında oluşturulan dosya formatından farklıdır.

İşleme yalnızca verilerin yüklendiği bilgi tabanı ile verilerin yüklendiği bilgi tabanının homojen olduğu (konfigürasyonlar aynı, veriler farklı olabilir) veya yüklenen tüm nesnelerin neredeyse tamamen aynı olduğu durumlarda kullanılabilir. ayrıntı ve tablo parçalarının bileşimi ve türleri, "öncü" meta veri nesnesinin özellikleri vb.

Bu işlemin kullanımı, örneğin verilerin tam veya kısmi bir yedek kopyasını oluşturmak, bilgi tabanları arasında veri alışverişi yapmak ve ayrıca hatalı bilgi tabanlarını geri yüklerken yardımcı bir araç olarak kullanmak mümkündür.

İşleme, döneme göre seçim belirleme olanağıyla veri yüklemeyi destekler. Ayrıca, XML aracılığıyla değiştirildiğinde nesnelerin geçersiz karakterlerin varlığı açısından kontrol edilmesi de uygulanmaktadır.

Saygılarımla (öğretmen ve geliştirici).

- aynı zamanda zayıf kontrollere sahip bir XML analoğu olan tanınmış web sayfaları.

XML Okuyucu/Yazıcı Nesneleri, FastInfoset, HTML, işaretleme etiketlerinin yerleşik olarak işlenmesiyle metin dosyası okuma yeteneklerini genişletir.

Bunlar aynı zamanda DOMBuilder/DOMRecord nesneleri için (aşağıya bakın) veri kaynağı olarak kullanılır.

XML 1C dosyaları metin bilgisi içerir, yani metin dosyalarıdır. 1C XML Reader ve 1C Write XML nesneleri, 1C dosyasındaki XML etiketleriyle çalışmayı kolaylaştıran bir "eklentidir".

ReadingFastInfoset 1C ve WritingFastInfoset 1C, ReadingHTML 1C ve WritingHTML 1C nesneleri, ReadingXML 1C ve WritingXML 1C'ye tamamen benzer ve diğer formatlarla aynı şekilde çalışmaya hizmet eder.

Örneklerde kullanılan XML 1C dosyası

Dizin>

Dizin>

Metin değeriProps>
Dizin>
Yapılandırma>

Örnek 1. XML Okuma 1C'yi kullanarak bir 1C XML dosyasını değer ağacına okuma

//ReadingXML 1C kullanarak okumak için XML 1C dosyasını açın
Dosya = Yeni ReadXML();
File.OpenFile("D:\ConfigurationStructure.xml");

//değer ağacını hazırlıyoruz
//her XML dalının bir adı, nitelikleri ve değeri olabilir
dzXML = YeniValueTree();
dzXML.Columns.Add("Ad");
dzXML.Columns.Add("Değer");
dzXML.Columns.Add("Nitelikler");

//bir XML dizisinin birden fazla özelliği olabileceğinden bunları değerler tablosuna yazacağız
//her özelliğin bir adı ve değeri vardır
tAttributes = Yeni ValueTable();
tAttributes.Columns.Add("Ad");
tAttributes.Columns.Add("Değer");

//yuvalama seviyesi, ne zaman iç içe dal eklememiz gerektiğini ve ne zaman bir seviye yukarı çıkmamız gerektiğini anlamamıza yardımcı olacaktır
Yuvalama Düzeyi = 0;
//mevcut çizgi bir ağaç çizgisidir, iç içe geçme arttıkça değişecektir
CurrentRow = Tanımsız;
//XML 1C dosyasının okunması satır satır değil yapısına göre yapılır; dosya bittiğinde okuma FALSE değerini döndürür
File.Read() Döngüsü sırasında

//üç tür düğümle ilgileniyoruz - öğenin başlangıcı, metin (öğenin değeri) ve öğenin sonu (en üst seviyeye dönmek için)
File.NodeType = XMLNodeType.ElementStart ise O zaman

Yuvalama Düzeyi = Yuvalama Düzeyi + 1;

//eğer bu ilk satırsa, onu ağacın en üstüne ekleyin ve yalnızca adı kaydedin
CurrentRow = Tanımsız ise O zaman
CurrentRow = dXML.Rows.Add();
CurrentLine.Name = Dosya.Name;
Devam etmek;
Aksi takdirde
//iç içe çizgiler
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = Dosya.Name; //ismi kaydet

//bu XML öğesinin nitelikleri var mı?
File.NumberAttributes() > 0 ise O zaman
//eğer evet ise, nitelikleri kaydetmek için hazırlanan boş tabloyu kopyalayın
tAttributesNode = tAttributes.Copy();
//bu öğenin özniteliklerinin sayısı arasında geçiş yap
Hesap İçin = 0, Dosya.Number of Attributes()-1 Döngüsü ile
//her özellik için adı ve değeri hatırla
Satır = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Ac);
EndCycle;
//öğenin nitelik tablosunu geçerli satıra kaydet
CurrentRow.Attributes = tNodeAttributes;
endIf;
endIf;

ElseIf File.NodeType = XMLNodeType.EndElement Sonra
//elemanın başında yuvalanma seviyesini arttırıyoruz, elemanın sonunda ise azaltıyoruz
Yuvalama Düzeyi = Yuvalama Düzeyi - 1;
//mevcut satırı bir seviye yukarı döndür
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Sonra
//eğer öğenin bir değeri varsa, onu kaydedin
CurrentRow.Value = Dosya.Value;

endIf;

EndCycle;

Dosya.Close();

Örnek 2. 1C Record XML nesnesini kullanarak 1C XML dosyasını kaydetme

//bir dosya oluştur Kayıt XML 1C
Dosya = NewWriteXML();
File.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Yapılandırma");

//tüm dizinleri dolaşmak için meta verileri kullan (daha fazla ayrıntı için bkz. "Meta verilerle çalışma")
Metadata.Directories Döngüsünden her Dizin için

//WriteStartofElement - yeni bir [alt] dal açar
File.WriteElementStart("Dizin");
//WriteAttribute - daha önce açılmış bir şubeye bir nitelik yazar
File.WriteAttribute("Ad", Directory.Name);
File.WriteAttribute("Synonym", Directory.Synonym);

//meta verileri kullanarak tüm dizin ayrıntılarını inceliyoruz
Directory.Props Döngüsündeki her Prop için




EndCycle;

//dizinin tüm tablolu kısımlarını dolaşmak için meta verileri kullan
Rehberdeki her PM için Döngünün Tablo Bölümleri
File.WriteElementStart("TabularPart");
File.WriteAttribute("Ad", PM.Ad);
File.WriteAttribute("Synonym", PM.Synonym);

PM.Props Döngüsünden her bir Prop için
File.WriteElementStart("Sahne");
File.WriteAttribute("Ad", Attributes.Name);
File.WriteAttribute("Synonym", Attributes.Synonym);
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
EndCycle;

//WriteEndElement - WriteBeginElement kullanılarak daha önce açılan şubeyi "kapatır"
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
Dosya.Close();