uy - Dasturiy ta'minot
1s 8.3 qiymatlar jadvalidan tanlang. Qanday usullar mavjud va bir vaqtning o'zida bir nechta qiymatlarni qanday qidirish kerak

Qiymatlar jadvali ma'lumotlarni jadval ko'rinishida saqlash uchun mo'ljallangan o'ziga xos universal ob'ektdir. Jadval va dastur ob'ektlari o'rtasidagi asosiy farq jismoniy ma'lumotlar bazasi jadvallari bilan bog'lanmaganligidir. Qiymat jadvali faqat ichida mavjud tasodifiy kirish xotirasi, bu, bir tomondan, noyob imkoniyatlarni taqdim etsa, boshqa tomondan, muayyan cheklovlarni qo'yadi. Shunga qaramay, jadval bilan o'zaro ta'sir qilish imkoniyatlari ma'lumotlar bazasida mavjud bo'lgan ob'ektlar bilan o'zaro ta'sir qilish bilan taqqoslanadi.

Tarixiy jihatdan, 1C-dagi qiymatlar jadvali virtual analog bo'lgan ikki tomonlama maqsadga ega mavjud jadvallar, lekin ayni paytda - nazorat elementi ham. Boshqariladigan ilovaga oʻtish bilan bu funksiyalarning koʻpi eskirgan, ammo endi u foydalanuvchi interfeysi elementi boʻlishi mumkin, lekin baʼzi muhim cheklovlar bilan.

Ob'ekt sifatida qiymatlar jadvalining tuzilishi

Qiymatlar jadvalining xususiyatlari oldindan belgilangan ikkita to'plamning kombinatsiyasi bilan aniqlanadi: uning ustunlari va satrlari.

Qiymatlar jadvali Ustunlar

Qiymatlar jadvalining ustuni uning aniqlovchi xususiyati hisoblanadi. Bu uning tuzilishini belgilaydigan jadval ustunlari to'plamidir. Ustunlar jismoniy jadvallar yoki jadval bo'limi yoki hujjat jurnalining foydalanuvchi interfeysidan tanish bo'lgan ustunlar maydonlariga mos keladi. Ustun ichki nomga, qiymat turiga va jadval bilan interaktiv ishlashda ko'rsatiladigan sarlavhaga ega bo'lishi mumkin.

Ustunlar ob'ektlar to'plami bo'lgani uchun siz ustunlarni qo'shishingiz, o'chirishingiz va tahrirlashingiz mumkin.

Qiymat jadvali qatori

Dastur interfeysi nuqtai nazaridan, satrlar qiymatlar jadvaliga kiritilgan alohida to'plamdir. Ular fizik jadvallardagi yozuvlarga o'xshash, ya'ni jadval bo'limi yoki hujjat jurnalidagi foydalanuvchiga tanish bo'lgan qatorlar. Har bir alohida satr nomlari jadval ustunlari nomlariga mos keladigan nomlangan xususiyatlar to'plamiga ega ob'ektdir.

Shunday qilib, satr bilan o'zaro ta'sir qilish boshqa ob'ektlar bilan o'zaro ta'sirlashishga juda o'xshaydi. Siz uning xususiyatlarini o'qishingiz va yozishingiz mumkin, shu jumladan oldindan belgilangan "FillPropertyValues()" funktsiyasidan foydalanib. Qatorlar qiymatlar jadvalining asosiy to'plami bo'lganligi sababli, jadvalning barcha satrlarini o'chirish uchun "Clear()" usuli qo'llaniladi.

Qiymatlar jadvalini yarating

Foydalanishga tayyor qiymatlar jadvalini olishning ko'plab usullari mavjud. Keling, ulardan ba'zilarini ko'rib chiqaylik. Har bir misol sharhlar bilan kod ro'yxati sifatida taqdim etiladi.

Konstruktor yordamida jadval yaratish

Ishlab chiquvchiga kerak bo'lgan jadvalni yaratishga imkon beradigan asosiy usul, afsuski, eng ko'p mehnat talab qiladigan usuldir, chunki u barcha kerakli jadval xususiyatlarini qo'lda ko'rsatishni talab qiladi.

DemoTable = Yangi qiymatlar jadvali; // Birinchi navbatda TK ni ishga tushiramiz // Keyin yangi ustunlar uchun kerakli parametrlarni aniqlaymiz va ularni to'plamga qo'shamiz // "Nomenklatura" ustunini yaratish Ism = "Nomenklatura"; ValueType = New TypeDescription("DirectoryLink.Nomenklatura"); Sarlavha = "Nomenklatura (mahsulot)"; DemoTable.Columns.Add(Ism, qiymat turi, sarlavha); // "Miqdor" ustunini yaratish Ism = "Miqdor"; ValueType = New TypeDescription("Raqam"); DemoTable.Columns.Add(Ism, Qiymat turi); // Ushbu manipulyatsiyalar natijasida biz terilgan ustunlar bilan bo'sh jadval yaratdik // Agar siz ibtidoiy turlarni aniqroq yozishingiz kerak bo'lsa, unda "Turlar tavsifi" konstruktorining kengaytirilgan sintaksisidan foydalaning.

Nusxa ko'chirish orqali jadval yaratish

Agar qo'lingizda mos tuzilma va/yoki kompozitsiyaga ega bo'lgan ma'lumotnomangiz bo'lsa, qiymatlar jadvalini nusxalashingiz yoki yuklab olishingiz mumkin. Agar mos yozuvlar jadvali boshqa jadval bo'lsa, unda siz "Ma'lumot jadvallarini nusxalash" usulidan foydalanishingiz kerak. Agar siz bilan shug'ullansangiz jadval qismi yoki ro'yxatga olish yozuvlari to'plami uchun siz "Qiymatlar jadvalini yuklash" usulidan foydalanishingiz kerak. Agar siz faqat tuzilishga muhtoj bo'lsangiz, "Ustunlarni nusxalash" usulidan foydalanishingiz mumkin.

// Texnik spetsifikatsiya standartidan barcha satrlarni nusxalash, lekin faqat ikkita ko'rsatilgan ustunni saqlab qolish bilan variant Standart ustunlari = "Nomenklatura, miqdor"; DemoTable = TableEtalon.Copy(, ColumnsEtalon); // Belgilangan ikkita ustunni saqlab qolgan holda texnik spetsifikatsiya standartidan oldindan tanlangan qatorlarni nusxalash imkoniyati.Standart qatorlari = SelectIntoArrayStandart jadvalidan bizga kerak bo'lgan qatorlar(); ColumnsStandard = "Nomenklatura, miqdor"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // “Nomenklatura” bitta ustunini saqlab, belgilangan filtr yordamida texnik spetsifikatsiya standartidan satrlarni nusxalash imkoniyati // Miqdor ustunidagi qiymat 0 bo‘lgan barcha qatorlar tanlanadi, faqat Nomenklatura ustuni Qator tanlash = Yangi tuzilma(" Olingan jadvalda miqdor" paydo bo'ladi , 0); ColumnsStandard = "Nomenklatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Variant bilan to'liq nusxa ko'chirish jadval va keyinchalik miqdor maydonining qiymati nolga teng bo'lgan bir qatorni o'chirish va butun ustunni o'chirish "Miqdor" Qatorni tanlash = Yangi tuzilma("Miqdor", 0); ColumnsStandard = "Nomenklatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); TableRow = DemoTable.Find(0, "Miqdor"); DemoTable.Delete(TableRow); DemoTable.Columns.Delete("Miqdor"); // Shunga o'xshash variantlar va ularning o'zgartirishlari jadval qismlariga va registr yozuvlari to'plamlariga qo'llanilishi mumkin

So'rov bilan jadval yaratish

Agar ma'lumotlar bazasida sizga kerak bo'lgan jadval shablonlari mavjud bo'lsa, siz so'rov yordamida kerakli tuzilishga ega jadvalni tezda yaratishingiz mumkin.

// Jamg'arish registrining tuzilishi asosida bo'sh jadval yaratish misoli // Shu tarzda siz to'ldirilgan jadvalni ham olishingiz mumkinligini taxmin qilish oson. Omborda"); RequestResult = Request.Execute(); DemoTable = So'rov natijasi.Unload(); // Aniq ko'rsatilgan turlar va maydon nomlari yordamida bo'sh jadval yaratish misoli Query = New Query; Query.Text = "TOP 0 ni tanlang | Qiymat(Directory.Nomenclature.EmptyLink) AS Nomenklatura, | EXPRESS(0 AS NUMBER(15, 3)) Miqdor AS"; RequestResult = Request.Execute(); DemoTable = So'rov natijasi.Unload(); // MUHIM! Shuni unutmangki, so'rovdan olingan ustun qiymatlari turlari har doim Null turini o'z ichiga oladi // Shunday qilib, so'rov tomonidan yaratilgan TK har doim kompozit ustun turlariga ega.

Xulosa

Ushbu qisqa maqolada biz tushunish va foydalanishni boshlash uchun etarli bo'lgan qiymatlar jadvalini yaratishning asosiy xususiyatlari va amaliy usullarini ko'rib chiqdik. Qiymatlar jadvali ob'ektining o'zi shunchalik ko'p qirraliki batafsil tavsif uning imkoniyatlari ish texnikasi va usullari haqida alohida maqola yozishni talab qiladi.

Boshlash uchun kichik bir fakt - oddiy misollar qiymatlar jadvali bilan ishlash:

1. Qiymatlar jadvalini tuzing

ValueTable = Yangi qiymatlar jadvali;


2. Qiymatlar jadvali uchun ustunlar yarating:

ValueTable.Columns.Add("Ism");
Qiymatlar jadvali.Ustunlar.Qo'shish("Familiya");


3. Ustun nomlari yordamida yangi qatorlar qo‘shing:


NewLine.Name = "Vasiliy";
NewLine.LastName = "Qovoq";


4. Qiymatlar jadvalidagi qiymatni qanday izlash mumkin:
Istalgan qiymatni o'z ichiga olgan jadval qatorini topish kerak.

FoundRow = ValueTable.Find(SearchValue);


5. Qiymatlar jadvalining ma'lum ustunlaridagi birinchi hodisani toping

FoundRow = ValueTable.Find(SearchValue, "Yetkazib beruvchi, xaridor");


6. Agar qiymatlar jadvalidagi barcha hodisalarni topishingiz kerak bo'lsa:
Biz qidiruv tuzilmasidan foydalanamiz.

SearchStructure = Struktura ("Xodim", SearchValue);
FoundRows massivi = ValueTable.FindRows(SearchStructure);


Qidiruv strukturasini yarataylik, uning har bir elementida kalit sifatida ustun nomi va qiymat sifatida ushbu ustundagi kerakli qiymat bo'ladi. FindLines() usuliga parametr sifatida Qidiruv tuzilmasini o'tkazamiz. Natijada biz jadval qatorlarini olamiz.
Agar siz qidiruv tuzilmasiga kerakli qiymatni qidirishni qo'shsangiz, masalan, Mas'ul ustunida, u holda FindLines() usulini qo'llash natijasida biz Xodim ham, Mas'ul ham teng bo'lgan barcha qatorlarni olamiz. qidirilgan qiymat.

7. Qanday qilib tasodifiy tartibda qiymatlar jadvali orqali takrorlash mumkin

Qiymatlar jadvalidagi har bir joriy qator uchun
Hisobot (CurrentRow.Name);
EndCycle;

Indekslar yordamida xuddi shu narsa:

SeniorIndex = ValueTable.Quantity() - 1;
Hisob uchun = 0 - SeniorIndex Cycle
Hisobot(TableValues[Account].Name);
EndCycle;


8. Mavjud qiymatlar jadvali qatorini o'chirish

ValueTable.Delete(O'chiriladigan qator);

indeks bo'yicha

ValueTable.Delete(0);


9. Qiymatlar jadvalining mavjud ustunini o'chirish

ValueTable.Columns.Delete(ColumnDeleted);


indeks bo'yicha

ValueTable.Columns.Delete(0);

Shuni hisobga olish kerakki, qiymatlar jadvalining "o'rtasidan" qatorini (yoki ustunini) o'chirish o'chirilgandan "keyin" joylashgan qatorlar indekslarining bir marta kamayishiga olib keladi.

10. Agar ustun nomlari o'zgaruvchilarda bo'lsa, qiymatlar jadvali qanday to'ldiriladi?

NewRow = ValueTable.Add();
NewRow[ColumnName] = Qiymat;


11. Qiymatlar jadvalining butun ustunini kerakli qiymat bilan qanday to'ldirish mumkin?
Qiymatlar jadvalidagi Fiskal buxgalteriya bayrog'i ustuni False qiymati bilan to'ldirilishi kerak

Qiymatlar jadvali.Qiymatlarni to'ldiring (False, "Fiskal buxgalteriya bayrog'i");


Qiymatlar jadvali uchun FillValues() usulidan foydalanamiz. Birinchi parametr to'ldiriladigan qiymatdir. Ikkinchi parametr to'ldiriladigan ustunning nomi.

12. “Qabul qiluvchilar jadvali” qiymatlar jadvalini “SourceTable” qiymatlar jadvalidagi ma’lumotlar bilan qanday to‘ldirish mumkin?

Agar operatsiya vaqtida Qabul qiluvchilar jadvali hali mavjud bo'lmasa yoki uning oldingi ustunlarini saqlash kerak bo'lmasa, uni shunday yaratishingiz mumkin to'liq nusxasi original

Qabul qiluvchilar jadvali = Manba jadvali.Copy();


Ikkinchi variant: ReceiverTable jadvali mavjud va uning ustunlari va ustun ma'lumotlar turlari bo'yicha cheklovlarni yo'qotish juda achinarli. Lekin nomlari manba jadvalining nomlariga mos keladigan ustunlar uchun ma'lumotlarni to'ldirishingiz kerak.

Nomlari mos bo'lgan ustunlar uchun qisman ma'lumotlarni uzatish:

Manba jadvali siklidan manba jadvalining har bir qatori uchun
FillPropertyValues(NewRow, SourceTableRow);
Tsiklning oxiri


Manba jadvalining har bir satri uchun qabul qiluvchi jadvalga yangi qator qo'shiladi va qiymatlar nomlari manba jadvalidagi ustunlar nomlariga mos keladigan yangi jadvalning ustunlariga to'ldiriladi.

Jadvallarda bir xil nomdagi ustunlar bo'lmasa, maqsad jadval manba jadvalidagi qatorlar bo'lgani kabi null qiymatli qatorlarni o'z ichiga oladi.
Agar bir xil nomdagi ba'zi ustunlar uchun manba jadvalidagi ma'lumotlar qiymati turi belgilangan jadvalning ruxsat etilgan ustun turlari qatoriga kirmasa, biz bunday maydonlarda bo'sh qiymatlarni olamiz.
Uchinchi ishni ko'rib chiqaylik. Xuddi shu nomdagi ustunlar bo'lsa, maqsad jadval ustuni manba jadvalining ustuniga to'liq mos kelishi kerak.

Tegishli nomlarga ega ustunlar uchun ma'lumotlarni to'liq nusxalash

Xuddi shu ustunlar = Yangi massiv();

SourceTable.Columns tsiklidagi har bir ustun uchun
MatchingColumn = TableReceiver.Columns.Find(Column.Name);

Agar ustun mos kelsa<>Keyin aniqlanmagan

// Ustun xususiyatlarini olish.
Ism = Column.Name;
ValueType = Column.ValueType;
Sarlavha = Column.Header;
Width = Column.Width;

// Belgilangan jadvaldagi ustunlarni almashtiring.
Indeks = TableReceiver.Columns.Index(MatchingColumn);

TableReceiver.Columns.Delete(Index);
ReceiverTable.Columns.Insert(Indeks, Ism, Qiymat turi, Sarlavha, Kenglik);

// Massivga mos keladigan ustunlarning keyingi nomini qo'shing.
Same Columns.Add(Column.Name);

endIf;

EndCycle;

// Manba jadvalining qatorlari bo'ylab aylanish.
Manba jadvali siklidagi manbalar jadvalining har bir qatori uchun

// Qo'shish yangi qator qabul qilish stoliga.
NewRow = TableReceiver.Add();

// Mos keladigan hujayralardagi qiymatlarni to'ldiring.
Har bir nom ustunlari uchun bir xil nomdagi ustunlardan Cycle
NewRow[ColumnName] = SourceTableRow[ColumnName];

EndCycle;

EndCycle;


Belgilangan jadvaldagi ustunni yangisi bilan almashtirishimiz kerak, uning xususiyatlari manba jadvalining ustuniga to'liq mos keladi.
Shuning uchun, agar qabul qiluvchilar jadvalida bir xil nomdagi ustun topilsa, biz o'zgaruvchilarda yangi ustun uchun barcha xususiyatlarni to'playmiz. Keyin eskisini o'chiring va yangi ustun yarating. Keyin biz manba jadvalining qatorlari bo'ylab aylantiramiz.
Loopda biz qabul qiluvchi jadvalga yangi qator qo'shamiz va mos ustunlar massividagi ustun nomlari ustidan pastadir ochamiz.
Ushbu ichki o'rnatilgan halqa ichida biz maqsadli jadvalning katakchalarini manba jadval katakchasi ma'lumotlari bilan to'ldiramiz.

13. Tur cheklovlari bilan qiymatlar jadvaliga ustunlar qanday qo'shiladi?

Ustun qo'shganda, siz shunchaki uning nomini belgilashingiz va Add() usulining ikkinchi parametriga tegmasdan qoldirishingiz mumkin. Bunday holda, ustun ma'lumotlar turi ixtiyoriydir.

Ma'lumotlar turini ko'rsatmasdan ustun qo'shish

// Turi bo'yicha cheklovlarsiz ustun qo'shing.
ValueTable.Columns.Add("Ob'ekt");


Ikkinchi parametrning qiymatini to'ldirishingiz mumkin. U erda siz ustun uchun ruxsat etilgan turning tavsifini topshirishingiz kerak. Ta'rifning o'zi konstruktor yordamida olinishi mumkin, unga parametr sifatida turning nomini (agar ko'p turlar bo'lsa, vergul bilan ajratilgan) yoki haqiqiy turlar massivini o'tkazish mumkin.

Ma'lumotlar turini ko'rsatadigan ustun qo'shish

// Ustun ma'lumotlar turlari bo'yicha cheklovlar:
// Faqat "Counterparties" katalogining elementlari.
Qiymatlar jadvali.Columns.Add("Hisob", Turlarning yangi tavsifi("DirectoryLink.Accounts"));


Agar ustun ma'lumotlarini to'ldirishga ruxsat berilgan turlar orasida satr bo'lsa, siz uning bit chuqurligini (uzunligini) cheklashingiz, o'zgaruvchan yoki belgilangan uzunlikdan foydalanishni belgilashingiz mumkin. Bularning barchasiga String Qualifiers konstruktori yordamida ob'ekt yaratish orqali erishiladi. Keyinchalik, bu ob'ekt TypeDescription konstruktorining parametrlaridan biri sifatida ishlatiladi.

Qiymatlar jadvali ustunining ma'lumotlar turini belgilash uchun kvalifikatorlardan foydalanish

// String tipidagi ma'lumotlar uchun cheklovlarni tayyorlang va o'rnating.
String Qualifiers = New String Qualifiers (20, AllowedLength.Variable);
ValidTypes = NewTypeDescription("String", StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);


Shu kabi harakatlar raqam va sana kvalifikatsiyalariga nisbatan bajarilishi mumkin.
Iltimos, diqqat qiling: turdagi tavsiflar konstruktor tomonidan "noldan" tuzilishi mumkin yoki mavjud tur tavsifi asos sifatida ishlatilishi mumkin.

Qiymatlar jadvali ustunining ma'lumotlar turini belgilash uchun mavjud turdagi deklaratsiyalardan foydalanish

// Oldindan foydalanilgan tur tavsifini kengaytirish.
QualifiersNumbers = New QualifiersNumbers(10, 2, ValidSign.Non-negative);
DateQualifiers = New DateQualifiers(DateParts.Date);
Kengaytirilgan ValidTypes = Yangi TypeDescription (ValidTypes, "Raqam, Sana", Raqamlar, Sana kvalifikatsiyalari);

ValueTable.Columns.Add("Eslatma", ExtendedAcceptableTypes);

1C qiymatlari jadvalida qidiring

Qanday usullar mavjud va bir vaqtning o'zida bir nechta qiymatlarni qanday qidirish kerak.

Qiymatlar jadvalini qidirishning ikkita maxsus usuli mavjud:

1. Toping

TVHorizon = Directories.Nomenclature.FindByName("TVHorizon");
FoundString = TZNomenclature.Find(TVHorizon);
//qidiruvni tezlashtirish uchun qaysi ustunlarda qidirish kerakligini ham belgilashimiz mumkin
FoundString = TZNomenclature.Find(TVHorizon, "Nomenklatura");

Bu usul topilgan birinchi qatorni kerakli qiymat bilan qaytaradi, agar topilmasa Aniqlanmagan. Shuning uchun, uni noyob qiymatlarni qidirish uchun ishlatish qulay, chunki aks holda, qiymat topilganda, keyingisini topish uchun uni jadvaldan olib tashlashingiz kerak bo'ladi.

Ushbu qiyinchilikka yo'l qo'ymaslik uchun sizga mos keladigan qatorlarni topishga imkon beradigan quyidagi usul mavjud:

2. FindStrings


Tanlov tuzilmasi.Insert("Nomenklatura", TVHorizon); // birinchi navbatda qaerga qarash kerakligini, keyin esa nimani izlash kerakligini ko'rsating.

Bu usul har doim massivni qaytaradi, lekin hech narsa topilmasa, u bo'sh bo'lishi mumkin. Va bu usul, avvalgisiga o'xshab, qiymatlarning o'zini emas, balki qiymatlar jadvalining satrlarini alohida massivda qaytaradi. Shuning uchun, massiv satridagi qiymatlarni o'zgartirish yoki oldingi usulda bo'lgani kabi, topilgan satr uchun siz qayta ishlangan qiymatlar jadvalidagi qiymatni o'zgartirasiz.

Ushbu usulning yana bir yaxshi tomoni shundaki, u bir vaqtning o'zida qiymatlar jadvalining bir nechta ustunlarini qidirishi mumkin:


SelectionStructure = Yangi tuzilma;
Tanlov tuzilmasi.Insert("Nomenklatura", TVHorizon);
Tanlov tuzilmasi.Insert("Miqdor", 10);
FoundArray of Rows = TZNomenclature.FindLines(SelectionStructure);

Ko'rib turganingizdek, yagona salbiy tomoni shundaki, siz "teng" dan boshqa taqqoslash turlaridan foydalana olmaysiz.

Pul va tovarlar hisobini yuritish uchun biznesda turli jadvallardan keng foydalaniladi. Deyarli har bir hujjat jadvaldir.

Bir jadvalda ombordan jo'natilishi kerak bo'lgan tovarlar ro'yxati keltirilgan. Boshqa jadvalda ushbu tovarlar uchun to'lov majburiyatlari ko'rsatilgan.

Shuning uchun, 1C da jadvallar bilan ishlash muhim o'rinni egallaydi.

1C dagi jadvallar "jadval qismlari" deb ham ataladi. Kataloglar, hujjatlar va boshqalar ularga ega.

So'rov bajarilganda, ikki xil usulda kirish mumkin bo'lgan jadvalni qaytaradi.

Birinchisi - tezroq - tanlash, undan qatorlarni olish faqat tartibda mumkin. Ikkinchisi, so'rov natijasini qiymatlar jadvaliga yuklash va keyin unga tasodifiy kirish.

//1-variant - so'rov natijalariga ketma-ket kirish

//jadvalni oling
Select = Query.Run().Select();
// so'rov natijasining barcha qatorlarini tartibda o'tkazamiz
While Select.Next() tsikli
Hisobot (Selection.Name);
EndCycle;

//2-variant – qiymatlar jadvaliga yuklash
So'rov = Yangi so'rov("Katalog.Nomenklaturadan nom tanlang");
//jadvalni oling
Jadval = Query.Run().Unload().
// bundan keyin biz barcha satrlarni takrorlashimiz mumkin
Jadval aylanishidan har bir qator uchun
Hisobot (String.Name);
EndCycle;
//yoki satrlarga o'zboshimchalik bilan kirish
Qator = Table.Find("Shovel", "Ism");

Muhim xususiyat shundaki, so'rov natijalaridan olingan jadvalda barcha ustunlar qat'iy ravishda yoziladi. Bu shuni anglatadiki, Nomenklatura katalogidan Nom maydonini so'rash orqali siz ruxsat etilgan uzunligi N ta belgidan ortiq bo'lmagan String tipidagi ustunni olasiz.

Shakldagi jadval (qalin mijoz)

Foydalanuvchi formaga joylashtirilganda jadval bilan ishlaydi.

Biz darsda va darsda shakllar bilan ishlashning asosiy tamoyillarini muhokama qildik

Shunday qilib, jadvalni shaklga joylashtiramiz. Buning uchun jadvalni Boshqaruv panelidan sudrab olib borishingiz mumkin. Xuddi shunday, menyudan Form/Insert Control ni tanlashingiz mumkin.

Ma'lumotlar konfiguratsiyada saqlanishi mumkin - keyin siz shaklini tahrirlayotgan konfiguratsiya ob'ektining mavjud (oldin qo'shilgan) jadval qismini tanlashingiz kerak.

Data xususiyatidagi "..." tugmasini bosing. Ro'yxatni ko'rish uchun jadval qismlari, Ob'ekt bo'limini kengaytirishingiz kerak.

Jadval qismini tanlaganingizda, 1C o'zi shakldagi jadvalga ustunlar qo'shadi. Bunday jadvalga foydalanuvchi tomonidan kiritilgan qatorlar ma'lumotnoma/hujjat bilan birga avtomatik ravishda saqlanadi.

Xuddi shu Data xususiyatida siz ixtiyoriy nom kiritishingiz va Qiymatlar jadvali turini tanlashingiz mumkin.

Bu o'zboshimchalik bilan qiymatlar jadvali tanlanganligini anglatadi. U avtomatik ravishda ustunlar qo'shilmaydi va avtomatik ravishda saqlanmaydi, lekin siz u bilan xohlagan narsani qilishingiz mumkin.

Jadvalni sichqonchaning o'ng tugmasi bilan bosish orqali siz ustun qo'shishingiz mumkin. Ustunning xususiyatlarida siz uning nomini (1C kodida mos yozuvlar uchun), shakldagi ustun sarlavhasini, jadval qismining atributi bilan bog'lanishni belgilashingiz mumkin (ikkinchisi - agar ixtiyoriy jadval tanlanmagan bo'lsa, lekin jadval qismi).

Shakldagi jadval xususiyatlarida foydalanuvchi qatorlarni qo'shish/o'chirish mumkinligini belgilashingiz mumkin. Kengaytirilgan shakl - "Faqat ko'rish" katagiga belgi qo'yish. Ushbu xususiyatlar ma'lumotlarni ko'rsatish uchun mo'ljallangan jadvallarni tartibga solish uchun foydalanish uchun qulay, lekin tahrirlash uchun emas.

Jadvalni boshqarish uchun formada buyruqlar panelini ko'rsatish kerak. Shakl/Insert Control/Buyruqlar paneli menyu bandini tanlang.

Paneldagi tugmalar avtomatik ravishda paydo bo'lishi uchun buyruq satrining xususiyatlarida Avtomatik to'ldirish katagiga belgi qo'ying.

Shakldagi jadval (nozik/boshqariladigan mijoz)

Boshqariladigan shaklda belgilangan harakatlar biroz boshqacha ko'ring. Agar siz formaga jadval qismini joylashtirishingiz kerak bo'lsa, Ob'ekt bo'limini kengaytiring va jadval qismlaridan birini chapga torting. Va tamom!

Agar siz qiymatlar jadvalini joylashtirishingiz kerak bo'lsa, yangi shakl atributini qo'shing va uning xususiyatlarida qiymatlar jadvalining turini belgilang.

Ustunlar qo'shish uchun ushbu forma atributiga sichqonchaning o'ng tugmasi menyusidan foydalaning, Atribut ustunini qo'shish-ni tanlang.

Keyin stolni chapga ham torting.

Jadvalda buyruq satri bo'lishi uchun jadval xususiyatlarida Foydalanish - Buyruqlar satri pozitsiyasi bo'limida qiymatlarni tanlang.

Excelga jadval yuklash

Shaklda joylashgan har qanday 1C jadvali chop etilishi yoki Excelga yuklanishi mumkin.

Buning uchun jadvaldagi bo'sh joyni sichqonchaning o'ng tugmasi bilan bosing va "Ro'yxat" ni tanlang.

Boshqariladigan (nozik) mijozda shunga o'xshash harakatlar menyu elementi yordamida amalga oshirilishi mumkin Barcha harakatlar/Ro'yxatni ko'rsatish.

Barcha infostart o'quvchilariga salom. Ushbu maqola formadagi qiymatlarning shaxsiy jadvalini yaratishga qaratilgan boshqariladigan dastur dasturiy jihatdan.

Vazifaning xususiyatlari.

Dasturlashtirgan har bir kishi muntazam dastur, Men tez-tez shaklda o'zboshimchalik bilan qiymatlar jadvalini olish vazifasiga duch kelganman. Ixtiyoriy qiymatlar jadvali - bu ustunlar soni va turi oldindan ma'lum bo'lmagan jadval. Ya'ni, 3 ta ustun yoki 6 yoki 8 ta ustun bo'lishi mumkin. Oddiy dasturda hamma narsa oddiy: ishlov berish shakliga "Qiymatlar jadvali" elementini joylashtirishingiz va keyin yaratilgan qiymatlar jadvalini o'tkazishingiz mumkin. ushbu elementga dasturiy jihatdan. Keyin oddiy buyruq bilan:

Form Elements.TableField.CreateColumns();

olish tayyor stol shakldagi qiymatlar. Bu oddiyroq bo'lishi mumkin edi.

Bularning barchasi oddiy dasturda edi. Boshqariladigan ilovada hamma narsa o'zgardi. O'zboshimchalik bilan jadval yaratish unchalik oson emas. Endi siz shakldagi qiymatlar jadvalini qat'iy ravishda parametrlashingiz yoki uni dasturiy ravishda yaratishingiz kerak (ta'riflang, bu, aslida, boshqariladigan dasturning mohiyatidir). Biz buni qilishga harakat qilamiz: dasturiy ta'minot boshqariladigan shaklda shaxsiy qiymatlar jadvalini yarating.

Muammoning yechimi.

Biz qilishimiz kerak bo'lgan birinchi narsa - jadvalning shaklda qanday ko'rinishini aniqlash. Asosiysi, qayta ishlashda hech qanday shakl elementini yaratishingiz shart emas. Biz uni butun jadval kabi dasturiy tarzda yaratamiz. Ya'ni, jadval kimga kerak bo'lishiga qarab, shaklni ochish yoki tugmani ishlatish paytida tavsiflanadi va yaratiladi.

Shaklda jadval yaratish qiymatlar jadvalini atribut sifatida tavsiflash orqali amalga oshiriladi:
SelectionTypeArray = Yangi massiv; SelectionType massivi.Add(Type("Qiymatlar jadvali")); ChoiceTypeDescription = New TypeDescription(ChoiceTypeArray); Tafsilotlar massivi = Yangi massiv; Atributlar massivi.Qo'shish(Yangi shakl atributlari("Jadval jadvali", SelectionType tavsifi, "", "TZN")); Endi biz ma'lumotlarni o'z ichiga olgan dastur qiymatlari jadvalini yaratishimiz kerak. Agar qiymatlar jadvali so'rovdan olingan bo'lsa, unda hamma narsa ko'proq yoki kamroq tartibda bo'ladi. Agar jadval qo'lda yaratilgan bo'lsa, unda raqamlar yoki sanalar bo'lgan ustunlarning ma'nosi "Turlar tavsifi" orqali yaratilishi mumkin. Gap shundaki, qiymatlar jadvalidagi ustunlar qandaydir turga ega bo'lishi kerak. Agar, masalan, foydalanuvchi ushbu ustunlardagi ma'lumotlarni interaktiv tarzda to'ldirishi kutilsa, unda siz qiymatlar jadvalining ustunini shunchaki nom bilan qo'sha olmaysiz, uning turi bo'lishi kerak. Yodda tuting - bu juda muhim, chunki ... Ushbu turlarni formadagi jadvalga o'tkazamiz.
Biz bir nechta ustunlarni o'z ichiga olgan jadval yaratamiz:
CD = NewDateQualifiers(DateParts.Time); ArrayKD = Yangi massiv; ArrayCD.Add(Type("Sana")); DescriptionTypesTime = Yangi TavsifTypes(ArrayCD,CD); TZ = Yangi qiymatlar jadvali;
TK.Columns.Add("Bilan", DescriptionTypesTime);
TK.Columns.Add("Oldin", DescriptionTypesTime);
TK.Columns.Add("Ism");
TK.Columns.Add("Eslatma"); // To'liq ism va Eslatma - qatorlar Keyinchalik, biz TK dastur jadvalimizni kerakli ma'lumotlar bilan to'ldiramiz. Biz kerakli qiymatlarni o'z ichiga olgan va yaratilgan shakl atributiga o'tkazishga tayyor TK jadvalini olamiz. TK dan har bir ustun uchun. Ustunlar aylanishi

Atributlar massivi.Qo'shish(Yangi shakl atributlari(Column.Name, Column.ValueType,"ScheduleTable"));
EndCycle;
ChangeDetails(ArrayDetails);
SelectionFieldsTable = Elements.Add("TZN", Type("FormTable"));
SelectionFieldsTable.DataPath = "Jadval jadvali";
SelectionFieldTable.Display = TableDisplay.List;

Bu oddiy kombinatsiya va bizning stolimiz tayyor.

TK dan har bir ustun uchun. Ustunlar aylanishi

NewElement = Elements.Add(Column.Name, Type("FormField"), SelectionFieldTable);
NewElement.View = FormFieldView.InputField;
NewElement.DataPath = "Jadval jadvali." + Ustun nomi;
NewElement.Width = 10;
EndCycle;

Shartli dizayn, agar kerak bo'lsa, biz uni qo'lda ham yozamiz, buyruqlar menyusi - qo'lda. Jadval ishlovchilari ham qo'lda yoziladi. Masalan, “Tanlash” jadvaliga hodisa ishlov beruvchisini qo‘shish uchun:

SelectionFields.SetAction jadvali("Tanlash", "TZNSSelect");

Ushbu hodisani qayta ishlash uchun protsedura shaklida alohida protsedura belgilanadi:

&OnClient
TKNSelection protsedurasi (TK, SelectedRow, Field, StandardProcessing)
// ishlov beruvchi EndProcedure buyruqlari

Esda tutingki, jadval ishlov beruvchilari mijozga yonadi va shuning uchun kompilyator ko'rsatgich buyrug'iga ega bo'lishi kerak

&OnClient

Xo'sh, men qo'shmoqchi bo'lgan oxirgi narsa shundaki, barcha amallardan so'ng, tayyor jadvalni forma atributiga o'tkazishni unutmang:

ValueVFormAttributes(ToR, "ScheduleTable");

Natijada bizda shunday bo'ladi:


Va bu erda "Tanlash" hodisasini boshqarish:



Keyingi so'z.

Umid qilamanki, maqola dasturli shaklda jadvallar yaratishni boshlagan 1C dasturchilariga yordam beradi.

Dasturiy ravishda qiymatlar jadvalini yaratadigan va uni chiqaradigan ishlov berishni yuklab olishingiz mumkin boshqariladigan shakl o'z jadvallaringizni yaratishga yordam beradigan sharhlar bilan.



 


O'qing:



isnull() funksiyasidan foydalanish

isnull() funksiyasidan foydalanish

27.06.2017 1C so'rovlarida NULL, ISNULL() va IS NULL So'rov natijasida NULL NULL nima qiymat yo'qligini bildiradi (bu bo'sh emas...

Pedagogik vaziyatlarga oid keyslar Pedagogika fanidan keys topshiriqlari

Pedagogik vaziyatlarga oid keyslar Pedagogika fanidan keys topshiriqlari

ROSSIYA TA'LIM VA FAN VAZIRLIGI "Xakass davlati" oliy kasbiy ta'lim federal davlat ta'lim muassasasi ...

Pratchett qo'riqchisi. (S. Juzhunava tomonidan tarjima qilingan, A. Jikarentsev tahriri ostida) fb2 yuklab olish. Kitobdan iqtiboslar "Qo'riqchilar! Soqchilar! Terri Pratchett

Pratchett qo'riqchisi.  (S. Juzhunava tomonidan tarjima qilingan, A. Jikarentsev tahriri ostida) fb2 yuklab olish.  Kitobdan iqtiboslar

2-fevral, 2017-yil Soqchilar! Soqchilar! Terri Pratchett (Hozircha reytinglar yo'q) Sarlavha: Qo'riqchi! Soqchilar! Muallif: Terri Pratchett Yil: 1989 Janr: Xorijiy...

1s buxgalteriya hisobidagi nomenklatura 8

1s buxgalteriya hisobidagi nomenklatura 8

Buxgalteriya hisoblari qayerda o'zgaradi (1C Buxgalteriya 8.3, nashr 3.0) 2016-12-08T11:33:27+00:00 Buxgalterlar mendan qayerda... haqida so'rashadi.

tasma tasviri RSS