Internet Windows Android
Kengaytirish

1c shaklni parametrlar bilan oching. Parametrlarni boshqariladigan va muntazam shakllarga o'tkazish

Shakllar orasidagi avtomatik o'zaro ta'sirni qo'llab-quvvatlash uchun tizim ular ochilganda shakllarni boshqarish uchun ishlatiladigan bir qator standart parametrlarni taqdim etadi. Ushbu parametrlardan foydalanib, tizim shakl maydonlarida tanlov shakllaridan tanlashni, ob'ekt shakllarini ochishni, standart buyruqlar ishlashini va boshqalarni amalga oshiradi. Ya'ni ular tizimga o'rnatilgan turli xil interfeys ish stsenariylarini taqdim etadi. Ammo ishlab chiquvchi ushbu parametrlarni o'rnatilgan tilda ham ishlatishi mumkin va ularni OpenForm() usulini chaqirganda o'tkazishi mumkin.

Biz tizim tomonidan taqdim etilgan parametrlarni va ularning maqsadini sanab o'tamiz:

  • Tanlash rejimi– forma tanlash rejimida ochiladi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • CurrentRow– ochilganda ro‘yxatda faollashtiriladigan qator. Qatorni aniqlaydigan qiymat o'tkaziladi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • Guruhlar va elementlarni tanlash– bu parametr shaklning asosiy atributi jadvalining Guruhlar va elementlarini tanlash xususiyatini o‘rnatadi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • AllowSelectRoot– daraxt sifatida ko‘rsatilgan dinamik ro‘yxat bilan shakldagi ildizni tanlash imkoniyatini belgilaydi. Daraxt sifatida ko'rsatilgan dinamik ro'yxat uchun boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • Tanlash– dinamik ro‘yxatdagi tanlov to‘plami. Strukturani ifodalaydi. Elementlarning nomlari tanlov amalga oshiriladigan maydonlarning nomlariga mos keladi va qiymatlar tanlov qiymatlarini o'z ichiga oladi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • Kalit– shaklda tahrir qilinayotgan obyektni identifikatsiya qiluvchi qiymat. Agar qiymat etishmayotgan yoki noto'g'ri bo'lsa, qolgan parametrlar yordamida yangi ob'ekt yaratiladi. Ob'ekt shakli kengaytmalari va ma'lumotlar reestrini qayd etish menejeri tomonidan taqdim etilgan.
  • Qiymatni nusxalash- yangi ob'ekt yaratishda nusxa ko'chirish uchun foydalaniladigan ob'ektni identifikatsiya qiluvchi qiymat. Ob'ekt shakli kengaytmalari va ma'lumotlar reestrini qayd etish menejeri tomonidan taqdim etilgan.
  • Qiymatlarni to'ldirish- yangi ob'ekt tafsilotlarini to'ldirish uchun qiymatlar. Tuzilmani ifodalaydi. Elementlarning nomlari tafsilotlar nomlariga mos keladi va qiymatlar ko'rsatilgan tafsilotlarni to'ldirish uchun ishlatiladigan ma'lumotlarni o'z ichiga oladi. Ob'ekt shakli kengaytmalari va ma'lumotlar registrini qayd etish menejeri tomonidan taqdim etilgan.
  • Baza– asosga kiritish orqali yangi obyekt yaratishda asos sifatida foydalaniladigan obyektni identifikatsiya qiluvchi qiymat. Ob'ekt shakli kengaytmalari bilan ta'minlangan.
  • Bu guruh– yangi obyekt turini belgilaydi: guruh yoki element. Ob'ekt shakli kengaytmalari bilan ta'minlangan.

Shakl parametrlari bilan ishlashga misol

Shakl parametrlari qanday ishlashini ko'rsatish uchun kirish maydonida elementni tanlashni amalga oshirishni ko'rib chiqamiz. Misolning mohiyati o'rnatilgan tilda ro'yxatdan elementni tanlash mexanizmini amalga oshirishdan iborat bo'ladi.

Misol bilan ishlashni boshlaganingizda, siz quyidagi xususiyatlarga ega konfiguratsiyaga ega bo'lishingiz kerak:

  • Asosiy ishga tushirish rejimi - Boshqariladigan ilova;
  • guruhlar va elementlar ierarxiyasiga ega mahsulotlar katalogi mavjud;
  • DirectoryLink.Products tipidagi SelectedProduct atributiga ega Analoglar katalogi mavjud;
  • ikkala katalogda ham boshqariladigan element shakllari mavjud.

Keling, ushbu konfiguratsiyada platforma o'rnatilgan tildagi ro'yxatdan elementni tanlash uchun foydalanadigan barcha mexanizmlarni amalga oshiramiz. Bunda biz standart shakl parametrlaridan qanday foydalanilishini ko'rib chiqamiz; tizimning o'zi ulardan qanday foydalanishi; ishlab chiquvchi ulardan qanday foydalanishi mumkin.

Elementni tanlagandan so'ng tanlov formasining yopilishini boshqaradigan qo'shimcha bayroqni qo'shamiz. Keling, bu bayroqni CloseAfterSelection (Boolean turi) deb ataymiz. Uni Mahsulotlar katalogini tanlash uchun forma parametri sifatida qo'shamiz.

Elementni tanlash formasini ochish uchun Analoglar katalog elementi ko‘rinishidagi Tanlangan mahsulot shakli elementi uchun Tanlovni boshlash hodisasi uchun hodisa ishlovchisini yaratishingiz kerak:

&OnClient

TanlanganMahsulotStartSelection protsedurasi(Element, StandardProcessing)

StandardProcessing = False;

SelectionParameters = Yangi tuzilma; SelectionParameters.Insert("SelectionMode", rost); SelectionParameters.Insert("SelectingGroupsAndElements", UseGroupsAndElements.Elements); SelectionParameters.Insert("AllowRootSelection", False); SelectionParameters.Insert("CurrentRow", Object.SelectedProduct); SelectionParameters.Insert("CloseAfterSelection", False); OpenForm("Directory.Mahsulotlar.SelectionForm", SelectionParameters, Elements.SelectedProduct);

EndProcedure

OpenForm() usulining uchinchi parametri haqida alohida to'xtalib o'tish kerak. Ushbu parametr tanlov shaklining egasi kim bo'lishini va kim tanlangani haqida bildirishnoma olishini belgilaydi. Bunda biz tanlov formasining egasi sifatida forma elementining o‘zini ko‘rsatdik, lekin bu parametr bilan shaklning o‘zini ham ko‘rsatishimiz mumkin. Bunday holda, Shakl modulini tanlashni qayta ishlashni amalga oshirish kerak bo'ladi va unda tanlangan ma'lumotlarni qaysi shakl atributiga joylashtirishni hal qilish kerak bo'ladi.

Ushbu maqola boshqariladigan shakl 8.2 ni ochishda qiymatni parametr sifatida o'tkazish uchun standart vositalardan qanday foydalanishni tavsiflaydi, shunga o'xshash operatsiyani oddiy shakllarda qanday amalga oshirish mumkinligi bilan solishtirganda.

Oddiy shakllarda parametrlar qanday uzatiladi

Oddiy shakllarda parametrni o'tkazish uchun ikkita imkoniyat mavjud edi:
1) kamroq tarqalgan usul: "Tafsilotlar" yorlig'idagi ob'ekt shaklida atributlar qo'shildi va agar kerak bo'lsa, kirish vizual vositalar bilan aniqlandi.
2) keng tarqalgan usul: eksport o'zgaruvchisi forma modulida e'lon qilindi va qiymat "Ochishdan oldin" ishlov beruvchisida qayta ishlandi

Ikkala holatda ham ariza chaqiruvi quyidagicha ko'rinardi:

Form = Object.GetForm("SelectionForm",FormOwner, UniquenessKey);
Form.Parameter = ParameterValue;
Form.Open();

Boshqariladigan shakllarda parametrlar qanday uzatiladi

Boshqariladigan shakllar endi shakl qabul qilinganda parametrlarni darhol uzatish imkoniyatiga ega. Parametrlar struktura sifatida uzatiladi:

Parametrlar = Yangi tuzilma ("CurrentValue", LastElement);
SelectionForm = GetForm("Katalog. Nomenklatura.SelectionForm", Parametrlar);
FoundItem = SelectionForm.OpenModal();

Bundan tashqari, boshqariladigan shaklda endi "shakl kengaytmalari" mavjud (ob'ekt, ma'lumotnoma, hujjat, hisobot). Ob'ektning turiga qarab, mavjud parametrlarning tarkibi aniqlanadi. Misol uchun, agar katalog tanlash shaklida siz ma'lum bir elementga joylashtirishingiz kerak bo'lsa, u holda "CurrentValue" parametri ishlatiladi. Katta afzallik shundaki, formaning o'zi oldindan belgilangan parametrlar uchun ishlov beruvchilarni yozishni talab qilmaydi, bu kod miqdorini kamaytiradi.

Ishlab chiquvchi, shuningdek, o'z parametrlarini aniqlash imkoniyatiga ega (boshqariladigan shakl dizaynerida, "Parametrlar" yorlig'i). Parametrlarning ishlash muddati OnCreationOnServer ishlov beruvchisi tomonidan cheklangan, bu mantiqiy, chunki parametrlar faqat forma yaratishda talab qilinadi, lekin agar bu parametr shaklning o‘ziga xosligini aniqlasa (“asosiy parametr” bayrog‘i parametr xususiyatlarida o‘rnatilgan), u boshqa ishlov beruvchilarda mavjud bo‘ladi.

Muayyan manipulyatsiya parametrini o'tkazish uchun siz biroz ko'proq narsani qilishingiz kerak:

1) Parametrni boshqariladigan shaklda aniqlang.
OnCreationOnServer ishlov beruvchisida ushbu parametrni qayta ishlashni aniqlang (FormDataStructure turiga ega bo'lgan "Parameters" xususiyati orqali o'tkazilgan parametrlarga kirish)
2) Shaklni qabul qilishni tavsiflang va GetForm funksiyasining parametrlarida yangi parametr qiymatini bering.
Shunday qilib, kod quyidagicha ko'rinadi:
- Shaklni olgan joyda

Parametrlar = Yangi tuzilma ("NewParameter", LastElement);
SelectionForm = GetForm("Katalog. Nomenklatura.SelectionForm", Parametrlar);

Boshqariladigan shakl modulida

&Serverda
OnServerda yaratilgan protsedura (muvaffaqiyatsizlik, standart ishlov berish)
Agar Parameters.Property("NewParameter") Keyin
// bu erda parametrni qayta ishlash kodi
endIf;
EndProcedure

Xulosa

Ehtimol, bu maqola kimgadir foydali bo'ladi, bu vaqtni tejaydi va sizni keraksiz koddan qutqaradi. Boshqariladigan shakl parametrlarining to'liq ro'yxati haqida batafsil ma'lumot olish uchun "Boshqariladigan interfeys\Managed Form" yordamiga qarash tavsiya etiladi.

[havolani ko'rish uchun ro'yxatdan o'tishingiz kerak]

Boshqariladigan 1C ilovasida shakllarni dasturiy ravishda ochish ularni oddiy dasturda ochishdan sezilarli darajada farq qiladi. Avval eski usulni ko'rib chiqaylik. U formani qabul qilish va keyin uni normal yoki modal rejimda ochishdan iborat (modal rejimda ochilganda forma dasturni bloklaydi).

GetForm() . Ochiq()

Bu shakllarni ochishning eng sekin usuli. Biroq, bu shaklni ochishdan oldin uni dasturiy ravishda qayta ishlashga imkon beradi. Kodni qayta ishlash uchun siz biroz o'zgartirishingiz kerak:

Shakl = GetForm ( "Hujjat. Tovar va xizmatlarni qabul qilish. Hujjat shakli") ;
//Bu yerda forma bilan amallarni bajaramiz
Shakl. Ochiq();

Shuni hisobga olish kerakki, ariza qabul qilinganda, boshqa hodisa protsedurasi bajariladi WhenCreatedOnServer.

Keling, boshqariladigan 1C ilovasida shakllarni tezroq va qulayroq ochishga imkon beruvchi boshqa usullarni ko'rib chiqaylik. Muayyan vaziyatga qarab, turli usullardan foydalanish mumkin.

1. Boshqariladigan ilovada ob'ekt formasini qanday ochish mumkin, agar unga havola mavjud bo'lsa.

Bunday holda, hamma narsa juda oddiy.

RefLink = Kataloglar. Nomenklatura. FindByCode("000000001" );
OpenValue (RefLink);

2. Tanlov shaklini qanday ochish va keyin tanlangan qiymatni olish.

Buning uchun funksiya mavjud EnterValue(). Funktsiya 3 ta parametrga ega:

  • Tanlangan qiymat yoziladigan o'zgaruvchi;
  • Tanlash oynasida ko'rsatiladigan maslahat;
  • Tanlangan qiymatlar turlarining tavsifi. Bir nechta turlar bo'lishi mumkin, bu holda ma'lum bir qiymatni tanlashdan oldin sizdan turni tanlashingiz so'raladi.

Funktsiyani bajarish natijasida ko'rsatilgan turdagi ob'ekt uchun standart tanlash shakli ochiladi.

O'zgaruvchan qiymat;
Massiv = yangi massiv;
Massiv. Qo‘shish(Tur( "DirectoryLink.Nomenklatura") ) ;
Massiv. Qo‘shish(Tur( "DirectoryLink. Qarama-qarshi tomonlar") ) ;

TypeDescription= new TypeDescription(Array) ;

Res = EnterValue(Qiymat, "Maslahat" , TypeDescription);

Oldingi usullar faqat ob'ektlar uchun standart shakllarni ochishga imkon berdi (ob'ekt shakli yoki tanlov shakli). Agar siz maxsus shaklni ochishingiz kerak bo'lsa, funksiyadan foydalanishingiz mumkin OpenForm().

Ushbu funktsiya juda ko'p parametrlarga ega. Keling, ulardan ba'zilarini ko'rib chiqaylik:

  • Shakl nomi— bu yerda siz ob'ektning standart shakllaridan birini tanlashingiz mumkin, masalan, Tanlov shakli yoki Ro'yxat shakli. Yoki ishlab chiquvchilar tomonidan yaratilgan maxsus shakl.
  • Variantlar— shakldagi shaklga o'tkazish imkonini beradi tuzilmalar uni ochishdan oldin ba'zi parametrlar, shu bilan chiqish ma'lumotlarini aniqlash. Parametrlar mijozdan serverga uzatilishi mumkin bo'lgan har qanday ma'lumotlar bo'lishi mumkin. Shaklni ochishda o'tgan parametrlar protsedurada qayta ishlanishi mumkin WhenCreatingOnServer() ochilayotgan shaklda.
  • Shaklni ochish rejimi— 3 ta variant mavjud: mustaqil, butun interfeysni bloklash, egasi formasini bloklash.

Funktsiya qanday ishlatilishini ko'rib chiqaylik OpenForm() turli vaziyatlarda.

3. Mavjud obyektning shakli qanday ochiladi

Har bir shakl bitta asosiy atributga ega. Shakl tafsilotlari ro'yxatida qalin shrift bilan ta'kidlangan va odatda chaqiriladi Ob'ekt ma'lumotnomalar va hujjatlarning elementlari shakllarida. Boshqa ob'ektlar boshqa nomga ega bo'lishi mumkin. Mavjud ob'ektning formasini ochish uchun ochilayotgan shaklga parametr o'tkazish kerak Kalit ob'ektga havola sifatida qiymat bilan.

&OnClient
Protsedura buyrug'i 1 (buyruq)
Parametr = yangi tuzilma;
Parametr. Insert("Key" , FindC() );
OpenForm(, Parametr);
EndProcedure

&Serverda
FindC();
Kataloglarni qaytarish. Qarama-qarshi tomonlar. FindByRequisites ("TIN", "745107734623")
EndFunction

4. Yangi obyekt formasini ochish

Bu yerda oddiy funksiya bajariladi OpenForm() hech qanday parametrlarsiz.

&OnClient
Protsedura buyrug'i 1 (buyruq)
OpenForm( "Katalog. Qarama-qarshi tomonlar. Ob'ekt shakli") ;
EndProcedure

5. Yangi ob'ekt shaklini qanday ochish va uni biror narsaga asoslanib to'ldirish

Siz parametrni kiritishingiz kerak Baza, uning qiymati to'ldirish asosiy ob'ektiga havola bo'ladi. Bu protsedurani boshlaydi ProcessFill().

&OnClient
Protsedura buyrug'i 1 (buyruq)
Parametr = yangi tuzilma;
Parametr. Insert ("Asosiy", LinkToBuyerAccount) ;
OpenForm( "Hujjat. Tovar va xizmatlarni sotish. Ob'ekt shakli", Parametr);
EndProcedure

Ushbu misol hujjatni yaratadi Tovar va xizmatlarni sotish va xaridorga to'lov uchun schyot-faktura asosida to'ldiriladi, unga havola uzatiladi.

6. Shaklni ochish va undagi tanlovni o'rnatish

1C shakllari bo'yicha tanlov oddiy yoki murakkab bo'lishi mumkin. Oddiy tanlash kabi ifodalarni o'z ichiga oladi Tashkilot = Horns and Hooves MChJ. Kompleks tanlash boshqa turdagi taqqoslashni o'z ichiga oladi, masalan. Ro'yxatda. Ushbu maqolada biz oddiy tanlovni tashkil qilishni ko'rib chiqamiz va alohida maqola murakkab tanlovga bag'ishlanadi.

Oddiy tanlovni tashkil qilish uchun ochilayotgan shaklga kalit bilan parametrni o'tkazish kerak Tanlash, qiymat kalit dinamik ro'yxat maydonining nomi bo'lgan struktura bo'ladi va qiymat izlanayotgan ma'lumotlardir.

Masalan, katalog ro'yxati formasini ochamiz GTD raqamlari va u erda egasi - katalog elementi bo'yicha tanlov qiling Nomenklatura.

&OnClient
Protsedura buyrug'i 1 (buyruq)
Parametr = yangi tuzilma;

Tanlash= yangi tuzilma;
Tanlash. Insert("Egasi", LinkToNomenclature) ;

Parametr. Insert("Tanlash", Tanlash);

OpenForm( "Directory.GTD raqamlari.Ro'yxat shakli", Parametr);
EndProcedure

7. Axborot reestriga kirish blankasi qanday ochiladi

Buning uchun sizga ma'lumotlar registrini kiritish kaliti kerak bo'ladi.

Yozuv kaliti- bu barcha o'lchovlar va davrning qiymatlari (agar registr davriy bo'lsa). Ya'ni, yozuv kaliti - bu yozuvni yagona aniqlash mumkin bo'lgan parametrlar.

Ochilish algoritmi quyidagicha:

  1. Biz tuzilishga kerakli qiymatlar bilan asosiy yozuv ma'lumotlarini kiritamiz.
  2. Olingan strukturani massivga joylashtiramiz.
  3. Massivdan yozuv kalitini yaratamiz.
  4. Ochilgan formaga parametr o'tkazamiz Kalit qiymat sifatida 3-bosqichdagi yozuv kaliti bilan.

&OnClient
Protsedura buyrug'i 1 (buyruq)
Parametr = yangi tuzilma;

KeyParameters= yangi tuzilma;
Asosiy parametrlar. Insert("Nomenklatura", LinkToNomenklatura) ;
Asosiy parametrlar. Insert("PriceType", LinkToPriceType) ;
Asosiy parametrlar. Insert ("Don", Sana);

KeyArray = Yangi massiv;
KeyArray. Qo'shish (KeyParameters) ;

EntryKey = Yangi( "Axborot registrini qayd qilish kaliti. Narxlar nomenklaturasi", KeyArray);

Parametr. Insert("Kalit", RecordKey) ;

OpenForm( "Axborot reestri. Nomenklatura narxlari. Ro'yxatga olish shakli", Parametr);
EndProcedure

Chop etish (Ctrl+P)

Shakl opsiyalari

1. Umumiy ma’lumotlar

Shakl parametrlari (Options yorlig'i) ikkita maqsadga xizmat qiladi:
● Shaklning ochilishiga ta'sir qiluvchi ma'lumotlar to'plamini tavsiflang (shakl parametrlarini belgilash). Buni amalga oshirish uchun siz barcha kerakli parametrlarni sanab o'tishingiz va ularning turlarini ko'rsatishingiz kerak.
● Shaklning o'ziga xoslik kalitiga ta'sir qiladigan parametrlarni aniqlang. Buni amalga oshirish uchun siz mulkni o'rnatishingiz kerak Asosiy parametr shaklning yagonaligi kalitini shakllantirishda ishtirok etishi kerak bo'lgan parametrlar. Shaklni ochishga harakat qilganingizda, tizim yaratilgan shaklning yagonaligi kaliti yordamida mavjud shaklni qidiradi. Qabul qilingan kalitga ega shakl tizimda mavjud bo'lsa
o'ziga xoslik, aynan shu shakl qaytib keladi; bo'lmasa, yangi shakl yaratiladi.
Shaklni chaqirganda, ishlab chiquvchi tomonidan yaratilgan parametrlarning qiymatlari shakllarning tizim parametrlari (agar mavjud bo'lsa) bilan birga parametrlar tuzilishida ko'rsatilishi mumkin.
Shakl parametrlari uni yaratish vaqtida shaklga o'tkazilishi mumkin. O'tkazilgan parametrlarni tahlil qilish hodisada amalga oshirilishi mumkin WhenCreatingOnServer() (Parameters to'plami ob'ektning xususiyatidir Boshqariladigan shakl):

// Qo'ng'iroq joyida.
// Shakl parametrini yarating.
Parametrlar = new Structure();
Options.Insert("Ahamiyat", Oldindan belgilangan qiymat(“Ro‘yxatga olish.Ahamiyat.Muhim”));
// Shaklni parametrlar bilan oching.
OpenForm (“GeneralForm.ViewForm”, Parametrlar);

// Shakl modulida.
&Serverda
Jarayon WhenCreatingOnServer(muvaffaqiyatsizlik, standart ishlov berish)
Agar Parametrlar.Ahamiyati = Sanoqlar.Ahamiyat.Muhim o Keyin

endIf;
EndProcedure

DIQQAT! Voqea boshqaruvchisini chaqirgandan so'ng OnServer yaratilganda barcha kalit bo'lmagan shakl parametrlari Parameters to'plamidan o'chiriladi.
Maslahat. Keyingi ish uchun zarur bo'lgan asosiy bo'lmagan shakl parametrlari shakl ma'lumotlarida saqlanishi kerak.

2. Standart shakl parametrlari

Shakllar orasidagi avtomatik o'zaro ta'sirni qo'llab-quvvatlash uchun tizim ular ochilganda shakllarni boshqarish uchun ishlatiladigan bir qator standart parametrlarni taqdim etadi. Ushbu parametrlardan foydalanib, tizim shakl maydonlarida tanlov shakllaridan tanlashni, ob'ekt shakllarini ochishni, standart buyruqlar ishlashini va boshqalarni amalga oshiradi. Ya'ni ular tizimga o'rnatilgan turli xil interfeys ish stsenariylarini taqdim etadi.
Ammo ishlab chiquvchi ushbu parametrlarni o'rnatilgan tilda ham ishlatishi mumkin va ularni OpenForm() usulini chaqirganda o'tkazishi mumkin.
Shakl kengaytmasi turiga qarab standart shakl parametrlari ro'yxatini bo'limlarda topish mumkin O'rnatilgan til - Interfeys
(boshqariladigan) – Boshqariladigan shakl – Kengaytirilmoqda... o‘rnatilgan sertifikatlar

3. Forma parametrlari bilan ishlashga misol

Shakl parametrlari qanday ishlashini ko'rsatish uchun kirish maydonida elementni tanlashni amalga oshirishni ko'rib chiqamiz. Misolning mohiyati o'rnatilgan tilda ro'yxatdan elementni tanlash mexanizmini amalga oshirishdan iborat bo'ladi.
Misol bilan ishlashni boshlaganingizda, siz quyidagi xususiyatlarga ega konfiguratsiyaga ega bo'lishingiz kerak:
● guruhlar va elementlar ierarxiyasiga ega mahsulotlar katalogi mavjud;
● TanlanganMahsulot turi tafsilotlari bilan Analoglar katalogi mavjud DirectoryLink.Mahsulotlar;
● ikkala katalogda ham element shakllari mavjud.
Keling, ushbu konfiguratsiyada platforma o'rnatilgan tildagi ro'yxatdan elementni tanlash uchun foydalanadigan barcha mexanizmlarni amalga oshiramiz. Bunday holda biz quyidagilarni ko'ramiz:
● standart shakl parametrlaridan qanday foydalanilishi;
● tizimning o'zi ulardan qanday foydalanishi;
● ishlab chiquvchi ulardan qanday foydalanishi mumkinligi.
Elementni tanlagandan so'ng tanlov formasining yopilishini boshqaradigan qo'shimcha parametr qo'shamiz. Keling, ushbu parametrni chaqiraylik CloseAfterSelection(Boolean turi). Uni Mahsulotlar katalogini tanlash uchun forma parametri sifatida qo'shamiz.
Element tanlash formasini ochish uchun Tanlangan mahsulot formasi elementining forma elementida Tanlashni boshlash hodisasi uchun hodisa ishlov beruvchisini yaratishingiz kerak.

&OnClient
Jarayon SelectedProductStartSelection(Element, StandardProcessing)
Standart ishlov berish= False;
Tanlash opsiyalari= Yangi tuzilma;
Tanlash imkoniyatlari. Insert("SelectionMode", rost);
Tanlash imkoniyatlari. Insert(“Guruhlar va elementlarni tanlash”, GroupsAndElements.Elements dan foydalanish);
Tanlash imkoniyatlari. Insert(“AllowRootSelection”, False);
Tanlash imkoniyatlari. Insert(“CurrentLine”, Object.SelectedMahsulot);
Tanlash imkoniyatlari. Insert(“CloseAfterSelection”, False);
OpenForm (“Directory.Mahsulotlar.SelectionForm”, Tanlash opsiyalari, Items.SelectedItem);
EndProcedure
OpenForm() usulining uchinchi parametri haqida alohida to'xtalib o'tish kerak. Ushbu parametr tanlov shaklining egasi kim bo'lishini va kim tanlangani haqida bildirishnoma olishini belgilaydi. Bunday holda, biz tanlov formasining egasi sifatida shakl elementining o'zini ko'rsatdik, lekin biz ushbu parametr bilan shaklning o'zini ham belgilashimiz mumkin. Bunday holda, ishlov beruvchini amalga oshirish kerak bo'ladi Qayta ishlash tanlovi forma moduli va unda tanlangan ma'lumotlarni qaysi forma atributiga joylashtirishni hal qiling.
ESLATMA. Agar biz StartSelection hodisasi ishlovchisini amalga oshirmasak, u holda uning harakatlari tizimning o'zi tomonidan amalga oshiriladi. Bu misolda ishlatiladigan barcha boshqa ishlov beruvchilar uchun amal qiladi.
Endi siz tanlov shaklida o'tgan parametrlarni qayta ishlashingiz kerak. Keling, buni ishlov beruvchida qilaylik OnServer yaratilganda() tanlov shakli moduli.

&Serverda
Jarayon WhenCreatingOnServer(Muvaffaqiyatsizlik, StandardProcessing)
Standart ishlov berish= False;
Elements.List.SelectingGroupsAndElements = Parameters.SelectingGroupsAndElements;
Elements.List.AllowRootSelection = Parameters.AllowRootSelection;
Elements.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Options.CloseAfterSelection;
EndProcedure
Biz o'rnatgan shakl parametrlarining funksionalligini tekshirish uchun konfiguratordan foydalanib, tanlov formasi jadvali uchun List xususiyatini o'rnating. Guruhlar va elementlarni tanlash Guruhlar qiymatiga (parametrdan foydalanmasdan, katalog elementlarini tanlash mavjud bo'lmaydi).
ESLATMA. Agar mahsulotlar ro'yxati aks ettirilgan ro'yxat jadvalida SelectionMode xususiyati rost bo'lmasa, u holda mahsulotlarni tanlash imkonsiz bo'ladi.
Endi biz tanlov formasida kerakli elementni tanlash bilan shug'ullanishimiz kerak. Buning uchun siz formalar jadvalining SelectValue hodisasi uchun ishlov beruvchini belgilashingiz kerak.

&OnClient
Jarayon ListValueSelection(Element, StandardProcessing, Qiymat)
Standart ishlov berish= False;
NotifyOfSelection(Qiymat);
EndProcedure
Biz qilishimiz kerak bo'lgan narsa kirish maydonida elementlarni tanlashni qayta ishlashni amalga oshirishdir. Buni amalga oshirish uchun siz hodisani boshqarishingiz kerak Qayta ishlash tanlovi bizning kirish maydonimiz SelectedProduct.

&OnClient
Jarayon SelectedItemSelectionProcessing(Item, SelectedValue, StandardProcessing)
Standart ishlov berish= False;
Object.SelectedProduct = SelectedValue;
EndProcedure
Shaklning kiritish maydonida qiymatni tanlash uchun tizim mexanizmini mustaqil ravishda amalga oshirdik.
DIQQAT! Ushbu misol to'liq emas. Uning yagona maqsadi shakl parametrlari bilan ishlash mexanizmlarini ko'rsatishdir.
Agar parametrlarni yaratishda (ishlovchi SelectedProductStartSelection()) qatorni almashtiring:

Tanlash imkoniyatlari. Insert("CloseAfterSelection", rost);
har bir satr uchun:
Tanlash imkoniyatlari. Insert(“CloseAfterSelection”, False);
keyin tanlov shakli tanlangandan keyin yopilmaydi. Bu, masalan, tanlov shaklini amalga oshirish uchun ishlatilishi mumkin (tanlov shaklini yopmasdan bir nechta mahsulotni tanlash).

Biz ushbu asosiy shakl bilan ishlov beramiz:

Ushbu formadan biz qo'shimcha shakl ochishimiz kerak va forma maydonidagi matn ochilgan shaklga o'tkazilishi kerak. Qo'shimcha shakl quyidagicha:

Shunday qilib, "Ishga tushirish" tugmasini bosganingizda, maydonga allaqachon kiritilgan matn bilan qo'shimcha shakl ochiladi:

Keling, bunday muammoni hal qilish yo'lini ko'rib chiqaylik.

Yechim

Oddiy shakllar o'rtasida parametrlarni uzatish uchun siz forma modulining global eksport o'zgaruvchisidan foydalanishingiz yoki forma atributini yaratishingiz mumkin. Keling, vazifamiz uchun ikkala usulni ham ko'rib chiqaylik.

1. Shakl modulining global eksport o'zgaruvchisidan foydalanish.

"Ishga tushirish" tugmachasini qayta ishlash protsedurasining asosiy shaklida quyidagi dastur kodini qo'shing:

Protsedura tugmasiExecutePress(Button)Form = GetForm(" Qo'shimcha shakl" ) ; // "Matn" ochilayotgan shakl modulining global eksport o'zgaruvchisidir Shakl. Matn = FormElements. Matn. Ma'nosi; Shakl. Ochiq(); EndProcedure

Matn o'zgaruvchisi ochilayotgan shakl moduliga "BeforeOpen" voqea ishlovchisi bilan birga qo'shildi:

O'zgaruvchan matnni eksport qilish; // Boshqa shakldagi qiymat uzatiladigan o'zgaruvchi FormElementsOpen(Muvaffaqiyatsizlik, StandardProcessing)FormElementsdan oldin protsedura. Transmitted Text. Qiymat = Matn; EndProcedure

Muammo hal qilindi va juda oddiy!

2. Shakl tafsilotlaridan foydalanish.

Ikkinchi usul uchun biz "Run" va "BeforeOpen" tugmachalarini qayta yozishimiz shart emas. Buning uchun ochilgan shaklga satr turi bilan "Matn" atributini qo'shish kifoya.

xulosalar

Boshqariladigan shakllarda parametrlarni o'tkazish ancha oson. An'anaviy shakllarda ko'p hollarda tavsiflangan yondashuv qo'llaniladi.

Siz maqoladagi misolni qayta ishlashingiz mumkin havoladan yuklab oling.