Qo'shimcha tashqi hisobotlar 1s 8.3. Ma'lumotlar bazasiga tashqi hisobot qo'shish

Universal ob'ektni qayta ishlash 1C 8.3 yuklab olish.

1C platformasining 8.2 va 8.1 (muntazam shakllarda) odatiy dastur versiyasida "Ob'ektlarni universal tanlash va qayta ishlash" kabi ajoyib ishlov berish mavjud edi. Bu dasturchilar va dastur ma'murlari hayotini ancha soddalashtirdi.

Xuddi shu 1C ishlov berish boshqariladigan dastur uchun paydo bo'ldi (8.3 va 8.2). Bundan oldin, 1C 8.3 da, tafsilotlarga guruh o'zgarishlarini standart qayta ishlash bilan shug'ullanish kerak edi, ammo bu 1C foydalanuvchisi yoki dasturchisining kundalik ishida talab qilinadigan barcha vazifalarni hal qilmaydi.

Ob'ektlarni qidirish va tanlash

Qayta ishlashni yuklab olgandan so'ng, biz uni tashqi sifatida ishga tushirishimiz mumkin. Bilmaganlar uchun bu "Fayl" - "Ochish" menyusi orqali amalga oshiriladi. Qayta ishlash oynasi paydo bo'ladi:

Birinchi yorliqda biz ishlamoqchi bo'lgan ob'ektni tanlashimiz kerak. Shunday qilib, "Qidiruv ob'ekti" maydonida "Sotish (aktlar, hisob-fakturalar)" hujjati allaqachon tanlangan. Buning sababi, bu ob'ekt allaqachon tanlangan. Qayta ishlash eslab qolishi mumkin.

"Tanlovni sozlash" tugmasini bosish orqali biz ob'ektning deyarli har qanday maydoni uchun tanlovni o'rnatishimiz mumkin:

Agar tanlov ma'lumotlari etarli bo'lmasa, siz maxsus so'rov yordamida kerakli ob'ektlarni tanlashingiz mumkin. Buning uchun "Tanlash rejimi" tugmachasini tegishli joyga o'tkazing.

Barcha sozlamalardan so'ng ob'ektlarni tanlash kerak. "Obyektlarni topish" tugmasini bosing va tanlov natijasiga qarang:

Elementlarni qayta ishlash

Keling, "Qayta ishlash" yorlig'iga o'tamiz:

Ehtimol, faqat dastlabki uchta davolash alohida qisqacha ko'rib chiqishga loyiqdir. Qolganlarning ishi nomi bilan aniq va ular sozlamalarni talab qilmaydi.

Ixtiyoriy algoritm

"Maxsus algoritm" ni qayta ishlash sizga ichki 1C tilida ob'ektlar bo'yicha harakatlar dasturini yozish imkonini beradi. Qayta ishlash dasturlash qobiliyatlarini talab qiladi va uning tavsifi alohida maqolaga loyiqdir. Uning yordami bilan siz ob'ektlarda amaliy harakatlar qilishingiz mumkin:

Tafsilotlarni sozlash

"Sozlash tafsilotlari" ni qayta ishlash tanlangan hujjatlar yoki kataloglarning tafsilotlarini, shuningdek, ma'lumotlar registrlarini o'zgartirish imkonini beradi. Juda foydali va ba'zan oddiygina zarur ishlov berish. Masalan, tanlangan hujjatlardagi hujjat valyutasini almashtiramiz:

Darhol ta'kidlash kerakki, ishlov berish darhol amalga oshirilishi mumkin yoki siz sozlamani saqlashingiz mumkin. Ushbu sozlama ishlov berish daraxtida ko'rsatiladi.

Ob'ektlarni qayta raqamlash

Shunga ko'ra, "Ob'ektlarni qayta raqamlash" jarayoni sizga hujjatlarni qayta raqamlash yoki katalog kodlarini o'zgartirish imkonini beradi. Qayta ishlash boy harakatlar to'plamini taqdim etadi. Masalan, siz tanlagan hujjatlarning prefiksini o'zgartirishga qaror qildingiz:

Endi saqlangan sozlamalar bilan nima qilishimiz mumkinligini ko'rib chiqamiz. Ma'lum bo'lishicha, biz uni "Tanlangan ishlov berish" oynasiga o'tkazib, bitta to'plamda bajarishimiz mumkin:

Endi biz "Ishga tushirish" tugmasini bosish orqali tanlangan sozlamalarni ketma-ket bajarishimiz mumkin.

Materiallar asosida: programmist1s.ru

Keling, 1C 8 da ma'lumotlar kompozitsiyasi tizimidan foydalanmasdan tashqi hisobot yaratishni ko'rib chiqaylik. Tashqi hisobotni yaratish uchun biz Buxgalteriya 2.0 konfiguratsiyasidan, dastlabki ma'lumotlardan foydalanamiz: "Buxgalteriya hisobi 62 bo'yicha hisobot yozing, unda ko'rsatilgan davr uchun aylanma kontekstda ko'rsatiladi. Qarama-qarshi tomonlar Va Kontragentlar shartnomalari.

1. Hisobot yarating

Avvalo, tashqi hisobot faylini yaratamiz, buning uchun rejimda 1s 8 ga o'tamiz. Konfigurator, keling, menyuga o'tamiz Fayl -> Yangi, yoki belgini bosing yangi hujjat.

Ro'yxatdan elementni tanlang Tashqi hisobot. Tashqi hisobotni yaratgandan so'ng, unga nom bering (masalan Eng oddiy hisobot) va uni diskka saqlang. Shuningdek, biz ikkita ma'lumotni qo'shamiz: Davr boshlanishi Va Davr oxiri turi sana, hisobotni yaratishda ma'lumotlardan namuna olish uchun vaqt oralig'ini cheklash uchun bizga kerak bo'ladi.

2. Tashqi hisobot sxemasini yarating

1C 8 da hisobot yaratish uchun sizga tartib kerak, bu barcha kerakli parametrlar o'rnatilgan, jadvallar chizilgan va hokazo ma'lumotlarni ko'rsatish uchun shablon. Keling, yangi tartib qo'shamiz, buning uchun hisobot metama'lumotlari daraxtidagi elementni tanlang Tartiblar va tugmani bosing Qo'shish, yaratishda tartib uchun turni tanlang elektron jadval hujjati.

Bizning sxemamiz 4 ta maydondan iborat bo'ladi:

  • Sarlavha - bu sohada biz hisobot nomini, u yaratilgan davrni va jadval sarlavhasini ko'rsatamiz;
  • Qarama-qarshi tomon ma'lumotlari - bu sohada biz kontragent haqidagi ma'lumotlarni jadvalda ko'rsatamiz;
  • DataCounterparty Agreement - bu sohada biz kontragent shartnomasi bo'yicha ma'lumotlarni jadvalda ko'rsatamiz;
  • Altbilgi - bu sohada biz daromadlar va xarajatlar maydonlari uchun butun hisobot uchun umumiy qiymatlarni ko'rsatamiz.

Keling, tartib zonalarini yaratishni boshlaylik. Tartibda maydon yaratish uchun kerakli qatorlar sonini tanlang va ustiga bosing Menyu jadvali -> Ismlar -> Ism tayinlash(Yoki Ctrl + Shift + N). Mintaqaga Qopqoq Keling, hisobot nomini yozamiz: Oborot 62 ta, asbob yordamida chizish Chegaralar hisobot sarlavhasi, shuningdek parametrlarni o'rnating Davr boshlanishi Va Davr oxiri. Parametrlardan foydalanib, siz kerakli ma'lumotlarni hisobotda ko'rsatishingiz mumkin, biz buni rivojlanishning keyingi bosqichida, ya'ni hisobot kodini yozishda hal qilamiz. Tartibda parametr yaratish uchun kerakli katakchani tanlang, undagi parametr nomini yozing (bo'shliqlarsiz), ustiga sichqonchaning o'ng tugmachasini bosing, ochilgan menyuda elementni tanlang. Xususiyatlari. Yorliqdagi hujayra xususiyatlarida Tartib to'ldirishni tanlang Parametr.

Shundan so'ng, katakdagi parametr nomi burchakli qavslar ichiga olinadi ("<>"). Natijada, hudud Qopqoq quyidagicha ko'rinishi kerak:

Hududda DataCounterparty biz vositadan foydalangan holda kontragentning nomini, shuningdek 62-schyotning daromadlari va xarajatlarini ko'rsatish uchun parametrlarni yaratamiz. Chegaralar Keling, maydonni jadval qatori sifatida loyihalashtiramiz.

Hududda DataCounterparty shartnomasi Keling, shartnoma nomini ko'rsatish uchun parametrlarni, shuningdek, 62-schyotning daromadlari va xarajatlarini yarataylik, Chegaralar vositasidan foydalanib, biz maydonni jadval qatori sifatida loyihalashtiramiz. Parametrdan oldin kichik chekinamiz Qarama-qarshi tomon shartnomasi(buni katakchalarni bo‘lish va birlashtirish orqali amalga oshirish mumkin. Sichqonchaning o‘ng tugmasi bilan katakchani bosing -> Birlashtirish yoki Bo'lingan hujayra), bu hisobot shartnoma uchun chiziq ierarxiyada kontragentga nisbatan pastroq ekanligini ko'rishi uchun kerak.

Hududda Podval Keling, daromad va xarajatlarning umumiy ko'rsatkichlari uchun parametrlarni yarataylik.

Natijada, biz shunday tartibni olishimiz kerak:

3. Hisobot shaklini yarating

Ma'lumotlarni ko'rsatish uchun shakllanish davri va tugmani o'rnating Shakl bizning hisobotimiz shaklni talab qiladi. Shakl yaratish uchun tashqi hisobot metama'lumotlari daraxtidagi elementni toping Shakllar va tugmani bosing Qo'shish. Shakl dizaynerining birinchi sahifasida siz hech qanday o'zgartirish kiritishingiz shart emas, shunchaki tugmani bosishingiz kerak Keyinchalik.

Dizaynerning keyingi sahifasida ikkala mavjud ma'lumotni tanlang( Davr boshlanishi, Davr oxiri) shaklga joylashtirish uchun.

Natijada biz ushbu shaklni olamiz:

Ammo biz bu shakldan qoniqmadik, keling, unga o'zgartirish kiritamiz:

  • Keling, tugmachani tortamiz Shakl hisobotning pastki panelidan tepaga (bu foydalanuvchi uchun qulayroq bo'ladi);
  • Shaklni vertikal va gorizontal ravishda cho'zing;
  • Keling, maydonlarni tartibga keltiraylik Davr boshlanishi Va Davr oxiri gorizontal;
  • Shaklga elektron jadval hujjati maydonini boshqarish elementini qo'shamiz (bizning hisobotimiz unda ko'rsatiladi), unga nom bering TabDoc;
  • Davr tanlash tugmachasini yaratamiz (bosilganda kerakli davrni qulay tanlash bilan dialog oynasi paydo bo'ladi). Biz hali dastur kodini yozmaymiz, shuning uchun tugmani davr maydonlari yoniga joylashtiramiz.

Natijada bizning shaklimiz quyidagicha ko'rinadi:

4. Dasturlash

Hisobot formasini yaratgandan so'ng, dasturlashni boshlaymiz. Birinchidan, davr tanlash dialogini ko'rsatish tartibini yarataylik (biz oldingi bosqichda buning uchun tugma yaratganmiz). Sichqonchaning o'ng tugmachasini bosing va menyu elementini tanlang Xususiyatlari, tugma xususiyatlarida yorlig'iga o'ting Voqealar, bu erda lupa belgisi bo'lgan tugma yordamida biz protsedura yaratamiz 1-tugmani bosing forma modulida.

Shaklning pastki qismidagi yorliqlardan foydalanib, shakl va uning moduli o'rtasida almashishingiz mumkin

Davrni tanlash shaklini chaqirish uchun biz standart protseduradan foydalanamiz Buxgalteriya hisobi 2.0 umumiy moduldan Dialoglar bilan ishlash - HandlerPeriodSettingPress, hisobot ma'lumotlarini unga parametr sifatida o'tkazishingiz kerak Davr boshlanishi Va Davr oxiri.

Jarayon 1-tugmani bosing(element) Dialoglar bilan ishlash.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Jarayonning oxiri

Endi hisobotimizni yaratadigan va ko'rsatadigan kodni yozishga o'tamiz. Shakl modulida allaqachon protsedura mavjud ButtonGeneratePress, bu tugma bosilganda bajariladi Shakl, bu erda biz kodimizni yozamiz. Kerakli o'zgaruvchilarni ishga tushirishdan boshlaylik. Avvalo, uchun o'zgaruvchini yaratamiz elektron jadval hujjat maydonlari Biz ma'lumotlarni chiqaramiz, bu shart emas, shunchaki unga qo'ng'iroqlarni yozib olish qisqaradi, ya'ni dastur kodi o'qish uchun tushunarli bo'ladi.

TabDoc = FormElements.TabDoc;

Funktsiyadan foydalanib, tashqi hisobotning tartibini olamiz GetLayout(<ИмяМакета>) , biz parametr sifatida tartib nomini o'tkazamiz va agar shunday tartib mavjud bo'lsa, funksiya uni topadi.

Layout = GetLayout ("Layout");

Tartib olingandan so'ng, uning har bir sohasi uchun o'zgaruvchilar yarataylik, buning uchun tartib usulidan foydalaning. GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea ("Sarlavha" ); AreaDataAccount = Layout.GetArea( "Pudratchi ma'lumotlari"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer");

Elektron jadval hujjatining maydonini tozalaymiz. Bu har safar yangi hisobot yaratilganda eski ma'lumotlar o'chirilishi uchun zarur.

TabDoc.Clear();

O'zgaruvchilarni ishga tushirish tugallangandan so'ng, keling, maket maydonlarini birma-bir to'ldirish va ko'rsatishga o'tamiz. Keling, sarlavhadan boshlaylik. Esingizda bo'lsa, biz ushbu sohada ikkita parametr yaratdik Davr boshlanishi Va Davr oxiri, biz u erda hisobot yaratish davrining qiymatlarini o'tkazamiz, buning uchun biz mulkdan foydalanamiz Variantlar joylashtirish joylari.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Hudud bilan boshqa amallar bajarilmaydi Qopqoq Ishlab chiqaruvchi kerak emas, shuning uchun biz uning maydonini elektron jadval hujjatida ko'rsatamiz.

TabDoc.Output(AreaHead);

Keyinchalik, biz ma'lumotlar bazasiga so'rov yozamiz, uning yordamida hisob aylanmasini olamiz 62 buxgalteriya registridan O'z-o'zini qo'llab-quvvatlash. Keling, so'rovimiz joylashgan o'zgaruvchini aniqlaylik.

So'rov = yangi so'rov;

So'rov matnini yozishni boshlashdan oldin unga kerakli parametrlarni o'tkazamiz. Biz hisob-faktura uchun so'rov yozayotganimiz uchun 62 buxgalteriya hisobi, keyin birinchi navbatda biz uning uchun parametr yaratamiz

Request.SetParameter("Account62", Hisoblar sxemalari. O'z-o'zini qo'llab-quvvatlaydi. Kod bo'yicha top ("62" ));

Shuningdek, so'rovga hisobot yaratish davrini o'tkazish kerak. Esda tutingki, bizda ishlab chiqarish davri uchun maxsus hisobot tafsilotlari mavjud va biz ularni parametr sifatida o'tkazamiz.

Request.SetParameter("Davr boshi", Davr boshi); Request.SetParameter("Davr oxiri", Davr oxiri);

So'rov matnini yozishni boshlaymiz, buni so'rovlar dizayneri yordamida qilamiz. Ko'pgina o'quv qo'llanmalarida ular so'rovni qo'lda ham, konstruktor yordamida ham yozishingiz kerakligini yozadilar, ammo amalda bunday emas. 1C dasturchisi doimo duch keladigan vazifalarda kodni tez va samarali yozish ustuvor vazifadir va ma'lumotlar bazasiga so'rovni qo'lda yozishda bunga erishish deyarli mumkin emas, siz barcha so'rovlar tuzilmalarini to'g'ri takrorlash uchun ko'p qimmatli vaqtni sarflaysiz. va yozish paytida qilgan xatolaringizni topish va hokazo. Shuning uchun so'rovlarni qo'lda yozishga vaqtingizni sarflamang, balki so'rov konstruktoridan foydalaning. Bu sizning vaqtingizni tejaydi va murakkab so'rovlarni ko'p harakat qilmasdan yozishga imkon beradi. So'rov matnini yozishni boshlash uchun kodda yozamiz:

Request.Text = "" ;

Shundan so'ng, kursorni tirnoqlar orasiga qo'ying, o'ng tugmasini bosing va tanlang Konstruktor iltimos. So'rovlar dizayneri oynasi ochiladi.

Endi bizga kerak bo'lgan 1C 8 ma'lumotlar bazasi jadvalini tanlashimiz kerak.Bizga virtual jadval kerak Inqiloblar buxgalteriya reestri O'z-o'zini qo'llab-quvvatlash. Keling, uni dizayner oynasining chap tomonida topamiz

Keling, uni hududga ko'chiraylik Jadvallar va parametrlarni to'ldirishni boshlaylik. Barcha virtual so'rovlar jadvallari uchun asosiy jadvaldan kerakli ma'lumotlarni tanlash imkonini beruvchi maxsus parametrlar to'plami mavjud (bizning holimizda Buxgalteriya hisobi registrining asosiy jadvali O'z-o'zini qo'llab-quvvatlash). Virtual jadval parametrlari oynasini ochamiz.

Keling, so'rovga o'tgan davr uchun parametrlarni to'ldiramiz. So'rov matnida parametrdan foydalanish uchun uning nomidan oldin belgini yozish kerak ampersand(&)

Buxgalteriya hisobi uchun shartni to'ldirish qoladi. buxgalteriya hisobi. Buning uchun virtual jadvalning parametrlarida chiziqni toping Hisob holati va biz u erda yozamiz

IERARXIYADAGI hisob (&Account62)

Shartlar konstruktoridan uchta nuqtali tugmani bosish orqali ham foydalanishingiz mumkin.

Virtual stolga boshqa shartlar qo'yishning hojati yo'q, shuning uchun tugmani bosamiz KELISHDIKMI virtual jadval parametrlari oynasida. Keyinchalik, jadvaldan kerakli maydonlarni tanlashimiz kerak O'z-o'zini qo'llab-quvvatlash.Tovar aylanmasi(aynan: Qarama-qarshi tomon, kontragent shartnomasi, daromad va xarajatlar). Biz tanlagan jadvalda mavjud maydonlar ro'yxatini ko'rish uchun uning nomi yonidagi "+" belgisini bosing. Shundan so'ng, kerakli maydonlarni so'rovlar dizaynerining eng o'ng qismiga torting, u: Maydonlar deb ataladi. Agar biz hisoblar rejasini ochsak, biz buni hisob uchun ko'ramiz 62 analitika yoqilgan Qarshi tomon uchun bu Subconto1, va tomonidan Qarama-qarshi tomon shartnomasi - Subconto2.

Shuning uchun virtual jadval maydonlaridan biz tanlaymiz Subkonto1 Va Subkonto2. Bizga daromad va xarajatlar miqdori bo'yicha kerak bo'lganligi sababli, biz maydonlarni ham tanlaymiz Aylanma summasiDt Va Aylanma summasiKt

Biz tanlagan maydonlarning taxalluslarini to'ldiramiz, buning uchun yorliqga o'ting Birlashmalar/taxalluslar va kerakli maydon nomlarini o'rnating.

Bizning hisobotimizda ma'lumotlar ierarxik tarzda ko'rsatilishi sababli (kontragent birinchi darajada, uning barcha shartnomalari ikkinchi darajada), biz Jami yordamida ierarxiyadagi ma'lumotlarning ko'rinishini sozlaymiz. Keling, dizaynerning yorlig'iga o'tamiz Natijalar. Guruhlash maydonlariga ketma-ket torting Qarama-qarshi tomon Va Qarama-qarshi tomon shartnomasi, va finalda Kelyapti Va Iste'mol.

Bu so'rovlar konstruktoridagi ishni yakunlaydi, tugmani bosing KELISHDIKMI va biz so'rovimiz matni dastur kodida paydo bo'lishini ko'ramiz.

Query.Text = "Tanlash | O'z-o'zini qo'llab-quvvatlovchiTurnover.Subconto1 AS kontragent, | O'z-o'zini qo'llab-quvvatlovchiTurnover.Subconto2 AS kontragent shartnomasi, | O'z-o'zidan qo'llab-quvvatlanadiganTurnover.AmountTurnoverDt AS Kvitansiya, | O'z-o'zini qo'llab-quvvatlaydiganTurnover.AmountTurnoverKt AS Xarajat|FROM | Buxgalteriya reyestri.O'z-o'zidan buxgalteriya hisobi.Oborotlar (&davra boshi, &davr oxiri, IEARXİYADAGI schyot (&hisob 62),) AS O'z-o'zidan buxgalteriya aylanmasi|NATIJALAR | AMOUNT(Daromad), | AMOUNT(xarajat) |PO | Qarshi tomon, | Qarama-qarshi tomon shartnomasi";

So'rovni yozishni tugatganimizdan so'ng, maydonlarni to'ldirishni boshlaymiz DataCounterparty, DataAgreementCounterparty Va Podval. Biz so'rovni bajarishda olingan ma'lumotlar bilan ushbu maydonlarning barchasini to'ldiramiz. Bizning so'rovimiz guruhlarni o'z ichiga olganligi sababli ( Qarama-qarshi tomon Va Qarama-qarshi tomon shartnomasi) undan ma'lumotlarni quyidagi tarzda tanlang:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

Shunday qilib, biz barcha kontragentlar uchun jami qaydlarni olamiz.

Namuna ma'lumotlarini tsikl yordamida o'tkazishdan oldin, biz hisobotning umumiy natijalarini hisoblash uchun mo'ljallangan o'zgaruvchilarni ishga tushiramiz:

Jami kiruvchi = 0; Jami iste'mol = 0;

Hisobot ma'lumotlari ierarxiya (va "+" bo'ylab aylanishlar) bilan ko'rsatilishi uchun elektron jadval hujjati qatorlarini avtomatik guruhlashning boshlanishini o'rnatamiz:

TabDoc.StartAutoGroupingRows();

Barcha tayyorgarlik tugallandi, endi so'rov natijalarini tekshirishni boshlaylik. Biz aylanishni halqa yordamida bajaramiz Xayr

Hisobni tanlash paytida.Next() Cycle EndCycle ;

Tsiklning boshida parametrlarni qayta o'rnating Kelyapti Va Iste'mol mintaqa DataCounterparty. Bu nima uchun? Keling, kontragent bo'lgan vaziyatni tasavvur qilaylik Vasya amaki, daromad 10, xarajat esa 5 va keyingi kontragent uchun Petya amaki hech qanday daromad yoki xarajat yo'q, bu holda, agar biz parametrlarni qayta o'rnatmasak Kelyapti Va Iste'mol, keyin kontragent tomonidan navbatda Petya amaki 5 daromad va 10 xarajat bo'ladi.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Shundan so'ng biz maydonni to'ldiramiz DataCounterparty namunaviy element ma'lumotlari

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Ma'lumotlarni to'ldirgandan so'ng, siz maydonni ko'rsatishingiz mumkin elektron jadval hujjati, Biz qatorlarni avtomatik guruhlashdan foydalanayotganimiz sababli, guruhlashda qator darajasini ko'rsatishimiz kerak (bizning hisobotimiz ikki darajadan, kontragentlar uchun shartnomalar uchun birinchi darajali bo'ladi).

TabDoc.Output(AreaDataAccount,1);

Endi bu kontragent uchun biz uning shartnomalariga muvofiq tanlov qilamiz.

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Biz aylanishni halqa yordamida bajaramiz Xayr.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

Kontragent shartnomalari uchun tsiklda parametrlarni qayta o'rnatamiz Kelyapti Va Iste'mol, maydonni to'ldiring Ma'lumotlar shartnomasi namunadan va uni yozuvlarning ikkinchi darajasidagi elektron jadval hujjatida ko'rsatish.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; InPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Shuningdek, ushbu tsiklda biz daromad va xarajatlarning umumiy qiymatlarini hisoblash uchun o'zgaruvchilarga joriy qiymatlarni qo'shamiz.

TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; Jamixarajat = Jamixarajat + Qarshi taraf shartnomasi namunasi.Xarajat;

Bu hududdagi ma'lumotlarning chiqishini yakunlaydi DataCounterparty, DataAgreementCounterparty yakunlandi, faqat elektron jadval hujjati qatorlarini avtomatik guruhlashni yakunlash qoladi.

TabDoc.FinishAutoGroupingRows();

Hududga ma'lumotlarni chiqarish uchun mas'ul bo'lgan to'liq tsikllar DataCounterparty Va DataAgreementCounterparty shunday ko'ring:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0; InPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; Jamixarajat = Jamixarajat + Qarshi taraf shartnomasi namunasi.Xarajat; EndCycle; EndCycle; TabDoc.FinishAutoGroupingRows();

Hududdagi yakuniy ma'lumotlarni ko'rsatish uchun qoladi Podval va hududning o'zini chiqaradi elektron jadval hujjati.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = Total Consumption; TabDoc.Output(AreaFooter);

Bu kirishni boshqarish tizimidan foydalanmasdan 1C 8 uchun tashqi hisobot yozish jarayonini yakunlaydi. Endi u 1C: Enterprise 8 rejimida yaratilishi va katalogga qo'shilishi mumkin Tashqi ishlov berish Maqolada muhokama qilingan hisobot faylini dan yuklab olishingiz mumkin.

Boshqariladigan ilova uchun tashqi chop etishni yaratish bo'yicha videoni tomosha qiling:

Ushbu maqolada biz 1C 8.3 da boshqariladigan dastur rejimida tashqi ishlov berishni yaratish bo'yicha bosqichma-bosqich ko'rsatmalarni ko'rib chiqamiz, shunga ko'ra biz boshqariladigan shakllardan foydalanamiz. Va eng muhimi, biz uni 2.0 va undan keyingi standart quyi tizimlar kutubxonasida qurilgan 1C konfiguratsiyasini "tashqi ishlov berish" mexanizmiga qanday ulashni o'rganamiz.

Vazifa quyidagilardan iborat bo'ladi: "Item" katalogida guruh harakatini amalga oshiradigan eng oddiy tashqi ishlov berishni yaratish, ya'ni belgilangan elementlar guruhi uchun tanlangan QQS stavkasini o'rnatish.

Buning uchun biz darhol dasturda kerakli sozlamalarni o'rnatamiz (biz 1C 8.3 konfiguratsiyasini ko'rib chiqamiz: boshqariladigan shakllarda "Korxona hisobi 3.0").

Ushbu katakchani belgilash bizga tashqi ishlov berishdan foydalanish imkoniyatini beradi.

Misol yordamida 1C 8.3 da yangi tashqi ishlov berishni yaratish

Endi konfiguratorga o'tamiz. "Fayl" menyusida "Yangi ..." ni tanlang. Yaratiladigan fayl turini tanlash oynasi ochiladi. "Tashqi ishlov berish" ni tanlang:

Yangi tashqi ishlov berish oynasi ochiladi. Keling, darhol unga nom beraylik. Bu ishlov berishni diskka saqlashda taklif qilinadi:

Keling, yangi boshqariladigan ishlov berish shaklini qo'shamiz. Biz shuni ko'rsatamizki, bu qayta ishlash shakli va u asosiysi:

Shaklda ikkita ma'lumotga ega bo'lamiz:

  • Nomenklatura guruhi - "Nomenklatura" katalogiga havola;
  • SelectVATRate - QQS stavkasini o'tkazish uchun havola.

Yuqori o'ng oynadagi "Xususiyatlar" ustunida tafsilotlarni yaratamiz. Ularni sichqoncha bilan yuqori chap oynaga torting. Yangi tafsilotlar darhol quyidagi shaklda paydo bo'lishi kerak.

Tafsilotlar tartibini "yuqoriga" - "pastga" strelkalari yordamida o'zgartirish mumkin:

1C da 267 ta video darslarni bepul oling:

Faqatgina "O'rnatish" tugmasini qo'shish qoladi. Boshqariladigan shakllarda siz formaga shunchaki tugma qo‘sha olmaysiz. Agar siz uni forma elementlari tuzilishiga qo'shsangiz ham, u formaning o'zida ko'rinmaydi. Tugma u bajaradigan buyruq bilan bog'lanishi kerak. "Buyruqlar" yorlig'iga o'ting va "QQS stavkasini o'rnatish" buyrug'ini qo'shing. Buyruqning xususiyatlarida harakat yarating. "Mijozda" buyruqlar ishlovchisini tanlang. Buyruqni formaga oddiygina shakl elementlari bo'lgan bo'limga sudrab borish orqali ham qo'shish mumkin.

Form modulida bir xil nomdagi protsedura yaratiladi. Unda biz serverdagi protsedurani chaqiramiz:

&OnClient

QQS stavkasini belgilash tartibi (buyruq)

SetVATRateOnServer();

Jarayonning oxiri

Serverdagi protsedurada biz kichik so'rov va QQS stavkasini belgilash bilan bog'liq harakatlar yozamiz:

&Serverda

SetVATRateOnServer() protsedurasi

So'rov = Yangi so'rov;
So'rov.Matn =
"TANLANG
| Nomenklatura. Havola
|FROM
| Katalog.Nomenklatura AS Nomenklaturasi
|QAYERDA
| Nomenklatura.IERARXIYADAGI havola (&Nomenklatura guruhi)
| VA EMAS Nomenklatura.MarkDeletion
| VA Nomenklatura EMAS Bu guruhdir”;

Request.SetParameter("Elementlar guruhi", Elementlar guruhi);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

SelectRecordDet.Next() tsikli paytida

Urinish
SprNomObject.Write();
Istisno
Hisobot("Obyektni yozishda xatolik """ + SprNomObject + """!
|» + DescriptionError());
EndAttempt;

EndCycle;

Jarayonning oxiri

Biz "Forma" yorlig'iga qaytamiz, shaklga tugma qo'shamiz va uni buyruq bilan bog'laymiz:

Shunday qilib, bizning qayta ishlashimiz foydalanishga tayyor. Uni chaqirish uchun "1C Enterprise" rejimida siz "Fayl" - "Ochish" menyusiga o'tishingiz va yaratilgan faylni tanlashingiz kerak.

Biroq, ushbu rejimda ishlash disk raskadrovka ishlovi uchun qulay, lekin foydalanuvchi uchun to'liq mos kelmaydi. Foydalanuvchilar hamma narsani "barmoq uchida", ya'ni ma'lumotlar bazasida bo'lishga odatlangan.

"Qo'shimcha hisobotlar va qayta ishlash" bo'limi aynan shu maqsadda.

Lekin u yerga ishlovimizni qo'shish uchun avvalo unga tavsif berishimiz va dasturga uning xususiyatlarini aytib berishimiz kerak.

"Tashqi qayta ishlash haqida ma'lumot" funktsiyasining tavsifi

Men ushbu funktsiyaning mazmuniga misol keltiraman. U eksport qilinadigan va shunga mos ravishda ishlov berish modulida joylashgan bo'lishi kerak:

Funktsiya InformationOnExternalProcessing() eksporti

DataForReg = Yangi tuzilma();
DataForReg.Insert("Ism", "QQS stavkasini belgilash");
DataForReg.Insert("Xavfsiz rejim", rost);
DataForReg.Insert("Versiya", "ver.: 1.001");
DataForReg.Insert("Ma'lumot", "Nomenklatura ma'lumotnomasida QQS stavkasini belgilash uchun ishlov berish");
DataForReg.Insert("Ko'rish", "Qo'shimcha ishlov berish");

Buyruqlar jadvali = NewValueTable;
TabZnCommands.Columns.Add("Identifikator");
TabZnCommands.Columns.Add("Foydalanish");
TabZnCommands.Columns.Add("Ko'rish");

NewRow = TabZnCommands.Add();
NewString.Identifier = "Ochiq ishlov berish";
NewRow.Use = "Ochiq shakl";
NewRow.View = "Ochiq ishlov berish";
DataForReg.Insert("Buyruqlar", TabZnCommands);

DataForReg-ni qaytarish;

EndFunction

Ro'yxatga olish ma'lumotlari strukturasining qaysi sohalaridan foydalanish kerakligini yaxshiroq tushunish uchun "Qo'shimcha hisobotlar va ishlov berish" katalogining tafsilotlarini ko'rib chiqaylik:

Ko'rib turganingizdek, hamma narsa juda oddiy. Faqat bitta atribut mos kelmaydi: "Ishga tushirish opsiyasi" - "Foydalanish". Agar biz umumiy modullardan birining kodini ko'rib chiqsak, ushbu maydonlarning bir to'plami qanday paydo bo'lishini ko'ramiz:

Strukturaning qaysi maydonlari talab qilinishini aniqlash uchun avval uni tavsiflay olmaysiz, shunchaki bo'sh joy yarating va keyin tuzatuvchidan foydalaning. Agar siz qayta ishlashni ro'yxatdan o'tkazayotganda modullarni kuzatib boradigan bo'lsangiz, qaysi maydonlar zarur va qaysi biri kerak emasligi darhol aniq bo'ladi.

1C 8.3 da tashqi ishlov berishni ulash

Yuqori menyuga o'ting Xizmat->->.

Tashqi ishlov berish katalogi ro'yxati shakli paydo bo'ladi. Yuqori menyuda tugmani bosing Qo'shish.

Yangi ob'ekt qo'shish shakli paydo bo'ladi. Ochish tugmasini bosing va kerakli ishlov berilgan faylni tanlang. Kerakli faylni tanlaganingizdan so'ng, agar kerak bo'lsa, ishlov berish nomini belgilang (Ism maydoni). Shundan so'ng, kiritilgan o'zgarishlarni saqlash uchun OK tugmasini bosishingiz kerak.

Shundan so'ng, katalog elementini yaratish oynasi yopiladi va siz allaqachon yangi ishlovni o'z ichiga olgan ro'yxat shakliga qaytasiz.

Ana xolos! Konfiguratsiyaga ishlov berishni qo'shish jarayoni tugallandi. Ushbu jarayonni keyinroq ochish uchun eski yo'ldan o'ting: Xizmat->Qo'shimcha hisobotlar va qayta ishlash->Qo'shimcha tashqi muolajalar.

BP 3.0, ZUP 3.0, UT 11, ERP 2.0 uchun.

1C: Enterprise 8 uchun tashqi ishlov berish bir nechta turlarda mavjud. Ushbu ko'rsatmada men sizga guruhni o'zgartirish uchun ishlov berish va aniq ob'ektlarni to'ldirish uchun ishlov berishni qanday biriktirishni ko'rsataman.

Birinchi holda, biz Excel-dan nomenklatura katalogini to'ldirish uchun ishlov berishni qo'shamiz.

Keling, dasturning tegishli bo'limiga o'tamiz:


Qo'shimcha hisobotlarni ishlatish va qayta ishlash uchun bayroqni o'rnatish kerak, tashqi ob'ektlar ro'yxatiga giperhavolaga o'ting:

Ro'yxatda bosing Yaratmoq:


Ochilgan dialog oynasida ishlov berish uchun kerakli faylni tanlang:


Dasturdagi yangi tashqi ob'ekt uchun karta to'ldirildi, uni sozlash qoladi turar joy(dasturning qayta ishlash mumkin bo'lgan bo'limlari):


Joylashtirish uchun ixtiyoriy bo'limni (yoki bir nechtasini) tanlang:


Tashqi ob'ekt kartasini yozing va yoping:


Endi interfeysdan ishlov berishni ochamiz:


Ro'yxat bo'sh, bosing Ro'yxatni moslashtiring:


Bizning qayta ishlashimizni tanlang:


Endi u tanlov uchun mavjud. Qayta ishlashni ochish uchun siz bosishingiz kerak Bajarish:


Endi aniq ob'ektlarni to'ldirish (o'zgartirish) uchun ishlov berish qanday qo'shilganligini ko'rib chiqamiz. Masalan, kataloglar yoki tizim hujjatlarining tanlangan elementlariga skanerlashlarni biriktiruvchi tashqi ishlov berishni olaylik. Bunday ishlov berishni qo'shishning boshlanishi avvalgi variantdan farq qilmaydi. Farqi shundaki, bu holda joy avtomatik ravishda to'ldiriladi (va dastur bo'limi bo'yicha emas, balki ma'lumotlar bazasi ob'ektlarining turlari bo'yicha):


Agar so'ralsa, joylashtirish ro'yxatini sozlash mumkin ( qo'shimcha joylashtirishni qo'shmang, lekin keraksizlarni olib tashlang):


O'zgartirishni qabul qilish uchun tashqi ob'ekt kartasi ham yozilishi kerak.

Qayta ishlashdan foydalanish uchun ma'lum bir ma'lumotlar bazasi ob'ektiga o'tishingiz kerak (joylashtirish ro'yxatidan), bosing To'ldirish buyruqlar panelida va buyruqni tanlang: