Windows.  Viruslar.  Noutbuklar.  Internet.  Idora.  Utilitalar.  Haydovchilar

Klyuev V.V.

http://prof1c.kklab.ru

Bo'ysunuvchi kataloglar

Katta ehtimol bilan siz oddiy odatiy konfiguratsiyalarda kataloglar o'zaro bog'langanligini bir necha bor payqagansiz, agar siz katalog elementini (1-katalog) tanlaganingizda, boshqa katalogning qiymati (2-katalog) ushbu qiymat bo'yicha "filtrlangan" - ya'ni qiymatlar. faqat joriy katalog elementiga tegishli bo'lganlar tanlanadi; masalan, bu "Bo'lim" katalogi, uning egasi "Tashkilot" katalogi.

Nima sodir bo'layotganining mohiyatini darhol tushunish uchun amalda nima sodir bo'lishini ko'rib chiqaylik. Buni amalga oshirish uchun siz noldan bo'sh konfiguratsiya yaratishingiz yoki ma'lumot bazasining mavjud nusxasiga o'tishingiz va konfiguratorda 2 ta katalog yaratishingiz mumkin.

Katalog 1 va katalog 2. 2-katalogda "Egalar" yorlig'iga o'ting va egasini tanlang - "Directory1", rasmda ko'rsatilganidek, qarang.

Endi, "Directory2" da elementlarni yaratishda tizim sizdan katalog1 egasini kiritishingizni so'raydi. Variant mavjud - Subordinatsiyadan foydalanish - bo'ysunish Elementlar, guruhlar yoki guruhlar va elementlarga o'rnatilganda.

Hamma narsa oddiydek tuyuladi, lekin foydalanuvchilar uchun muammolar paydo bo'ladi. "Directory 2" ni ochganda, foydalanuvchi barcha elementlarni mutlaqo tushunarsiz tartibda ko'radi va bundan tashqari, agar siz standart konfiguratsiyalar bilan ishlagan bo'lsangiz, to'g'ridan-to'g'ri "Bo'limlar" katalogida siz egasini hech qanday joyda ko'rsatmasligingizni payqagan bo'lishingiz mumkin. katalogni ochishda siz tashkilotni tanlashingiz va shunga qarab u yoki bu tashkilotga bo'ysunadigan elementlarni olishingiz mumkin; Bundan tashqari, "Bo'limlar" katalogini yaratishda siz sukut bo'yicha bo'limlar ro'yxati ko'rinishida tanlagan egasini olasiz.
Keling, boshlaylik va "Directory2" uchun "Ro'yxat shakli" ni yarataylik, hozircha buni hech qanday o'zgartirishlarsiz 1C ga taqdim eting, keyinroq dizayner tomonidan yaratilgan shaklni moslashtiramiz.
"Directory2" da Shakllar yorlig'iga o'ting va (+) yangi katalog ro'yxati shaklini qo'shing va "Finish" tugmasini bosing.

“Directory1.Link” ma’lumotlar tipidagi “SelectionDirectory1” nomli forma atributini yaratamiz va bu atributni formaga tortamiz, “Directory1” sarlavhasini o‘rnatamiz.


Endi, "bu mo''jiza" ishlashi uchun siz 1 katalog elementini tanlashda tanlovni amalga oshiradigan kod yozishingiz kerak.

8.2, 8.3 Boshqariladigan shakllar

Katalog ro'yxati ko'rinishida faqat Katalog1 ning tanlangan elementi uchun kerakli elementlarni ko'rsatish uchun biz dasturli ravishda tanlashimiz kerak - tanlangan element bo'yicha buning uchun biz SelectionDirectory1 boshqaruvining oldindan belgilangan protsedurasidan foydalanamiz va belgilangan vazifani bajaradigan kodni yozing.
Yuqori qismida "Select Directory1" ni tanlang, sichqonchaning o'ng tugmachasini bosing va "Xususiyatlar" ni tanlang, paydo bo'lgan oynada "OnChange" xususiyatini toping va kattalashtiruvchi oynani bosing, shu bilan forma moduliga o'ting; “Selection Directory1OnChange(Element)” protsedurasi avtomatik ravishda yaratiladi

Jarayonda quyidagi matnni kiriting:

& Mijoz protseduralarini tanlash katalogida1OnChange(Element) ro'yxatida. Tanlash. Elementlar. Clear(); // Tanlash elementi = Ro'yxat. Tanlash. Elementlar. Qo‘shish(Tur(" Tanlash ElementData Layout"); Tanlov elementlari. ChapValue = NewDatacpomeniont (" Egasi "); selektsionement.com = selektsionement = ma'lumot berish

8.2 Oddiy shakllar


Shakllarni qurishda hamma narsa bir xil, faqat shakllar yaratilishi kerak, chunki boshqariladigan shakllar oddiy dasturda ishlamaydi;
Farqi ro'yxat shaklidagi elementni tanlash tartibida va rekvizitlarni yaratishda bo'ladi.
Oddiy shaklga tafsilotlarni qo'shish uchun tugmani bosing

Protsedura Reference1OnChange(Element)Ushbu shakl. Tanlash. Egasi. Qiymat = Katalog1. Havola;

Ushbu shakl. Tanlash. Egasi. Foydalanish = rost; Ushbu shakl. Shakl elementlari. Kataloglar roʻyxati. Tanlash sozlamalari. Egasi. Mavjudlik = False ; //(?) EndProcedure

Oxirgi chiziq(?) - foydalanuvchi tanlash parametrlarini ochganda tanlovni o'zgartirishni taqiqlaymiz - faqat boshqaruv elementi orqali!

Video (ovozsiz - ovozsiz hamma narsa aniq) Katalog elementini toping 1C 8

uchta usulda mumkin:

1) Kod bo'yicha qidirish Agar ma'lum bo'lsa kod katalog elementi va siz unga havolani olishingiz kerak, siz usuldan foydalanishingiz mumkin<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>) Agar ma'lum bo'lsa katalog elementi va natijada katalog elementiga havola yoki bunday kodga ega element topilmasa, bo'sh havola bo'ladi. Shuni ta'kidlash kerakki, agar katalogda ko'rsatilgan kod bilan bir nechta elementlar bo'lsa, birinchi topilgani qaytariladi.

FoundElement = Directories.Nomenclature.FindByCode("00000011254" );

Usul parametrlarining tavsifi FindByCode:

  • <Код>(majburiy). Turi: raqam, satr. Tavsif: konfiguratordagi katalog sozlamalariga qarab kerakli kod, qator yoki raqam.
  • <ПоискПоПолномуКоду>(ixtiyoriy). Turi: mantiqiy. Tavsif: to'liq kod bo'yicha qidiruv rejimini belgilaydi, rost - qidirilayotgan kod "/" belgisi bilan ajratilgan katalog darajalari bo'yicha kodlar ketma-ketligidan iborat qator sifatida ko'rsatilishi kerak. Standart qiymat: False.
  • <Родитель>(ixtiyoriy)
  • <Владелец>(ixtiyoriy)

2) Ism bo'yicha qidiring

Agar ma'lum bo'lsa Ism katalog elementi va siz unga havolani olishingiz kerak, siz usuldan foydalanishingiz mumkin FindByName(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>) katalog menejeri. Eng oddiy holatda, siz ushbu usulga o'tishingiz kerak Ism katalog elementi va natijada katalog elementiga havola yoki xuddi shu nomdagi element topilmasa, bo'sh havola bo'ladi. Shuni ta'kidlash kerakki, agar katalogda ko'rsatilgan nomga ega bir nechta elementlar mavjud bo'lsa, unda birinchi topilgani qaytariladi.

FoundElement = Directories.Nomenclature.FindByName( "Payvandlash mashinasi");

Usul parametrlarining tavsifi FindByName:

  • <Наименование>(majburiy). Turi: String. Tavsif: Siz izlayotgan ismni o'z ichiga olgan qator.
  • ExactMatch> (ixtiyoriy). Turi: mantiqiy. Tavsif: to'liq moslik bo'yicha qidiruv rejimini belgilaydi, qidiruv satri bo'lsa, qidiruv muvaffaqiyatli bo'ladi: parametr qiymati bo'lsa Yolg'on- parametr qiymati bo'lsa, nomning chap tomoniga mos keladi To'g'ri- nomga to'liq mos keladi (nomdagi "dum" bo'shliqlari bundan mustasno). Standart qiymat: False.
  • <Родитель>(ixtiyoriy). Turi: DirectoryLink. Tavsif: qidiruv amalga oshirilishi kerak bo'lgan ota-ona, agar ko'rsatilmagan bo'lsa, qidiruv butun katalogda amalga oshiriladi;
  • <Владелец>(ixtiyoriy). Turi: DirectoryLink. Tavsif: qidiruv amalga oshirilishi kerak bo'lgan egasi, agar ko'rsatilmagan bo'lsa, qidiruv butun katalogda amalga oshiriladi.

3) Ixtiyoriy tafsilotlar bo'yicha qidirish

Agar biron bir ma'nosi bo'lsa rekvizitlar katalog va siz unga havolani olishingiz kerak, siz usuldan foydalanishingiz mumkin FindByDetails(<ИмяРеквизита>, <ЗначениеРеквизита>, <Родитель>, <Владелец>) katalog menejeri. Eng oddiy holatda, atribut nomini va uning qiymatini ushbu usulga o'tkazishingiz kerak va natijada siz katalog elementiga havolani olasiz, yoki agar element ko'rsatilgan qiymatning bunday qiymatiga ega bo'lsa, bo'sh havola olasiz. atribut topilmadi. Shuni ta'kidlash kerakki, agar katalogda ko'rsatilgan atributning qiymati bir xil bo'lgan bir nechta elementlar mavjud bo'lsa, unda birinchi topilgani qaytariladi.

FoundElement = Directories.Nomenclature.FindByRequisites("Maqola","A-255");

Usul parametrlarining tavsifi FindByProps:

  • <ИмяРеквизита>(majburiy). Turi: String. Tavsif: atribut nomi, konfiguratorda ko'rsatilganidek, uning qiymati bo'yicha qidiruv amalga oshiriladi. Qiymat turi: ixtiyoriy, ValueStorage va ixtiyoriy uzunlikdagi satrlardan tashqari.
  • <ЗначениеРеквизита>(majburiy). Turi: bepul. Tavsif: qidiruv amalga oshirilishi kerak bo'lgan atributning qiymati.
  • <Родитель>(ixtiyoriy). Turi: DirectoryLink. Tavsif: qidiruv amalga oshirilishi kerak bo'lgan ota-ona, agar ko'rsatilmagan bo'lsa, qidiruv butun katalogda amalga oshiriladi;
  • <Владелец>(ixtiyoriy). Turi: DirectoryLink. Tavsif: qidiruv amalga oshirilishi kerak bo'lgan egasi, agar ko'rsatilmagan bo'lsa, qidiruv butun katalogda amalga oshiriladi.

Assalomu alaykum, aziz hamkasblarimiz va hamkorlarimiz. So'nggi bir oy ichida biz 1C Accounting 8.3 dasturi foydalanuvchilaridan 8.2-da bo'lgani kabi dasturdagi elementlar ro'yxatini tuzishda yordam so'rab bir nechta savollar oldik. Ya'ni, eski dasturda ular ob'ektlar ro'yxatida maqola yoki element kodini ko'rishlari mumkin edi. Bu juda qulay edi. Ammo 8.3 da hech narsa ko'rinmaydi va tushunarsiz. Aslida sozlash juda oson. Shuning uchun biz 1C Accounting 8.3 dasturida kataloglarni o'rnatish bo'yicha qisqa ko'rsatma yozishga qaror qildik, ammo bu algoritm har qanday 1C konfiguratsiyasida qo'llaniladi.

Shunday qilib, "Kataloglar" bo'limida "Nomenklatura" katalogini oching.

Ochilgan ro'yxatda biz mahsulot nomini ko'ramiz, unda mahsulot maqolasi haqida ma'lumot mavjud emas. Katalog taqdimotini o'zgartirish uchun biz uning shakli sozlamalaridan foydalanamiz. Buyruqlar ro'yxatini ochish uchun "Ko'proq" tugmasini bosish orqali biz eng pastki qismida "Shaklni o'zgartirish" ni topamiz.

Ochilgan shaklda bizga katalogning barcha ma'lumotlari taqdim etiladi, ular ekranda ko'rsatilishi mumkin.

Tegishli katakchani belgilab, masalan, "Kod" va "Maqola" biz kod va maqolani ko'rsatadigan narsalar ro'yxatini olamiz.

Biroq, ba'zi foydalanuvchilarga ushbu shakldagi katalog ham yoqmaydi. Ular mahsulot nomidan oldin raqam va maqolani ko'rishni xohlashadi. Buni hal qilish ham juda oson. Shunga qaramay, ro'yxat sozlamalari formasini oching va ro'yxatni qanday ko'rishni xohlayotganimizga qarab, tafsilotlarni yuqoriga yoki pastga siljitish uchun asboblar panelidagi ko'k o'qlardan foydalaning. Shuningdek, siz sichqonchaning chap tugmasi yordamida tafsilotlarni "surang" qilishingiz mumkin.

Endi elementlar ro'yxati siz xohlagan tarzda bo'ladi.

Ro'yxat sozlamalari bilan tajriba o'tkazing. Qo `rqmang. Men yozgan hamma narsa boshqariladigan shakllardagi har qanday konfiguratsiyada va har qanday katalogda ishlatilishi mumkin, masalan, "Qarshi tomonlar" katalogidagi nazorat nuqtasini yoki "Shartnomalar" katalogidagi shartnoma raqamini ko'rsatish. Dasturda biror narsani "buzishingizdan" qo'rqmang.

Oxirgi chora sifatida siz har doim "Ko'proq" bo'limidagi shakl sozlamalarida joylashgan "Standart sozlamalarni o'rnatish" opsiyasi orqali saqlanib qolasiz.

Va yana. Ba'zida mijozlar quyidagi savol bilan qo'ng'iroq qilishadi: "Men bir narsani bosdim va endi mening ismlarim alifbo tartibida emas. Hamma narsani men uchun qanday bo'lgan bo'lsa, shunday qilib qaytaring." Bu muammo ham osonlikcha hal qilinadi. Har bir katalogda, jadval bo'limining sarlavha satrida har doim saralash o'rnatiladigan ustunni va ushbu saralash yo'nalishini ko'rsatadigan "sehrli o'q" mavjud.

Siz shunchaki ushbu o'qni bosish orqali saralash yo'nalishini o'zgartirishingiz mumkin, keyin ro'yxat, masalan, Z dan A gacha saralanadi. Agar biz tovarlarni kod bo'yicha saralashni xohlasak, buning uchun nomga bosish kerak. tegishli ustunning "Kod" va "o'qni sehrlash" boshqa ustunga o'tadi.

OK, endi hammasi tugadi. Umid qilamanki, mening maslahatim 1C dasturlari bilan ishlashda sizga yordam beradi. 1C da zavq bilan ishlang. Aloqa va sinfdoshlarimizdagi guruhlarimizga qo'shiling va siz har doim bizning yangi maqolalarimiz va dasturlardagi o'zgarishlar haqida birinchi bo'lib xabardor bo'lasiz.

Har qanday 1C konfiguratsiyasining asosiy elementlaridan biri bu kataloglardir. Ular 1C ilovasining ko'pgina boshqa ob'ektlarida ishlatiladigan ma'lumotlarni saqlaydi. Shuning uchun 1C platformasida biron bir tizimni ishlab chiqish yoki yangilashda birinchi navbatda yangi kataloglar qo'shiladi va to'ldiriladi. Har bir 1C ishlab chiqaruvchisi ushbu konfiguratsiya ob'ektlarining asosiy xususiyatlarini, funktsiyalarini va imkoniyatlarini bilishi kerak.

1C 8.3 da kataloglarning tuzilishi va funktsiyalari

Kataloglarning asosiy vazifasi me'yoriy va ma'lumotnoma ma'lumotlarini saqlash va taqdim etishdan iborat. 1C tizimlarida buxgalteriya hisobi ma'lumotnomalar kontekstida amalga oshiriladi: Nomenklatura, Mijozlar va boshqalar.

Ishlab chiquvchilar kataloglarning alohida turini - tasniflagichlarni ajratib ko'rsatishadi. Bularga, masalan, davlat tomonidan tasdiqlangan ma'lumotlar kiradi:

  • Birliklar;
  • Valyutalar;
  • Dunyo mamlakatlari;
  • Kasblar.

Tuzilishi bo'yicha 1C dasturidagi kataloglar ma'lum ma'lumotlar ro'yxatidir. 1C konfiguratsiyasidagi mavjud kataloglar bilan tanishish uchun uni konfigurator rejimiga kiritishingiz kerak. Konfigurator daraxtida "Katalog" bo'limini toping va uni kengaytiring.

Kataloglarning har biri ishlab chiquvchilar tomonidan o'rnatilgan o'z xususiyatlariga ega. Misol sifatida "Valyutalar" katalogidan foydalanib, asosiy xususiyatlarni ko'rib chiqaylik.

"Asosiy" yorlig'ida katalog nomi va uning tavsifi haqida ma'lumot mavjud. Keyingi bo'lim "Quyi tizimlar" ma'lum bir quyi tizimga katalogni kiritish uchun javobgardir.


Funktsional parametrlar yorlig'i ma'lumotnoma yordamida funksionallikni belgilaydi. "Ierarxiya" yorlig'i ichki katalog elementlarini yaratishga imkon beradi. Kataloglarning ierarxik ko'rinishlari juda foydali bo'lishi mumkin.


"Egalar" yorlig'ida bo'ysunish mexanizmi sozlangan. Agar katalog boshqasiga bo'ysunadigan bo'lsa, unda "Egasi" ma'lumotlarini to'ldirish majburiydir.

"Ma'lumotlar" yorlig'i 1C katalogiga qanday ma'lumotlarni qo'shishingiz mumkinligini aniqlaydi. Yuqori qismida siz kod va nomni sozlashingiz mumkin - standart tafsilotlardan biri, markazda - qo'shilgan tafsilotlar ro'yxati. Pastki qismida siz katalogning jadval qismlarini ko'rasiz.


1C-dagi konfiguratsiya ob'ektini raqamlash sozlamalari katalog elementlari uchun noyob raqamlashni yaratishga imkon beradi.


Shakllar yorlig'i ishlab chiquvchilar foydalanuvchilarga ko'rinadigan interfeyslarni yaratadigan joy. Eng keng tarqalgan shakllar Element va List: 1C dasturida foydalanuvchilar katalog ma'lumotlari va uning elementlari ro'yxatini shunday ko'rishadi.


"Kirish maydoni" yorlig'ida parametrlarni to'g'ri sozlash foydalanuvchilar uchun eng qulay ish sharoitlarini yaratadi. Tez tanlash/String kiritish/Toʻliq matnni qidirish opsiyalari sizga kerakli elementni topishga yordam beradi. “Kirayotganingizda tanlov tarixi” avval ishlatilgan pozitsiyalarni saqlaydi.


"Buyruqlar" bo'limi ushbu katalogni chaqiradigan mavjud tugmalar ro'yxatini ko'rsatadi. "Layouts" da siz ma'lum bir konfiguratsiya ob'ektining barcha chop etiladigan shakllarini topishingiz mumkin. Katalog elementi asosida boshqa konfiguratsiya ob'yektlarini yaratish rejalashtirilgan hollarda "kirish asosida" ishlab chiquvchi ta'sir qiladi.


"Huquqlar" kichik bo'limida qaysi rollar katalogga kirish, shu jumladan kataloglarni to'ldirish, o'zgartirish va o'qish haqida ma'lumotni aks ettiradi. "Ma'lumotlar almashinuvi" sizga ma'lumotnoma qaysi almashinuv rejalarida ishtirok etishi haqida ma'lumot beradi. Oxirgi yorliq protseduralar va funktsiyalarni yozish uchun modullarga kirish imkoniyatini o'z ichiga oladi. To'g'ridan-to'g'ri kodga kirish mumkin bo'lgan oldindan belgilangan katalog qiymatlari ro'yxati ham mavjud.


Barcha xususiyatlar talab qilinmaydi. Ba'zi yorliqlar 1C platformasida dasturiy ta'minotning ishlash muddati davomida tegmasdan qoladi.

1C da kataloglarni yaratishni osonlashtirish uchun keling, ushbu turdagi yangi konfiguratsiya ob'ektini yarataylik.

Katalog yaratish va 1C 8.3 ga o'tkazish

Misol sifatida atipik konfiguratsiyadan foydalanib, biz korxona tuzilishi haqidagi ma'lumotlarni saqlaydigan "Bo'limlar" katalogini yaratamiz va undan foydalanishni boshlaymiz. Konfiguratorda, konfiguratsiya daraxtida "Kataloglar" ni toping va "Qo'shish" tugmasini bosing. Maydonlarni to'ldiring:

  • Ism/sinonim. Birinchi atribut konfiguratsiyadagi ob'ekt nomi uchun javob beradi, ikkinchisi - korxona rejimidagi nom uchun;
  • Ob'ekt ko'rinishi bitta katalog elementini ochishda ishlatiladi;
  • Ro'yxat ko'rinishi katalog ma'lumotlari ro'yxatini ko'rishda ishlatiladi;
  • Tushuntirish - foydalanuvchilar uchun yordam.


Keyinchalik, foydalanuvchilarning interfeysda ko'rishlarini istasak, quyi tizimlardan biriga yangi katalog qo'shishimiz kerak. "Quyi tizimlar" yorlig'ini oching va allaqachon mavjud "Umumiy" quyi tizim yonidagi katakchani belgilang.


Bizning yangi katalogimiz ierarxik bo'ladi, chunki bo'limlar bir-biriga mos kelishi mumkin. Korxonamizda rejalashtirilgan bo'limlar guruhlari mavjud emas, shuning uchun "Element ierarxiyasi" turi tanlangan. Biz bo'linmalarni joylashtirishni cheklamaymiz.


Standart to'plamga qo'shimcha ravishda, bizga yana bir nechta tafsilotlar va xodimlar ro'yxati uchun jadval qismi kerak bo'ladi. Buni amalga oshirish uchun ularni tegishli bo'limlardagi "Ma'lumotlar" yorlig'iga qo'shishingiz kerak.


Qulaylik uchun siz bizning ma'lumotlarni ro'yxat shakliga qo'shishingiz kerak. Buning uchun "Formalar" yorlig'ida yangi ro'yxat shaklini yarating va uni asosiy qilib o'rnating. Muloqot oynasida bizga kerak bo'lgan barcha tafsilotlar uchun katakchalarni belgilang. Tafsilotlarni foydalanuvchilarga mos keladigan tartibda joylashtirish uchun biz elementning shaklini ham o'rnatamiz.


Bu "Divisions" demo katalogini yaratishni yakunlaydi. Biz konfiguratsiyani yangilaymiz va tizimni korporativ rejimda qayta ishga tushiramiz. "Umumiy" quyi tizimida "Bo'limlar ro'yxati" funktsiya tugmachasi paydo bo'ldi. Unga bosish biz unga elementlar qo'shish imkoniyati bilan ko'rsatgan katalog ro'yxati shaklini ochadi.


Ko'pgina kompaniyalar bir nechta 1C ma'lumotlar bazalari bilan ishlaydi, shuning uchun ishlab chiquvchi yaratilgan katalogni boshqa ma'lumotlar bazasiga o'tkazishga duch kelishi mumkin. Shu maqsadda, ko'pgina konfiguratsiyalar bilan bir qatorda, tashqi ishlov berish ta'minlanadi - "XML ma'lumotlarini yuklash va yuklash". Ammo 1C 8.3 kataloglarini o'tkazishdan oldin siz qabul qiluvchi konfiguratsiyani tayyorlashingiz kerak. Unda bir xil maydonlar va jadval qismlari bo'lgan shunga o'xshash konfiguratsiya ob'ekti yaratilishi kerak.

Ushbu ishlov berishni ochishda biz qaysi ob'ektlarni o'tkazmoqchi ekanligimizni ko'rsatishimiz va faylni tanlashimiz kerak. Keyin katalogni yuklab olish XML faylini yaratadi, u erda barcha ma'lumotlarni yozadi.


Kataloglarni boshqa ma'lumotlar bazasiga yuklash uchun siz unga kirishingiz va bir xil tashqi ishlov berishni ochishingiz kerak. Ikkinchi yorliqda yuklab olishni boshlang. Bu qo'lda ishlaydigan mexanizm, shuning uchun agar siz bitta ma'lumotlar bazasiga muntazam ravishda yangi katalog elementlarini kiritishni rejalashtirmoqchi bo'lsangiz, unda ma'lumotlar bazalari o'rtasida almashinuvni tashkil qilish yaxshiroqdir.

Xulosa qilib shuni eslatmoqchimanki, tizim ishga tushirilgandan so'ng 1C 8.3 da kataloglarni yaratish ma'lumotlar bazasiga eksklyuziv kirish zarurati tufayli muammolarni keltirib chiqaradi. Serverdagi konfiguratsiyani yangilash eng xavfsiz hisoblanadi.

Kataloglarning maqsadi

Katalog ma'lum bir ob'ekt yoki atributning mumkin bo'lgan qiymatlari ro'yxatini saqlaydi. Kataloglar noaniq yozuvlarni istisno qilish zarur bo'lgan hollarda qo'llaniladi.od ma'lumotlari. Masalan, xaridor, sotuvchi, omborchi va direktor biz qanday mahsulot haqida gapirayotganimizni tushunishi uchun hamma uni bir xil deb atashlari kerak. Va bu holda bizga ma'lumotnoma kerak. Odatda savdo korxonasida u narxlar ro'yxatiga o'xshaydi.

1C: Enterprise 8 tizimi deyarli cheksiz miqdordagi kerakli kataloglarni saqlashga imkon beradi. Har bir katalog bir hil ob'ektlar ro'yxati: pozitsiyalar, xodimlar, mijozlar, tovarlar va boshqalar. Bunday ob'ektlarning har biri katalog elementi deb ataladi.

Foydalanuvchi nuqtai nazaridan shuni yodda tutish kerakki, Konfiguratorda qiymatlar ro'yxati sifatida yaratilgan katalogning o'zi emas, balki katalog uchun shablon, uning shabloni ishlab chiqilgan. Konfiguratsiya jarayonida katalogda saqlanadigan ma'lumotlarning tuzilishi tavsiflanadi, ekran va kerak bo'lganda katalogning bosma ko'rinishi ishlab chiqiladi va uning xatti-harakatlarining turli xususiyatlari ko'rsatiladi.

Katalog tafsilotlari (maydonlar)

Majburiy tafsilotlar sifatida har bir katalog mavjud Kod Va Ism. Katalog elementi kodi raqamli yoki matnli bo'lishi mumkin. 1C: Enterprise 8 tizimi katalog elementlari kodlari bilan ishlash uchun keng imkoniyatlarni taqdim etadi: kodlarni avtomatik belgilash, kodning o'ziga xosligini avtomatik boshqarish va boshqalar.

Kod va nomga qo'shimcha ravishda, katalog elementi haqidagi har qanday qo'shimcha ma'lumot 1C: Enterprise tizimi kataloglarida saqlanishi mumkin. Bunday ma'lumotlarni katalogda saqlash uchun qo'shimcha rekvizitlar (maydonlar) yaratilishi mumkin. Katalog tafsilotlari mexanizmidan foydalanib, masalan, xodim faylini tashkil qilish oson. Masalan, Xodimlar ma'lumotnomasida Lavozim, ish haqi, tayinlangan sana va boshqalar haqida ma'lumotlar deyarli bo'ladi. 1C kompaniyasi dasturchilarni kutdi va barcha kataloglarga ikkita majburiy (oldindan belgilangan) tafsilotlarni kiritdi: Kod va Ism. Darhaqiqat, deyarli har qanday real hayot ob'ekti ushbu atributlarni o'z ichiga oladi. Masalan, xodimlar uchun kod - bu xodimlarning raqami va ism - Familiya, Ism va Otaning ismi (to'liq ismi). Bundan tashqari, kodlardan foydalanish (avtomatik raqamlashni qo'llashda) qaysi element birinchi bo'lib kiritilganligini va qaysi element keyinchalik ma'lumotlar bazasiga kiritilganligini tushunishni osonlashtiradi.

Ma'lumotlar turlari

Har bir katalog atributi uchun ma'lumotlar turini ko'rsatishingiz kerak, masalan, "raqam", "string", "sana", mantiqiy (to'g'ri yoki noto'g'ri). Bular asosiy turlar, ammo murakkab ma'lumotlar turlari ham ko'rsatilishi mumkin. Masalan, Position atributi Position ma'lumotlar turiga ega. Bunday holda, ushbu atributning qiymatlari Pozitsiyalar katalogidan tanlanadi. Kataloglar o'rtasidagi eng oddiy bog'lanish, bitta katalog tafsilotlari qiymatlari boshqa katalog elementlaridan tanlanganda shunday amalga oshiriladi.

Ierarxik kataloglar

1C: Enterprise 8 tizimidagi katalog elementlari ro'yxati ko'p darajali bo'lishi mumkin. Bunday holda, barcha katalog satrlari 2 turga bo'linadi: "shunchaki" katalog elementlari va katalog guruhlari. Guruhlar sizga ko'p darajali katalogning quyi darajalariga o'tish imkonini beradi. Ko'p darajali ma'lumotnomalardan foydalanish ma'lumotni kerakli darajadagi tafsilotlar bilan katalogga kiritishni tashkil qilish imkonini beradi. Ko'p darajali katalogdagi elementlar va elementlar guruhlari bir guruhdan ikkinchisiga o'tkazilishi mumkin.

Bo'ysunuvchi kataloglar

Kataloglar o'rtasida bo'ysunish munosabati o'rnatilishi mumkin. Relyatsion ma'lumotlar bazasi sharoitida jadvallar o'rtasida bittadan ko'pga bog'liqlik o'rnatiladi. Bunday holda, bo'ysunuvchi katalogning har bir elementi egasi katalogining elementlaridan biri bilan bog'lanadi. Ba'zan siz bir katalogning elementlari boshqasining elementlariga tegishli deb aytishingiz mumkin. Masalan, tizimda Shartnoma katalogi bo'lishi mumkin. Keyin uni Clients katalogiga bo'ysundirish mumkin. Bu shuni anglatadiki, mijoz shartnomalarga egalik qiladi va bitta mijoz bir nechta shartnomalarga ega bo'lishi mumkin.

Stol qismlari

1C 8.0 versiyasidan boshlab, platforma katalog elementi uchun bir yoki bir nechta jadval qismlarini belgilash qobiliyatini amalga oshirdi. Ushbu xususiyatdan ma'lum bir elementga tegishli ma'lumotlarni aks ettirish uchun foydalanish tavsiya etiladi, lekin o'z ob'ektiga ega bo'lmagan (buning uchun quyi kataloglarni yaratish tavsiya etiladi). Masalan, "Xodimlar" katalogi uchun "Ta'lim" va "Oila tarkibi" jadvalli bo'limlari yaratilishi mumkin. Jadval qismlari bilan ishlash quyi kataloglar bilan ishlashga o'xshaydi, faqat jadval qismlarini boshqa ob'ektlar uchun atribut qiymatlari sifatida ishlatish mumkin emas.

Kataloglar bilan ishlash uchun dastur kodi qayerda ishlatiladi?

Dastur kodini bajarish uchun biz ma'lumotlar bazasiga kirishimiz kerak bo'lganligi sababli, dastur kodining ushbu qismlari protseduralar va funktsiyalarda (yoki modullarda) joylashtirilishi kerak. server tomonida bajariladi. Qo'shimcha ma'lumot olish uchun bo'limga qarang.

1. Katalogga havola

Har qanday moduldagi katalog bilan ishlash uchun avvalo ushbu katalogga havola yaratish kerak.

RefEmployees = Kataloglar. Xodimlar;
// yoki 2-variant

Kataloglar = Kataloglar ["Pozitsiyalar"];

2. Yangi katalog elementini yaratish va yozib olish
NovEl = Kataloglar. Xodimlar. CreateItem();
NovEl. Ism = "Petrov Petrovich";
NovEl. Ish haqi = 25000; NovEl. Write();

// ma'lumotlar bazasiga yozish sodir bo'lgan moment

3. Yangi kataloglar guruhini yaratish va yozib olish (ierarxik katalog uchun) Yangi = Kataloglar. Xodimlar

. Guruh yaratish uchun ();
Yangi Write();
// yoki 2-variant
Yangi = Kataloglar ["Xodimlar"]. Guruh yaratish uchun ();
. Guruh yaratish uchun ();

Yangi Ism = "Ishlayotgan";

4. Katalog elementini qidiring

// agar element topilsa, u qaytariladi, aks holda Undefined qiymati qaytariladi
FoundSotr = RefCotr. FindByCode(123); // kod bo'yicha qidirish FindByName FoundSotr = RefCotr. ("Ivanov Ivan Ivanovich");
FoundSotr = RefCotr. FindByCode(123); // kod bo'yicha qidirish FindByDetails("Ish haqi", 5000); //tafsilotlar bo'yicha

Agar FoundCotr = Undefined Keyin
//element topilmadi
endIf;

5. Katalog elementini o'chirish

SprSotr = Kataloglar. Xodimlar;

Ref. O'chirish (); // joriy katalog elementini to'g'ridan-to'g'ri o'chirish

Ref. SetRemoveMark(To'g'ri); //o'chirish uchun belgilang
Ref. SetRemoveMark(yolg'on); //o'chirish uchun belgini olib tashlang

//element o'chirish uchun belgilangan yoki yo'qligini tekshirishingiz mumkin
//MarkDelete xossasi mantiqiy turdagi (to'g'ri yoki noto'g'ri)

Mark = SprSotr. FlagDeletion; //eslatma: bu xususiyat
Agar Mark = rost bo'lsa
//element o'chirish uchun belgilangan
endIf;

6. Katalog elementlarini sanash

Tanlash = Kataloglar. Xodimlar. Tanlang();
// tsikldagi katalog elementlari bo'yicha qidirishni boshlang
// keyingi element bilan amallar...

EndCycle;

7. Ota-ona. Guruh ichidagi elementlarni takrorlash.

1C shartlarida guruh "ota-ona" dir.

SprSotr = Kataloglar. Xodimlar;
Guruhda ishlash= SprSotr. FindByName("Ishlayotgan");
Tanlash = SprSotr. Tanlang ( Guruhda ishlash);
Salom tanlov. Keyingi() = 1 tsikl

Hisobot ("Xodim" + Tanlash. Ism);
EndCycle;

8. Egasi. Boshqa katalog elementiga tegishli bo'lgan katalog elementlarini sanab o'ting.

Bir katalog boshqa katalogga bo'ysunadi, masalan, Soliq imtiyozlari katalogi Xodimlar katalogiga bo'ysunadi.

Tanlash = Kataloglar. Soliq imtiyozlari. tanlang(, Xodim); //bu yerda xodim - xodimlar katalogi elementiga havola
Salom tanlov. Keyingi() = 1 tsikl
// keyingi element bilan harakatlar
Hisobot ("foydalar" + Namuna . Ism );
EndCycle;


9. Tranzaksiya

Ko'pgina katalog elementlarini yaratishda siz ishni tezlashtirish uchun tranzaktsiyaga tsiklni qo'shishingiz mumkin. Bunday holda, barcha elementlarning haqiqiy yaratilishi faqat CommitTransaction() buyrug'i bilan amalga oshiriladi. Tranzaktsiyalardan foydalanganda, harakat to'liq bajariladi (katalogning barcha elementlari yaratiladi) yoki umuman bajarilmaydi (har qanday nosozlik bo'lsa, bitta yangi element yaratilmaydi, hammasi avvalgidek qoladi. tranzaksiya boshlandi). Operatsiyalar bank sohasida keng qo'llaniladi. Axir, hech kim pul jo'natishda sizning hisobingizdan muvaffaqiyatli yechib olinishini xohlamaydi, ammo ba'zi bir nosozliklar tufayli adresatga etib bormaydi.

SprSotr = Kataloglar. Xodimlar;
Tranzaktsiyani boshlash();

Nom = 1 dan 100 gacha aylanish uchun
Yangi = SprSotr. CreateItem();
Yangi Ism = "Yangi" + String (Nom);
. Guruh yaratish uchun ();
EndCycle;

Tranzaktsiyani amalga oshirish();

Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
UMUSHISH: