Keling, ushbu maqolada ko'rib chiqaylik bosqichma-bosqich ko'rsatmalar 1C 8.3 da boshqariladigan dastur rejimida tashqi ishlov berishni yaratish uchun biz boshqariladigan shakllardan foydalanamiz. Va eng muhimi, biz uni standart quyi tizimlarning 2.0 va undan keyingi versiyalari kutubxonasida qurilgan 1C konfiguratsiyasini "tashqi ishlov berish" mexanizmiga qanday ulashni o'rganamiz.
Vazifa quyidagilardan iborat bo'ladi: "Item" katalogida guruhli harakatni amalga oshiradigan eng oddiy tashqi ishlov berishni yaratish, ya'ni belgilangan elementlar guruhi uchun tanlangan QQS stavkasini o'rnatish.
Buning uchun biz darhol dasturda kerakli sozlamalarni o'rnatamiz (biz 1C 8.3 konfiguratsiyasini ko'rib chiqamiz: boshqariladigan shakllarda "Korxona hisobi 3.0").
Ushbu katakchani belgilash bizga tashqi ishlov berishdan foydalanish imkoniyatini beradi.
Misol yordamida 1C 8.3 da yangi tashqi ishlov berishni yaratish
Endi konfiguratorga o'tamiz. "Fayl" menyusida "Yangi ..." ni tanlang. Yaratiladigan fayl turini tanlash oynasi ochiladi. "Tashqi ishlov berish" ni tanlang:
Yangi tashqi ishlov berish oynasi ochiladi. Keling, darhol unga nom beraylik. Bu ishlov berishni diskka saqlashda taklif qilinadi:
Keling, yangi boshqariladigan ishlov berish shaklini qo'shamiz. Biz shuni ko'rsatamizki, bu qayta ishlash shakli va u asosiysi:
Shaklda ikkita ma'lumotga ega bo'lamiz:
- Nomenklatura guruhi - "Nomenklatura" katalogiga havola;
- SelectVATRate - QQS stavkasini o'tkazish uchun havola.
Yuqori o'ng oynadagi "Xususiyatlar" ustunida tafsilotlarni yaratamiz. Ularni sichqoncha bilan yuqori chap oynaga torting. Yangi tafsilotlar darhol quyidagi shaklda paydo bo'lishi kerak.
Tafsilotlar tartibini "yuqoriga" - "pastga" strelkalari yordamida o'zgartirish mumkin:
1C da 267 ta video darslarni bepul oling:
Faqatgina "O'rnatish" tugmasini qo'shish qoladi. Boshqariladigan shakllarda siz formaga shunchaki tugma qo‘sha olmaysiz. Agar siz uni forma elementlari tuzilishiga qo'shsangiz ham, u formaning o'zida ko'rinmaydi. Tugma u bajaradigan buyruq bilan bog'lanishi kerak. "Buyruqlar" yorlig'iga o'ting va "QQS stavkasini o'rnatish" buyrug'ini qo'shing. Buyruqning xususiyatlarida harakat yarating. "Mijozda" buyruqlar ishlovchisini tanlang. Buyruqni formaga oddiygina shakl elementlari bo'lgan bo'limga sudrab borish orqali ham qo'shish mumkin.
Form modulida bir xil nomdagi protsedura yaratiladi. Unda biz serverdagi protsedurani chaqiramiz:
&OnClient
QQS stavkasini belgilash tartibi (buyruq)
SetVATRateOnServer();
Jarayonning oxiri
Serverdagi protsedurada biz kichik so'rov va QQS stavkasini belgilash bilan bog'liq harakatlar yozamiz:
&Serverda
SetVATRateOnServer() protsedurasi
So'rov = Yangi so'rov;
So'rov.Matn =
"TANLANG
| Nomenklatura. Havola
|FROM
| Katalog.Nomenklatura AS Nomenklaturasi
|QAYERDA
| Nomenklatura.IERARXIYADAGI havola (&Nomenklatura guruhi)
| VA EMAS Nomenklatura.MarkDeletion
| VA Nomenklatura EMAS Bu guruhdir”;
Request.SetParameter("Elementlar guruhi", Elementlar guruhi);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();
SelectRecordDet.Next() tsikli paytida
Urinish
SprNomObject.Write();
Istisno
Hisobot("Obyektni yozishda xatolik """ + SprNomObject + """!
|» + DescriptionError());
EndAttempt;
EndCycle;
Jarayonning oxiri
Biz "Forma" yorlig'iga qaytamiz, shaklga tugma qo'shamiz va uni buyruq bilan bog'laymiz:
Shunday qilib, bizning qayta ishlashimiz foydalanishga tayyor. Uni chaqirish uchun "1C Enterprise" rejimida siz "Fayl" - "Ochish" menyusiga o'tishingiz va yaratilgan faylni tanlashingiz kerak.
Biroq, ushbu rejimda ishlash disk raskadrovka ishlovi uchun qulay, lekin foydalanuvchi uchun to'liq mos kelmaydi. Foydalanuvchilar hamma narsani "barmoq uchida", ya'ni ma'lumotlar bazasida bo'lishga odatlangan.
"Qo'shimcha hisobotlar va qayta ishlash" bo'limi aynan shu maqsadda.
Lekin u yerga ishlovimizni qo'shish uchun avvalo unga tavsif berishimiz va dasturga uning xususiyatlarini aytib berishimiz kerak.
"Tashqi qayta ishlash haqida ma'lumot" funktsiyasining tavsifi
Men ushbu funktsiyaning mazmuniga misol keltiraman. U eksport qilinadigan va shunga mos ravishda ishlov berish modulida joylashgan bo'lishi kerak:
Funktsiya InformationOnExternalProcessing() eksporti
DataForReg = Yangi tuzilma();
DataForReg.Insert("Ism", "QQS stavkasini belgilash");
DataForReg.Insert("Xavfsiz rejim", rost);
DataForReg.Insert("Versiya", "ver.: 1.001");
DataForReg.Insert("Ma'lumot", "Nomenklatura ma'lumotnomasida QQS stavkasini belgilash uchun ishlov berish");
DataForReg.Insert("Ko'rish", "Qo'shimcha ishlov berish");
Buyruqlar jadvali = NewValueTable;
TabZnCommands.Columns.Add("Identifikator");
TabZnCommands.Columns.Add("Foydalanish");
TabZnCommands.Columns.Add("Ko'rish");
NewRow = TabZnCommands.Add();
NewString.Identifier = "Ochiq ishlov berish";
NewRow.Use = "Ochiq shakl";
NewRow.View = "Ochiq ishlov berish";
DataForReg.Insert("Buyruqlar", TabZnCommands);
DataForReg-ni qaytarish;
EndFunction
Ro'yxatga olish ma'lumotlari strukturasining qaysi sohalaridan foydalanish kerakligini yaxshiroq tushunish uchun "Qo'shimcha hisobotlar va ishlov berish" katalogining tafsilotlarini ko'rib chiqaylik:
Ko'rib turganingizdek, hamma narsa juda oddiy. Faqat bitta atribut mos kelmaydi: "Ishga tushirish opsiyasi" - "Foydalanish". Agar biz umumiy modullardan birining kodini ko'rib chiqsak, ushbu maydonlarning bir to'plami qanday paydo bo'lishini ko'ramiz:
Strukturaning qaysi maydonlari talab qilinishini aniqlash uchun avval uni tavsiflay olmaysiz, shunchaki bo'sh joy yarating va keyin tuzatuvchidan foydalaning. Agar siz qayta ishlashni ro'yxatdan o'tkazayotganda modullarni kuzatib boradigan bo'lsangiz, qaysi maydonlar zarur va qaysi biri kerak emasligi darhol aniq bo'ladi.
1C 8.3 da tashqi ishlov berishni ulash
Tashqi ishlov berish bilan ishlash uchun (va tashqi chop etish shakli ham tashqi ishlov berishdir), ob'ekt mavjud Tashqi ishlov berish.
Keling, ikkita mumkin bo'lgan holatni ko'rib chiqaylik:
Tashqi ishlov berish diskda ma'lumotlar bazasidan alohida saqlanadi
1C-da tashqi ishlov berishni dasturiy ravishda ochish uchun siz uning faylining manzilini bilishingiz kerak. Buni bilib, siz qayta ishlash shaklini ochishingiz yoki u bilan keyingi harakatlarni amalga oshirish uchun ishlov berish ob'ektini olishingiz mumkin (masalan, ob'ekt modulidan eksport funktsiyalarini chaqirish uchun).
Tashqi ishlov berish shaklini ochish
1C da tashqi ishlov berish shaklini dasturiy ravishda ochish uchun funktsiyadan foydalaning GetForm() ob'ekt Tashqi ishlov berish. Funktsiya bir nechta parametrlarga ega. Asosiy ishlov berish shaklining oddiy ochilishini ko'rib chiqing:
Shakl = Tashqi jarayonlar. GetForm (Fayl manzili);
Shakl. Ochiq();
Kichik tashqi ishlov berish shaklini ochish uchun uning nomini ko'rsatishingiz kerak.
//FileAddress o'zgaruvchisi tashqi ishlov berish fayliga to'liq yo'lni o'z ichiga oladi
Shakl = Tashqi jarayonlar. GetForm (Fayl manzili, "Kichik shakl") ;
Shakl. Ochiq();
Ob'ekt sifatida tashqi ishlov berishni ochish
Ob'ekt sifatida tashqi qayta ishlashni qabul qilish uchun funktsiyadan foydalaniladi Yaratmoq() ob'ekt Tashqi ishlov berish.
//FileAddress o'zgaruvchisi tashqi ishlov berish fayliga to'liq yo'lni o'z ichiga oladi
ProcessingObject = Tashqi ishlov berish. Yaratish (Fayl manzili);
Odatiy bo'lib, barcha ishlov berish xavfsiz rejimda ochiladi. Uni o'chirish uchun quyidagi variantlardan foydalaning:
//FileAddress o'zgaruvchisi tashqi ishlov berish fayliga to'liq yo'lni o'z ichiga oladi
Ma'lumot bazasida saqlangan tashqi ishlov berish yoki chop etish shakli
Ko'pgina konfiguratsiyalarda tashqi bosma shakllarni saqlash va to'g'ridan-to'g'ri ma'lumotlar bazasida ishlov berish mumkin. Buning uchun ma'lumotnomadan foydalaniladi. Tashqi ishlov berish. Tashqi ishlov berishning o'zi ikkilik ma'lumotlar yoki atributlarda saqlanadi StorageExternalProcessing, yoki jadval bo'limida Mansublik rekvizitlarda StorageExternalProcessing.
Tashqi ishlov berishni ochish uchun sizga kerak bo'ladi:
- Uni saqlash joyidan oling.
- Qayta ishlangan faylni diskka saqlang.
- Shaklni oching yoki ishlov berish ob'ektini oling.
- Agar biz tashqi bosma shakl bilan ishlayotgan bo'lsak, unda biz standart ma'lumotlarni to'ldirishimiz mumkin Ob'ektga havola va eksport funksiyasini chaqiring Muhr.
//RefLink o'zgaruvchisi ExternalProcessings katalog elementiga havolani o'z ichiga oladi
DvData = RefLink. Tashqi ishlov berish xotirasi. Get();
FileAddress = GetTemporaryFileName() ;
DvData. Yozish (Fayl manzili);
ProcessingObject = Tashqi ishlov berish. Yaratish (Fayl manzili, False);