1C hujjatidan ma'lumotlarni avtomatik ravishda almashtirish. Hujjatlarni almashtirish uchun asosiy tashkilotni qanday belgilash kerak. Ma'lumotlar bazasiga ma'lumotlarni kiritish

/
Ukraina uchun buxgalteriya /
Hujjatlar, ma'lumotnomalar va hisobotlar bilan ishlash

Hujjatlarni almashtirish uchun asosiy tashkilotni qanday belgilash kerak

Ushbu bo'limda yangi hujjatlarni avtomatik almashtirish uchun boshlang'ich tashkilotni qanday tashkil etish kerakligi tasvirlangan.

Katalogdan o'rnatish

Tashkilotlar ma'lumotnomasida ("Korxona" - "Tashkilotlar" menyusi) asosiy tashkilot qalin shrift bilan ta'kidlangan. Bu shuni anglatadiki, yangi hujjatlar yaratilganda u avtomatik ravishda kiritiladi.

Boshqa tashkilotni asosiy qilish uchun siz ro'yxatda ushbu tashkilotni tanlashingiz va tugmani bosishingiz kerak Asosiyni o'rnating buyruqlar panelida.

Kodni Preoix nomi l w 00000001 ni Dobro 000000001 DB Do5ro5ut 00000006 DU Do st eka va o'rnatish 00000005 NF Milliy S0000001 nshoga ulang. Tashkilotimiz" kengligi="757" balandligi="216" chegara

ESLATMA
Asosiy tashkilot foydalanuvchi sozlamalarida saqlanadi. Har bir foydalanuvchi uchun asosiy tashkilot alohida ko'rsatilgan.

Asosiy tashkilot bo'yicha hujjatlarni tanlash

Foydalanuvchi sozlamalarida ("Xizmat" - "Foydalanuvchi sozlamalari" menyusi) asosiy tashkilot uchun hujjatlarni avtomatik tanlash rejimini o'rnatishingiz mumkin. Bu shuni anglatadiki, barcha jurnallar va hujjatlar ro'yxati faqat boshlang'ich tashkilot hujjatlarini ko'rsatadi.

Jurnallarda hujjatlarni tanlash bayroq bilan nazorat qilinadi Barcha tashkilotlar uchun buxgalteriya hisobi. U o'rnatilganda, jurnallar barcha tashkilotlar uchun hujjatlarni ko'rsatadi. Bayroq tozalanganda, jurnallarda faqat asosiy tashkilot uchun hujjatlar ko'rsatiladi.

Agar kerak bo'lsa, asosiy tashkilotni to'g'ridan-to'g'ri foydalanuvchi sozlamalarida "Hujjatlar va kataloglarni almashtirish uchun asosiy qiymatlar" guruhida o'zgartirish mumkin.

Savol: 1c maydonidagi kodni almashtirish


Assalomu alaykum, iltimos, ayting-chi, sanalar orasidagi kunlar sonini hisoblaydigan protsedurani qaysi sohaga kiritishim kerak, men protseduraning o'zini topdim, lekin bu savolga javob yo'q

Maydonlar mavjud - ro'yxatdan o'tish sanasi, chiqish sanasi va miqdor maydoni, bu erda dastlabki ikkita qiymat orasidagi farq tushishi kerak.
Jarayonni qaysi hodisaga qo'shish kerak?

Javob: Ketish sanasi maydonining "OnChange" hodisasida:

Savol: Avtomatik ma'lumotlarni almashtirish ishlamaydi

Javob:

Javoblaringiz uchun barchangizga rahmat:
1) 1C: Enterprise 8.3 (8.3.4.437), Ukraina uchun buxgalteriya hisobi: 2.0.4.3 versiyasi.
2) Ayniqsa uchun nsk1C: "Sizda har doim kerak bo'lmagan joyga qarash odati bor, mening savolimda QQSning asosiy stavkasi haqida birorta ham so'z yo'q - bu, birinchidan, ikkinchidan, Ukrainada 1C mahsulotlarini taqiqlovchi farmonni diqqat bilan o'qing va keyin allaqachon fikringizni yozing.."

Javobingiz uchun tashakkur, lekin kodning qayerda o'rnatilganligini aniqroq bilmoqchiman.

Savol: Kirish maydoni va oxirida kiriting


Boshqariladigan shakllar, veb-mijozda ishlash.
Vaziyat: skanerni F7 + shtrix-kod + kiritish uchun dasturlashtirdi. Men ko'p variantlarni sinab ko'rdim, lekin kodni "ShowValueInput" orqali o'qib bo'lmaydi. Men bu variantdan voz kechdim.
2. Kirish maydoniga ega forma yaratildi. F7 tugmasidan foydalanib, shakl ochiladi, kod kiritish maydonida paydo bo'ladi, kiriting va keyin uni ham bosing (matn hujjati maydonida belgilab qo'ying). Men matn kiritishning oxiri hodisasini ushlamoqchiman, lekin u ishlamayapti, chunki... u klaviaturada enter tugmasini jismoniy bosganingizda ishlaydi. AutoFit hodisasi men uchun eng yaxshi variant emas, chunki... Shtrix-kodni qo'lda kiritish mumkin, keyin bosishlar orasidagi kichik kechikishni chetlab o'tish uchun qandaydir tayoqchani o'ylab topishim kerak.
Iltimos, ayting-chi, osonroq variantlar bormi?

Javob:() shakl ochiladi, kod uzatiladi - hodisalar qayta ishlanmaydi

Savol: ACS hisoboti va jadval maydoni


Men ACS yordamida hisobot yaratyapman. Natijani jadval maydonida qanday ko'rsatish mumkin? Elektron jadval hujjatidagi maydonda emas, balki jadval maydonida.

Javob: Elektron jadval hujjatidagi maydon elektron jadval hujjatining atributiga (shakliga) tegishli bo'lgan shakl elementi (ma'lumotlar unda ko'rsatiladi).
Siz elektron jadval hujjatiga qiymat yozasiz va Elektron jadval hujjati maydoni siz uchun bu qiymatni ko'rsatadi.
U erda qiymatni qanday yozishim mumkin?

Savol: Maydonga e'tibor qaratish g'alati ishlaydi


1C (8.3.8.2088) da o'z-o'zidan yozilgan konfiguratsiya, boshqariladigan shakllar, taksi interfeysi.

Men OnChange hodisasini quyidagi kod bilan maydonga biriktiraman:

1C
1 2 3 4 StandardProcessing = False ;

SelectionData = NewValueList;

Tanlash ma'lumotlari. Qo'shish (Ob'ekt raqami);

Men matn kiritish oxirida kod qo'ydim

Hamma narsa ishlaydi, lekin qandaydir tarzda egri.

Element fokusni oladi, lekin rasmda ko'rinib turganidek, faqat yarmi:

Javob: Bu koddan keyin bo'ldi:

Ya'ni, sariq ramka va dala dizayni yo'qoldi. Bu ishlaydi, lekin u chiroyli emas, ko'zni tortadi.


Xo'sh, qisqasi, raqam o'zgarganda, harflar shakli paydo bo'ladi, u erda odam o'zgarish sababini to'ldiradi, agar odam shunchaki shaklni yopsa, eski qiymat qaytariladi va diqqat maydonda qoladi. Buni qanday qilib yaxshiroq qilish haqida boshqa fikrlar bormi?
Standart ob'ektni tanlash shakli mavjud (ut11), unda nom ko'rsatilmaydi, faqat maqola raqami!

Men standart shakl sozlamalarini qaytarishga harakat qildim - behuda, maydon/ustun ko'rsatilmaydi.

Konfigurator:

Dalalarda sho'xlik bor. Ro'yxat "Har doim foydalanish" ga o'rnatiladi.
Hatto OnFormCreate() va OnOpen() disk raskadrovka ham buni ko'rsatadi

Elements.ListAdvancedSearchNomenklatura.SubordinateElements

mavjud, hamma narsa ko'rinish va mavjudlik rejimida, funktsional imkoniyatlar yo'q!

Men o'z maydonimni ma'lumotlarga bir xil yo'l bilan qo'shishga harakat qildim - u ham ko'rinmaydi!
Bir soat o'tdi, lekin maydon ko'rinmaydi. Iltimos, yordam bering

Javob:

keyin oh! Men shunchaki nom maydonini boshqa guruhga sudrab o'tdim va u ko'rinmadi,
va birinchi tugmada U hali tiklanmagan, bu sizga yordam berishiga ishonchim komil edi.

Savol: Katalog elementini tanlashda nom emas, balki kodni qanday ko'rsatishim mumkin?


yorliq mavjud. qismi, unda katalog turiga ega bo'lgan maydon mavjud. Ushbu sohada elementni tanlashda nom emas, balki atribut kodini qanday ko'rsatishim mumkin? (boshqariladigan shakllar)

Javob: Tklwegsd,))) Ha, aynan shu savol

Kimdan xabar polax

Kod maydonini jadvalga qo'sha olmaysizmi?

Savol: SKD hisobotidagi tanlovni tanlash maydoni


Salom do'stlar, menda bir savol bor edi. Hisobotda tanlovni tanlash maydonini ko'rsatmoqchiman, lekin nimadir meni to'xtatmoqda, maslahatingiz kerak...

Maydon uchun kontragentlar quyidagi kodni kiritdilar, u ichki tanlovni amalga oshiradi, ammo chapdagi maydon uchun taqqoslash ko'rinishini qanday ko'rsatishim va uni Foydalanuvchilar bilan bog'lashim mumkin?

1C
1 2 3 4 5 6 7 8 9 10 11 Protsedura UsersOnChange(Element) eksport parametri = ComposerSettings. Sozlamalar. Ma'lumotlar parametrlari. ParameterValue(NewDataCompositionParameter("Foydalanuvchilar") ) toping; Parametr. Qiymat = Foydalanuvchilar; Parametr. Foydalanish = rost; Tanlash elementi = Sozlamalar kompozitori. Sozlamalar. Tanlash. Elementlar. Qo‘shish(Tur("Ma'lumotlar tarkibini tanlash elementi"

Javob: ) ; Tanlash elementi. ComparisonView = DataCompositionComparisonView. Teng; Tanlash elementi. LeftValue = NewDataCompositionField(

"ResponsiveRequest uchun mas'ul"
) ;);

Tanlash elementi. RightValue = Foydalanuvchilar;


Hammaga xayrli kun. Menda toza shakl bor, unda maxsus so'rovga ega dinamik ro'yxat mavjud bo'lib, unda bitta jadval (katalog, asosiy DS jadvali sifatida ham tanilgan), bitta havola maydoni va xarakteristikalar mavjud.

Xususiyatlarga ega bo'lgan maydonlarni tanlash, saralash, loyihalash va guruhlash uchun tanlashda darhol foydalanish mumkin. Hammasi ishlaydi. Ammo uni qo'shimcha maydon sifatida tanlashning iloji yo'q (alohida ustunda havola yonida paydo bo'lishi uchun). Bu qandaydir tarzda kod yordamida amalga oshirilishi aniq, lekin haqiqatan ham buni kodsiz amalga oshirish mumkin emasmi?
Shaklga joylashtirilishi mumkin bo'lgan juda ko'p maxsus ma'lumotlar tartibi elementlari, ammo maydonni qo'shishning iloji yo'qmi? Yoki men noto'g'ri ish qilyapmanmi?

Javob: Umuman olganda, ustunlarni ma'lumotlar tuzuvchisi orqali qanday aylantirsam ham, men ularni qo'sha olmadim (kodsiz). Ehtimol, bu mumkin emas, chunki ustunlar uchun ds form atributi emas, balki mantiqiy shakl elementi javobgardir. Bog'lovchi ma'lumotlarni - shakl elementini - displeyni boshqaradi (ustunlar kiritilgan).
Ya'ni, ariza elementining bo'ysunuvchi elementlarini dasturiy ravishda oshirmasdan, siz ularni o'zgartira olmaysiz.
Hammaga rahmat.

Savol: PM-dagi xabar maydoniga asoslangan kiritish to'ldirilmaydi


Hamkasblar yordam beradi ZUP 2.5 hujjatiga asoslangan odatiy kirish emas, xabar - PMdagi maydon to'ldirilmagan, garchi u to'ldirilgan bo'lsa-da - Sana yozing. To'ldirishni qayta ishlashda kod.
Agar siz ma'lumotlarni forma orqali kiritsangiz, u amalga oshiradi...

Javob: OMG u boshqa maydonga qasam ichdi - shunchaki bu ustun yashiringan) interfeysni to'ldirganda, u boshlanish sanasi maydonidan ko'chiriladi

Bizning vazifamiz quyidagicha. Endi biz buyumning narxini alohida axborot registrida saqlaymiz. Biz “Xizmat ko‘rsatish” hujjatini yaratganimizda yoki o‘zgartirganimizda va jadval qismiga istalgan elementni qo‘shganimizda, ma’lumotlar reyestridan olingan va hujjat sanasiga mos keladigan ushbu elementning joriy narxi darhol hujjatga kiritilishini xohlaymiz.

Buning uchun biz ikkita narsani qilishimiz kerak.

Birinchidan, ob'ektning joriy narxini qaytaradigan ma'lum bir funktsiyani yozing, so'ngra element hujjatga qo'shilgan paytda ushbu funktsiyani chaqiring va ushbu funktsiya hujjatga qaytariladigan elementning narxini almashtiring.

Bizga bunday "xizmat" nafaqat ushbu hujjatda, balki jadval qismida nomenklaturani o'z ichiga olgan boshqa hujjatlarda ham kerak bo'lganligi sababli, biz funktsiyani "ommaga ochiq" joyda - umumiy modulda joylashtiramiz.

Konfigurator rejimida

Buyumning narxini qaytaruvchi funksiya

Birinchidan, biz RetailPrice() funksiyasini yaratamiz, bu bizga mahsulotning joriy chakana narxini qaytaradi va uni umumiy konfiguratsiya moduliga joylashtiradi.

Umumiy modullar bo'limida konfiguratorni ochamiz, yangi konfiguratsiya ob'ektini Module qo'shamiz va uni WorkWithDirectories deb nomlaymiz.

Biz modulda sukut bo'yicha tanlangan Server katagiga ega ekanligini ko'ramiz. Bu shuni anglatadiki, ushbu modulning namunalari faqat server tomonida kompilyatsiya qilinadi.

Ushbu modulning eksport protseduralari va funktsiyalari mijozdan chaqirilishi uchun Call server katakchasini belgilaymiz (9.9-rasm).

Unga quyidagi matnni joylashtiramiz (9.1 ro'yxat).

Keling, ushbu funktsiyani tushuntiramiz.

Chakana narxni olish uchun biz funktsiyaga ikkita parametrni o'tkazamiz:

CurrentDate - Sana turi parametri bo'lib, biz chakana narx qiymati bilan qiziqadigan vaqt o'qidagi nuqtani belgilaydi.

Funksiya tanasida biz avvalo Selection yordamchi obyektini yaratamiz.

Bu registr o'lchamlari bo'yicha tanlovni o'z ichiga olgan tuzilma. Uning yordami bilan biz Nomenklatura registrining o'lchami funktsiyaga o'tkazilgan katalog elementiga havolaga teng bo'lgan registr yozuvlariga qiziqishimizni aniqlaymiz.

Struktura kalitining nomi ("Nomenklatura") konfiguratorda ko'rsatilgan registr o'lchamining nomiga mos kelishi kerak va struktura elementining qiymati (Nomenklatura elementi) ushbu o'lcham uchun tanlangan qiymatni belgilaydi.

Ikkinchi qatorda biz Narx ma'lumotlari registrining menejeri (Information Registers.Prices) bilan bog'lanamiz va GetLast() usulini bajaramiz, bu bizga funktsiyaga o'tgan sanaga mos keladigan so'nggi registr yozuvining manba qiymatlarini qaytaradi ( CurrentDate) va registr o'lchamlarining qiymatlari (Tanlash).

GetLast usuli ResourceValues ​​o'zgaruvchisida saqlanadigan manba qiymatlarini o'z ichiga olgan tuzilmani qaytaradi. Umuman olganda, registrda bir nechta resurslar bo'lishi mumkin. Bizning reestrimizda faqat bitta resurs mavjud, ammo bitta elementni o'z ichiga olgan tuzilma hali ham qaytariladi.

Shuning uchun keyingi qatorda biz kerakli registr resursining nomini nuqta (ResourceValues.Price) orqali shunchaki ko'rsatib, biz izlayotgan chakana narxni olamiz va funksiya bajarilganda uni qaytaramiz.

Endi bu funktsiya hujjat bajarilishining bir nuqtasida chaqirilishi kerak.

Ob'ektni tanlashda va hujjatda narxni to'ldirishda funktsiyani chaqirish

Demak, oldimizda turgan vazifa quyidagicha. "Xizmat ko'rsatish" hujjatini tahrirlashda foydalanuvchi xizmatni tanlagandan so'ng Narx maydoni avtomatik ravishda to'ldirilishini ta'minlashimiz kerak. Bundan tashqari, xizmatning narxi hujjat tuzilgan sanaga qarab belgilanishi kerak.


Keling, konfiguratorda Xizmat ko'rsatish hujjatini topamiz va uning shakli Hujjat shaklini ochamiz.

Shakl elementini ikki marta bosing ElementlarNomenklaturasi ro'yxati yoki uning xususiyatlari palitrasini ochish uchun o'ng tugmasini bosing (Xususiyatlar kontekst menyusi elementi). Ro'yxatning oxiriga o'tib, maydon qiymati o'zgargandan keyin sodir bo'ladigan OnChange hodisasini topamiz.

Kirish maydonida kattalashtiruvchi oyna belgisi bilan B ochish tugmasini bosing.

Tizim bizning forma modulimizda ushbu hodisa uchun ishlov beruvchi protsedurasi uchun shablonni yaratadi va Form muharriri moduli yorlig'ini ochadi.

Keling, unga quyidagi matnni qo'shamiz (Ro'yxat 9.2).

Keling, ishlov beruvchining mazmunini sharhlaylik.

Ishlovchining birinchi qatori sizga “Oʻzgartirish boʻyicha mahsulotlar roʻyxati” va “Oʻzgartirilgan tovarlar narxi” tartib-qoidalaridan allaqachon tanish. Birinchidan, biz hujjatning jadval qismining joriy qatorini olamiz, chunki u bizga keyinroq kerak bo'ladi va uni TabularPart Row o'zgaruvchisida saqlang.

Keyin biz RetailPrice() funksiyamizni Kataloglar bilan ishlash umumiy modulidan chaqiramiz.

Birinchi parametr sifatida biz ushbu funktsiyaga narxni olishimiz kerak bo'lgan hujjatning sanasini o'tkazamiz. Hujjat sanasini formaning asosiy atributidan olamiz - Object.Date.



Funktsiya oxirgi narx qiymatini qaytaradi va biz bu qiymatni hujjatning jadval qismining joriy qatoridagi Narx maydoniga belgilaymiz (TabularPartRow.Price).

E'tibor bering, Item List NomenclatureOnChange() protsedurasining o'zi mijoz tomonidagi forma modulida ishlay boshlaydi, chunki u formaning interaktiv hodisasi uchun ishlov beruvchi hisoblanadi. Ushbu protsedura uchun shablonni yaratishda platforma avtomatik ravishda protsedura tavsifidan oldin &OnClient kompilyatsiya direktivasini joylashtirdi.

Keyin RetailPrice() funksiyasi chaqiriladi. Ushbu funktsiya mijoz tomonida topilmasligi sababli, ijro serverda ishlaydigan umumiy kataloglar bilan ishlash moduliga o'tkaziladi. Funktsiya tugagandan so'ng, dastur kodi mijozda ishlashni davom ettiradi.

Nima uchun bu holatda bunday "hiyla" ishlatilgan? Nima uchun kodning bajarilishini serverga o'tkazish kerak edi?

Gap shundaki, ma'lumotlar bazasi bilan har qanday ish (ma'lumotlarni o'qish, yozish) faqat serverda mumkin. Bunday holda, biz ba'zi bir element uchun ma'lumot registridagi so'nggi ma'lumotlarni o'qishimiz kerak edi.

Bunday harakatlar faqat serverda bajarilishi mumkin va agar siz ma'lumotlar registrining GetLast() usuli tavsifini sintaksis yordamchisidan qidirsangiz, bu usul faqat serverda, qalin mijozda va tashqi aloqada.

Qalin mijoz va tashqi ulanish - bu eski dastur echimlari bilan muvofiqligi uchun mavjud bo'lgan eski platforma mijoz ilovalari.

Biz nozik mijoz yoki veb-mijozda ishlaydigan mutlaqo yangi dastur yechimini ishlab chiqmoqdamiz. Shuning uchun, bizning holatlarimizda, ma'lumotlar bazasidan har qanday ma'lumotlarni olish uchun biz kodning bajarilishini serverga o'tkazishimiz, u erda kerakli ma'lumotlarni olishimiz va ushbu ma'lumotlarni mijozga qaytarishimiz kerak. Biz shunday qildik.

1C: Korxona rejimida

Keling, hujjatimiz qanday ishlashini tekshiramiz.

1C: Enterprise-ni disk raskadrovka rejimida ishga tushiramiz va Narxlar ma'lumotlari registrini ochamiz.

Flibs tranzistori uchun boshqa raqam bilan yangi narxni qo'shamiz (9.10-rasm).

Keling, hujjatni ochamiz Xizmat ko'rsatish № 1. Esingizda bo'lsa, ushbu hujjat bilan biz faqat bitta tranzistorni "ishlatdik".

Hujjatning sanasini o'zgarishsiz qoldiraylik va hujjatning jadval qismining Nomenklatura ustunida tranzistorni tanlashni takrorlaymiz. Transistor narxi avtomatik ravishda 07.01.2009 ga o'rnatiladi. Bu hujjat sanasidagi oxirgi narx qiymati (9.11-rasm).

Keling, hujjatning sanasini 07/13/2009 ga o'zgartiramiz va tranzistorni tanlashni yana takrorlaymiz. Yangi narx qiymati o'rnatiladi, bu sana uchun eng oxirgi (9.12-rasm).

Shunday qilib, hujjat yaratilgan paytdagi xizmatning narxi hujjatda ko'rinadi.


Xavfsizlik masalalari

1. Axborot registrining konfiguratsiya obyektining maqsadi nima?

2. Axborot registrining konfiguratsiya obyekti qanday xususiyatlarga ega?

3. Axborot registrining jamlanma registridan asosiy farqlari nimada.

4. Qaysi maydonlar jamg'arish registrining o'ziga xoslik kalitini aniqlaydi.

5. Axborotning davriy reestri nima va mustaqil axborot reestri nima.

6. Axborotlarning davriy reestri qanday tuziladi.

7. Registrning yetakchi o‘lchami nima.

8. O'rnatilgan til yordamida ro'yxatga olish kitobining eng so'nggi yozuvlarining manba qiymatlarini qanday olish mumkin.

Vazifa 1. Ochiladigan ro'yxatni yaratish

1. Faylni oching Ex03_1.xlsx.

2. Bir varaqda Narxi Narxlari ko'rsatilgan tovarlar jadvali mavjud.

3. Mahsulot nomi bilan diapazonlarga nom bering ( Mahsulot) va narxlar jadvali ( Jadval) (1-rasm). Diapazon nomlari formulalarda keyingi foydalanish va diapazonlar bilan ishlashni osonlashtirish uchun belgilangan. Diapazon nomi hujayra nomi maydoni orqali o'rnatilishi yoki kontekst menyusidagi buyruqni tanlash mumkin Ism tayinlang(albatta, u yoki bu holatda, 1-rasmda ko'rsatilganidek, hujayralar diapazoni oldindan tanlanishi kerak).

1-rasm

4. Ustundagi savdo varag'ida Mahsulot nomi ochiladigan ro'yxatni yarating va uni ma'lumotlar bilan to'ldiring.

Ochiladigan ro'yxatni yaratish uchun siz ochiladigan ro'yxatni olmoqchi bo'lgan hujayralarni tanlashingiz kerak (bir vaqtning o'zida bir nechta bo'lishi mumkin) va yorliqda tanlang. Ma'lumotlar tugmasi Ma'lumotlarni tekshirish (2-rasm).

2-rasm

Birinchi yorliqda Variantlar ochiladigan ro'yxatdan Ma'lumotlar turi variantni tanlang Roʻyxat va qatorga kiring Manba= va kerakli ma'lumotlarga ega diapazon nomi (ya'ni. =Mahsulot) (3-rasm). bosing KELISHDIKMI.

Ochiladigan ro'yxatni yaratish natijasi 4-rasmda ko'rsatilgan.

Agar manbadagi qiymatlar to'plami o'zgarishi mumkin bo'lsa, ro'yxatning o'rtasiga ma'lumotlarni kiritish yoki olib tashlash yaxshiroqdir.

3-rasm

4-rasm

MATCH va INDEX funksiyalari bilan tanishish

MATCH va INDEX funktsiyalari asosan ma'lum diapazondagi ma'lumotlarni jadvalga avtomatik ravishda almashtirish uchun ishlatiladi.

Funktsiya sintaksisi

MATCH(qidiruv_qiymati, massiv, moslik_turi)

Massiv bir ustun yoki bir qatordan iborat blokdir.

Moslash_turi-1, 0 yoki 1 raqami.

Agar moslik_turi 1 ga teng, keyin funksiya QIDIRISH dan kichik bo'lgan eng katta qiymatni topadi qidiruv_qiymati yoki unga teng. Koʻrildi massiv ortib borish tartibida buyurtma berish kerak.

Agar moslik_turi teng 0, Bu MATCH funksiyasi argumentga aynan teng bo'lgan birinchi qiymatni topadi qidiruv_qiymati. Koʻrildi massiv tartibsiz bo'lishi mumkin.

Agar moslik_turi-1 ga teng, keyin funksiya QIDIRISH dan katta bo'lgan eng kichik qiymatni topadi qidiruv_qiymati, yoki unga teng. Ko'rish_massivi kamayish tartibida buyurtma berish kerak.

Agar moslik_turi ga teng deb qabul qilinadi 1 .

Funktsiya QIDIRISH qiymatning o'zini emas, balki massivdagi qidirilayotgan qiymatning o'rnini qaytaradi.

Funktsiya INDEX ikki shaklga ega. Biz faqat bittasini ko'rib chiqamiz.

INDEX(jadval; satr_raqami; ustun_raqami)

Bu funksiya to'rtburchaklar blokdan (jadval) qator va ustun raqamlari bilan belgilangan elementni tanlaydi va bu raqamlar blokning yuqori chap elementidan hisoblanadi.

Keling, ushbu funktsiyalar qanday ishlashini aniq misollar yordamida ko'rib chiqaylik.

2-topshiriq. MATCH funksiyasi bilan tanishtirish

MATCH() funksiyasidan foydalanib, “Yogurt” nomli mahsulotning diapazondagi o‘rnini aniqlang Mahsulot. Buning uchun:

1. elektron kitobda Ex03_1.xlsx varaqqa o'ting Narxi va varaq kursorini istalgan bo'sh katakka qo'ying;

2. ushbu katakchaga =MATCH("Yogurt";Mahsulot;0) formulasini kiriting, ya'ni. Ushbu funktsiyadan foydalanib, biz diapazonda "Yogurt" elementini (funktsiyalardagi matn qiymati har doim tirnoq ichida ko'rsatilgan) topishimiz kerakligini bildiramiz. Mahsulot, mos keladigan 0 turi - aniq moslik;

3. Enter tugmasini bosing. Natijada siz 7 raqamini olishingiz kerak (5-rasm).

5-rasm

Haqiqatan ham, agar siz diapazonga qarasangiz Mahsulot, keyin yogurtning pozitsiyasi bu raqamga to'g'ri keladi. Shuni esda tutish kerakki, qiymatning massivdagi o'rni, ya'ni. berilgan diapazonda, diapazon boshidan boshlab hisoblanadi. Ma'lum bo'lishicha, agar biz ma'lumotlar jadvalining boshiga yangi qator qo'shsak, "Yogurt" qiymati 8-qatorga o'tadi, ammo diapazon Mahsulot“Sut” qiymatidan boshlanadi, shuning uchun diapazonning boshidan yogurtning holati har qanday holatda ham 7 raqamiga to'g'ri keladi (6-rasm).

6-rasm

Esda tutingki, MATCH() funksiyasining qiymati qiymatning o‘zi yoki ushbu qiymat joylashgan katak nomi bilan belgilanishi mumkin. Masalan, =MATCH(A7;Mahsulot;0) yozuvi =MATCH("Yogurt";Mahsulot;0) yozuvidan foydalanilgandagi kabi natijani beradi.

3-topshiriq. INDEX funksiyasi bilan tanishish

Eslatib o'tamiz, INDEX() funksiyasi to'rtburchaklar blokdan (jadvaldan) satr va ustun raqamlari bilan belgilangan elementni tanlaydi va bu raqamlar blokning yuqori chap elementidan hisoblanadi.

Diapazonda topish uchun INDEX() funksiyasidan foydalaning Mahsulot element beshinchi holatda joylashgan. Buning uchun:

1. elektron kitobda Ex03_1.xlsx varaqda Narxi varaq kursorini istalgan bo'sh katakka qo'ying;

2. Ushbu katakchaga quyidagi funksiyani kiriting =INDEX(Mahsulot;5). Enter tugmasini bosing. Natija 7-rasmda keltirilgan.

7-rasm

E'tibor bering, biz INDEX funktsiyasi uchun faqat diapazon qiymatlari va satr raqamini ko'rsatdik. Biz ustun raqamini ko'rsatmadik. Agar biz bitta ustundan iborat jadval (diapazon)dagi qiymatni qidirayotgan bo'lsak, bu parametr ixtiyoriy. Agar biz bir necha ustunlardan iborat jadval (diapazon)da qiymatni topishimiz kerak bo'lsa, formulada qiymatni aniqroq qidirish uchun ustun raqamini ko'rsatish kerak.

Yangi katakka =INDEX (Jadval;8;2) formulasini kiriting. Natijada siz jambon narxini topasiz (8-rasm).

8-rasm

Avtomatik ma'lumotlarni almashtirish

Ochiladigan ro'yxat bilan ishlashda siz jadvalga ma'lumotlarni kiritishni avtomatlashtirishingiz mumkin. Masalan, tovarlarning nomlari va ularning narxlarini o'z ichiga olgan narxlar ro'yxati mavjud. Siz ro'yxatdagi mahsulot nomini tanlashni va yakuniy jadvalda mahsulot narxini avtomatik ravishda almashtirishni tashkil qilishingiz mumkin.

Qidiruv jadvalidagi ma'lumotlarni avtomatik ravishda almashtirish INDEX va MATCH funksiyalaridan birgalikda foydalanishga asoslanadi.

Vazifa 4. MATCH va INDEX funksiyalarini birlashtirish

Elektron kitobda Ex03_1.xlsx varaqda Sotish ustunda Narxi, MS Excel funksiyalaridan foydalanib, mahsulot tannarxini varaqdan avtomatik almashtirishni ta'minlang Narxi, varaqdagi ochiladigan ro'yxatdan tanlangan qiymatga qarab Sotish.

1. Ishchi varaq kursorini C2 katakka qo'ying va unga quyidagi formulani kiriting:

2. Enter tugmasini bosing. Natijada siz C2 katakchada nomi qo'shni ustunda ko'rsatilgan mahsulot narxini olasiz (9-rasm). Ochiladigan ro'yxatdan boshqa mahsulot nomini tanlaganingizda, narx qiymati mos ravishda o'zgaradi.

9-rasm

3. Avtoto'ldirish belgisidan foydalanib, ushbu formulani jadval oxirigacha ko'paytiring (10-rasm).

10-rasm

Keling, ushbu formulani hal qilaylik. Ushbu formula MATCH funktsiyasidan boshlanadi, bu bizga ish varag'idagi B2 katakdagi qiymatning o'rnini topishga imkon beradi. Sotish oralig'ida Mahsulot ko'zdan Narxi, va aniqlik turi 0. Misol uchun, agar siz 10-rasmda keltirilgan mahsulotlar ro'yxatidan foydalansangiz, SEARCH funksiyasi ustundagi B2 katakchada nomi ko'rsatilgan nonning o'rnini qidiradi. Mahsulot nomi oralig'ida Mahsulot varaqda Narxi. Bu pozitsiya 3 ga teng bo'ladi. Shuning uchun kompyuter xotirasida biz kiritgan formula mavjud

=INDEX(Jadval, MATCH(B2, Mahsulot, 0), 2)

shaklini oladi

=INDEX(Jadval,3,2)

Parametr “3” QIDIRISh funksiyasining natijasidir.

Keyinchalik, diapazonda qidiradigan INDEX funktsiyasi ishga tushadi Jadval varaqda Narxi uchinchi qator va ikkinchi ustunning kesishmasida joylashgan qiymat. (Iltimos, qator ekanligini eslatib o'tamiz Jadval ikki ustundan iborat). Bu qiymat mahsulot tannarxi bo'ladi, bu holda non = 27.

Vazifa 5. Yakuniy jadvalni loyihalash

Bir varaqda Sotish ustunda Miqdori ixtiyoriy qiymatlarni kiriting. Ustundagi qiymatlarni hisoblang Jami.

6-topshiriq. Mustaqil vazifa

Faylni oching Frames.xls . Varaqdagi ish haqi o'zgarishini avtomatlashtirish talab qilinadi Xodimlar .

Masalan, menejerlarning bir qismini o'tkazish va yuqori darajali menejerlar yoki maslahatchilarni yuklovchilarga o'tkazish kerak. Ushbu operatsiyani to'rtta xodim uchun bajarishingiz kerak. Lavozim bilan birga ish haqi ham o'zgarishi kerak.

Yangi varaq yarating va unga nom bering Davlat .

Varaqga nusxalash Davlat ustunlar Lavozim Va Ish haqi.

Ikki nusxadagi xodimlarni olib tashlang. Buning uchun:

1. Lavozim va ish haqi ustunlarini tanlang.

2. Yorliqda Ma'lumotlar tugmasini bosing Dublikatlarni olib tashlang .

3. Ustundan tasdiq belgisini olib tashlang Ish haqi.

4. Tugmani bosing Kelishdikmi.

Pozitsiyalarni o'zgartirish imkoniyatiga ega bo'lish uchun, varaqda Xodimlar Joylashuv ustunida ochiladigan ro'yxat yarating. Bunday holda, buni amalga oshirish uchun siz rasmiy ish haqini ham o'zgartirishingiz kerak bo'ladi, biz bu jarayonni avtomatlashtiramiz, shunda siz o'z pozitsiyangizni o'zgartirganingizda, Excelning o'zi ish haqini o'zgartiradi. Buning uchun biz funksiyalardan foydalanamiz: SEARCH va INDEX.

Ko'rsatmalar

1. Varaqda tanlang Davlat pozitsiyalar oralig'i. Tanlangan diapazonga nom bering lavozim.

2. Varaqda tanlang Davlat ish haqi oralig'i. Tanlangan diapazonga nom bering ish haqi.

3. Bir varaqda Xodimlar ustunda Ish haqi ish varag'ida qidiradigan formulani kiriting Davlat oralig'ida lavozim xodimning lavozimiga mos keladigan lavozim, keyin esa diapazondan ish haqi varaq Davlat topilgan lavozimga mos keladigan ish haqini kiritdi.

4. Formulani kiritgandan so'ng, natijada olingan ish haqi haqiqatda varaqdan xodimning lavozim maoshiga mos kelishiga ishonch hosil qiling. Davlat.

5. Ch.ning ish haqi o'zgartirilsin. varaqdagi buxgalter Davlat. Tegishli ish haqi varaqda o'zgarganligini tekshiring Xodimlar.

Keling, quyidagi masalani hal qilaylik. Xizmat ko'rsatish to'g'risidagi hujjatni yaratishda yoki o'zgartirishda va jadval qismiga xizmatlarning istalgan turini qo'shishda ma'lumotlar reestridan olingan va hujjatning sanasiga mos keladigan joriy narx darhol kiritilishi kerak.

Buning uchun sizga kerak:

    joriy narxni qaytaradigan RetailPrice funksiyasini yozing;

    hujjatga yangi element qo'shilganda funktsiyani chaqiring.

Kelajakda bunday funktsiya kerak bo'lishi mumkinligi sababli, biz uni "ommaga ochiq" joyda - umumiy modulda yozamiz.

1. Funksiya yarating Chakana savdo narxi Umumiy bo'limda - nomi bilan umumiy modullar Kataloglar bilan ishlash. Bayroqni o'rnatish Server qo'ng'irog'i(shunday qilib eksport protseduralari va ushbu modulning funksiyalari mijozdan chaqirilishi mumkin) (71a-rasm).

Guruch. 71a. Umumiy modul xususiyatlari

2. Quyidagi matnni modulga joylashtiring.

Funktsiya Chakana narx(joriy sana, xizmat nomenklaturasi elementi) eksporti

//Yordamchi ob'ektni yaratish Tanlash

Tanlash = Yangi tuzilma("Xizmat nomenklaturasi",Xizmat nomenklaturasi elementi);

//Joriy registr resursi qiymatlarini oling

ResourceValues=InformationRegisters.Prices.GetLast(CurrentDate, Selection);

ReturnResourceValue.Price;

EndFunction

Funktsiyani tushuntiramiz.

Chakana narxni olish uchun siz funktsiyaga ikkita parametrni kiritishingiz kerak:

    Joriy sana– Sana turining parametri, bizni chakana narxning qiymati bilan qiziqtiradigan vaqt o'qidagi nuqtani belgilaydi.

Ushbu tuzilmani o'z ichiga oladi Tanlash ro'yxatga olish o'lchovlari bo'yicha. Uning yordami bilan Xizmatlar nomenklaturasi registrining kerakli o'lchami aniqlanadi, bu funktsiyaga o'tkazilgan katalog elementiga havolaga teng.

Tuzilish kaliti nomi ("H Xizmatlar nomenklaturasi") konfiguratorda ko'rsatilgan registr o'lchamining nomiga va struktura elementining qiymatiga mos kelishi kerak ( Xizmatlar nomenklaturasining elementi) ushbu o'lcham uchun tanlangan qiymatni belgilaydi.

Ikkinchi qatorda ma'lumotlar reestri menejeriga qo'ng'iroq mavjud Narxlar ( Narxlar registrlari) va usulning bajarilishi RunLast(), bu funktsiyaga o'tgan sanaga mos keladigan eng so'nggi registr yozuvining resurs qiymatini qaytaradi ( Joriy sana) va o'lchov qiymatlarini qayd qiling Tanlash.

Usul Oxirgi olish o'zgaruvchida saqlanadigan manba qiymatlarini o'z ichiga olgan tuzilmani qaytaradi Resurs qiymatlari.

Keyingi qatorda biz kerakli registr resursining nomini nuqta bilan ajratilgan holda ko'rsatib, kerakli chakana narxni olamiz ( ValueResources.Price) va funksiya bajarilganda uni qaytaring.

Bu. bu funktsiyani ma'lum bir vaqtda chaqirish mumkin.

Ochish kerak Xizmatlarni bajarish bo'yicha hujjat shakli(ilgari yaratilgan). IN Shakl moduli zarur O'zgartirish paytida protsedurani qo'shing.

Buning uchun forma elementi ustiga ikki marta bosing.

Guruch. 71b. Xizmat ko'rsatish hujjatining elementlari

Hodisadagi xususiyatlar oynasida QachonChange quyidagi matn bilan voqea ishlovchisi yarating:

&OnClient

O'zgartirish paytida nomenklaturalar xizmatining tartib ro'yxati (element)

//Jadval bo'limining keyingi qatorini oling

TabularPart Row = Elementlar.Nomenklatura ro'yxati.CurrentData;

// Narxni belgilang

TabularPart Row.Price = Directories bilan ishlash.RetailPrice(Object.Date, TabularPartLine.Service);

Jarayonning oxiri

Funktsiyani tushuntiramiz.

Birinchi qator allaqachon ma'lum: birinchi navbatda biz hujjatning jadval qismining joriy satrini olamiz, chunki bizga keyinroq kerak bo'ladi va uni o'zgaruvchida saqlang Qator jadval qismi.

Keyin funksiyani chaqiramiz Chakana savdo narxi() umumiy moduldan Kataloglar bilan ishlash.

Funktsiyaning birinchi parametri narxni olishingiz kerak bo'lgan hujjatning sanasini o'tkazishdir. Biz hujjat sanasini shaklning asosiy tafsilotlaridan olamiz - Ob'ekt.Sana.

Funktsiya oxirgi narx qiymatini qaytaradi va bu qiymat hujjatning jadval qismining joriy qatoridagi Narx maydoniga tayinlanadi ( RowTabularPart.Price).

E'tibor bering, protsedura Nomenklaturalar ro'yxatiServiceWhenChanged() mijoz tomonida forma modulida ishlay boshlaydi, chunki Bu shaklning interaktiv hodisa ishlovchisi. Ushbu protsedura uchun shablonni yaratishda platforma avtomatik ravishda protsedura tavsifidan oldin kompilyatsiya direktivasini joylashtiradi &OnClient.

Keyin funksiyani chaqiramiz Chakana savdo narxi(). Chunki bu funksiya mijoz tomonida topilmaydi, keyin bajarish umumiy modulga o'tkaziladi Kataloglar bilan ishlash, serverda ishlaydi. Funktsiya tugagandan so'ng, dastur kodi mijozda ishlashni davom ettiradi.

Keling, yuqoridagi amallarni tekshirib ko'ramiz va dasturni 1C: Enterprise rejimida ishga tushiramiz. Keling, ishlab chiqilgan konfiguratsiya bilan ishlaylik.

JABGA MA'LUMOTLARNI KIRISH

1. Ilovaga kamida 8 ta hujjatlarni kiriting.



gastroguru 2017