Uchinchi tomon ilovalari uchun oson yuklash. Ma'lumotlarni xml ga yuklash jarayoni. XML faylini yaratish. Uchinchi tomon ilovasi uchun oddiy yuklash 1c 8 o'qish xml misoli

Bu 1C-ga Peterhost xizmatlarini sotib olish haqidagi ma'lumotlarni kiritish vaqtini tejaydi.
Buni amalga oshirish uchun siz XML faylini 1C-ga yuklashingiz kerak va undan sotib olingan xizmatlar to'g'risidagi ma'lumotlarni o'z ichiga olgan "Tovarlar va xizmatlarni qabul qilish" hujjati yaratiladi. Ushbu hujjat asosida hisob-faktura tuzilishi mumkin.

Batafsil ko'rsatmalar quyida keltirilgan.

1. Tashqi ishlov berishning ulanishi

1.1. Agar siz “Enterprise Accounting 2.0” konfiguratsiyasi bilan 1C: Enterprise 8.X maʼlumotlar bazasidan foydalanayotgan boʻlsangiz, hujjatni CommerceML formatida yuklash uchun siz tashqi ishlov berishni ulashingiz kerak ()
Bu ikki yo'l bilan amalga oshirilishi mumkin:
1. Tashqi ishlov berish faylini mahalliy diskda saqlang va CML formatida ma'lumotlarni har bir yuklashdan oldin uni "Fayl" → "Ochish" menyusi orqali oching.
2. Ishlov berishni axborot bazasiga (IS) doimiy ravishda ulash. Keyin u hamma uchun (agar tarmoq orqali ishlayotgan bo'lsa) "Asboblar" → "Qo'shimcha hisobotlar va qayta ishlash" → "Qo'shimcha tashqi ishlov berish" menyusidan foydalanish mumkin bo'ladi.

  • "Xizmat" menyusida "Qo'shimcha hisobotlar va ishlov berish" - "Qo'shimcha tashqi ishlov berish" ni tanlashingiz kerak.
  • "Qo'shish" tugmasini bosing. Yangi katalog elementini qo'shish shakli ochiladi:
  • "Ism" maydonida ishlov berish nomini ko'rsating, masalan, "CommerceML formatida ma'lumotlarni yuklash (RU-CENTER guruhi)."
  • Fayl tanlash tugmachasini bosing va yuklab olish faylini qayta ishlash yo'lini belgilang ().
  • “OK” tugmasini bosing.Endi ishlov berish ma’lumotlar bazasiga ulangan va “Qo‘shimcha tashqi ishlov berish” katalogida joylashgan bo‘lib, uni sichqonchani ikki marta bosish orqali ochish mumkin.

1.2. Agar siz “Ishlab chiqarish korxonalarini boshqarish” (10.3 va undan yuqori versiyalar) va “Savdoni boshqarish” (1.3 va undan yuqori versiyalar) konfiguratsiyalaridan foydalanayotgan bo‘lsangiz, bu qayta ishlash allaqachon yoqilgan va siz 2-bosqichga o‘tishingiz mumkin.

2. “Tovar va xizmatlarni qabul qilish” hujjatini shakllantirish

Quyidagi qadamlar natijasida Peterhost-dan sotib olingan xizmatlar haqidagi ma'lumotlar 1C-ga kiritiladi.
1. Keyinchalik, "Tovar va xizmatlarni qabul qilish" hujjatining ma'lumotlari bilan XML faylni kompyuteringizga kerakli muddatga saqlashingiz kerak. XML formatidagi fayl Shaxsiy hisob bo'limida "1C uchun XML" havolasi ostida joylashgan.
"Ma'lumotlar fayli nomi" maydonining o'ng tomonidagi tanlash tugmasini bosing va ushbu faylni tanlang (1-rasmga qarang). "Fayldan ma'lumotlarni o'qish kerakmi?" Degan savolga. "OK" deb javob bering. Ma'lumotlar fayli qayta ishlash orqali o'qiladi.
2. Agar qayta ishlash fayl ma'lumotlari elementlari va ma'lumotlar bazasi ma'lumotlari o'rtasidagi barcha yozishmalarni aniqlashga qodir bo'lsa, "Ma'lumotni infobazaga saqlash kerakmi?" Degan savol beriladi. Agar siz “Ha” deb javob bersangiz, “Tovar va xizmatlarni qabul qilish” yangi hujjati yaratiladi. 3-bosqichga o'ting.
3. Agar ma'lumotlarning barcha mosliklari aniqlanmasa, quyidagi xabar paydo bo'ladi: "Ma'lumotlarni yuklashda dastur almashinuv faylida uzatilgan elementlarga mos keladigan axborot xavfsizligi ob'ektlarini avtomatik ravishda topa olmadi..." va quyidagi amallarni bajarishni taklif qiladi. qo'lda taqqoslash. Bunday holda siz quyidagilarni qilishingiz kerak:

  • "OK" tugmasini bosing. Fayl ob'ektlari va axborot xavfsizligini taqqoslash uchun forma ochiladi. Unda har xil turdagi ob'ektlarga (tashkilotlar, pudratchilar, narsalar va boshqalar) mos keladigan bir nechta yorliqlar mavjud. Agar biron bir turdagi ma'lumotlar mos kelmagan bo'lsa, tegishli yorliqlarda qizil undov belgilari bo'ladi (2-rasmga qarang).
  • Tegishli xatcho'plarga o'ting va elementlarni qo'lda moslang. Shuni hisobga olish kerakki, kontragentlar va tashkilotlarning o'yinlari TIN bo'yicha qidiriladi va nomenklatura mosliklari birinchi navbatda maqola raqami, keyin esa nom bo'yicha qidiriladi. Agar fayl ma'lumotlariga mos keladigan element IBda bo'lmasa, u "Fayldan ma'lumotlar yordamida yaratish" tugmasini bosish orqali fayl ma'lumotlari yordamida avtomatik ravishda yaratilishi mumkin.
  • Elementlarni qo'shishda siz "Xizmat" xususiyatini tekshirishingiz kerak (3-rasmga qarang). Nomenklaturadagi ob'ektning to'liq va qisqa nomlarini ham o'zgartirishingiz mumkin.
  • "Hisob qaydnomalari" yorlig'ida "Tovarlar va xizmatlarni qabul qilish" hujjatini yaratishda ushbu raqamlar avtomatik ravishda kiritilishi uchun buxgalteriya hisoblarini qo'shish tavsiya etiladi. Masalan, xizmatlar uchun quyidagi qiymatlar o'rnatilishi mumkin: "Buxgalteriya hisobi" - 25 (Umumiy ishlab chiqarish xarajatlari) va "Taqdim etilgan QQSni hisobga olish" - 19.04 (sotib olingan xizmatlar uchun QQS) (4-rasmga qarang).
  • Barcha elementlarni taqqoslab, "OK" tugmasini bosgandan so'ng, dastur hujjatni axborot xavfsizligi tizimiga yuklashni tasdiqlashni so'raydi, shundan so'ng u "Tovar va xizmatlarni qabul qilish" yangi hujjatini yaratadi (5-rasmga qarang).

3. “Tovar va xizmatlarni qabul qilish” hujjatini joylashtirish

"Tovarlar va xizmatlarni qabul qilish" hujjatini joylashtirish uchun siz uni ikki marta bosish orqali ochishingiz va etishmayotgan maydonlarni, masalan, "Oldinga ofset" (masalan, "Avtomatik") va "Hisob-kitob hisobvaraqlari" dagi maydonlarni to'ldirishingiz kerak. ” yorlig'i (6-rasmga qarang). Ushbu maydonlarning qiymatlari tashkilotingizning buxgalteriya siyosati bilan belgilanadi. Hujjatni joylashtirish uchun "OK" tugmasini bosing.

4. “Invoys” hujjatini shakllantirish

"Tovarlar va xizmatlarni qabul qilish" hujjatini muvaffaqiyatli yaratgandan va joylashtirgandan so'ng, siz undan "Qabul qilingan faktura" hujjatini yaratish uchun foydalanishingiz mumkin. Buning uchun hujjat shaklining pastki chap qismidagi tegishli havolani bosing.

Tashkilotda buxgalteriya hisobi nafaqat 1C: Enterprise platformasidagi echimlarda, balki boshqa dasturiy ta'minot tizimlarida ham (Galaktika, Parus, SAP va boshqalar) amalga oshirilishi mumkin. Bu ikkita ilovani integratsiyalash muammosini keltirib chiqaradi.

Misol uchun, ba'zi ilovalar (uni "X" deb ataymiz) konfiguratsiya hujjatlari ro'yxatini o'qishi kerak. Biz bunday muammoni hal qilishning amaliy afzalliklari haqida gapirmaymiz, faqat shuni ta'kidlaymanki, bunday vaziyatda eng qulay va universal usul XML formatidagi hujjatlar ro'yxatini yuklash bo'ladi.

Ushbu formatdan foydalangan holda almashinuv universaldir, chunki ko'pgina ilovalar u bilan ishlashi mumkin. Keling, 1C: Enterprise-dan konfiguratsiya hujjatlari ro'yxatini XML fayliga qanday yuklashingiz mumkinligini ko'rib chiqaylik.

XML ga yuklash

Shunday qilib, keling, asosiy narsaga o'tamiz. Hujjat metadata ro'yxatini aylanib o'tishimiz va ro'yxatni XML faylida yaratishimiz kerak. Quyidagi skrinshotda XML faylini yaratish algoritmi ko'rsatilgan:

CreateXML() funktsiyasini eksport qilish // Vaqtinchalik fayl nomini oling Yo'l = GetTemporaryFileName() ; // "XML Record" sinfini ishga tushiring Kirish = Yangi EntryXML; // Yozish uchun vaqtinchalik faylni oching- 8 " ) ; // XML fayl deklaratsiyasini yozing Yozib olish. WriteDeclarationXML(); // Yozish. WriteElementStart(" Hujjatlar konfiguratsiyasi" ) ; // Birinchi element // Fayl yaratilgan sana bilan birinchi elementning atributi Yozib olish. WriteAttribute("hosil qilingan", Format(CurrentDate(), "DF = yyyy-AA- ddSs:dd:ss; DLF = DT" ) ) ; // Har bir konfiguratsiya hujjati uchun element yozing. Biz hujjatning nomini matnga kiritamiz. Metadatadan har bir hujjat uchun. Hujjatlar siklini yozib olish. WriteElementStart("Hujjat"); Yozib olish. WriteText(Doc.Name) ; Yozib olish. WriteEndElement(); EndCycle; // Birinchi elementni yozishni tugating Yozib olish. WriteEndElement(); Yozib olish. Close(); // Faylni yoping // Faylning ikkilik ma'lumotlarini oling va uni vaqtincha saqlashga qo'ying BinaryData = new BinaryData(Path); Manzil = PlaceInTemporaryStorage(BinaryData, New UniqueIdentifier); Qaytish manzili; // Xotiraga fayl manzilini qaytaring EndFunction

Yaratilgan har bir element to'g'ri to'ldirilishi kerak. “WriteStartofElement()” bajarilgandan so‘ng “WriteEndElement()” usuli bajarilishi kerak, aks holda XML faylining tuzilishi noto‘g‘ri bo‘ladi.

XML fayllarni yaratish uchun umumiy shablon quyidagi ketma-ketlikdir:

// 1. "XML Record" sinfini ishga tushiring Kirish = Yangi EntryXML; // 2. Yozib olish uchun vaqtinchalik faylni oching Yozib olish. OpenFile (yo'l, "UTF - 8 " ) ; // 3. XML fayl deklaratsiyasini yozing Yozib olish. WriteDeclarationXML(); // // 4. ++ XML faylining mazmunini yozing Yozib olish. WriteElementStart("XMLElement"); Yozib olish. WriteEndElement(); // -- XML ​​faylining mazmunini yozing // 5. Faylni yoping Yozib olish. Close();

Ushbu besh qadam deyarli har qanday XML faylini yaratadi.

Bizning misolimizda yaratilgan fayl ikkilik ma'lumotlarga aylantiriladi va CreateXML funksiyasi chaqirilgan joyga qaytariladi. Keyinchalik bu fayl fayl tizimiga yozilishi mumkin.

Yuqoridagi skrinshotda yuklangan faylning namunasini ko'rishingiz mumkin.

Uchinchi tomon ilovasi

Misol tariqasida, men uchinchi tomon ilovasida XML faylini o'qishni ko'rsatish uchun .NET Framework dasturida dastur yaratdim.

Dastur yaratilgan faylni o'qiydi va hujjatlarni ro'yxat shaklida ko'rsatadi:

Siz buni o'zingiz sinab ko'rishingiz mumkin, dasturni maqolaning oxiridagi havoladan foydalanib yuklab olish mumkin.

Ko'p qirralilik

XML formati ko'pgina konfiguratsiyalarda 1C: Enterprise platformasidagi amaliy echimlar o'rtasida ma'lumot almashish uchun ishlatiladi. Yana bir keng tarqalgan aloqa usuli - MAQOMOTI ulanishi. XML deyarli har qanday dastur bilan almashish imkonini beradi, shuning uchun uni universal deb atashga loyiqdir.

Yuklab olish uchun fayllar:

XML fayllarni o'qish uchun dastur.

XML faylini yaratishga ishlov berish.

XML hujjatlari bilan ishlash to'g'ridan-to'g'ri 1C: Enterprise 8 tizimining o'rnatilgan tilidan mavjud.

Bunday imkoniyat bor:

  • xml hujjatlarini ketma-ket o'qish va yozish:
    • element matnidan yoki XML atribut qiymatidan olingan satrdan belgilangan turga mos qiymatga aylantirish;
    • element matniga kiritiladigan qiymatning satrli tasvirini yoki XML atributining qiymatini olish;
    • parametr sifatida berilgan turga mos keladigan XML ma'lumotlar turini olish;
    • belgilangan turdagi qiymatni XML dan o'qish mumkinligini tekshiring;
    • XML o'qiyotganda XML sxemasiga muvofiqligini tekshiring
    • qiymatni xml formatida yozib olish;
    • XML ma'lumotlar turiga mos keladigan turni qaytaring.
  • quyidagi standartlarga mos keladigan xml hujjat ma'lumotlari (DocumentDOM) uchun ob'ektga kirish modelidan foydalaning:
    • DOM 2 darajasi;
    • XPath (DOM 3 darajasi);
    • DOMni yuklash va saqlash (DOM 3-darajali).
  • XML sxemasi ob'ekt modelidan foydalanish (XML sxemasi);
  • Canonical XML 1.1 standartidan foydalaning.

Tashqi ulanish va XML bilan ishlash mexanizmlaridan foydalanib, siz ushbu tizimlarda qabul qilingan formatlardan foydalangan holda amaliy tizimlar bilan integratsiyani tashkil qilishingiz mumkin. Buning uchun XSL transformatsiya mexanizmlari qo'llaniladi. Masalan, bunday integratsiya uchun siz Microsoft-ning BizTalk serveridan foydalanishingiz mumkin:

Tez ma'lumot

Platforma Fast Infoset ikkilik formatida XML hujjatlari bilan ishlash vositalarini taqdim etadi. Fast Infoset texnologiyasi XML ma'lumotlarini ko'rsatish uchun muqobil sintaksisdan foydalanadi. Bu an'anaviy XML formatida yozilgan ma'lumotlarga qaraganda kichikroq fayl o'lchamlari va tezroq ishlov berish tezligini ta'minlaydi. Fast Infoset formatida yozilgan fayl .fi yoki .finf kengaytmasiga ega.

Ishlash rejimlari

UploadLoadDataXML82-ni qayta ishlash 2 ish rejimini amalga oshiradi: Yuklash (foydalanuvchi tomonidan belgilangan ma'lumotlarning yuklash faylini yaratish) va Yuklash (bir xil nomdagi rejim tomonidan yaratilgan yuklash faylini o'qish va undagi ma'lumotlarni yozish). Rejim uni Mode maydonida tanlash orqali o'rnatiladi.

Muayyan rejimni ishga tushirishdan oldin (Ishga tushirish tugmachasini bosish) siz "Fayl nomi" maydoniga qo'lda kiritish yoki ushbu maydonni va standart faylni tanlash dialog oynasini tanlash uchun tugmani ishlatish orqali yuklash faylining nomini belgilashingiz kerak. .

Yuklab olish rejimida registrlarni yozishda jami foydalanishni tahrirlash mumkin, bu yuklab olish tezligiga ta'sir qilishi mumkin. “Ma’lumotlarni yuklashda yig‘indidan foydalanishni tahrirlash imkoniyatini yoqish” bayrog‘i o‘rnatilganda “Jamilarni o‘chirish” va “Jamilarni yoqish” tugmalari mavjud bo‘lib, ular ma’lumotlarni yuklashda jamilardan foydalanish rejimini qo‘lda boshqarish uchun ishlatiladi. ** Qayta ishlashni qo'llash shartlari**

Qayta ishlash faqat ma'lumotlar yuklangan ma'lumotlar bazasi va ma'lumotlar yuklangan bir hil bo'lgan (konfiguratsiyalar bir xil, ma'lumotlar farq qilishi mumkin) yoki barcha yuklangan ob'ektlar deyarli bir xil bo'lgan hollarda qo'llanilishi mumkin. detallarning tarkibi va turlari va jadval qismlari, "etakchi" metama'lumotlar ob'ektining xususiyatlari va boshqalar. Shuni ta'kidlash kerakki, ushbu cheklovlar tufayli qayta ishlash asosan bir hil IS o'rtasida almashish uchun mo'ljallangan.

Yuklash fayl formati sarlavha qismidagi almashinuv rejasiga muvofiq yuklashda yaratilgan fayl formatidan farq qiladi. Ma'lumotlarni (katalog elementlari, registr yozuvlari to'plami va boshqalar) yuklash uchun qayta ishlash almashinuv rejalariga muvofiq yuklash bilan bir xil XML seriyalash mexanizmidan foydalanadi; bu qismda fayl formatlari bir xil.

Yuk tushirish tarkibini aniqlash

Qayta ishlash ma'lumotlar bazasi ma'lumotlarini faylga to'liq va qisman yuklash imkonini beradi. Yuklangan ma'lumotlarning tarkibi dialog oynasida ma'lumotlar yuklanishi mumkin bo'lgan metadata ob'ektlarini ko'rsatadigan daraxt ustunidagi katakchalarni belgilash orqali sozlanadi. "Agar kerak bo'lsa" katakchalarining qo'shimcha ustuni ushbu turdagi ob'ektlarni "mos yozuvlar bo'yicha" tushirish zarurligini belgilaydi. Ya'ni, agar katakcha faqat "Agar kerak bo'lsa" ustunida belgilansa, bunday ob'ekt uchun ma'lumotlar to'liq yuklab olinmaydi, faqat yuklab olishni yuklaydigan ma'lumot bazasida ma'lumotlarning yaxlitligini saqlash uchun zarur bo'lgan darajada. fayl.

Shaklni ochishda ishlov berish barcha ob'ektlarga havola bo'yicha tushirish belgisini o'rnatadi, bu ma'lumot bazasining yuklanmagan fragmentining mos yozuvlar yaxlitligini kafolatlaydi.

"Havola orqali yuklab olingan ob'ektlarni aniqlash" tugmasini bosganingizda, ishlov berish to'liq yuklab olish bayrog'i o'rnatilgan ob'ektlarda qaysi ma'lumotlar havolalari bo'lishi mumkinligini tahlil qiladi va havola orqali yuklab olish zarurligini ko'rsatadigan bayroqlar ustunini avtomatik ravishda to'ldiradi. Agar ob'ektda allaqachon to'liq tushirish bayrog'i o'rnatilgan bo'lsa, u holda mos yozuvlar bo'yicha tushirish bayrog'i o'rnatilmaydi.

Mumkin ilovalar

Ushbu qayta ishlashdan foydalanish, masalan, ma'lumotlarning to'liq yoki qisman zaxira nusxasini yaratish, ma'lumotlar bazalari o'rtasida ma'lumot almashish, shuningdek, muammoli ma'lumotlar bazalarini tiklashda yordamchi vosita sifatida foydalanish mumkin.

- zaif tekshiruvlar bilan XML analogi bo'lgan taniqli veb-sahifalar.

XML Reader/Writer Objects, FastInfoset, HTML belgilash teglarini o'rnatilgan qayta ishlash bilan matnli fayllarni o'qish imkoniyatlarini kengaytiradi.

Ular, shuningdek, ma'lumotlar manbalari sifatida DOMBuilder/DOMRecord ob'ektlari uchun ishlatiladi (pastga qarang).

XML 1C fayllari matnli ma'lumotlarni o'z ichiga oladi, ya'ni ular matnli fayllardir. 1C XML Reader va 1C Write XML ob'ektlari 1C faylida XML teglari bilan ishlashni osonlashtiradigan "qo'shimcha" hisoblanadi.

ReadingFastInfoset 1C va WritingFastInfoset 1C, ReadingHTML 1C va WritingHTML 1C obyektlari ReadingXML 1C va WritingXML 1C bilan butunlay o‘xshash va boshqa formatlar bilan bir xilda ishlashga xizmat qiladi.

Misollarda ishlatiladigan XML 1C fayli

Katalog>

Katalog>

Matn valueProps>
Katalog>
Konfiguratsiya>

Misol 1. Reading XML 1C yordamida 1C XML faylini qiymatlar daraxtiga o'qish

// ReadingXML 1C yordamida o'qish uchun XML 1C faylini oching
Fayl = Yangi ReadXML();
File.OpenFile("D:\ConfigurationStructure.xml");

//qiymat daraxtini tayyorlang
//har bir XML filiali nomi, atributlari va qiymatiga ega bo'lishi mumkin
dzXML = NewValueTree();
dzXML.Columns.Add("Ism");
dzXML.Columns.Add("Qiymat");
dzXML.Columns.Add("Atributlar");

//XML qatori bir nechta atributlarga ega bo'lishi mumkinligi sababli, biz ularni qiymatlar jadvaliga yozamiz
//har bir atributning nomi va qiymati bor
tAtributlar = Yangi qiymatlar jadvali();
tAttributes.Columns.Add("Ism");
tAttributes.Columns.Add("Qiymat");

//uyalash darajasi bizga qachon ichki novda qo'shishimiz kerakligini va qachon yuqoriga qaytishimiz kerakligini tushunishga yordam beradi.
Yuvalash darajasi = 0;
//joriy chiziq - bu daraxt chizig'i, uya ko'payishi bilan o'zgaradi
CurrentRow = Aniqlanmagan;
//XML 1C faylini o'qish satr satr emas, balki strukturaga ko'ra amalga oshiriladi; fayl tugagach, o'qish FALSE qaytaradi.
While File.Read() sikli

//bizni uchta turdagi tugun qiziqtiradi - elementning boshlanishi, matn (elementning qiymati) va elementning oxiri (yuqori darajaga qaytish uchun)
Agar File.NodeType = XMLNodeType.ElementStart Keyin

Yuvalash darajasi = Yuvalash darajasi + 1;

//agar bu birinchi qator bo'lsa, uni daraxtning eng yuqori qismiga qo'shing va faqat nomini saqlang
Agar CurrentRow = Aniqlanmagan bo'lsa
CurrentRow = dXML.Rows.Add();
CurrentLine.Name = File.Name;
Davom etish;
Aks holda
// ichki qatorlar
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = File.Name; //nomni saqlang

//bu XML elementining atributlari bormi?
Agar File.NumberAttributes() > 0 bo'lsa
//ha bo'lsa, atributlarni saqlash uchun tayyorlangan bo'sh jadvaldan nusxa oling
tAttributesNode = tAttributes.Copy();
//ushbu elementning atributlari soni bo'yicha aylanish
Hisob uchun = 0 fayl bo'yicha. Atributlar soni()-1 sikl
//har bir atribut uchun nom va qiymatni eslab qoling
Qator = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Ac);
EndCycle;
//elementning atributlar jadvalini joriy satrga saqlang
CurrentRow.Attributes = tNodeAttributes;
endIf;
endIf;

ElseIf File.NodeType = XMLNodeType.EndElement Keyin
//elementning boshida biz joylashtirish darajasini oshiramiz, element oxirida biz uni kamaytiramiz
Yuvalash darajasi = Yuvalash darajasi - 1;
//joriy qatorni bir daraja yuqoriga qaytarish
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Keyin
//agar element qiymatga ega bo'lsa, uni saqlash kifoya
CurrentRow.Value = File.Value;

endIf;

EndCycle;

File.Close();

Misol 2. 1C Record XML obyekti yordamida 1C XML faylini yozib olish

//fayl yaratish XML 1C yozib olish
Fayl = NewWriteXML();
File.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Konfiguratsiya");

//barcha kataloglarni aylanib o'tish uchun metama'lumotlardan foydalaning (batafsil ma'lumot uchun "Metama'lumotlar bilan ishlash" ga qarang)
Metadata.Directories Cycle-dan har bir katalog uchun

//WriteStartofElement - yangi [bo'ysunuvchi] filialni ochadi
File.WriteElementStart("Katalog");
//WriteAttribute - avval ochilgan filialga atribut yozadi
File.WriteAttribute("Ism", Directory.Name);
File.WriteAttribute("Sinonim", Directory.Sinonim);

// metama'lumotlardan foydalanib, biz katalogning barcha tafsilotlarini ko'rib chiqamiz
Directory.Props tsiklidan har bir rekvizit uchun




EndCycle;

//katalogning barcha jadval qismlarini aylanib o'tish uchun metama'lumotlardan foydalaning
Katalogdagi har bir PM uchun.Tsiklning jadval qismlari
File.WriteElementStart("TabularPart");
File.WriteAttribute("Ism", PM.Name);
File.WriteAttribute("Sinonim", PM.Sinonimi);

PM.Props Cycle-dan har bir rekvizit uchun
File.WriteElementStart("Props");
File.WriteAttribute("Ism", Atributlar.Name);
File.WriteAttribute("Sinonim", Atributlar.Sinonim);
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
EndCycle;

//WriteEndElement - WriteBeginElement yordamida avval ochilgan filialni "yopishadi"
File.WriteEndElement();
EndCycle;

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