Internet Windows Android
Kengaytirish

Vaqtinchalik xotiradan oling 1s 8.3. Ma'lumotni fayldan vaqtinchalik saqlashga saqlash

Deyarli har qanday ma'lumot qiymat do'konida saqlanishi mumkin, masalan,

... rasmlar (rasmlar):

TekImage.Object = SprFabric.Link; TekImage.DataType = Enumerations.AdditionalInformationTypesObjects.Image; Saqlash = Yangi StorageValue (Yangi rasm, yangi ma'lumotlarni siqish ()); TekImage.Storage = Storage.Get ();

// bu joyda u hamma narsani ko'rsatadi ... Form Elements.PictureField1.Picture = Storage.Get (); TekImage.Write ();

... elektron jadval hujjati:

TabDoc = Yangi jadval hujjati; TabDoc.Output (Form Elements.TableDocumentField1); Saqlash = Yangi qiymatlarni saqlash (TabDoc); Yozing ();

Jarayonning oxiri

Saqlash tugmasidan tiklash tartibi (element)

TabDoc = Storage.Get (); Agar TabDoc<>Aniqlanmagan Keyin FormElements.TableDocumentField1.Output (TabDoc); EndIf;

Jarayonning oxiri

... ixtiyoriy fayllar (ikkilik ma'lumotlar):

HZ = NewValueStore (Yangi BinaryData (fayl));

Sakkizta saqlashga joylashtirilgan ma'lumotlarni siqishni qo'llab-quvvatlaydi:

HZ = NewValueStore (New BinaryData (fayl), NewData Compression (9));

... tashqi ishlov berish va hisobot berish:

Protsedura LoadProcessingIn Storage (Props StorageType)

Siqish darajasi = Yangi ma'lumotlarni siqish (9); // 9 maksimal PropsStorageType = NewValueStore (Yangi BinaryData ("c: \ report \ report.epf", Siqish darajasi));

Jarayonning oxiri

Qayta ishlashni xotiradan boshlash protsedurasi (rekvizitlarni saqlash turi)

TempFileName = TempFileDir () + "report.epf"; BinaryData = PropsTypeStorage.Get (); BinaryData.Write (TemporaryFileName); ExternalProcessing = ExternalProcessing.Create (TemporaryFileName); ExternalProcessing.GetForm ().Ochish ();

Jarayonning oxiri

Saqlash bilan ishlash

Agar bu BinaryData bo'lsa, uni Get usuli yordamida qiymat xotirasidan tiklash va Write () usuli yordamida faylga yozish mumkin.

Agar TypeZnch (Saqlash)<>Keyin ("BinaryData") yozing

BinaryData = Storage.Get ();

BinaryData = Saqlash;

EndIf; BinaryData.Write (Fayl nomi);

Agar u, masalan, Word hujjati (doc fayli yoki ro'yxatdan o'tgan boshqa fayl) bo'lsa, uni quyidagicha ochish mumkin:

Ilovani ishga tushirish (Fayl nomi);

Qiymat saqlash turidagi maydonni tozalash uchun uni Aniqlanmagan belgilashingiz kerak:

Props Storage = Aniqlanmagan;

O'rnatilgan 1C: Enterprise 8 tilida fayllar va rasmlar bilan ishlash

Uchrashuv

Boshqariladigan dastur amalga oshiradi yangi mexanizm fayllar bilan ishlash. O'rtasida fayl almashinuvini ta'minlaydi axborot bazasi va mijoz ilovasi. Ushbu mexanizmning o'ziga xos xususiyati shundaki, u nozik mijoz va veb-mijozda foydalanishga qaratilgan va veb-brauzerlar tomonidan qo'yilgan fayllar bilan ishlash cheklovlarini hisobga olgan holda ishlab chiqilgan.

Mexanizm - bu foydalanuvchida mahalliy saqlangan ma'lumotlarni vaqtinchalik ma'lumotlar bazasiga joylashtirish, bu ma'lumotlarni vaqtinchalik xotiradan ma'lumotlar bazasiga o'tkazish va foydalanuvchining kompyuteriga qaytarib olish uchun ishlatilishi mumkin bo'lgan usullar to'plami. Ushbu mexanizm tomonidan hal qilinadigan eng keng tarqalgan amaliy vazifalar qo'shimcha ma'lumotlarni saqlashdir, masalan, tovarlar tasvirlari, shartnomalar bilan bog'liq hujjatlar va boshqalar.

Usul doirasi

Vaqtinchalik saqlash

Vaqtinchalik saqlash - bu ikkilik ma'lumotlar saqlanishi mumkin bo'lgan ma'lumotlar bazasining ixtisoslashgan maydoni. Asosiy maqsad - ma'lumotlar bazasiga o'tkazishdan oldin mijoz-server o'zaro aloqasi vaqtida ma'lumotlarni vaqtincha saqlash.

Vaqtinchalik saqlashga bo'lgan ehtiyoj veb-brauzer modelida foydalanuvchi tomonidan tanlangan faylni mijozda saqlash imkoniyatisiz to'g'ridan-to'g'ri serverga o'tkazish talab qilinishi bilan bog'liq. Faylni uzatishda u vaqtinchalik xotiraga joylashtiriladi va shundan keyingina ob'ektni ma'lumotlar bazasiga yozishda foydalanish mumkin.

Vaqtinchalik saqlash orqali hal qilinadigan eng tipik dastur muammosi ob'ekt ma'lumot bazasiga yozilgunga qadar fayllar yoki rasmlarga kirishni ta'minlashdir, masalan, element shaklida.

Saqlashda joylashtirilgan fayl yoki ikkilik ma'lumotlar keyinchalik yozish, o'qish yoki o'chirish operatsiyalarida ishlatilishi mumkin bo'lgan noyob manzil bilan aniqlanadi. Bu manzil faylni vaqtinchalik xotiraga yozish usullari bilan berilgan. O'rnatilgan tildagi alohida usul sizga uzatilgan manzil vaqtinchalik saqlashdagi ma'lumotlarga ishora qiluvchi manzil yoki yo'qligini aniqlash imkonini beradi.

Axborot bazasi

Mexanizm ValueStore tipidagi atributlarda saqlangan ikkilik ma'lumotlarga kirish imkonini beradi.

Vaqtinchalik saqlash holatida bo'lgani kabi, ma'lumotga maxsus manzil orqali kirish mumkin. Siz uni maxsus usul orqali ob'ektga havola yoki ma'lumot registrini yozish kaliti va rekvizit nomini o'tkazish orqali olishingiz mumkin. Jadvalli qism bo'lsa, qo'shimcha ravishda jadvalli qism qatorining indeksini o'tkazish talab qilinadi.

Fayllar bilan ishlash usullari ma'lumotlar bazasi tafsilotlari bilan ishlashda cheklovlarga ega. Ular uchun vaqtinchalik saqlashdan farqli o'laroq, faqat o'qish ma'lumotlari mavjud, lekin uni yozish yoki o'chirish mumkin emas.

Fayllar bilan ishlash usullari tavsifi

Ma'lumotlarni vaqtincha saqlashga saqlash

Ushbu mexanizmdan foydalanishning eng tipik stsenariysi foydalanuvchi ma'lumotlarini vaqtinchalik saqlashga dastlabki joylashtirishni o'z ichiga oladi. Buning uchun ikkita usul mavjud: PlaceFile () va PlaceFileToTemporaryStorage ().

Birinchi usul, PlaceFile (), mahalliy fayl tizimidagi faylni vaqtincha saqlashga joylashtiradi. Usul do'konda maqsadli manzilni olishi mumkin. Agar u aniqlanmagan yoki bo'sh qator bo'lsa, u yaratiladi yangi fayl va usul o'z manzilini mos keladigan parametr orqali qaytaradi.

Agar interaktiv ish rejimini belgilovchi parametr True bo'lsa, u holda usul standart fayl tanlash dialog oynasini ko'rsatadi, unda siz omborga joylashtiriladigan faylni tanlashingiz mumkin. Bunday holda, usul tanlangan faylning manzilini ham qaytaradi.

Natijada, agar foydalanuvchi interaktiv ravishda fayl tanlash dialogida operatsiyani bajarishdan bosh tortsa, usul False qiymatini qaytaradi. Usul faqat mijozda mavjud.

Ikkinchi usul PutFileToTemporaryStorage () avvalgisiga o'xshaydi, faqat u serverda mavjud va vaqtinchalik saqlashga yozish uchun ma'lumotlar yo'l sifatida taqdim etilmaydi. fayl tizimi, va shaklida o'zgaruvchan turi BinaryData. Xuddi shunday, agar maqsadli manzil ko'rsatilmagan bo'lsa, omborda yangi fayl yaratiladi. Funktsiya natijasida uning manzili qaytariladi.

Vaqtinchalik xotiradan fayl olinmoqda

Ob'ektni ma'lumot bazasiga yozishda siz vaqtinchalik xotiradan ma'lumotlarni ajratib olishingiz va uni, masalan, rekvizitga joylashtirishingiz kerak bo'lishi mumkin. Buning uchun mos keladigan server usuli mavjud - GetFileFrom TemporaryStorage (). Ushbu usul vaqtinchalik xotiradan ma'lumotlarni oladi va natijada uni qaytaradi. Buni amalga oshirish uchun siz vaqtinchalik saqlash joyidagi manzilni ko'rsatishingiz kerak. Bu manzil yuqoridagi usullar bilan qaytariladi PlaceFile () va PlaceFileTemporaryStorage () agar ular muvaffaqiyatli bo'lsa.

Faylni vaqtinchalik xotiradan olib tashlash

Ma'lumotlar rekvizitlarda saqlanganidan so'ng, vaqtinchalik xotiradagi fayl o'chirilishi mumkin. Buning uchun faylni vaqtinchalik xotiradan olib tashlaydigan DeleteFileFromTemporaryStorage () usuli mavjud. Usul vaqtinchalik xotiradagi fayl manzilini parametrga oladi. Serverda mavjud.

Vaqtinchalik saqlash joyiga tegishli manzilni tekshirish

Fayl manzili vaqtinchalik xotiraga ham, maʼlumotlar bazasi oʻzgaruvchisiga ham ishora qilishi mumkin. Uning turini tekshirish uchun ThisTemporaryStorageAddress () usuli mavjud.

O'tkazilgan manzil do'konga ishora qiluvchi manzil ekanligini tasdiqlaydi. Agar manzil vaqtinchalik xotiraga ishora qilsa, True qiymatini qaytaradi. Usul serverda mavjud.

Taqdimot manzilini olish

Ma'lumotlar ma'lumotlar bazasidagi rekvizitlarga joylashtirilgandan so'ng, sizga fayl usullaridan foydalangan holda kirishingiz kerak bo'lishi mumkin.

Ammo ma'lumot olishdan oldin, masalan, rekvizitdan, siz ushbu rekvizitning manzilini olishingiz kerak. Buning uchun GetFileAddressVinformationBase () usuli mavjud.

Uning maqsadi infobazadagi fayl manzilini asl parametrlarga muvofiq qaytarishdir. Buning uchun ob'ekt kalitini (bu ob'ektga havola yoki axborot registrini yozish kaliti bo'lishi mumkin) va atribut nomini o'tkazish kerak. Agar siz jadval bo'limining atributida saqlangan faylning manzilini olishingiz kerak bo'lsa, atribut nomini ko'rsatadigan parametrdagi atribut nomidan oldin, jadval bo'limining nomini va "" davrini qo'shishingiz kerak. . Usul mijozda ham, serverda ham mavjud.

Ma'lumot bazasidan faylni olish

GetFile () usuli ma'lumotlar bazasidan faylni oladi va uni foydalanuvchining mahalliy fayl tizimiga saqlaydi. Birinchi parametr rekvizitdagi yoki vaqtinchalik fayl xotirasidagi fayl manzilini belgilaydi. Ikkinchi parametr natijada olingan faylning maqsadli manzilini belgilaydi. Interaktiv bo'lmagan rejimda siz yo'lni belgilashingiz kerak. Interaktiv rejimda parametr ixtiyoriy.

Odatiy bo'lib, usul interaktiv tarzda bajariladi, ya'ni oxirgi parametr True. Bu shuni anglatadiki, dialog oynasi paydo bo'ladi, unda siz olingan fayl bilan amalni belgilashingiz mumkin: uni ishga tushiring yoki foydalanuvchi tomonidan belgilangan joyga saqlang. Agar interaktiv rejim faol bo'lsa va diskdagi faylga maqsadli yo'l parametri ko'rsatilmagan bo'lsa, faylni ochish operatsiyasi mavjud emas. Boolean qiymatni qaytaradi. Noto'g'ri foydalanuvchi onlayn saqlash dialog oynasida operatsiyani bekor qilishni tanlaganligini bildiradi.

Fayl usullaridan foydalanishga misol

// Diskdan interaktiv tarzda faylni olish // va uni vaqtinchalik saqlashga joylashtirish & Mijoz protsedurasida SelectSDiskFileUsewrite ()

o'zgaruvchining tanlangan nomi; Vaqtinchalik saqlash joyining o'zgaruvchan manzili; Agar PutFile (TemporaryStorage Address, SelectedName, True) bo'lsa, Object.FileName = SelectedName; PlaceObjectFile (TemporaryStorageAddress); EndIf;

Jarayonning oxiri

// Vaqtinchalik xotiradan faylni katalogning // rekvizitiga nusxalash, ob'ektni yozish, vaqtinchalik // saqlashdan faylni o'chirish va OnServer protsedurasi PlaceObjectFile (Vaqtinchalik saqlash manzili)

DirectoryElement = FormInValue ("Ob'ekt"); BinaryData = GetFileFrom TemporaryStorage (TemporaryStorage manzili); DirectoryElement.FileData = NewValueStore (BinaryData); FileDiskPath = Yangi fayl (DirectoryElement.FileName); DirectoryElement.FileName = FilePathNaDisk.Name; DirectoryElement.Write (); O'zgartirish = False; Faylni vaqtincha saqlash joyidan o'chirish (Vaqtinchalik saqlash manzili); ValueVFormAttribute (DirectoryElement, "Ob'ekt");

Jarayonning oxiri

// Faylni rekvizitlardan o'qing va // uchun saqlang mahalliy disk Onlayn va OnClient protsedurasi ReadFile ANDSaveOnDisk ()

Manzil = GetAddressFileInformationBase (Object.Link, "FileData"); GetFile (Manzil, Object.FileName, True);

Jarayonning oxiri

Rasm maydonidagi manzillarni qo'llab-quvvatlash

Rasm maydoni boshqaruvi vaqtinchalik saqlash yoki ma'lumotlar bazasida fayl manzili bilan belgilangan tasvirni ko'rsatishni qo'llab-quvvatlaydi.

Buning uchun forma elementining Data xossasida string tipi atributini ko rsatish kerak. Ushbu o'zgaruvchining qiymati rasmning manzili sifatida talqin qilinadi.

Misol // Rasm maydonini vaqtinchalik // saqlashdagi rasm manziliga bog'lash. AddressPictures string tipidagi shakl atributi

PlaceFile (ImageAddress, True)

Image.Data = ImageAddress

Veb-mijoz bilan ishlashda cheklovlar

Veb-mijozdan foydalanishda tavsiflangan mexanizmning ishlashi ba'zi cheklovlarga ega. Ushbu cheklovlar brauzer xavfsizlik modelining o'ziga xos xususiyatlari bilan bog'liq. Masalan, mijoz faylni o'zi mahalliy fayl tizimiga saqlay olmaydi, ya'ni faqat PlaceFile () va GetFile () mijoz usullarining interaktiv versiyasi mavjud. Interaktiv bo'lmagan rejimdan foydalanishga urinayotganda istisno qilinadi. Dialog oynalari Internetda ko'rsatiladigan brauzerga xosdir.

Mijozda Values ​​Store bilan ishlash xususiyatlari

Muammo:

Agar hujjat jadval bo'limida ValueStorage tipidagi atributga ega bo'lsa, agar bu atribut katta ma'lumotlarni o'z ichiga olsa, u hujjat shaklini ochishni sekinlashtiradi.

Taxmin qilingan sabab:

Shakl ochilganda mijozga Values ​​Store-da saqlangan ma'lumotlarga havola emas, balki ma'lumotlarning o'zi yuborilishi mumkin.

Yechim

  • Shaklning jadval atributining xossalarida "Har doim foydalanish" belgisi mavjud. Agar o'rnatilgan bo'lsa, u holda maydonning mazmuni har doim server va mijoz o'rtasida uzatiladi - masalan, forma ochilganda. Ushbu bayroq o'chirilgan bo'lishi kerak, lekin kodda buni hisobga olishingiz kerak, chunki sukut bo'yicha ushbu maydonning qiymati mijozda ko'rsatilmaydi. Misolni 1C: Arxivda topish mumkin.

Yaxshisi, foydalaning vaqtincha saqlash mijoz va server o'rtasida fayllarni uzatish uchun.

Chop etish (Ctrl + P)

Ushbu bo'lim vaqtinchalik saqlash va fayllar bilan ishlash mexanizmidan foydalanishning eng keng tarqalgan variantlarini tavsiflaydi.

Ma'lumotni fayldan vaqtinchalik saqlashga saqlash

Bitta faylni joylashtirish

PlaceFile () usuli mahalliy fayl tizimidagi faylni vaqtinchalik xotiraga joylashtiradi. Usul faylni saqlamoqchi bo'lgan vaqtinchalik xotiradagi manzilni olishi mumkin. Agar manzil aniqlanmagan yoki bo'sh qator bo'lsa, u yaratiladi yangi manzil va usul uni maxsus parametr orqali qaytaradi.
Eslatma. PlaceFile () usuliga qo'ng'iroq qilish uchun mijoz va server o'rtasida uzatiladigan ma'lumotlar miqdori
Agar interaktiv ish rejimini belgilovchi parametr True bo'lsa, u holda usul standart fayl tanlash dialog oynasini ko'rsatadi, unda siz omborga joylashtiriladigan faylni tanlashingiz mumkin. Bunday holda, usul tanlangan faylning manzilini ham qaytaradi.
Natijada, agar foydalanuvchi interaktiv ravishda fayl tanlash dialogida operatsiyani bajarishdan bosh tortsa, usul False qiymatini qaytaradi.

Fayllar to'plamini joylashtirish

Usul Joy fayllari () bir qo'ng'iroqda bir nechta fayllarni vaqtinchalik xotiraga joylashtiradi. Bir nechta bor turli yo'llar bilan ushbu usul yordamida:
● qo'shilgan fayllar ro'yxatini oldindan yaratish, masalan, ma'lumotlar bazasiga joylashtiriladigan fayllarni oldindan tanlaganingizda;
● faylni qidirish maskasini usulga o'tkazish, masalan, ma'lum turdagi barcha fayllarni, masalan, barcha rasmlarni ma'lumotlar bazasiga joylashtirish talab qilinganda;
● oldindan tayyorlangan ob'ektni usulga o'tkazish Fayl tanlash dialogi faylni ochish rejimida.
Tugallangach, usul haqiqatda qo'shilgan fayllar ro'yxatini qaytarishi mumkin.

// FileList - bu ValuesList tipidagi shakl atributi,
// qo'shiladigan fayllar ro'yxatini o'z ichiga oladi
ArrayFiles = Yangi massiv;
Fayllar roʻyxatidan olingan har bir element roʻyxati uchun
ArrayFiles.Add (uzatilgan faylning yangi tavsifi (ListElement,));
Tsiklning oxiri;
PlacedFiles= Yangi massiv;
Natija = PlaceFiles (ArrayFiles, PlacedFiles, False, UniqueID);

Eslatma 1. Usuldan foydalanish uchun Joy fayllari () veb-mijozda fayl kengaytmasi talab qilinadi.
Eslatma 2. Mijoz va server o'rtasida har bir usul chaqiruvida uzatiladigan ma'lumotlar miqdori Joy fayllari (), 4 Gb dan oshmasligi kerak (seriyalashtirilgan shaklda).

Ma'lumotlarni vaqtincha saqlashga joylashtirish

Usul PutFile () usuliga o'xshaydi, faqat ma'lumotlar vaqtinchalik saqlashga yozilishi kerak
fayl tizimida yo'l sifatida emas, balki qiymat sifatida ifodalanadi. Xuddi shunday, agar vaqtinchalik do'konda mavjud manzil ko'rsatilmagan bo'lsa, yangi manzil yaratiladi. Funktsiya natijasida manzil qaytariladi. Fayllar uchun bo'lgani kabi, joylashtirilgan ma'lumotlar ham biron bir shaklga tegishli bo'lib, o'chirilgandan so'ng avtomatik ravishda o'chiriladi.
Eslatma. Mijoz va server o'rtasida har bir usul chaqiruviga uzatiladigan ma'lumotlar miqdori Vaqtinchalik saqlash joyi (), 4 Gb dan oshmasligi kerak (seriyalashtirilgan shaklda).
Diqqat! Vaqtinchalik saqlashga qo'yilganda, qiymat aslida seriyalashtirilmaydi. Qiymatga havola joylashtiriladi, u keshda 20 daqiqa davomida saqlanadi. Ushbu davrdan keyin qiymat ketma-ketlashtiriladi, diskka yoziladi (sessiya ma'lumotlar do'konida) va keshdan o'chiriladi.

Vaqtinchalik saqlashdan ma'lumotlarni olish

Ob'ektni ma'lumot bazasiga yozishda siz vaqtinchalik xotiradan ma'lumotlarni olishingiz va uni, masalan, infobase obyekti atributiga joylashtirishingiz kerak bo'lishi mumkin. Buning uchun maxsus usul mavjud - GetFromTemporaryStorage (). Bu usul vaqtinchalik xotiradan ma'lumotlarni oladi va uni bajarish natijasi sifatida qaytaradi. Ma'lumotni olish uchun siz vaqtinchalik manzilni ko'rsatishingiz kerak
saqlash. Ma'lumotlarni vaqtincha saqlashga qo'yish usullari muvaffaqiyatli bo'lsa, ushbu manzilni qaytaradi (oldingi bo'limlarga qarang).
Diqqat! Serverdagi vaqtinchalik xotiradan qiymatni olishda siz uning mos yozuvlar orqali olinganligini hisobga olishingiz kerak. Aslida, bu havola keshda saqlanadigan qiymatga ishora qiladi. 20 daqiqa ichida, u xotiraga joylashtirilgan paytdan boshlab yoki oxirgi kirish paytidan boshlab, qiymat keshda saqlanadi, so'ngra diskka yoziladi va keshdan o'chiriladi. Keyingi qo'ng'iroqda qiymat diskdan yuklanadi va keshga qaytariladi.
Vaqtinchalik do'kondan qiymatni seriyadan chiqarish va tiklashdan so'ng, havolalar tiklanmaydi. Keshdagi qiymat diskdan tiklanadi. Ammo ketma-ketlashtirish/seriyadan chiqarishdan so'ng, qiymat ichidagi boshqa ob'ektlarga havolalarni tiklash mumkin emas.

Vaqtinchalik xotiradan ma'lumotlarni o'chirish

Ma'lumotlar ma'lumotlar bazasi ob'ektining atributiga saqlanganidan so'ng, vaqtinchalik xotiradagi ma'lumotlar o'chirilishi mumkin. Buning uchun usul mavjud
TemporaryStoragedan olib tashlang (), bu o'chirishni amalga oshiradi. Usul vaqtinchalik xotiradagi manzilni parametr sifatida qabul qiladi.

Vaqtinchalik saqlash joyiga tegishli manzilni tekshirish

Manzil ma'lumot bazasidagi vaqtinchalik xotirani ham, o'zgaruvchini ham ko'rsatishi mumkin. Uning turini tekshirish uchun usul mavjud
Bu TemporaryStorageAddress (). O'tkazilgan manzil do'konga ishora qiluvchi manzil ekanligini tasdiqlaydi. Agar manzil vaqtinchalik xotiraga ishora qilsa, True qiymatini qaytaradi.

Taqdimot manzilini olish

Ma'lumotlar ma'lumotlar bazasi ob'ektining atributiga joylashtirilgandan so'ng, fayl usullaridan foydalangan holda unga kirishingiz kerak bo'lishi mumkin.
Ammo ma'lumot olishdan oldin, masalan, rekvizitdan, siz ushbu rekvizitning manzilini olishingiz kerak. Buning uchun usul mavjud GetNavigationLink ().

U asl parametrlarga muvofiq ma'lumotlar bazasidagi qiymat manzilini qaytarishi mumkin. Buni amalga oshirish uchun siz ob'ektning kalitini topshirishingiz kerak (bu bo'lishi mumkin
ob'ekt ma'lumotnomasi va axborot registrini qayd qilish kaliti) va rekvizit nomi. Agar siz rekvizitlarda saqlangan qiymatning manzilini olishingiz kerak bo'lsa
jadval bo'limining nomi, keyin atribut nomini ko'rsatuvchi parametrdagi atribut nomiga jadval bo'limining nomi va nuqta "." qo'shilishi kerak. Masalan: Mahsulotlar. Rasm

Ma'lumot bazasidan faylni olish

Bitta fayl qabul qilinmoqda

GetFile () usuli ma'lumotlar bazasidan faylni oladi va uni foydalanuvchining mahalliy fayl tizimiga saqlaydi. Birinchi parametr infobase obyekti atributidagi yoki vaqtinchalik fayl xotirasidagi fayl manzilini belgilaydi. Agar nomidan operatsiya bajarilayotgan foydalanuvchi infobase obyekti atributiga Ko‘rish huquqiga ega bo‘lmasa, saqlash amalga oshirilmaydi. Ikkinchi parametr natijada olingan fayl qayerda saqlanishini aniqlaydi. Interaktiv bo'lmagan rejimda siz yo'lni belgilashingiz kerak. Interaktiv rejimda parametr hisoblanadi
ixtiyoriy.
Odatiy bo'lib, usul interaktiv tarzda amalga oshiriladi. Bu shuni anglatadiki, dialog oynasi hosil bo'ladi, unda siz olingan fayl bilan amalni belgilashingiz mumkin: uni ishga tushiring yoki fayl tizimidagi foydalanuvchi tomonidan belgilangan joyga saqlang. Agar interaktiv rejim tanlansa va Fayl nomi parametri ko'rsatilmagan bo'lsa, u holda faylni ochish operatsiyasi mavjud emas. Usul mantiqiy qiymatni qaytaradi. Noto'g'ri foydalanuvchi onlayn saqlash dialog oynasida operatsiyani bekor qilishni tanlaganligini bildiradi.

Fayllar to'plami olinmoqda

GetFiles () usuli foydalanuvchining mahalliy fayl tizimidagi ma'lumotlar bazasida saqlangan bir nechta fayllarni olish va saqlash imkonini beradi. Yuklangan fayllar ro'yxati parametr sifatida uzatiladi.

// FileList - elementlarga havolalarni o'z ichiga olgan qiymatlar ro'yxati
// yuklangan fayllar joylashgan katalog
// Qiymatlar ro'yxati yuklangan fayl nomi bilan ifodalanadi
ArrayFiles = Yangi massiv;
Fayllar roʻyxatidan olingan har bir element roʻyxati uchun
Fayl = Yangi Fayl (String (ListItem.Value));
ReceivedFile = Yangi Transfer qilingan fayl tavsifi;
Qabul qilingan fayl.Name = List Item.View;
Qabul qilingan File.Storage= P getNavigationLink (ListElement.Value, "Ma'lumotlar");
ArrayFiles.Add (ReceivedFile);
Tsiklning oxiri;
Qabul qilingan fayllar= Yangi massiv;
Natija = GetFiles (ArrayFiles, ReceivedFiles, UploadFile Path, False);
Agar natija bo'lmasa
Xabar = Yangi Foydalanuvchiga xabar;
Message.Text = "Fayllarni qabul qilishda xatolik yuz berdi!";
Message.Inform ();
EndIf;

Tugatgandan so'ng, usul har bir saqlangan faylning to'liq nomi bilan haqiqatda yuklangan fayllar ro'yxatini qaytarishi mumkin.
ESLATMA. Veb-mijozda GetFiles () usulidan foydalanish uchun fayl kengaytmasi talab qilinadi. Ob'ekt nomi xususiyati bo'lsa O'tkazilgan faylning tavsifi faylning mutlaq yo'lini o'z ichiga oladi, fayl parametrdan tashqari ushbu yo'lda saqlanadi Fayl joylashuvi.
FileLocation parametri mahalliy fayl tizimidagi yoʻl yoki katalog tanlash yoki fayllarni saqlash rejimidagi FileSelectDialog obyekti boʻlishi mumkin. Agar parametr qiymati bo'lsa Fayl joylashuvi belgilangan ob'ekt Fayl tanlash dialogi rejimida
fayllarni saqlang, keyin:

● O'tkazilayotgan har bir fayl uchun dialog oynasi chaqiriladi, Ob'ekt nomi xususiyati TransferredFile tavsifi mutlaq yo'lni o'z ichiga olgan fayllar bundan mustasno;
● Ob'ekt nomi xususiyatining qiymati TransmittedFile tavsifi dialog oynasida boshlang'ich fayl nomi sifatida ishlatiladi;
● har qanday fayl uchun saqlashni rad etish tanlansa, u holda TransferredFilening Ob'ekt nomi xususiyati tavsifi bo'sh qatorni o'z ichiga oladi;
● GetFiles () usuli kamida bitta fayl muvaffaqiyatli qabul qilingan taqdirda True qiymatini qaytaradi;
● shuni yodda tutish kerakki, fayllarni haqiqiy qabul qilish foydalanuvchi nomi va yo'lini ko'rsatish haqidagi savollarga javob bergandan so'ng amalga oshiriladi.
barcha qabul qilingan fayllar;
● Agar nomidan GetFiles () usuli bajarilayotgan foydalanuvchi fayllar olinayotgan infobaza obyektining kamida bitta atributiga Ko‘rish huquqiga ega bo‘lmasa, butun operatsiya bajarilmaydi.
Misol:

TransferredFiles = Yangi massiv;
Tavsif = Yangi O'tkazilgan faylning tavsifi("Tavsif", Fayl-manzil);
Fayllar uzatilmoqda.(Tavsif);
Fayl tanlash = Yangi FileSelectDialogue (FileSelectDialogueMode.Save);
Faylni tanlash. Sarlavha= "Arxivni saqlash";
Fayl tanlash. Kengaytma= "Zip";
Faylni tanlash. Filtr= “Arxiv (*. Zip) | * .zip | Barcha fayllar | *. *”;
FileSelect.FilterIndex = 0;
GetFiles (TransferredFiles, FileSelect, False);

Agar fayllarni saqlash uchun katalogni tanlashning interaktiv rejimi tanlangan bo'lsa, veb-mijoz qo'shimcha ravishda mutlaq yo'llar bilan ko'rsatilgan fayllarni saqlash uchun ruxsat so'raydi. Interaktiv bo'lmagan saqlashda (katalogga yo'l mos keladigan parametrda ko'rsatilgan), so'rov saqlangan fayllarning butun ro'yxati uchun bajariladi.

Fayl usullaridan foydalanishga misol

// Diskdan interaktiv tarzda faylni oling
// va uni vaqtincha saqlash joyiga qo'yish.
& OnClient
Jarayon FileSDisk-ni tanlang va Write ()
o'zgaruvchining tanlangan nomi;
O'zgartirish Vaqtinchalik saqlash joyi manzili;
NewObject = Object.Ref.Empty ();
Agar PlaceFile (Vaqtinchalik saqlash manzili, “”, Tanlangan nom, rost) Keyin
Object.FileName = SelectedName;
PlaceObjectFile (TemporaryStorageAddress);
EndIf;
Jarayonning oxiri
// Faylni vaqtinchalik xotiradan rekvizitlarga nusxalash
// katalog, ob'ektni yozish, vaqtinchalik fayldan faylni o'chirish
// omborlar.
&Serverda
Jarayon PlaceObjectFile (TemporaryStorageAddress)
DirectoryElement = FormInValue ("Ob'ekt");
BinaryData = GetFrom vaqtinchalik saqlash (Vaqtinchalik saqlash manzili);
Directory Element.File Data= Yangi StoreValues ​​(BinaryData, Yangi ma'lumotlarni siqish ());
Fayl = Yangi Fayl (Directory Item.FileName);
DirectoryElement.FileName = File.Name;
DirectoryElement.Write ();
O'zgartirish = False;
Vaqtinchalik saqlash joyidan Delete (Vaqtinchalik saqlash manzili);
ValueVFormAttribute (DirectoryElement, "Ob'ekt");
Jarayonning oxiri
// Faylni rekvizitlardan o'qing va uni saqlang
// interaktiv rejimda mahalliy diskda.
& OnClient
Jarayon ReadFileSaveToDisk ()
Manzil = GetNavigationLink (Object.Link, "FileData");
GetFile (Manzil, Object.FileName, True);
Jarayonning oxiri

Fayl operatsiyalari guruhini bajarishga ruxsat

Veb-mijozdagi ba'zi operatsiyalar bir nechta fayl operatsiyalari uchun ruxsatni talab qilishi mumkin.
Masalan, siz ma'lumot bazasidan hujjat olishingiz va keyin saqlangan hujjatni tegishli dastur yordamida ochishingiz kerak.
Ushbu operatsiyani bajarish uchun siz hujjatni saqlash haqidagi savolga va boshlash zarurati haqidagi savolga javob berishingiz kerak bo'ladi. Agar ko'proq operatsiyalar mavjud bo'lsa, foydalanuvchi ham ko'proq savollarga ega bo'ladi.
Savollar sonini kamaytirish uchun siz usuldan foydalanishingiz mumkin. Ushbu usuldan foydalanganda
foydalanuvchiga bajariladigan barcha operatsiyalar ro'yxati ko'rsatiladi va operatsiyalar guruhini bajarishga ruxsat berish so'raladi. Agar foydalanuvchi bajarishga ruxsat bergan bo'lsa, so'ralgan operatsiyalar foydalanuvchiga qo'shimcha takliflarsiz amalga oshiriladi. Agar ruxsat berilmasa, operatsiyalar ichida amalga oshiriladi normal rejim: har bir operatsiya uchun bitta so'rov.
ESLATMA. Usuldan foydalanish uchun RequestUserPermission () veb-mijozda siz fayllar bilan ishlash uchun kengaytmani ulashingiz kerak.
Keling, usulni qo'llash misolini ko'rib chiqaylik:

Agar ConnectExtensionFayllar bilan ishlash () Keyin
Ref = GetNavigationLink (Object.Link, “FileData”);
// O'tkazilgan fayllar tavsifini shakllantirish (bu holda faqat bitta fayl mavjud)
O'tkazilgan fayllar= Yangi massiv;
Tavsif = NewDescriptionFileTransferred (Object.FileName, Link);
TransferredFiles.Add (Ta'rif);
// Qabul qilingan fayllar haqida ma'lumot olish uchun ob'ektni tayyorlang
O'tkazilgan fayllar= Yangi massiv;

// Usullarning boshqa parametrlarini aniqlang
Katalogni saqlash= “C: \ temp”;
Interaktiv = False;
Yuklangan fayl nomi = SaveDir + "\" + Object.FileName;
// Ruxsat olish usullari tavsifini tayyorlang
Methods = New Array;

Methods.Add (“GetFiles”);
Methods.Add (TransferredFiles);
Methods.Add (TransferredFiles);
Methods.Add (Katalogni saqlash);
Methods.Add (Interaktiv);
Methods.Add (Yangi massiv);
Methods.Add (“Ilovani ishga tushirish”);
Methods.Add (Yuklangan fayl nomi);
Agar unday bo'lmasa RequestUserPermission (usullari) Keyin
Ogohlantirish ("Foydalanuvchi ruxsatini rad etdi.");
Qaytish;
EndIf;
ReceiveFiles (TransferredFiles, TransferredFiles, SavingDirectory, Interaktiv);
RunApplication (Yuklangan fayl nomi);
Aks holda
Ogohlantirish ("Bajarish qo'llab-quvvatlanmaydi. Fayl kengaytmasi o'rnatilmagan.");
EndIf;

Usulni qo'llashning bir nechta xususiyatlarini ta'kidlash kerak. RequestUserPermission ().

1. Ruxsat faqat uchun so'raladi quyidagi usullar:

RetrieveFiles () / StartFetchFiles (),
● PlaceFiles () / StartPlaceFiles (),
● FindFiles () / StartSearchFiles (),
● Faylni nusxalash () / Nusxa olish faylini boshlash (),
● MoveFile () / StartMoveFile (),
● DeleteFiles () / StartDeleteFiles (),
● CreateDirectory () / StartCreateDirectory (),
● Ilovani ishga tushirish () / Ilovani ishga tushirishni boshlash ().

2. Usul parametrlarining muayyan to'plami uchun ruxsat so'raladi. Agar fayllar bilan ishlash usulini amalda bajarish paytida parametr qiymatlari ruxsat olingan qiymatlardan farq qilsa, bu ruxsat haqiqiy bo'lmaydi va foydalanuvchi operatsiyani tasdiqlash uchun alohida so'rov oladi.

3. Agar siz fayllar bilan ikkita (yoki undan ortiq) bir xil amallarni bajarishingiz kerak bo'lsa (hatto bir xil parametrlar to'plami bilan ham), siz usul parametrlari massivida tegishli elementlar sonini ko'rsatishingiz kerak. RequestUserPermission ()... Misol uchun, agar siz bir xil faylni ma'lumotlar bazasidan ikki marta olishingiz va uni fayl tizimidagi belgilangan joyga joylashtirishingiz kerak bo'lsa, ruxsat so'rashingiz kerak.
ikkita operatsiya uchun.

4. Agar interaktiv operatsiya bajariladigan operatsiya uchun ruxsat so'ralgan bo'lsa (masalan, GetFiles () funksiyasi ob'ektga uzatiladi. Fayl tanlash dialogi), keyin bunday operatsiya so'rovdan chiqarib tashlanadi.

Olingan ruxsatlar ruxsat etilgan qo'ng'iroq amalga oshirilgunga qadar yoki o'rnatilgan tilning bajarilishi tugaguncha saqlanadi.
ESLATMA... Qalin va nozik mijozlar RequestUserPermission () usul har doim True ni qaytaradi, foydalanuvchi shovqinisiz.

Fon ishida vaqtinchalik saqlash bilan ishlash

Vaqtinchalik saqlash bilan ishlash mexanizmida ma'lumotlarni fon ishidan fon ishini boshlagan sessiyaga o'tkazish mumkin.
Bunday o'tkazish uchun bo'sh qiymat ota-sessiyada vaqtinchalik saqlashga joylashtirilishi kerak (usul yordamida Vaqtinchalik saqlash joyi ()) yaratilayotgan vaqtinchalik xotiraning har qanday identifikatorini ko'rsatish orqali (Manzil parametri). Keyin olingan manzilni fon ishining parametrlari orqali fon ishiga o'tkazing. Bundan tashqari, agar ichida fon ishi bu manzildan Method address parametrining qiymati sifatida foydalaning ValueStorage-ga joylashtirish () keyin natija fon ishi boshlangan sessiyaga ko'chiriladi.
Fon ishida vaqtinchalik saqlashga joylashtirilgan maʼlumotlar fon ishi tugaguniga qadar ota-sessiyada mavjud boʻlmaydi.

Rasm maydonidagi manzillarni qo'llab-quvvatlash

Shakl elementi Ko'rish maydoni Rasm maydoni vaqtinchalik xotirada yoki ma'lumotlar bazasida qiymat manzili (rasm yoki ikkilik ma'lumot bo'lishi mumkin) bilan belgilangan rasmni ko'rsatishni qo'llab-quvvatlaydi.
Buning uchun forma elementining Data xossasida string tipi atributini ko rsatish kerak. Ushbu o'zgaruvchining qiymati rasmning manzili sifatida talqin qilinadi.

// 1-misol
// Rasm maydonini vaqtinchalik rasm manziliga bog'lash
// saqlash. AddressPictures - satr tipidagi shakl atributi
PlaceFile (ImageAddress, OriginalName, SelectedName, True, UniqueIdentifier);
// 2-misol
// Ob'ekt atributidan rasm manzilini olish
// ma'lumotlar bazasi
PictureFile = Object.PictureFile;
Rasm fayli bo'lmasa. Bo'sh () Keyin
ImageAddress = GetNavigationLink (ImageFile, “FileData”);
Aks holda
Rasm manzili = “”;
Agar tugatish;

Standart kataloglarga kirish

Tizimdan foydalanganda, fayl tizimida turli xil fayl ma'lumotlarini saqlashingiz mumkin bo'lgan bir oz bo'sh joy talab qilinadi, ular bir tomondan vaqtinchalik, boshqa tomondan esa etarlicha uzoq vaqt davomida saqlanishi kerak. Ushbu fayllarga hujjatlarni boshqarish tizimlari uchun qoralamalar, mijoz kompyuterida ishlaydigan tashqi komponentlar va boshqalar kiradi.
Bunday fayllarni saqlash uchun ma'lum bir ma'lumot bazasining ma'lum bir foydalanuvchisiga bog'langan maxsus katalog mo'ljallangan.
Ikki ma'lumot bazasi bilan ishlaydigan bir foydalanuvchi foydalanuvchi ma'lumotlarini saqlash uchun ikkita turli katalogga kirish huquqiga ega bo'ladi. Ushbu katalogning joylashuvi usul yordamida aniqlanadi WorkDirectoryUserData (). Agar katalog yo'q bo'lsa, u birinchi marta kirishda yaratiladi. Agar katalog yaratilmasa, tizim istisno qiladi.
ESLATMA. UserDataWorkDirectory () usuli server tomonida mavjud emas.
V operatsion tizim foydalanuvchi ma'lumotlarini doimiy saqlashga bag'ishlangan maxsus katalog mavjud. Ba'zi bo'lishi mumkin
hisobotlar, bosma shakllar hujjatlar va boshqalar. Ushbu katalogda keyinchalik tashqi ma'lumotlarga yuborilishi mumkin bo'lgan ma'lumotlar mavjud
iste'molchilar. Ushbu katalogga kirish uchun DocumentCatalog () usulidan foydalaning. Katalogning jismoniy joylashuvi operatsiya xonasiga bog'liq
dastur bajariladigan va sintaksis yordamchisida ro'yxatga olingan tizimlar.

1C 8.2 va 8.3 da konfiguratsiyani saqlash 1C: Enterprise 8 platformasiga o'rnatilgan yechimlarni guruhli ishlab chiqish uchun vositadir.Repozitoriy cheksiz miqdordagi foydalanuvchilar bilan yechimlarni ko'p foydalanuvchilar tomonidan ishlab chiqish imkonini beradi. Uning yordami bilan siz konfiguratsiyani ishlab chiqishning to'liq tarixini va ishlab chiquvchilarning har bir bosqichini batafsil ko'rishingiz mumkin.

Keling, sozlamalarni ko'rib chiqaylik va konfiguratsiya ombori bilan batafsilroq ishlaymiz.

Ombor asosan konfiguratsiya o'zgarishlari saqlanadigan ma'lumotlar bazasidir. Ishlab chiquvchilarning har biri omborga ulangan o'z ma'lumotlar bazasi bilan ishlaydi. Ishchi bazani saqlashga ham ulash mumkin. Umumiy sxema ushbu rasmda eng yaxshi ko'rsatilgan:

Ushbu ma'lumotlar bazasida u yoki bu ob'ektni kim qo'lga kiritganligi haqidagi ma'lumotlar ham saqlanadi. Ob'ektni suratga olish ishlab chiquvchi tomonidan o'rnatiladigan belgidir. O'rnatilgan qo'lga olish guruh rivojlanishida to'qnashuvlarning oldini oladi. Ob'ekt suratga olinganda, uni hech kim tahrirlay olmaydi.

Siz butun ob'ektni (rekursiv) yoki alohida ob'ekt yoki shakllarni olishingiz mumkin.

Ishlab chiquvchi ob'ektda ba'zi harakatlarni amalga oshirgandan so'ng, u yaxshilanishlarni omborga joylashtirishi shart. Va shu bilan ob'ekt qo'lga olinganligi belgisini olib tashlang.

1C xotirasini qanday yaratish kerak

Repozitariy yaratish juda oddiy, buning uchun siz "Konfiguratsiya - Konfiguratsiya ombori" menyusidagi "Ombor yaratish" bandini tanlashingiz kerak. Ko'rsatilgan menyuda kelajakdagi saqlash joyiga yo'lni va administrator foydalanuvchisining login / parolini ko'rsatish kifoya:

Yaratishda zaxira nusxasini yaratganingizga ishonch hosil qiling hisob ma'muriy huquqlar bilan - ko'pincha yordam beradi.

1C xotirasiga qanday ulanish mumkin

Konfiguratsiya omboriga ulanish uchun menyudagi "Konfiguratsiya - Konfiguratsiya ombori" menyusidagi "Omborga ulanish" bandini tanlang. Ko'rsatilgan oynada siz saqlash yo'lini va foydalanuvchi nomi / parolni belgilashingiz kerak, "Ulanish" tugmasini bosing:

267 1C video darsliklarini bepul oling:

Ulanish vaqtida sizning konfiguratsiyangiz ombordagi konfiguratsiya bilan almashtiriladi, ehtiyot bo'ling.

1C konfiguratsiya saqlash ma'muriyati

1C xotirasini boshqarish uchun konfiguratsiya menyusida quyidagi bandni tanlang - "Konfiguratsiya - Konfiguratsiya xotirasi - Boshqaruv":

  • "Foydalanuvchilar" yorlig'ida siz yangi foydalanuvchilarni qo'shishingiz yoki o'chirishingiz, shuningdek ularning har biri uchun huquqlar doirasini belgilashingiz mumkin.
  • "Ulanishlar" yorlig'ida siz xotiraga ulangan barcha foydalanuvchilarni ko'rishingiz va kerak bo'lganda ularni uzishingiz mumkin.
  • "Tasvirga olishni bekor qilish" yorlig'ida siz har qanday foydalanuvchini ma'lum bir ob'ektga suratga olishni olib tashlashingiz mumkin, agar sizda, albatta, bunga huquqingiz bo'lsa.

1C saqlash tarixini qanday ko'rish mumkin

Tarixni ko'rish uchun "Konfiguratsiya - Konfiguratsiyani saqlash" menyusiga o'ting, "Saqlash tarixi" bandini tanlang:

1C saqlash tarixida siz qachon, kim tomonidan va nima o'zgartirilganligini ko'rishingiz mumkin.

1C 8.3 ombori bilan ishlab chiqish

Ombor bilan ishlash shartli ravishda asosiy harakatlarga bo'linishi mumkin:

  • 1C konfiguratsiya xotirasidan konfiguratsiyalar;
  • 1C xotirasi holatini yangilash;
  • saqlashda qo'lga olish;
  • saqlash xonasi.

Keling, har bir harakatga batafsil to'xtalib o'tamiz:

1C xotirasi holatini yangilang

Ob'ektlarning so'nggi holatini oladi (qo'lga olingan yoki olinmagan).

"Konfiguratsiya - Konfiguratsiyani saqlash - Statuslarni yangilash" deb nomlanadi.

1C konfiguratsiya xotirasidan konfiguratsiyani yangilash

Harakat omborga joylashtirilgan barcha o'zgartirilgan konfiguratsiya ob'ektlarini oladi. Ushbu buyruqning bajarilishi ob'ektlarning holatini ham yangilaydi.

"Konfiguratsiya - Konfiguratsiya ombori - Repozitariydan konfiguratsiyani yangilash" deb nomlanadi.

1C konfiguratsiya xotirasini yozib oling

Ushbu buyruq yordamida siz o'zgarishlarni bloklashingiz mumkin ushbu ob'ektdan boshqa ishlab chiquvchilar uchun: ob'ektni siz qo'lga kiritganingizda, ob'ektni qaytarib qo'ymaguningizcha, hech bir foydalanuvchi uni o'zgartira olmaydi.

Rasmga tushirish sichqonchaning o'ng tugmasi bilan amalga oshirilishi mumkin kontekst menyusi metadata ob'ekti:

Ochilgan oynada siz ba'zi sozlamalarni o'rnatishingiz mumkin:

  • Rekursiv bajaring- barcha bo'ysunuvchi ob'ektlarni - shakllarni va hokazolarni olish imkonini beradi.
  • Qo'lga olinganlarni olishga ruxsat bering- boshqa foydalanuvchilarga ob'ektning oraliq versiyalarini olish imkonini beradi

Saqlash xonasi 1C

Ob'ektni o'zgartirgandan so'ng, uni yana saqlashga qo'yish kerak, bu suratga olish bilan bir xil tarzda amalga oshiriladi, faqat "Saqlashga qo'yish" bandi tanlanadi:

Joylashtirishda "sharh" maydonini to'ldirishni unutmang, bu guruh rivojlanishi uchun juda muhimdir. Olti oy o'tgach, nima uchun muayyan harakatlar qilganingizni eslay olmaysiz. Suratga olish kabi, xonaning o'ziga xos sozlamalari mavjud:

  • Rekursiv bajaring- barcha bo'ysunuvchi ob'ektlarni - shakllarni va boshqalarni joylashtirish imkonini beradi.
  • Qo'lga olingan holda qoldiring- foydalanuvchi tomonidan suratga olishni qoldirib, ob'ektning "oraliq" versiyasini joylashtirish imkonini beradi

1C xotirasiga yangi ob'ektni qanday qo'shish kerak