Ma'lumotlar tarkibi tizimini ifodalash tili (1Cv8). Ma'lumotlarni joylashtirish diagrammasi (1C SKD) Ma'lumotlarni joylashtirish diagrammasi hisoblangan maydonlar

Salom, aziz o'quvchi! Bizda tartib tizimining asoslari bo'yicha yana bir dars bor. Siz SKD ifoda tilining funktsiyalari bilan tanishdingiz, maket tizimining xususiyatlarini ko'rdingiz, shuningdek, maket maydonlarining asosiy sozlamalarini tushundingiz. Endi biz yangi materialni ko'rib chiqamiz. Bor!

ACS maydonlari uchun qo'shimcha sozlamalar.

Ustun "Qiymat turi" Tartib maydoni uchun ma'lumotlar turini belgilash imkonini beradi. Nima uchun, masalan, "Nomenklatura" maydoni uchun turni ko'rsating, agar siz uning qaysi turini allaqachon bilsangiz? Agar tartib maydoni kompozit turdagi bo'lsa, bu zarur. Siz ma'lum bir turni tanlashingiz mumkin, keyin ushbu maydonni tanlashda ushbu turdagi qiymatlar tanlanadi.

Ustun "Mavjud qiymatlar" tanlash uchun mavjud qiymatlarni belgilash va foydalanuvchining tanlovini ma'lum chegaralar bilan cheklash imkonini beradi.

Ustun "Dekor" maketlardan foydalanmasdan maket maydonining dizaynini belgilash imkonini beradi. Siz shrift rangini, ramka rangini, matn yo'nalishini va boshqalarni belgilashingiz mumkin.

Ustun "Tahrirlash parametrlari" Tartib maydonini qanday tahrirlashni belgilash imkonini beradi. Misol uchun, siz tanlovdagi ro'yxatdagi elementlarning tezkor tanlovini belgilashingiz mumkin. Odatiy bo'lib, tartib maydoni metadata ob'ektidan barcha tahrirlash variantlarini meros qilib oladi.

Hisoblangan maydonlar

Ma'lumotlar tarkibining "Hisoblangan maydonlar" yorlig'ida siz o'zingizning hisoblangan maydonlaringizni yaratishingiz mumkin.

So'rovlar darajasida ularni yaratishingiz mumkin bo'lsa, nima uchun hisoblangan maydonlar kerak? Barcha maydonlarni so'rov yordamida tasvirlab bo'lmaydi. Agar siz turli xil ma'lumotlar to'plamlaridan, masalan, so'rov va ob'ektdan murakkab maydon yaratishingiz kerak bo'lsa, siz hisoblangan maydonlarsiz qilolmaysiz. Agar maʼlumotlar manbai soʻrov boʻlsa va avtomatik toʻldirish yoqilgan boʻlsa, siz maʼlumotlar tarkibi maydonini qoʻsha olmaysiz, lekin hisoblangan maydonlardan foydalanib, xohlagancha koʻp maydon qoʻshishingiz mumkin.

Hisoblangan maydonning "Ifoda" ustunida siz ma'lumotlar tarkibi maydonlarini ishlatadigan, ularning yo'liga kiradigan o'zboshimchalik bilan ifoda yozishingiz kerak ("Ma'lumotlar to'plami" yorlig'idagi "Yo'l" ustuni). Matematik o'zgartirish funksiyalaridan foydalanishingiz yoki umumiy modullarning funksiyalariga kirishingiz mumkin. Masalan, "Ma'lumotlar yo'li" ustuniga hisoblangan maydon nomini "Og'ish" va "Ifoda" maydoniga quyidagilarni yozamiz.

8.2.14 ning yaqinlashib kelayotgan versiyasini hisobga olgan holda, men ma'lumotlar kompozitsiyasi tizimining ba'zi yangi funktsiyalarini tasvirlashga harakat qilaman.

Tahrirlashni osonlashtirish uchun maʼlumotlar joylashuvi diagrammasini, yaxshisi tashqi hisobotda oching.

Biz so'rov turidagi ma'lumotlar to'plamini qo'shamiz va qo'lda yoki so'rovlar dizayneri yordamida oddiy so'rovni yozamiz:

1. Kirishni boshqarish tizimida so'rovni o'rnating.

2. Kirishni boshqarish tizimida hisoblangan maydonlarni o'rnating

3. Sozlamalar yorlig'ida ma'lumotlar tartibini sozlang

4. 1C Enterprise 8.2.14 ni ishga tushiring. Hisobotni oching. Biz shakllantiramiz, qabul qilamiz.

Yangi funktsiyalarning tavsifi:

1. Joriy sana()

Tizim sanasini qaytaradi. Joylashtirish tartibini tuzishda, maketda mavjud bo'lgan barcha ifodalarda CurrentDate() funksiyasi joriy sananing qiymati bilan almashtiriladi.

2. COMPUTEEXPRESSION()

Sintaksis:

Ifodani hisoblash(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Tavsif:

Funktsiya ba'zi bir guruhlash kontekstida ifodani baholash uchun mo'ljallangan.

Funktsiya guruhlarni tanlashni hisobga oladi, lekin ierarxik tanlovlarni hisobga olmaydi.

Funktsiyani ushbu guruhlashning guruh tanlashda guruhlash uchun qo'llash mumkin emas. Masalan, Nomenklatura guruhini tanlashda siz CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 ifodasidan foydalana olmaysiz. Lekin bunday ifoda ierarxik tanlashda ishlatilishi mumkin.

Agar yakuniy yozuv boshlang'ich yozuvdan oldin bo'lsa, unda batafsil ma'lumotlarni hisoblash va agregat funktsiyalarni hisoblash uchun yozuvlar mavjud emas deb hisoblanadi.

Umumiy summa uchun intervalli ifodalarni hisoblashda (Guruhlash parametri GrandTotal ga o'rnatiladi), batafsil ma'lumotlarni hisoblash va agregat funktsiyalarni hisoblash uchun hech qanday yozuvlar mavjud emas deb taxmin qilinadi.

CalculateExpression funksiyasi uchun ifoda yaratishda tartib tuzuvchisi, agar tartiblash ifodasi guruhlashda ishlatib bo'lmaydigan maydonlarni o'z ichiga olsa, CalculateExpression funksiyasini NULL bilan almashtiradi.

Variantlar

<Выражение>

Turi: String. Baholanadigan ifoda.

<Группировка>

Turi: String. Kontekstdagi ifoda baholanishi kerak bo'lgan guruhlash nomini o'z ichiga oladi. Agar guruhlash nomi sifatida bo'sh satr ishlatilsa, hisoblash joriy guruhlash kontekstida amalga oshiriladi. Agar GrandTotal qatori guruh nomi sifatida ishlatilsa, hisoblash umumiy jami kontekstda amalga oshiriladi. Aks holda, hisoblash bir xil nomdagi ota-ona guruhlash kontekstida amalga oshiriladi.

Masalan:

Sum(Sotuv.SumOborot)/Hisoblash(“Sum(Sotuv.SumOborot)”, “Jami”)

Ushbu misolda, natijada Sotish maydoni uchun summaning nisbati bo'ladi. Guruhlash yozuvining aylanmasi butun tartibdagi bir xil maydon miqdoriga;

<ОбластьВычисления>

Turi: String. Parametr quyidagi qiymatlarni olishi mumkin:

  • GeneralTotal - ifoda barcha guruhlash yozuvlari uchun hisoblab chiqiladi.
  • Ierarxiya - Agar mavjud bo'lsa, ibora asosiy ierarxik yozuv uchun va agar asosiy ierarxik yozuv bo'lmasa, butun guruhlash uchun baholanadi.
  • Guruhlash - ifoda joriy guruhlash guruhlash yozuvi uchun baholanadi.
  • Resurs bo'lmagan guruhlash - guruh yozuvi uchun funktsiyani manba bo'yicha hisoblashda ifoda dastlabki guruhlashning birinchi guruh yozuvi uchun baholanadi.

Funktsiyani hisoblashda Hisoblash ifodasi() Resurs guruhlari bo'lmagan guruh yozuvlari uchun Resurs bo'lmagan guruhlash qiymati bilan funktsiya parametr qiymati Guruhlash qiymatiga teng bo'lsa, xuddi shunday hisoblab chiqiladi.

Ma'lumotlar kompozitsiyasi sxemasini yaratuvchisi, ma'lumotlar kompozitsiyasi sxemasini yaratishda, tartibga guruhlash amalga oshiriladigan resurs maydonini chiqarishda, funksiya yordamida hisoblangan maketga ifodani joylashtiradi. Hisoblash ifodasi(), Resurs bo'lmagan guruhlash parametrini ko'rsatuvchi. Boshqa resurslar uchun odatiy resurs iboralari resurslar guruhiga joylashtirilgan.

<Начало>

Turi: String. Fragment qaysi yozuvdan boshlanishi kerakligini, qaysi agregat ifoda funktsiyalarini hisoblash kerakligini va agregat funktsiyalardan tashqari maydon qiymatlarini qaysi yozuvdan olish kerakligini ko'rsatadi. Qiymat quyidagilardan biri bo'lishi mumkin:

<Конец>

Turi: String. Fragmentni qaysi yozuvga davom ettirish kerakligini, unda ifodaning agregat funktsiyalarini hisoblash kerakligini ko'rsatadi. Qiymat quyidagilardan biri bo'lishi mumkin:

  • Birinchidan. Birinchi guruhlash yozuvini olish kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi guruhlash boshidan ofset sifatida ishlatiladi. Olingan qiymat noldan katta butun son bo'lishi kerak. Masalan, Birinchi (3) - guruhlash boshidan uchinchi yozuvni olish.

Agar birinchi yozuv guruhlashdan tashqarida bo'lsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv bo'lsa va siz First(4) ni olishni istasangiz, unda hech qanday yozuv yo'q deb hisoblanadi.

  • Oxirgi. Siz oxirgi guruhlash yozuvini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi guruhlash oxiridan ofset sifatida ishlatiladi. Olingan qiymat noldan katta butun son bo'lishi kerak. Masalan, Oxirgi (3) - guruh oxiridan uchinchi rekordni olish.

Agar oxirgi yozuv guruhlashdan tashqarida bo'lsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv mavjud bo'lsa va siz Oxirgi (4) ni olishni istasangiz, unda hech qanday yozuv yo'q deb hisoblanadi.

  • Oldingi. Oldingi guruhlash rekordini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi joriy guruhlash yozuvidan orqaga siljish sifatida ishlatiladi. Masalan, Oldingi(2) – oldingi yozuvdan oldingisini olish.

Agar oldingi yozuv guruhlashdan tashqariga chiqsa (masalan, ikkinchi guruhlash yozuvi uchun Oldingi(3) ni olishingiz kerak), u holda birinchi guruhlash yozuvi olinadi.

Guruhlash jami uchun oldingi yozuvni olishda birinchi yozuv olingan deb hisoblanadi.

  • Keyingisi. Keyingi guruhlash yozuvini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi joriy guruhlash yozuvidan oldinga siljish sifatida ishlatiladi. Masalan, Keyingi (2) - keyingi yozuvdan keyingisini olish.

Agar keyingi yozuv guruhlashdan tashqariga chiqsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv bo'lsa va uchinchi yozuv uchun Next() olinsa, u holda yozuvlar yo'q deb hisoblanadi.

Guruhlash jami bo'yicha keyingi yozuv olinganda, hech qanday yozuv yo'q deb hisoblanadi.

  • Hozirgi. Siz joriy yozuvni olishingiz kerak.

Guruhlash jami uchun olinganda birinchi yozuv olinadi.

  • Chegara qiymati. Belgilangan qiymat bo'yicha yozuvni olish zarurati. Qavslar ichidagi LimitingValues ​​so'zidan keyin siz fragmentni boshlamoqchi bo'lgan iborani, birinchi tartib maydonini ko'rsatishingiz kerak.

Buyurtma maydoni qiymati belgilangan qiymatdan katta yoki unga teng bo'lgan birinchi yozuv yozuv sifatida qaytariladi. Misol uchun, agar Davr maydoni buyurtma maydoni sifatida ishlatilsa va u 01/01/2010, 02/01/2010, 03/01/2010 qiymatlariga ega bo'lsa va siz LimitingValue(DateTime(2010)) ni olishni istasangiz , 1, 15)), keyin 02/01 sanali yozuv olinadi. 2010 yil.

<Сортировка>

Turi: String. Tartib qoidalarini tavsiflovchi vergul bilan ajratilgan iboralarni sanab o'tadi. Agar ko'rsatilmagan bo'lsa, unda tartiblash ifoda baholanadigan guruhlash bilan bir xil tarzda amalga oshiriladi. Har bir iboradan so'ng siz o'sish (o'sish tartibida tartiblash uchun), kamayish bo'yicha (kamayish tartibida tartiblash uchun) va Autoorder (mos yozuvlar maydonlarini havola qilingan ob'ektga buyurtma bermoqchi bo'lgan maydonlar bo'yicha tartiblash uchun) kalit so'zlarini belgilashingiz mumkin. Avtomatik tartib so'zi ham Osish so'zi, ham kamayish so'zi bilan ishlatilishi mumkin.

<ИерархическаяСортировка>

Turi: String. Saralash opsiyasi bilan bir xil. Ierarxik yozuvlarni tashkil qilish uchun foydalaniladi. Agar ko'rsatilmagan bo'lsa, tartib tuzuvchisi Saralash parametrida ko'rsatilgan tartib bo'yicha tartibni yaratadi.

<ОбработкаОдинаковыхЗначенийПорядка>

Turi: String. Agar bir xil buyurtma qiymatiga ega bo'lgan bir nechta yozuvlar mavjud bo'lsa, oldingi yoki keyingi yozuvni aniqlash qoidasini belgilaydi:

  • Alohida, oldingi va keyingi yozuvlarni aniqlash uchun tartiblangan yozuvlar ketma-ketligidan foydalaniladi. Standart qiymat.
  • Birgalikda oldingi va keyingi yozuvlar tartib ifodalarining qiymatlari asosida aniqlanishini anglatadi.

Misol uchun, natijada olingan ketma-ketlik sana bo'yicha tartiblangan bo'lsa:

sana To'liq ism Ma'nosi
1 2001 yil 01 yanvar Ivanov M. 10
2 2001 yil 02 yanvar Petrov S. 20
3 2001 yil 03 yanvar Sidorov R. 30
4 2001 yil 04 yanvar Petrov S. 40

Agar parametr qiymati alohida bo'lsa, u holda:

§ 3-kirishning oldingi yozuvi 2-kiritma bo'ladi.

§ agar hisoblash fragmenti Current, Current (mos ravishda, Start va End parametrlari) sifatida aniqlansa, 2-yozuv uchun bu fragment bitta yozuvdan 2 iborat bo'ladi. 20 ga teng bo'lsin.

Agar parametr qiymati Together bo'lsa, u holda:

§ 3-kiritmaning oldingi yozuvi 1-kiritma bo'ladi.

§ agar hisoblash fragmenti Current, Current (mos ravishda, Start va End parametrlari) sifatida belgilangan bo'lsa, u holda 2-yozuv uchun bu fragment 2 va 3-yozuvlardan iborat bo'ladi. Ifodasi CalculateExpression(“Sum (qiymat)”, Current, Current) 50 ga teng bo'ladi.

Birgalikda parametr qiymatini belgilashda Boshlash va Tugash parametrlarida Birinchi, Oxirgi, Oldingi, Keyingi pozitsiyalari uchun ofsetni belgilay olmaysiz.

Ifodani hisoblang("Sum(summa aylanma)", "Birinchi", "Joriy")

Agar oldingi qatordagi guruhlash qiymatini olishni istasangiz, quyidagi ifodadan foydalanishingiz mumkin:

CalculateExpression("Baho", "Oldingi")

Roʻyxat yangi vazifalari:

ExpressionWithGroupArray bilan hisoblang(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funktsiya massivni qaytaradi, uning har bir elementi belgilangan maydon bo'yicha guruhlash uchun ifodani baholash natijasini o'z ichiga oladi.

ExpressionWithGroupValueTable bilan hisoblang(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funktsiya qiymatlar jadvalini qaytaradi, ularning har bir satri belgilangan maydon bo'yicha guruhlash uchun ifodalarni baholash natijasini o'z ichiga oladi.

Qiymat to'ldirilgan(<Выражение>) - Agar qiymat ushbu turdagi standart qiymatdan, NULLdan boshqa bo'lsa, bo'sh havoladan tashqari, Aniqlanmagandan boshqa bo'lsa, True qiymatini qaytaradi. Mantiqiy qiymatlar NULL uchun tekshiriladi. Satrlar bo'sh joy bo'lmagan belgilarning yo'qligi uchun tekshiriladi

Format(<Выражение>, <Форматная строка>) - O'tkazilgan qiymatning formatlangan qatorini olish. Format qatori 1C: Enterprise tizimining format qatoriga muvofiq o'rnatiladi.

Substring(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Bu funksiya satrdan pastki qatorni chiqarish uchun mo‘ljallangan.

Chiziq uzunligi(<Выражение>) – funksiya satr uzunligini aniqlash uchun mo‘ljallangan. Parametr - satr ifodasi

Chiziq(<Выражение>) – Agar massiv parametr sifatida uzatilsa, funksiya barcha massiv elementlarining satr ko‘rinishlarini o‘z ichiga olgan qatorni qaytaradi, belgilar bilan ajratiladi; “. Agar qiymatlar jadvali parametr sifatida uzatilsa, funktsiya qiymatlar jadvalining barcha satrlarining satr tasvirlarini o'z ichiga olgan satrni qaytaradi, bunda har bir satrning katakcha ko'rinishlari belgilar bilan ajratilgan "; “, va satrlar chiziqli tasma belgisidir. Agar biron bir elementda bo'sh satr tasviri bo'lsa, u holda uning tasviri o'rniga satr ko'rsatiladi<Пустое значение>.

Ma'lumotlarni joylashtirish diagrammasi (1C SKD)- ishlab chiqarishni avtomatlashtirishni rivojlantirish va kuzatishga hissa qo'shadigan, ularni minimal vaqt ichida iloji boricha moslashuvchan va chiroyli qilish imkonini beruvchi 1C: Enterprise dasturiy mahsulotlarida murakkab hisobotlarni yaratish uchun qulay dizayner. Ma'lumotlar tarkibi sxemasining (1C SKD) qo'shimcha afzalligi - bu boshqariladigan hisobot shaklini avtomatik ravishda yaratish va ushbu sohani yanada rivojlantirish bilan bu hisobotni ishlab chiqish usulini tanlashda muhim omil hisoblanadi. Ammo ma'lumotlar tarkibi sxemasi (1C SKD) strukturasining murakkabligi va juda ko'p sozlamalar tufayli u ko'pincha "chiqish shakli dizayneri" orqali hisobotni uzoqroq ishlab chiqishga olib keladi. Shuning uchun, 1C dasturchisi hisobotlarni ishlab chiqish vaqtini yanada tezlashtirish uchun Ma'lumotlar tarkibi sxemasining (1C DCS) barcha nozik tomonlarini tushunishi kerak.

Ma'lumotlar tarkibi sxemasining (1C SKD) dastlabki uchta yorlig'ini ko'rib chiqaylik - ma'lumotlar to'plami, ma'lumotlar to'plami ulanishlari va hisoblangan maydonlar.

1C SKD da ma'lumotlar to'plami

Ma'lumotlar to'plami uchta ob'ektni yaratish qobiliyatini o'z ichiga oladi - so'rov, ob'ekt va birlashma, keling, ularning har birini batafsil ko'rib chiqamiz:

Bu Query Builder tugmasi yordamida yaratiladigan oddiy so'rovdir. Avtomatik to'ldirish bayrog'i o'rnatilgan bo'lsa, barcha tanlangan ma'lumotlar avtomatik ravishda ma'lumotlar to'plamining maydonlariga kiritiladi. Shuningdek, so'rovdagi maydonlarni to'ldirishni "Ma'lumotlar tarkibi" yorlig'ida sozlash mumkin, bu erda uchta yorliq mavjud:

Jadvallar, bu erda hisobotni yaratishda ishtirok etadigan jadvallar tanlanadi, odatda standart ma'lumotlar tanlanadi, chunki Jadvallar va maydonlar yorlig'ida biz allaqachon kerakli hujjatlarni, kataloglarni, registrlarni tanlaganmiz...

Maydonlar, bu erda biz hisobotga kiritilishi kerak bo'lgan ob'ektlarni tanlaymiz, bolalar bayrog'i ob'ekt uchun kirish mumkin bo'lgan bolalar elementlari bo'ladimi yoki yo'qligini ko'rsatadi, string, raqamli va shunga o'xshash ma'lumotlar uchun uni o'rnatish mumkin emasligi mantiqan. bayroq rost.

Shartlar, bu erda biz kirishni boshqarish tizimidagi sharoitlarda foydalanish mumkin bo'lgan ob'ektlarni tanlaymiz.

Ba'zi ishlar ma'lumotlar tarkibi sxemasida, ba'zilari esa dasturiy tarzda amalga oshiriladi; oddiy misolni ko'rib chiqaylik:

Birinchidan, biz hujjatning ma'lumotlar joylashuvi uchun maket diagrammasini yaratamiz va uni SKD deb ataymiz (masalan: 1C SKD), unda biz ma'lumotlar to'plami ob'ektini yaratamiz, keyin maydonlarni to'ldiramiz, masalan, bizda hujjat bor. detallari ko'rsatilgan tovarlarning jadvalli qismi bilan - nomenklatura, miqdor va narx.

Keling, uchta maydon qo'shamiz va har bir ustunni tafsilotlar nomi bilan to'ldiramiz, qolgan ustunlar avtomatik ravishda to'ldiriladi:

Hujjat formasida tugma yaratamiz va boshqariladigan shakllarda ishlash mexanizmini tavsiflaymiz:

&OnClient

Chop etish tartibi()

Bizning hisobotimiz = PrintOnServer(); //serverdagi funksiyani chaqirish

OurReport.Show(); //hosil qilingan hisobotni ko'rsatish

Jarayonning oxiri

&Serverda

Funktsiya PrintOnServer()

DocumentObject = FormAttributeValue ("Ob'ekt");

//biz jadval qismini Mahsulotlarni ProductsSKD nomi bilan tuzilmaga joylashtiramiz, xuddi biz SKDning o'zida ma'lumotlarni o'z ichiga olgan ob'ekt nomini ko'rsatganimizdek

DataSet = yangi tuzilma;

DataSet.Insert("ProductsSKD", DocumentObject.Products);

//biz sxemamizni olamiz va standart sozlamalarni o'rnatamiz, shunda barcha hisobot chiqish sozlamalari bizning sxemamizdan olinadi

OurLayout = DocumentObject.GetLayout (“SKD”);

Sozlamalar = OurLayout.DefaultSettings;

//sozlamalarimiz bilan ma'lumotlar tartibini yarating

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Settings);

//ma'lumotlar to'plamimiz bilan ma'lumotlar tarkibini bajaring

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Biz elektron jadval hujjatini yaratamiz va unda hisobotimizni ko'rsatamiz

ReportDocument = Yangi jadval hujjati;

OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Hujjat hisobotini qaytarish;

EndFunction

Agar xohlasangiz, siz boshqa har qanday tartibning joylarini olishingiz va ularni ushbu hisobotda ko'rsatishingiz mumkin, masalan, bizda to'lov topshirig'ini yaratish uchun standart sxema mavjud va unda sarlavha juda yaxshi yaratilgan. keraksiz ish bo'lsa, biz avval tartibni olamiz, sarlavhani ko'rsatamiz, keyin kirishni boshqarish tizimi bo'yicha hisobotimizni yaratamiz va ko'rsatamiz.

HAQIDA birlashtirish

Unga so'rovlarimiz va ob'ektlarimizni joylashtirishimiz mumkin, lekin ulanishdan farqli o'laroq, u oddiygina jadvallarni bir-biriga qo'shib qo'yadi, ya'ni ikkita bir xil jadvalni bog'lasak, biz bitta jadvalga ega bo'lamiz va birlashganda u ikki baravar ko'payadi, qaraymiz. oddiy misolda:

Bizda jadvallar mavjud:

Muloqotda biz quyidagilarni olamiz:

Va birlashtirilganda:

Keling, ma'lumotlar to'plamidagi ustunlarni to'ldirishni ko'rib chiqaylik (ba'zilarini o'tkazib yuboramiz, chunki ular boshqa varaqlar bilan bog'liq; biz ularga keyingi maqolalarda qaytamiz):

- maydon, atributning umumiy nomini ko'rsating;

­­- yo'l, kirishni boshqarish tizimida biz u bilan bog'lanadigan tafsilotlarning nomini ko'rsating, masalan Hisoblangan maydonlar;

- sarlavha, hisobotda ko'rsatiladigan atribut nomini ko'rsating;

- maydon chegarasi, ushbu rekvizit mavjudligini ko'rsating;

- tafsilotlarni cheklash, biz bolalar elementlarining mavjudligini ko'rsatamiz, agar tafsilotlar mavjudligi ko'rsatilgan bo'lsa, unda maydonning o'zi mavjud bo'lishi muhim, ehtimol bu mexanika kelajakdagi nashrlarda o'zgartiriladi;

- maydon tasviri hisoblangan ifoda, biz tafsilotlarning chiqishini biroz o'zgartirishimiz kerak bo'lganda foydalanish qulay, masalan, nomdan keyin kerak nomenklatura namoyish etildi Aksiya, qaerda joylashgan bo'lsa, quyidagilarni to'ldiring: Element + "omborda" + Ombor. Takror aytamanki, tafsilotlarga kirish ustunda ko'rsatilgan nom orqali amalga oshiriladi yo'l;

- ifoda tartibi, hisobot tartibini o'rnatish uchun qulay mexanizm, bu erda holat avvalgi nuqtaga o'xshash qo'lda o'rnatilishi mumkin, ammo amaliyot shuni ko'rsatadiki, bu mexanizm ko'pincha biz xohlagancha ishlamaydi va men sizga standart saralashdan foydalanishni maslahat beraman;

- qiymat turi, atribut qiymatining turini ko'rsatadi, agar siz quyidagi maydondan foydalansangiz, bu to'ldirilishi kerak;

- mavjud qiymatlar, faqat to'lganida ishlaydi qiymat turi, shaklni oching va ustunda Ma'nosi turiga ko'ra o'zgartirilishi kerak bo'lgan elementni ko'rsatamiz, u oldindan belgilangan ob'ektlar yoki raqamli bo'lishi mumkin, masalan, tafsilotlar oddiy qiymatlarga ega, taqdimot Biz nimaga o'zgartirishimiz kerakligini ko'rsatamiz, Mantiqiy turdagi misol:

- dekoratsiya- boshqariladigan shakllardagi sozlamalarga o'xshash standart maydon formati sozlamalari sizga ma'lum tafsilotlarning chiqishini aniqroq va chiroyli tarzda sozlash imkonini beradi.

1C SKD da ma'lumotlar to'plami ulanishlari

Bu erda u faqat o'rnatiladi chap qo'shilish, shunga o'xshash printsip bo'yicha ulanishlar so'rovlarda, ichida aloqa manbai ulanish uchun asosiy jadvalni belgilang, in qabul qiluvchi qo'shimcha. IN ifoda manbai Va ifoda qabul qiluvchisi Muloqot qanday amalga oshirilishini batafsil ko'rsatamiz. Yorliqni ko'rib chiqqach, qolgan ustunlarni batafsil ko'rib chiqamiz. Variantlar. Parametrlar bilan qo'shimcha ulanish bo'lmasa, so'rovda ulanishni amalga oshirish tavsiya etiladi, bu hisobotni tezlashtiradi.

Ma'lumotlar tarkibi sxemasidan (DCS) to'g'ri foydalanish sizga quyidagilarga imkon beradi:

  • hisobotni ishlab chiqish uchun zarur bo'lgan vaqtni sezilarli darajada qisqartirish;
  • boshqariladigan shakl ishlov beruvchisini yaratish zaruriyatini bartaraf etish;
  • foydalanuvchi tomonidan qo'shimcha sozlash imkoniyati bilan chiroyli natijaga ega bo'ling.

Ammo barcha ishlab chiquvchilar sxemaning imkoniyatlaridan maksimal darajada foydalanmaydilar, chunki uning barcha sozlamalari aniq va intuitiv emas. Xususan, ko'p odamlar 1C SKD da hisoblangan maydonlar mavjudligini bilishadi, ammo ular ulardan foydalanish ko'lamini va ular bilan ishlash usullarini to'liq tushunmaydilar.

Hisoblangan maydon nima

Ko'pgina hollarda, tartib diagrammasidagi ma'lumotlar manbai so'rovdir. Aslida, so'rovning o'zida siz allaqachon turli formulalar, konstruktsiyalar va ifodalardan foydalanishingiz mumkin. Tabiiy savol tug'iladi: nega bizga takroriy funksiyalar kerak?

Haqiqat shundaki, kirishni boshqarish tizimi so'rov natijasini ko'rsatishdan ko'ra ko'proq narsadir va bu diagramma yaratish shaklidan aniq ko'rinadi (1-rasm).

Hisoblangan maydonlar yaratilgan ma'lumotlar to'plami bilan muayyan harakatlarni bajarishga imkon beradi:

  • Bir nechta satrlarni bittaga birlashtirib, so'rov bo'yicha olingan ma'lumotlar majmuasini ma'lum bir katakchaga chiqarish;
  • Umumiy modulning eksport funksiyalariga kirish;
  • Tartib tili uchun mavjud bo'lgan turli iboralarni bajaring va maxsus EvaluateExpression funksiyalaridan foydalaning.

Keling, ushbu ro'yxatni ko'rib chiqaylik.

Bir katakdagi qiymatlar massivi

Keling, kontragent uchun barcha kvitansiya hujjatlari raqamlarini alohida katakchada olish zarur bo'lgan vaziyatni taqlid qilaylik:


Shunday qilib, biz sxemamizda qo'shimcha hisoblash maydonini yaratdik;


Yuqoridagi misoldan ko'rinib turibdiki, hisoblangan maydonlarni qo'shish va qayta ishlashda hech qanday qiyinchiliklar yo'q. Biz ikkita funktsiyadan foydalandik: Array() va ConnectRows().

Ikkinchisi haqida bir necha so'z. Massiv identifikatorini, qiymatlarni yoki qiymatni ko'rsatadigan birinchi parametrga qo'shimcha ravishda unda yana ikkitasini o'rnatish mumkin:

  1. Elementni ajratuvchi - qaysi belgi massivning bir elementini yoki qiymatlar jadvalining bir qatorini boshqasidan ajratishini ko'rsatadi (bizning holatlarimizda biz ushbu parametrni o'tkazib yubordik va sukut bo'yicha qator uzilishi tayinlangan);
  2. Ustunni ajratuvchi - qiymatlar jadvalining ustunlarini ajratish uchun ishlatiladigan belgi (sukut bo'yicha nuqta-vergul ishlatiladi).

Umumiy modulning eksport funksiyalariga kirish

Umumiy modulning funktsiyalari hisoblangan maydonni to'ldirish uchun ma'lumot manbai bo'lishi mumkin.

Bir nechta muhim fikrlar:

  • Funktsiya eksport qilinadigan bo'lishi kerak;
  • Agar funktsiya "Global" atributlari to'plamiga ega bo'lgan umumiy modulda joylashgan bo'lsa, u to'g'ridan-to'g'ri nomi bilan chaqiriladi, aks holda funktsiya "Shared module name" sxemasiga muvofiq chaqirilishi kerak. "Chaqiriladigan funktsiyaning nomi."

Foydalanish misoli sifatida biz kvitansiya hujjatlari uchun bir xil so'rovni olamiz va uni alohida ustunda ko'rsatamiz. Biz so'rovning o'zini tasvirlamaymiz, to'g'ridan-to'g'ri hisoblangan maydonlarga o'tamiz:


Shunday qilib, biz deyarli har qanday ma'lumotlar protsessorini kirishni boshqarish tizimidan ishga tushirish mumkinligini ko'ramiz, bu sxemadan foydalanish imkoniyatlarini sezilarli darajada kengaytiradi.

Til ifodalarini joylashtirish

Ko'pincha ishlab chiquvchining ishida ACS maydonida bo'linish natijasini ko'rsatish zarur bo'lganda vaziyat yuzaga keladi:

  1. Ob'ektning o'rtacha narxini hisoblang;
  2. Barcha turdagi qiziqishlar;
  3. O'rtacha daromadni hisoblash va boshqalar.

Muammolarga yo'l qo'ymaslik uchun, bu holatlarda hisoblangan maydonga 0 ga bo'linish testini kiritish tavsiya etiladi.

Buni “Tanlash qachon…. Keyin… Aks holda… Tugatish” konstruktsiyasi yordamida amalga oshirish mumkin.

Oxirida juda yangi CalculateExpression() funktsiyasi haqida bir necha so'z. Uning yordami bilan, xususan, joriy va oldingi chiziqlar o'rtasidagi xarajatdagi og'ishlarni, to'plangan balansni va boshqalarni hisoblashingiz mumkin.

Aytaylik, “Ifoda” maydonida “Hujjat summasini hisoblash” (“Hujjat summasi”, “Oldingi summa”) qiymatini ko‘rsatib, so‘rovimizning oldingi qatoridan olishingiz mumkin.

  • 1C-Bitrix
  • Biznes dasturiy ta'minotining eng muhim sohalaridan biri hisobot berishdir. Biznesning taqdiri (majoziy ma'noda emas!) Mavjud hisobotni biznesning (va qonunchilikning) o'zgaruvchan ehtiyojlariga moslashtirish yoki yangisini yaratish qanchalik osonligiga bog'liq bo'lishi mumkin, xoh u soliq idorasi uchun hisobot bo'lsin. yoki tovarga bo'lgan talabning mavsumga va boshqa omillarga bog'liqligi diagrammasi. Tizimdan kerakli ma'lumotlarni ajratib olishni, ularni tushunarli shaklda taqdim etishni osonlashtiradigan kuchli va moslashuvchan hisobot tizimi oxirgi foydalanuvchiga ma'lumotlarni yangi nuqtai nazardan ko'rish uchun standart hisobotni qayta sozlash imkonini beradi - bu har bir foydalanuvchi uchun ideal. biznes tizimi intilishi kerak.

    1C: Enterprise platformasida hisobotlarni yaratish uchun "Ma'lumotlar tarkibi tizimi" (qisqartirilgan DCS) deb nomlangan mexanizm javobgardir. Ushbu maqolada biz ACS mexanizmining g'oyasi va arxitekturasi va uning imkoniyatlarini qisqacha tavsiflashga harakat qilamiz.


    ACS - bu hisobotlarning deklarativ tavsifiga asoslangan mexanizm. Kirishni boshqarish tizimi hisobotlarni yaratish va murakkab tuzilishga ega ma'lumotlarni ko'rsatish uchun mo'ljallangan. Aytgancha, hisobotlarni ishlab chiqishdan tashqari, ACS mexanizmi 1C: Enterprise-da dinamik ro'yxatda, boy funksionallikka ega ro'yxat ma'lumotlarini ko'rsatish vositasi (tekis va ierarxik ro'yxatlarni ko'rsatish, qatorlarning shartli dizayni, guruhlari va boshqalar) qo'llaniladi. ).

    Bir oz tarix

    1C: Enterprise 8 platformasining birinchi versiyasida, 8.0 versiyasida hisobotlar quyidagicha tuzilgan:
    1. Bir yoki bir nechta so'rovlar 1C so'rovlar tilida yozilgan (SQL-ga o'xshash til, quyida batafsilroq).
    2. Bajarilgan so'rovlar natijalarini elektron jadval hujjatiga yoki diagrammaga o'tkazadigan kod yozildi. Kod so'rovda bajarib bo'lmaydigan ishlarni ham bajarishi mumkin edi - masalan, u o'rnatilgan 1C tilidan foydalangan holda qiymatlarni hisoblab chiqdi.
    Yondashuv oddiy, lekin eng qulay emas - minimal vizual sozlamalar mavjud, hamma narsa "qo'ldan-qo'l" dasturlashtirilgan bo'lishi kerak. Va o'sha paytda mutlaqo yangi "1C: Enterprise 8" platformasining kozilaridan biri dastur yechimida qo'lda yozilishi kerak bo'lgan kod miqdorini, xususan, vizual dizayn orqali minimallashtirish edi. Hisobot mexanizmida xuddi shu yo'ldan borish mantiqan to'g'ri bo'ladi. Bu yangi mexanizm - Ma'lumotlar tarkibi tizimini ishlab chiqish orqali amalga oshirildi.

    Kirishni boshqarish tizimining asosini tashkil etgan g'oyalardan biri ham ishlab chiquvchi, ham oxirgi foydalanuvchi uchun ochiq bo'lgan hisobotlarning moslashuvchanligi va moslashuvi edi. Ideal holda, men oxirgi foydalanuvchiga ishlab chiquvchi bilan bir xil hisobotlarni loyihalash vositalaridan foydalanish huquqini bermoqchiman. Hamma uchun mavjud bo'lgan yagona vositalar to'plamini yaratish mantiqan to'g'ri bo'lar edi. Xo'sh, asboblar oxirgi foydalanuvchining ishtirokini talab qilganligi sababli, ularda dasturlashdan foydalanish minimal darajaga tushirilishi kerak (uni butunlay yo'q qilish yaxshidir) va vizual sozlamalardan maksimal darajada foydalanish kerak.

    Muammoni shakllantirish

    Rivojlanish guruhi oldidagi vazifa algoritmga (ya'ni, kod yozish orqali) emas, balki hisobotlarni yaratishda deklarativ yondashuvga asoslangan hisobot tizimini yaratish edi. Va biz muammo muvaffaqiyatli hal qilinganiga ishonamiz. Bizning tajribamizga ko'ra, talab qilinadigan hisobotlarning qariyb 80% ACS yordamida bir qator kodsiz (hisoblangan maydonlar uchun formulalarni yozishdan tashqari), asosan vizual sozlamalar orqali amalga oshirilishi mumkin.
    SDSning birinchi versiyasini ishlab chiqish taxminan 5 yil davom etdi.

    Ikki til

    Hisobotlarni yaratishda ikkita til mavjud. Ulardan biri ma'lumotlarni olish uchun ishlatiladigan so'rovlar tilidir. Ikkinchisi, ma'lumotlar tarkibini ifodalash tili bo'lib, tizimning turli qismlarida, masalan, ma'lumotlar tarkibi sozlamalarida foydalanuvchi maydonlarining ifodalarini tavsiflash uchun ishlatiladigan ifodalarni yozish uchun mo'ljallangan.

    So'rov tili

    So'rovlar tili SQL-ga asoslangan va SQL-ni yaxshi biladiganlar uchun o'rganish oson. Misol so'rovi:

    SQL so'rovlari uchun standart bo'limlarning analoglarini ko'rish oson - SELECT, FROM, GROUP BY, ORDER BY.

    Shu bilan birga, so'rovlar tilida moliyaviy-iqtisodiy muammolarning o'ziga xos xususiyatlarini aks ettirishga va amaliy echimlarni ishlab chiqish bo'yicha harakatlarni maksimal darajada kamaytirishga qaratilgan ko'plab kengaytmalar mavjud:

    • Nuqta yordamida maydonlarga kirish. Agar jadval maydonlari mos yozuvlar turiga ega bo'lsa (ular boshqa jadval ob'ektlariga havolalarni saqlaydi), ishlab chiquvchi ularga so'rov matnida "." orqali murojaat qilishi mumkin va tizim joylashtirish darajalari sonini cheklamaydi. bunday havolalardan (masalan, Buyurtmachi buyurtmasi. Shartnoma. Tashkilot. Telefon).
    • Natijalarning ko'p o'lchovli va ko'p darajali shakllanishi. Jami va oraliq summalar guruhlash va ierarxiyani hisobga olgan holda shakllantiriladi, darajalarni umumlashtirish bilan istalgan tartibda bosib o'tish mumkin va vaqt o'lchovlari bo'yicha yig'indilarning to'g'ri tuzilishi ta'minlanadi.
    • Virtual jadvallarni qo'llab-quvvatlash. Tizim tomonidan taqdim etilgan virtual jadvallar sizga murakkab so'rovlarni yaratmasdan ko'pgina amaliy vazifalar uchun deyarli tayyor ma'lumotlarni olish imkonini beradi. Shunday qilib, virtual jadval ma'lum bir vaqtning o'zida davrlar bo'yicha mahsulot balansi haqida ma'lumot berishi mumkin. Shu bilan birga, virtual jadvallar saqlangan ma'lumotlardan maksimal darajada foydalanadi, masalan, ilgari hisoblangan jami va hokazo.
    • Vaqtinchalik jadvallar. So'rovlar tili so'rovlarda vaqtinchalik jadvallardan foydalanish imkonini beradi. Ularning yordami bilan siz so'rovlar samaradorligini oshirishingiz, ba'zi hollarda blokirovkalar sonini kamaytirishingiz va so'rov matnini o'qishni osonlashtirishingiz mumkin.
    • To'plam so'rovlari. Vaqtinchalik jadvallar bilan ishlashni qulayroq qilish uchun so'rovlar tili ommaviy so'rovlar bilan ishlashni qo'llab-quvvatlaydi - shuning uchun vaqtinchalik jadvalni yaratish va undan foydalanish bitta so'rovga joylashtiriladi. To'plamli so'rov nuqta-vergul (";") bilan ajratilgan so'rovlar ketma-ketligidir. To'plamdagi so'rovlar birin-ketin bajariladi. To'plam so'rovini bajarish natijasi, qo'llanilgan usulga qarab, to'plamdagi oxirgi so'rov tomonidan qaytarilgan natija yoki to'plamdagi so'rovlar ketma-ketligi bo'yicha to'plamdagi barcha so'rovlar natijalari qatori bo'ladi. .
    • Malumot maydonlarining ko'rinishlarini olish. Har bir ob'ekt jadvali (ma'lumotnoma yoki hujjat saqlanadigan) virtual maydonga ega - "Ko'rish". Bu maydon ob'ektning matnli tasvirini o'z ichiga oladi va hisobot yaratuvchining ishini osonlashtiradi. Shunday qilib, hujjat uchun ushbu maydon barcha asosiy ma'lumotlarni o'z ichiga oladi - hujjat turining nomi, uning raqami va sanasi (masalan, "Sotish 000000003 07.06.2017 17:49:14"), ishlab chiquvchini saqlab qoladi. hisoblangan maydonni yozish.
    • va boshq.
    So'rov mexanizmi so'rovni o'z nomidan bajarilgan foydalanuvchi tegishli bo'lgan rollarni (ya'ni, foydalanuvchi faqat o'zi ko'rish huquqiga ega bo'lgan ma'lumotlarni ko'radi) va funktsional variantlarni (ya'ni, muvofiq) hisobga olgan holda avtomatik ravishda o'zgartiradi. ilova yechimi funksionalligida sozlanganlar bilan).

    Bundan tashqari, kirishni boshqarish tizimlari uchun maxsus so'rovlar tili kengaytmalari mavjud. Kengaytirish jingalak qavslar ichiga olingan va to'g'ridan-to'g'ri so'rov tanasiga joylashtirilgan maxsus sintaktik ko'rsatmalar yordamida amalga oshiriladi. Kengaytmalardan foydalanib, ishlab chiquvchi oxirgi foydalanuvchi hisobotni sozlashda qanday operatsiyalarni bajarishi mumkinligini aniqlaydi.

    Masalan:

    • TANLANG. Ushbu jumla foydalanuvchi chiqish uchun tanlashi mumkin bo'lgan maydonlarni tavsiflaydi. Ushbu kalit so'zdan so'ng, asosiy so'rovlarni tanlash ro'yxatidagi konfiguratsiya uchun mavjud bo'lgan maydonlarning taxalluslari vergul bilan ajratiladi. Misol: (Tanlash elementi, ombor)
    • QAYERDA. Foydalanuvchi tanlovni qo'llashi mumkin bo'lgan maydonlar tavsiflangan. Bu taklif jadval maydonlaridan foydalanadi. Tanlov roʻyxati maydoni taxalluslaridan foydalanishga ruxsat berilmagan. Birlashmaning har bir qismi o'zining WHERE elementini o'z ichiga olishi mumkin. Misollar: (WHERE Item.*, Ombor), (WHERE Document.Sana >= &StartDate, Document.Date<= &ДатаКонца}
    • va boshq.
    Kengaytmalardan foydalanishga misol:

    Ma'lumotlar tarkibini ifodalash tili

    Ma'lumotlar tarkibi ifodalash tili ishlatiladigan iboralarni yozish uchun mo'ljallangan, xususan, maxsus maydon ifodalarini tavsiflash uchun. SKD sizga o'z ifodalaringiz yoki ularni tanlash shartlari bilan (SQL-dagi CASE-ga o'xshash) variantlar to'plamidan foydalangan holda hisobotda maxsus maydonlarni aniqlash imkonini beradi. Maxsus maydonlar hisoblangan maydonlarga o'xshaydi. Ular konfiguratorda ham, 1C: Enterprise rejimida ham o'rnatilishi mumkin, ammo umumiy modullarning funktsiyalarini maxsus maydon ifodalarida ishlatib bo'lmaydi. Shuning uchun, maxsus maydonlar ishlab chiquvchi uchun emas, balki foydalanuvchi uchun mo'ljallangan.

    Misol:

    Kirishni boshqarish tizimi bo'yicha hisobot yaratish jarayoni

    Hisobotni yaratishda biz ma'lumotlarning hisobotda qanday ko'rsatilishini belgilaydigan tartibni yaratishimiz kerak. Siz ma'lumotlar sxemasi diagrammasi asosida tartib yaratishingiz mumkin. Ma'lumotlar joylashuvi diagrammasi hisobotga taqdim etiladigan ma'lumotlarning mohiyatini tavsiflaydi (ma'lumotlarni qayerdan olish va uning tartibini qanday boshqarish mumkin). Ma'lumotlar tarkibi sxemasi barcha turdagi hisobotlarni yaratish uchun asosdir. Ma'lumotlar tarkibi sxemasi quyidagilarni o'z ichiga olishi mumkin:
    • ma'lumotlar tarkibi tizimi uchun ko'rsatmalar bilan matnni so'rash;
    • bir nechta ma'lumotlar to'plamining tavsifi;
    • mavjud maydonlarning batafsil tavsifi;
    • bir nechta ma'lumotlar to'plami o'rtasidagi munosabatlarni tavsiflash;
    • ma'lumotlarni yig'ish parametrlarining tavsifi;
    • dala sxemalari va guruhlarini tavsiflash;
    • va boshq.

    Masalan, siz ma'lumotlar tarkibi sxemasiga so'rovni ma'lumotlar to'plami sifatida qo'shishingiz va so'rovlar konstruktorini chaqirishingiz mumkin, bu sizga grafik ravishda ixtiyoriy murakkablikdagi so'rovni yaratishga imkon beradi:

    So'rovlar dizaynerini ishga tushirish natijasi so'rov matni bo'ladi (1C: Enterprise so'rovlar tilida). Agar kerak bo'lsa, ushbu matn qo'lda sozlanishi mumkin:

    Ma'lumotlarni joylashtirish sxemasida bir nechta ma'lumotlar to'plami bo'lishi mumkin, ma'lumotlar to'plamlari maketda istalgan usulda bog'lanishi mumkin, hisoblangan maydonlarni qo'shish mumkin, hisobot parametrlarini ko'rsatish mumkin va hokazo. 1C: Enterprise-da so'rovlar mexanizmining qiziqarli xususiyatini eslatib o'tish kerak. So'rovlar dastur to'g'ridan-to'g'ri ishlaydigan DBMSga xos SQL dialektiga tarjima qilinadi. Umuman olganda, biz DBMS serverlarining imkoniyatlaridan maksimal darajada foydalanishga harakat qilamiz (biz bir vaqtning o'zida 1C: Enterprise platformasi - MS SQL, Oracle, IBM DB2 tomonidan qo'llab-quvvatlanadigan barcha DBMSlarda mavjud bo'lgan imkoniyatlardan foydalanamiz. , PostgreSQL). Shunday qilib, hisoblangan maydonlardagi so'rovlar darajasida biz faqat SQL-ga tarjima qilingan funktsiyalardan foydalanishimiz mumkin.

    Ammo ma'lumotlar tarkibi sxemasi darajasida biz allaqachon maxsus maydonlarni qo'shishimiz va ulardagi funktsiyalardan o'rnatilgan 1C ishlab chiqish tilida (shu jumladan biz tomonidan yozilgan) foydalanishimiz mumkin, bu esa hisobotlarning imkoniyatlarini sezilarli darajada kengaytiradi. Texnik jihatdan shunday ko'rinadi - SQL-ga tarjima qilinishi mumkin bo'lgan hamma narsa SQL-ga tarjima qilinadi, so'rov DBMS darajasida bajariladi, so'rov natijalari 1C dastur serverining xotirasiga joylashtiriladi va SKD har bir yozuv uchun qiymatlarni hisoblab chiqadi. formulalari 1C tilida yozilgan hisoblangan maydonlar.


    Maxsus maydonlarni qo'shish

    Hisobotga ixtiyoriy sonli jadval va diagrammalarni qo'shishingiz mumkin:


    Hisobot dizayneri


    Ish vaqti hisoboti

    SKD dan foydalanib, foydalanuvchi hisobotga murakkab tanlovlarni qo'shishi mumkin (ular so'rovga kerakli joylarda qo'shiladi), shartli dizayn (ko'rsatilgan maydonlarni ularning qiymatlariga qarab turlicha - shrift, rang va boshqalar bilan formatlash imkonini beradi. ) va yana ko'p narsalar..

    Hisobotni tuzish va yaratish jarayonini qisqacha tavsiflash mumkin:

    • Ishlab chiquvchi dizayn vaqtida dizayner yordamida (yoki koddan foydalangan holda ish vaqtida) ma'lumotlarni joylashtirish sxemasini aniqlaydi:
      • So'rov/so'rov matni
      • Hisoblangan maydonlarning tavsifi
      • So'rovlar o'rtasidagi munosabatlar (agar ular bir nechta bo'lsa)
      • Hisobot opsiyalari
      • Standart sozlamalar
      • Va hokazo.
    • Yuqoridagi sozlamalar tartibda saqlanadi
    • Foydalanuvchi hisobotni ochadi
      • Qo'shimcha sozlamalarni o'rnatishi mumkin (masalan, parametr qiymatlarini o'zgartiradi)
      • "Yaratish" tugmasini bosing
    • Foydalanuvchi sozlamalari ishlab chiquvchi tomonidan belgilangan ma'lumotlar tarkibi sxemasiga qo'llaniladi.
    • Ma'lumotni qayerdan olish bo'yicha ko'rsatmalarni o'z ichiga olgan oraliq ma'lumotlar kompozitsiyasi sxemasi shakllantiriladi. Xususan, tartibda ko'rsatilgan so'rovlar o'rnatiladi. Shunday qilib, hisobotda ishlatilmaydigan maydonlar so'rovdan olib tashlanadi (bu qabul qilingan ma'lumotlar miqdorini minimallashtirish uchun amalga oshiriladi). Hisoblangan maydon formulalarida ishtirok etadigan barcha maydonlar so'rovga qo'shiladi.
    • Ma'lumotlar kompozitsiyasi protsessori ishga tushadi. Tartib protsessori so'rovlarni bajaradi, ma'lumotlar to'plamlarini bog'laydi, hisoblangan maydonlar va resurslar uchun qiymatlarni hisoblaydi va guruhlashni amalga oshiradi. Bir so'z bilan aytganda, u DBMS darajasida bajarilmagan barcha hisob-kitoblarni amalga oshiradi.
    • Ma'lumotlarni chiqarish protsessori bajarish uchun so'rovni ishga tushiradi va olingan ma'lumotlarni elektron jadval hujjatida, diagrammada va hokazolarda aks ettiradi.


    ACS mexanizmi yordamida hisobot yaratish jarayoni

    Biz serverdan mijoz ilovasiga uzatiladigan hisobot ma'lumotlari miqdorini minimallashtirishga harakat qilamiz. Elektron jadval hujjatida ma'lumotlarni ko'rsatishda, elektron jadval hujjatini ochishda biz serverdan faqat foydalanuvchi hujjat boshida ko'rgan satrlarni uzatamiz. Foydalanuvchi hujjat satrlari bo'ylab harakatlanayotganda, etishmayotgan ma'lumotlar serverdan mijozga yuklab olinadi.

    Maxsus sozlamalar

    Barcha ACS vositalari ham ishlab chiquvchi, ham oxirgi foydalanuvchi uchun mavjud. Ammo amaliyot shuni ko'rsatdiki, oxirgi foydalanuvchi ko'pincha asbob imkoniyatlarining ko'pligidan qo'rqadi. Bundan tashqari, aksariyat hollarda oxirgi foydalanuvchi sozlamalarning barcha kuchiga muhtoj emas - unga bir yoki ikkita hisobot parametrlarini (masalan, davr va kontragent) sozlash uchun tezkor kirish imkoniyati etarli. Platformaning ma'lum bir versiyasidan boshlab, hisobot ishlab chiqaruvchisi foydalanuvchi uchun qaysi hisobot sozlamalari mavjudligini belgilash imkoniyatiga ega. Bu "Foydalanuvchi sozlamalariga qo'shish" katakchasi yordamida amalga oshiriladi. Shuningdek, hisobot sozlamalarida endi “Displey rejimi” bayrog‘i mavjud bo‘lib, u uchta qiymatdan birini oladi:
    • Tez kirish. Sozlama to'g'ridan-to'g'ri hisobot oynasining yuqori qismida ko'rsatiladi.
    • Oddiy. Sozlama "Sozlamalar" tugmasi orqali mavjud bo'ladi.
    • Mavjud emas. Sozlama oxirgi foydalanuvchi uchun mavjud bo'lmaydi.


    Dizayn vaqtida ko'rsatish rejimini o'rnatish


    Sozlamani ish vaqtida Tez kirish rejimida ko'rsatish (Yaratish tugmasi ostida)

    Rivojlanish rejalari

    Kirishni boshqarish tizimlarini rivojlantirishdagi ustuvor yo'nalishlarimizdan biri foydalanuvchi sozlamalarini soddalashtirishdir. Bizning tajribamiz shuni ko'rsatadiki, ba'zi oxirgi foydalanuvchilar uchun foydalanuvchi sozlamalari bilan ishlash hali ham muhim vazifadir. Biz buni hisobga olamiz va shu yo‘nalishda ishlayapmiz. Shunga ko'ra, ishlab chiquvchilarga kirishni boshqarish tizimlari bilan ishlash osonroq bo'ladi, chunki Biz, avvalgidek, ishlab chiquvchi va oxirgi foydalanuvchi uchun hisobotlarni o'rnatish uchun yagona vositani taqdim qilmoqchimiz.