Uy / Sozlama / 1c parametrlarni tanlash shakliga o'tkazadi. Parametrlarni boshqariladigan va muntazam shakllarga o'tkazish. Tanlangan shaklni qanday ochish va keyin tanlangan qiymatni olish

1c parametrlarni tanlash shakliga o'tkazadi. Parametrlarni boshqariladigan va muntazam shakllarga o'tkazish. Tanlangan shaklni qanday ochish va keyin tanlangan qiymatni olish

Chop etish (Ctrl+P)

Shakl opsiyalari

1. Umumiy ma’lumotlar

Shakl parametrlari (Parameters yorlig'i) ikkita maqsadga xizmat qiladi:
● Shaklning ochilishiga ta'sir qiluvchi ma'lumotlar to'plamini tavsiflang (shaklni parametrlash). Buni amalga oshirish uchun siz barcha kerakli parametrlarni sanab o'tishingiz va ularning turlarini ko'rsatishingiz kerak.
● Shaklning yagonaligi kalitiga ta'sir qiladigan parametrlarni aniqlang. Buni amalga oshirish uchun siz mulkni o'rnatishingiz kerak Asosiy parametr shaklning o'ziga xosligi kalitini shakllantirishda ishtirok etishi kerak bo'lgan parametrlar. Shaklni ochmoqchi bo'lganingizda, tizim yaratilgan shaklning yagonaligi kaliti yordamida mavjud shaklni qidiradi. Tizimda qabul qilingan kalit bilan forma mavjud bo'lsa
o'ziga xoslik, bu shakl qaytariladi; bo'lmasa, yangi shakl yaratiladi.
Shakl chaqirilganda, ishlab chiquvchi tomonidan yaratilgan parametr qiymatlari shakl tizimi parametrlari (agar mavjud bo'lsa) bilan birga parametr tuzilmasida ko'rsatilishi mumkin.
Shakl parametrlari uni yaratish vaqtida shaklga o'tkazilishi mumkin. O'tkazilgan parametrlarni tahlil qilish hodisada amalga oshirilishi mumkin OnCreateOnServer() (Parameters to'plami ob'ektning xususiyatidir Boshqariladigan shakl):

// Qo'ng'iroq saytida.
// Shakl parametrini shakllantirish.
Parametrlar = New Struct();
Options.Paste("Ahamiyat", Oldindan belgilangan qiymat(“Ro‘yxatga olish.Ahamiyat.Muhim”));
// Shaklni parametrlar bilan oching.
OpenForm("GeneralForm.ViewForm", Parametrlar);

// Shakl modulida.
&Serverda
Jarayon OnCreateOnServer (muvaffaqiyatsizlik, standart ishlov berish)
Agar a Parametrlar.Ahamiyati = Enums.Ahamiyat.Muhim Oh, keyin

EndIf;
EndProcedure

DIQQAT! Voqea boshqaruvchisini chaqirgandan so'ng OnCreateOnServer barcha kalit bo'lmagan shakl parametrlari Parameters to'plamidan olib tashlanadi.
Maslahat. Forma ma'lumotlarida keyingi ish uchun zarur bo'lgan asosiy bo'lmagan shakl parametrlari saqlanishi kerak.

2. Standart shakl variantlari

Shakllar o'rtasidagi avtomatik o'zaro ta'sirni qo'llab-quvvatlash uchun tizim bir qatorni ta'minlaydi standart parametrlar, ular ochilganda shakllarni boshqarish uchun ishlatiladi. Ushbu parametrlar yordamida tizim shakl maydonlarida tanlov shakllaridan tanlashni, ob'ekt shakllarini ochishni, standart buyruqlar ishlashini va boshqalarni amalga oshiradi. Ya'ni ular tizimga kiritilgan turli xil interfeys ish stsenariylarini ta'minlaydi.
Ammo ishlab chiquvchi ushbu parametrlarni 1C: Enterprise tilida OpenForm() usulini chaqirganda ularni o'tkazish orqali ham ishlatishi mumkin.
Shakl kengaytmasi turiga qarab standart shakl parametrlari ro'yxatini bo'limlarda topish mumkin O'rnatilgan til - interfeys
(boshqariladigan) - Boshqariladigan shakl - Kengaytma...inline havolalar.

3. Forma parametrlari bilan ishlashga misol

Shakl parametrlari qanday ishlashini ko'rsatish uchun kirish maydonida elementni tanlashni amalga oshirishni ko'rib chiqaylik. Misolning mohiyati o'rnatilgan tilda ro'yxatdan elementni tanlash mexanizmini amalga oshirishdan iborat bo'ladi.
Misol bilan ishlashni boshlaganingizda, siz quyidagi xususiyatlarga ega bo'lgan konfiguratsiyaga ega bo'lishingiz kerak:
● guruhlar va elementlar ierarxiyasiga ega Tovarlar katalogi mavjud;
● SelectedMahsulot turi atributiga ega Analoglar katalogi mavjud DirectoryLink.Mahsulotlar;
● Ikkala ma'lumotnomada ham ob'ektlar shakllari mavjud.
Endi biz ushbu konfiguratsiyada platforma o'rnatilgan tilda ro'yxatdan elementni tanlash uchun foydalanadigan barcha mexanizmlarni amalga oshiramiz. Bunda biz quyidagilarni ko'ramiz:
● standart shakl parametrlaridan qanday foydalanilishi;
● tizim ulardan qanday foydalanishi;
● ishlab chiquvchi ulardan qanday foydalanishi mumkinligi.
Qo'shamiz qo'shimcha parametr Element tanlangandan so'ng tanlangan formaning yopilishini boshqaradigan. Keling, ushbu parametrni chaqiraylik CloseAfterSelection(boolean turi). Uni formaning parametri sifatida qo'shamiz Tovarlar katalogining Tanlash shakli.
Element tanlash formasini ochish uchun Analogues katalog elementi ko‘rinishida SelectedItem forma elementida SelectStart hodisasi uchun hodisa ishlov beruvchisini yaratish kerak.

&AtClient
Jarayon SelectedItemSelectionStart(Element, StandardProcessing)
Standart ishlov berish= noto'g'ri;
Tanlov imkoniyatlari= Yangi tuzilma;
SelectionParameters.Insert(“SelectionMode”, rost);
SelectionParameters.Insert(“SelectGroupsAndItems”, GroupsAndItems.Items-dan foydalanish);
SelectionParameters.Insert(“AllowRootSelection”, False);
SelectionParameters.Insert(“CurrentLine”, Object.SelectedItem);
SelectionParameters.Insert(“CloseAfterSelection”, False);
OpenForm (“Katalog.Mahsulotlar.TanlashForm”, Tanlov imkoniyatlari, Items.SelectedMahsulot);
EndProcedure
OpenForm() usulining uchinchi parametriga alohida to'xtalib o'tishimiz kerak. Ushbu parametr tanlov shaklining egasi kim bo'lishini va tanlangan tanlov haqida kimga xabar berilishini belgilaydi. DA bu holat biz tanlov formasining egasi sifatida shakl elementining o‘zini ko‘rsatdik, lekin bu parametr bilan shaklning o‘zini ham belgilashimiz mumkin. Bunday holda, ishlov beruvchini amalga oshirish kerak bo'ladi HandlingChoice forma moduli va unda tanlangan ma'lumotlarni qaysi forma atributiga joylashtirishni hal qiling.
ESLATMA. Agar biz StartChoice voqea ishlovchisini amalga oshirmasak, u holda tizim o'z harakatlarini bajaradi. Bu misolda ishlatiladigan barcha boshqa ishlov beruvchilar uchun amal qiladi.
Endi biz tanlangan shaklda o'tgan parametrlarni qayta ishlashimiz kerak. Keling, buni ishlov beruvchida qilaylik OnCreateOnServer() tanlov formasi modulining.

&Serverda
Jarayon OnCreateOnServer(Muvaffaqiyatsizlik, StandardProcessing)
Standart ishlov berish= noto'g'ri;
Elements.List.SelectGroupsAndItems = Parameters.SelectGroupsAndItems;
Elements.List.AllowSelectRoot = Parameters.AllowSelectRoot;
Items.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Parameters.CloseAfterSelection;
EndProcedure
Biz belgilagan shakl parametrlarining ishlashini tekshirish uchun konfiguratordan foydalanib, tanlov formasi jadvalining List xususiyatini o'rnatamiz. Guruhlar va elementlarni tanlang Guruhlar qiymatiga (parametrni qo'llamasdan, lug'at elementlarini tanlash mavjud bo'lmaydi).
ESLATMA. Agar mahsulotlar ro'yxatini ko'rsatadigan Ro'yxat jadvalida SelectionMode xususiyati rost ga o'rnatilmagan bo'lsa, u holda mahsulotlar tanlovi mavjud bo'lmaydi.
Endi biz tanlov formasida kerakli elementni tanlash bilan shug'ullanishimiz kerak. Buni amalga oshirish uchun siz forma jadvalining SelectValues ​​hodisasi uchun hodisa ishlovchisini belgilashingiz kerak.

&AtClient
Jarayon ListSelectionValues(Element, StandardProcessing, Qiymat)
Standart ishlov berish= noto'g'ri;
NotifySelection(Qiymat);
EndProcedure
Biz uchun kirish maydonida elementni tanlashni qayta ishlashni amalga oshirish qoladi. Buning uchun siz hodisani boshqarishingiz kerak HandlingChoice bizning kirish maydonimiz SelectedProduct.

&AtClient
Jarayon SelectedItemProcessingChoice(Item, SelectedValue, StandardProcessing)
Standart ishlov berish= noto'g'ri;
Object.SelectedItem = SelectedValue;
EndProcedure
Biz shakldagi kiritish maydonida qiymat tanlash uchun tizim mexanizmini mustaqil ravishda amalga oshirdik.
DIQQAT! Ushbu misol to'liq emas. Uning yagona maqsadi shakl parametrlari bilan ishlash mexanikasini ko'rsatishdir.
Agar parametrlarni yaratishda (handler SelectedItemSelectionStart()) qatorni almashtiring:

SelectionParameters.Insert(“CloseAfterSelection”, rost);
qatorga:
SelectionParameters.Insert(“CloseAfterSelection”, False);
keyin tanlov amalga oshirilgandan so'ng tanlov shakli yopilishini to'xtatadi. Bu, masalan, tanlov shaklini amalga oshirish uchun ishlatilishi mumkin (tanlov shaklini yopmasdan bir nechta mahsulotni tanlash).

Shakllar orasidagi avtomatik o'zaro ta'sirni qo'llab-quvvatlash uchun tizim ular ochilganda shakllarni boshqarish uchun ishlatiladigan bir qator standart variantlarni taqdim etadi. Ushbu parametrlar yordamida tizim shakl maydonlarida tanlov shakllaridan tanlashni, ob'ekt shakllarini ochishni, standart buyruqlar ishlashini va boshqalarni amalga oshiradi. Ya'ni ular tizimga kiritilgan turli xil interfeys ish stsenariylarini ta'minlaydi. Ammo ishlab chiquvchi ushbu parametrlarni 1C: Enterprise tilida OpenForm() usulini chaqirganda ularni o'tkazish orqali ham ishlatishi mumkin.

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

  • Tanlash rejimi– forma tanlash rejimida ochiladi. Kengaytma tomonidan taqdim etilgan boshqariladigan shakl dinamik ro'yxat.
  • CurrentLine– ochilganda ro‘yxatda faollashtiriladigan qator. Qatorni aniqlaydigan qiymat o'tkaziladi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • Guruhlar va elementlarni tanlang– bu parametr formaning asosiy atributi jadvalining SelectGroupAndItems xususiyatini o‘rnatadi. Dinamik roʻyxat boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • AllowSelectionRoot– daraxt sifatida ko‘rsatilgan dinamik ro‘yxat bilan shaklda ildizni tanlash mumkinligini aniqlaydi. Daraxt sifatida ko'rsatilgan dinamik ro'yxatning boshqariladigan shakl kengaytmasi tomonidan taqdim etilgan.
  • Tanlash– dinamik ro‘yxatdagi tanlov to‘plami. Tuzilmani 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 shakllari va ma'lumotlar registrlari ro'yxatga olish boshqaruvchisi kengaytmalari bilan ta'minlangan.
  • ValueCopy- yangi ob'ekt yaratishda nusxa ko'chirish uchun foydalaniladigan ob'ektni identifikatsiya qiluvchi qiymat. Ob'ekt shakllari va ma'lumotlar registrlari ro'yxatga olish boshqaruvchisi kengaytmalari bilan ta'minlangan.
  • Qiymatlarni to'ldirish- yangi ob'ekt tafsilotlarini to'ldirish uchun qiymatlar. Tuzilmani ifodalaydi. Elementlarning nomlari atributlarning nomlariga mos keladi va qiymatlar ko'rsatilgan atributlarni to'ldirish uchun ishlatiladigan ma'lumotlarni o'z ichiga oladi. Ob'ekt shakllari va ma'lumotlar registrlari ro'yxatga olish boshqaruvchisi kengaytmalari bilan ta'minlangan.
  • Baza- yangi ob'ektni yaratishda asos sifatida ishlatiladigan ob'ektni 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 chiqaylik. Misolning mohiyati o'rnatilgan tilda ro'yxatdan elementni tanlash mexanizmini amalga oshirishdan iborat bo'ladi.

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

  • Asosiy ishga tushirish rejimi - boshqariladigan dastur;
  • guruhlar va elementlar ierarxiyasiga ega Tovarlar katalogi mavjud;
  • DirectoryReference.Goods tipidagi SelectedItem atributiga ega Analoglar katalogi mavjud;
  • ikkala ma'lumotnomada ham boshqariladigan element shakllari mavjud.

Endi biz ushbu konfiguratsiyada platforma o'rnatilgan tilda 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.

Element tanlanganidan keyin tanlov formasining yopilishini boshqaradigan qo'shimcha bayroqni qo'shamiz. Keling, bu bayroqni CloseAfterSelection (Mantiqiy tip) deb ataymiz. Keling, uni tovarlar katalogini tanlash formasining forma parametri sifatida qo'shamiz.

Element tanlash formasini ochish uchun Analogues katalogi element formasidagi SelectedItem forma elementi uchun SelectStart hodisasi uchun hodisa ishlov beruvchisini yaratish kerak:

&AtClient

SelectedItemSelectionStart protsedurasi (element, standart ishlov berish)

StandardProcessing = False;

ChoiceParameters = Yangi tuzilma; SelectionParameters.Insert("SelectionMode", rost); SelectionParameters.Insert("SelectGroupsAndItems", UseGroupsAndItems.Elements); SelectionParameters.Insert("AllowRootSelection", False); ChoiceParameters.Insert("CurrentRow", Object.SelectedItem); SelectionParameters.Insert("CloseAfterSelection", False); OpenForm("Katalog.Mahsulotlar.ChoiceForm", ChoiceParameters, Elements.SelectedProduct);

EndProcedure

OpenForm() usulining uchinchi parametriga alohida to'xtalib o'tishimiz kerak. Ushbu parametr tanlov shaklining egasi kim bo'lishini va tanlangan tanlov haqida kimga xabar berilishini 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, forma modulining SelectProcess ishlov beruvchisini amalga oshirish va unda tanlangan ma'lumotlarni qaysi forma atributiga joylashtirishni hal qilish kerak bo'ladi.

Boshqariladigan 1C ilovasida shakllarni dasturiy ravishda ochish ularni oddiy dasturda ochishdan sezilarli darajada farq qiladi. Keling, eski usuldan boshlaylik. Shaklni qabul qilish va undan 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. Qayta ishlash uchun kodni biroz o'zgartirish kerak:

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

Shuni esda tutish kerakki, ariza qabul qilinganda, boshqa hodisa protsedurasi amalga oshiriladi OnCreateOnServer.

Boshqariladigan 1C ilovasida shakllarni tezroq va qulayroq ochishga imkon beruvchi boshqa usullarni ko'rib chiqing. Muayyan vaziyatga qarab turli xil usullar qo'llanilishi mumkin.

1. Boshqariladigan ilovada ob'ektning shakli, agar unga havola mavjud bo'lsa, qanday ochiladi.

Bunday holda, hamma narsa juda oddiy.

RefReference= Malumotnomalar. Nomenklatura. FindByCode("000000001" );
OpenValue (Reference Reference);

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, keyin 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 sukut bo'yicha ob'ektlar uchun o'rnatilgan shakllarni ochishga imkon berdi (ob'ekt shakli yoki tanlov shakli). Agar siz ixtiyoriy shaklni ochishingiz kerak bo'lsa, funktsiyadan foydalanishingiz mumkin OpenForm().

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

  • Shakl nomi- bu erda ob'ektning standart shakllaridan birini tanlashingiz mumkin, masalan, Shaklni tanlash yoki Shakllar ro'yxati. 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 OnCreateOnServer() ochilgan shaklda.
  • Shaklni ochish rejimi- 3 ta variant mavjud: mustaqil, butun interfeysni blokirovka qilish, egasi shaklini blokirovka qilish.

Keling, funktsiya qanday ishlatilishini ko'rib chiqaylik OpenForm() turli vaziyatlarda.

3. Mavjud obyektning shakli qanday ochiladi

Har bir shakl bitta asosiy atributga ega. U shakl atributlari ro'yxatida qalin shrift bilan ta'kidlanadi va odatda chaqiriladi Ob'ekt ma'lumotnomalar, hujjatlar elementlari shakllarida. Boshqa ob'ektlar boshqa nomga ega bo'lishi mumkin. Mavjud ob'ektning formasini ochish uchun ochilgan shaklga parametrni o'tkazish kerak Kalit ob'ektga havola sifatida qiymat bilan.

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

&Serverda
FindC() funktsiyasi;
Qo'llanmalarni qaytarish. Qarama-qarshi tomonlar. FindByAttribute ("TIN", "745107734623" )
EndFunctions

4. Yangi obyektning shakli qanday ochiladi

Bu shunchaki funksiya OpenForm() hech qanday parametrlarsiz.

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

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

Parametrni o'tkazish kerak Baza, uning qiymati to'ldirish asosiy ob'ektiga havola bo'ladi. Bu protsedurani boshlaydi HandleFill().

&AtClient
Protsedura buyrug'i 1 (buyruq)
Parametr = yangi tuzilma;
Parametr. Insert("Sabab", LinkToAccountToBuyer) ;
OpenForm( "Hujjat. Tovar va xizmatlarni realizatsiya qilish. Ob'ekt shakli", Parametr);
EndProcedure

Ushbu misol hujjat yaratadi Tovar va xizmatlarni sotish va havolasi o'tkazilgan xaridorga to'lash uchun hisob-faktura asosida to'ldiriladi.

6. Shaklni ochish va undagi tanlovni o'rnatish

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

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

Masalan, qidiruv ro'yxati formasini ochamiz GTE bo'lmagan va biz u erda egasi tomonidan tanlov qilamiz - katalog elementi Nomenklatura.

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

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

Parametr. Insert("Tanlash", Tanlash);

OpenForm( "Directory.GTE Numbers.Ro'yxat shakli", Parametr);
EndProcedure

7. Axborot reestriga kirish blankasi qanday ochiladi

Buning uchun sizga ma'lumotlar registrining qayd kaliti kerak bo'ladi.

Yozib olish kaliti barcha o'lchovlar va davr qiymatlari (agar registr davriy bo'lsa). Ya'ni, yozuvning kaliti yozuvni yagona aniqlash mumkin bo'lgan parametrlardir.

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. Parametrni ochilgan shaklga o'tkazish Kalit qiymat sifatida 3-banddan yozuv kaliti bilan.

&AtClient
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);

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

RecordKey = Yangi( "Axborot registrini qayd qilish kaliti. Nomenklatura narxlari", ArrayKey);

Parametr. Insert("Kalit", RecordKey) ;

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

Ushbu maqolada boshqariladigan shakl 8.2 ni ochishda qiymatni parametr sifatida parametr sifatida qanday o'tkazish, xuddi shunday operatsiyani oddiy shakllarda qanday amalga oshirish mumkinligi bilan solishtirganda tasvirlangan.

Oddiy shakllarda parametrlar qanday uzatiladi

Oddiy shakllarda parametrni o'tkazish uchun ikkita imkoniyat mavjud edi:
1) kamroq tarqalgan usul: "Tafsilotlar" yorlig'ida ob'ekt shaklida tafsilotlar qo'shilgan, agar kerak bo'lsa, kirish vizual vositalar bilan aniqlangan.
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("ChoiceForm",FormOwner,UniqueKey);
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", LastItem);
ChoiceForm = GetForm("Katalog.Nomenklatura.TanlashForm",Parametrlar);
FoundItem = ChoiceForm.OpenModal();

Shuningdek, boshqariladigan formada "shakl kengaytmalari" mavjud (ob'ekt, katalog, hujjat, hisobot). Ob'ekt turiga qarab, mavjud parametrlar ro'yxati aniqlanadi. Masalan, lug'atni tanlash shaklida ma'lum bir elementga joylashtirishingiz kerak bo'lsa, u holda "CurrentValue" parametri ishlatiladi. Katta afzallik shundaki, shaklning o'zida oldindan belgilangan parametrlar uchun ishlov beruvchilarni yozish talab qilinmaydi, bu kod miqdorini kamaytiradi.

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

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

1) Boshqariladigan shaklda parametrni aniqlang.
OnCreateAtServer ishlov beruvchisida ushbu parametrni qayta ishlashni aniqlang (o'tkazilgan parametrlarga FormDataStructure tipidagi "Parameters" xususiyati orqali kirish)
2) Shaklni qabul qilishni tavsiflang va GetForm funksiyasining parametrlarida yangi parametr qiymatini o'tkazing.
Shunday qilib, kod quyidagicha ko'rinadi:
- Shaklni qabul qilish joyida

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

Boshqariladigan shakl modulida

&Serverda
CreationOnServer (Muvaffaqiyatsizlik, Standart ishlov berish) bo'yicha protsedura
Agar Parameters.Property("NewParameter") Keyin
// bu yerda parametrlarni qayta ishlash kodi
EndIf;
EndProcedure

Xulosa

Ehtimol, bu maqola kimgadir foydali bo'ladi, bu vaqtni tejaydi va sizni keraksiz koddan qutqaradi. Haqida batafsil ma'lumot olish uchun to'liq ro'yxat boshqariladigan shakl parametrlari uchun "Boshqariladigan interfeys \ Boshqariladigan shakl" yordamiga qarash tavsiya etiladi.

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