Үй / Linux шолуы / Уақытша сақтау. Уақытша сақтау Әдісінің көлемі

Уақытша сақтау. Уақытша сақтау Әдісінің көлемі

Берти . Картопты, тамыржемісті және ақ қырыққабатты сақтаудың ең қолайлы жолы - бөтелкеге ​​құю. Қада – екі жағы еңкейіп, үстіңгі жағы оқшаулағыш материалмен жабылған ұзынша үйінді. Ол егінді бір маусымға сақтау үшін жасалады. Бөртпелер картопты тегіс жерге құйғанда ұнтақталған және таяз шұңқырлар қазылған кезде жартылай ұнтақталған болуы мүмкін. Попунаутный (жерленген) қада. Мұндай қада үшін тереңдігі 25 см болатын шұңқыр солтүстіктен оңтүстікке қарай қазылған кеңірек жағалау (4 м дейін). Шұңқырдың ұзындығы ерікті болуы мүмкін, бірақ ол 20-25 м-ден аспайтын болса, ені 2 м болатын қаданың жағалауының биіктігі 90-ға тең болуы мүмкін. 100 см Әдетте, картоп бір сайтта бірнеше қадаларда сақталады. Бұрғылау алаңы картоп өсірілетін алқаптарға жақын жерде, жаңбыр мен еріген судан су баспайтын, жолдан алыс емес жерде орналастырылады. Шұңқырдың орталық осі бойымен ені 20-25 см тереңдікте желдету құбыры қазылған, ол шұңқырдан асып түседі және жағаның соңында жабудан 25 см ұзын. Арнаның шұңқырдың шегінен шығатын бөлігі шұңқырға және арнаға топырақ түспеуі үшін үстіңгі жағында тақталармен тығыз жабылған. Жер үсті жағаларында желдету құбыры тікелей жердің бетіне орналастырылады және бір жарым метрлік бөлек бөліктерден тұратын торлы шатыр түрінде жасалады. Сабан мен жердің желдету арнасына түсуіне жол бермеу үшін оның ұштары бос орындарсыз жасалады. Желдеткіш құбырларды жабу үшін ұзындығы 1,5 м және ені 0,5 м болатын торлы бөліктер алдын ала дайындалады, бұл бөлік ені 2-3 см және олардың арасындағы саңылаулар 2-2,5 см желдеткіш құбырға салынады және оған бекітіледі бір-бірін. Алынған үздіксіз желдету торы өнімнің астында орналасқан арнаның бөлігін жабады. Картоптың немесе басқа өнімдердің үйіндісін қалыптастыру кезінде ішкі қимасы 3х3 см болатын жағалы термометр немесе арнайы жасалған тетраэдрлі түтік-қораптар орналастырылады, олардың ішіне термометрлер штанганың ұшына енгізіледі. Жағалар жота мен желдеткіш құбыр арқылы желдетіледі. Үйінділер сабанмен және топырақпен жабылған. Толық қалыңдықтағы сабан қаданың төбесі қабаттасатындай етіп төменнен жоғарыға қарай тығыз қабатпен төселеді. Осыдан кейін қада бүйірлеріне жұқа жер қабатымен себіледі. Үйіндінің жотасы бірінші аязға дейін сабан жамылғысының астында қалады. Жаңбырлы ауа райында ол уақытша рубероидпен немесе пластикалық пленкамен жабылады. Тұрақты аяздар басталғанға дейін картопты +4 ° C дейін салқындатқанда, желдету арналары сабанмен тығыз жабылады, ал үйінді толығымен жермен жабылады. Егер қадалардағы температура +1°С-тан төмен түссе, қадалар қосымша жылу оқшаулағыш материалдармен - шымтезекпен, сабанмен, сабан көңімен немесе қармен жабылады. Үйінділердің шамадан тыс жабылуына әкелетін қалың қар жауған жағдайда, олар мезгіл-мезгіл қардан тазартылады.

Траншея сақтау . Бұл сақтау әдісі қадаларда сақтаумен салыстырғанда сабан немесе басқа жылу оқшаулағыш материалдарды 2 есе аз қажет етеді. Жер асты сулары терең болған кезде траншеялар қолданылады. Шұңқырдың тереңдігі мен ені 60-80 см-ден (оңтүстік аймақтарда) 1,5-2 м-ге дейін (Сібірде). Траншеялар үстіне сабан қабатымен жабылған: орталық аймақтарда ол 30-40 см, Сібірде - 70 см-ге дейін, содан кейін жер қабаты құйылады (аймаққа байланысты 40-тан 70 см-ге дейін). Әдетте, траншеялардың әртүрлі түрлері қолданылады: таяз, желдету арналары бар терең, топырақ қабаты бар және қабатсыз және қарапайым. Траншеялар мен қадалар (табиғи) қарапайым желдеткішпен жабдықталған. Оның негізгі мақсаты - күзде картоп пен көкөністерді салқындату. Жеткізу және шығару желдеткішінің жұмыс принципі ауа қысымының айырмашылығына негізделген, яғни. өнім қабатындағы және сыртындағы температураның айырмашылығына байланысты ауаның жоғары қарай қозғалысының сызбасында. Жылы ауа жеңілірек болғандықтан, сору құбыры арқылы кетеді, ал суық ауа жеткізу құбыры арқылы кіреді. Желдету жүйесі жеткізу және шығару құбырларынан тұрады. Кіріс арнасы жағаның негізінің ортасынан өтеді; Картоп пен тамыржемісті қадаларда олар көлденең қимасы 20х20 см немесе 30х30 см ойық жасайды, олар торлы тақталармен, көлденең итарқалармен немесе қылшық ағаштармен жабылған, сондықтан өнімнің жеке көшірмелері құлап кетпейді. Бұл арна арқылы ауырлық күшімен салқын сыртқы ауа қабатқа түседі. Стакандағы қыздырылған ауа сору құбырлары (құбырлар) арқылы шығарылады. Олар 20х20 см немесе 15х15 см қимасы бар тақталардан жасалған тетраэдрлік жәшіктер төменгі бөлігінде көкөніс қабатынан өтіп, олар торлы, ал жоғарғы бөлігінде баспана арқылы өтетін, олар тұтас. топырақ оларға түспеуі үшін. Өнімдерді жаңбыр суынан қорғау үшін олардың үстіне шатыр орнатылған. Сақтау үшін сақталған көкөністердің сипаттамалары мен сапасына қарай үйіндінің ұзындығы бойынша әр 2-4 м сайын сорғыш құбырлар орнатылады. Тік сору құбырларының кемшіліктерінің бірі - жылы және ылғалды ауа тек штабельдің іргелес аумақтарынан шығарылады, ал шалғай жерлер әрең салқындатылады. Шығару құбырларының жанына су ағып, өнімдерді терлейді және мұздатады, өйткені мұнда баспана азырақ тығыз және сенімді. Сондықтан жотадан шығатын желдету қолданылады. Көкөністерді құрғақ, салқын ауа райында сақтау кезінде траншеяның қыртысы тек сабанмен жабылады, ол арқылы жылы ауа шығарылады. Дегенмен, мұндай жағдайлар сирек кездеседі, ауа-райы күзде жиі жаңбырлы болады; Мұндай жағдайларда көлденең сору құбыры орнатылады - 90 ° бұрышпен соғылған тақталар, олар ұштарында сыртқа шығуы бар көкөністер дестесіне салынады. Бұл жағдайда жотаның бойындағы траншеяны сабанның сулануынан және өнімнің қатып қалуынан қорықпай, дереу сабанмен және топырақпен жабуға болады. Тек соңғы тесіктерді уақытында жабу керек. Көлденең жоталы сору құбырының тік сору желдеткіш құбырларынан артықшылығы, сонымен қатар, бұл жағдайда жылы және ылғалды ауа өнімдердің бүкіл қабатынан біркелкі шығарылады.

Шұңқыр. Ең қарапайым қойма - бұл жер шұңқыры - көбінесе картоптың шағын партиясын және кейде тамыр дақылдарын сақтауға арналған. Ол жер асты суларының деңгейі төмен биіктікте қазылған. Топырақтың тығыздығына байланысты түзу немесе көлбеу қабырғалармен қазылады. Шұңқырдың ең қолайлы пішіні - дөңгелек, бірақ кейде олар тікбұрышты болады. Тығыз саз топырақтан құмыраға ұқсайтын шұңқыр қазылады. Құмды топырақта мұны істеу ұсынылмайды, өйткені ол құлап кетеді. Олар шұңқырды былай қазады: диаметрі 1 м шеңбер сызып, құмыраның мойнын қазып алады, содан кейін тереңірек қазып, тесікті диаметрі 2-2,5 м ені бойынша біртіндеп кеңейтеді. Шұңқырдың тереңдігі 1,5-2 м болуы керек, еріген судың шұңқырға түсуіне жол бермеу үшін мойынның саңылауына шығарылған саздан ролик салынады. Мұндай сақтау орны жаңбыр суының ағып кетуі үшін еңіске қойылған қақпақпен жабылған. Жақсы жасалған құмыра жөндеусіз 30-40 жылға жетеді. Қыста ол әдеттегі жертөлеге қарағанда тұрақты температура мен ылғалдылықты сақтайды. Мұндай шұңқырдағы картоп терлемейді және ұзақ уақыт бойы өнбейді. Картоп желдеткішсіз шағын шұңқырларда сақталады. Үлкендерде шұңқырдың түбіне соғылған және сабан арқанмен оралған тақталардан немесе төрт қададан желдеткіш құбыр орнатылады. Картоп шелек арқылы шұңқырға түсіріледі. Шелекке екі арқан байланады: біреуі тұтқаға, екіншісі - түбіне. Шелек еденге жеткеннен кейін, түбіне бекітілген арқанды тартыңыз. Бұл кезде шелек төңкеріліп, картоп сыртқа төгіледі. Бұл толтыру әдісімен түйнектер жарақаттанбайды. Шұңқырды картоппен толтырғаннан кейін мойын сабанмен және қақпақпен жабылады. Алғашқы екі аптада картоп дем алған кезде көп ылғал бөледі, сондықтан сабан қабаты қалың болмауы керек. Кейінірек жергілікті қыстың жағдайына байланысты қабат 50-70 см-ге дейін реттеледі.

Басып шығару (Ctrl+P)

Бұл бөлімде уақытша сақтау қоймаларымен және файлдармен жұмыс істеу механизмінің ең көп тараған қолданулары сипатталған.

Деректерді файлдан уақытша сақтауға сақтау

Бір файлды орналастыру

PlaceFile() әдісі жергілікті файлдық жүйедегі файлды уақытша жадқа орналастырады. Әдіс файлды сақтау керек уақытша жадтағы мекенжайды қабылдай алады. Егер мекенжай анықталмаған болса немесе бос жол болса, онда жаңа мекенжай жасалады және әдіс оны арнайы параметр арқылы қайтарады.
Ескерту. PutFile() әдісіне бір қоңырауда клиент пен сервер арасында тасымалданатын деректер көлемі
Егер интерактивті жұмыс режимін анықтайтын параметр True болса, онда әдіс жадқа орналастыру үшін файлды таңдауға болатын стандартты файлды таңдау диалогтық терезесін көрсетеді. Бұл жағдайда әдіс таңдалған файлдың мекенжайын да қайтарады.
Егер пайдаланушы файлды таңдау диалогында әрекетті орындаудан интерактивті түрде бас тартса, әдіс нәтиже ретінде False мәнін қайтарады.

Файлдар жинағын орналастыру

Әдіс PlaceFiles()бір қоңырауда бірнеше файлды уақытша жадқа орналастырады. Бірнеше бар әртүрлі жолдарменосы әдісті қолдану:
● қосылатын файлдардың тізімін алдын ала жасаңыз, мысалы, орналастыру қажет файлдарды алдын ала таңдаған кезде ақпараттық база;
● файлды іздеу маскасын әдіске беру, мысалы, белгілі бір түрдегі барлық файлдарды, мысалы, барлық суреттерді ақпараттық дерекқорға орналастырғыңыз келгенде;
● әдіске бұрын дайындалған нысанды беру Файлды таңдау диалогыфайлды ашу режимінде.
Жұмысты аяқтағаннан кейін әдіс нақты қосылған файлдардың тізімін қайтара алады.

// FileList – ValueList түрінің пішінінің атрибуты,
// қосылған файлдардың тізімін қамтиды
FileArray = Жаңа массив;
Файлдар тізімі цикліндегі тізімнің әрбір элементі үшін
FileArray.Add(NewDescriptionofTransferFile(ListElement,));
EndCycle;
PlacedFiles= Жаңа массив;
Нәтиже = PlaceFiles(ArrayFiles, PlacedFiles, False, UniqueIdentifier);

1-ескертпе: әдісті пайдалану үшін PlaceFiles()Веб-клиент файлды өңдеу кеңейтімін қосуды талап етеді.
2-ескертпе: клиент пен сервер арасында бір әдісті шақыру үшін тасымалданатын деректер мөлшері PlaceFiles(), 4 Гб аспауы керек (серияланған түрде).

Деректерді уақытша сақтауға орналастыру

Бұл әдіс PlaceFile() әдісіне ұқсас, тек уақытша жадқа жазылатын деректерден басқа
жол ретінде көрсетілмейді файлдық жүйе, бірақ мән түрінде. Сол сияқты, егер уақытша сақтау орнында бұрыннан бар мекенжай көрсетілмесе, жаңа мекенжай жасалады. Мекенжай функцияның нәтижесі ретінде қайтарылады. Файлдар сияқты, жарияланған деректер қандай да бір пішінге тиесілі болуы керек және олар жойылғаннан кейін автоматты түрде жойылады.
Ескерту.Әдіс шақыруы бойынша клиент пен сервер арасында тасымалданатын деректер мөлшері PlaceInTemporaryStorage(), 4 Гб аспауы керек (серияланған түрде).
Назар аударыңыз!Уақытша жадқа орналастырылған кезде мән нақты серияланбайды. Мәнге сілтеме орналастырылады және кэште 20 минут сақталады. Осы кезеңнен кейін мән серияланады, дискіге жазылады (сеанс деректерін сақтау) және кэштен жойылады.

Уақытша сақтаудан деректерді алу

Нысанды инфобазаға жазған кезде, деректерді уақытша жадтан шығарып, оны, мысалы, ақпараттық база нысанының төлсипатында орналастыру қажет болуы мүмкін. Бұл үшін арнайы әдіс бар - GetFromTemporaryStorage(). Бұл әдіс деректерді уақытша жадтан шығарып, оны орындау нәтижесі ретінде қайтарады. Деректерді алу үшін мекенжайды уақытша көрсету керек
сақтау. Бұл мекенжай сәтті болса, деректерді уақытша сақтауға орналастыру әдістерімен қайтарылады (алдыңғы бөлімдерді қараңыз).
Назар аударыңыз!Сервердегі уақытша сақтаудан мәнді алу кезінде оның сілтеме арқылы алынғанын ескеру қажет. Шындығында, бұл сілтеме кэште сақталған мәнді көрсетеді. 20 минут ішінде, ол жадқа орналастырылған сәттен бастап немесе оған соңғы қол жеткізілген сәттен бастап, мән кэште сақталады, содан кейін дискіге жазылады және кэштен жойылады. Мәнге келесі рет қол жеткізген кезде ол дискіден жүктеліп, кэшке қайта орналастырылады.
Уақытша сақтаудан мәндерді сериядан шығару және қалпына келтіруден кейін сілтемелер қалпына келтірілмейді. Кэш мәні дискіден қалпына келтірілді. Бірақ сериялау/серияландырудан кейін мән ішіндегі басқа нысандарға сілтемелерді қалпына келтіру мүмкін емес.

Уақытша жадтан деректерді жою

Деректер infobase нысан төлсипатында сақталғаннан кейін уақытша жадтағы деректерді жоюға болады. Бұл үшін әдіс бар
RemoveFromTemporaryStorage(),жоюды жүзеге асырады. Әдіс параметр ретінде уақытша сақтаудағы мекенжайды алады.

Уақытша сақтау үшін мекенжайды тексеру

Мекенжай ақпарат базасында уақытша сақтауды да, мәліметтерді де көрсете алады. Оның түрін тексеру әдісі бар
Бұл TemporaryStorageAddress().Ол жіберілген мекенжай дүкенді көрсететін мекенжай екенін тексереді. Мекенжай уақытша жадты көрсетсе, True мәнін қайтарады.

Жабдықтың мекенжайын алу

Деректер infobase нысан төлсипатына орналастырылғаннан кейін, оған файл әдістерін пайдаланып кіру қажет болуы мүмкін.
Бірақ деректерді алмас бұрын, мысалы, мүліктен, сіз осы мүліктің мекенжайын алуыңыз керек. Бұл үшін әдіс бар GetNavigationLink().

Ол бастапқы параметрлерге негізделген инфобазадағы мәннің мекенжайын қайтара алады. Мұны істеу үшін сізге нысан кілтін беру керек (бұл болуы мүмкін
объектінің сілтемесі де, ақпараттық регистрдің енгізу кілті де) және атрибут атауы. Атрибутта сақталған мәннің мекенжайын алу қажет болса
кестелік бөлік, содан кейін атрибут атауын көрсететін параметрдегі атрибут атына кестелік бөліктің атын және «.» нүктесін қосу керек. Мысалы: Өнімдер. Сурет

Инфобазадан файлды шығарып алу

Бір файлды қабылдау

GetFile() әдісі инфобазадан файлды алады және оны пайдаланушының жергілікті файлдық жүйесіне сақтайды. Бірінші параметр infobase нысан төлсипатындағы немесе уақытша файл сақтау қоймасындағы файл мекенжайын көрсетеді. Әрекет атынан орындалатын пайдаланушының ақпараттық база нысанының мәліметтерін қарау құқығы болмаса, сақтау орындалмайды. Екінші параметр алынған файл сақталатын орынды анықтайды. Интерактивті емес режимде жолды көрсету керек. Интерактивті режимде параметр болып табылады
міндетті емес.
Әдепкі бойынша әдіс интерактивті түрде орындалады. Бұл қабылданған файлмен әрекетті көрсетуге болатын диалогтық терезе құрылатынын білдіреді: оны іске қосыңыз немесе файлдық жүйеде пайдаланушы көрсеткен орынға сақтаңыз. Интерактивті режим таңдалса және Файл атауы опциясы көрсетілмесе, файлды ашу әрекеті қол жетімді емес. Әдіс логикалық мәнді қайтарады. False пайдаланушының интерактивті файлды сақтау тілқатысу терезесіндегі операциядан бас тартуды таңдағанын білдіреді.

Файлдар жинағын қабылдау

GetFiles() әдісі пайдаланушының жергілікті файлдық жүйесіндегі инфобазада сақталған бірнеше файлдарды алуға және сақтауға мүмкіндік береді. Жүктеп салынған файлдар тізімі параметр ретінде беріледі.

// FileList – элементтерге сілтемелері бар мәндер тізімі
// жүктелген файлдар орналасқан каталог
// Мәндерді көрсету тізімі жүктеп салынатын файлдың атауы болып табылады
FileArray = Жаңа массив;
Файлдар тізімі цикліндегі тізімнің әрбір элементі үшін
Файл = Жаңа File(String(ListElement.Value));
ReceiveFile = Жаңа Жіберілген файлдың сипаттамасы;
ReceiveFile.Name = ListElement.View;
ReceiveFile.Storage= P getNavigationLink(ListItem.Value, «Деректер»);
FileArray.Add(ReceivingFile);
EndCycle;
Алынған файлдар= Жаңа массив;
Нәтиже = ReceiveFiles(FilesArray, ReceivedFiles, UploadedFilesPath, False);
Нәтиже болмаса, онда
Хабар = Жаңа Пайдаланушыға хабарлама;
Message.Text = «Файлдарды қабылдау қатесі!»;
Message.Message();
EndIf;

Аяқтағаннан кейін әдіс әрбір сақталған файлдың толық атауын көрсете отырып, нақты жүктелген файлдардың тізімін қайтара алады.
ЕСКЕРТУ. Веб-клиентте GetFiles() әдісін пайдалану үшін файл кеңейтімін қосу керек. Егер сипат Объект атауы Жіберілген файлдың сипаттамасыфайлға абсолютті жолды қамтиды, файл параметрге қарамастан осы жолға сақталады Файл орны.
File Location параметрі жергілікті файлдық жүйедегі жол немесе каталогты таңдау немесе файлдарды сақтау режиміндегі Файлды таңдау диалогының нысаны болуы мүмкін. Параметр мәні болса Файл орнынысан көрсетілген Файлды таңдау диалогырежимінде
файлдарды сақтау, содан кейін:

● Берілген файл сипаттамасы нысан атауы сипаты абсолютті жолды қамтитын файлдарды қоспағанда, әрбір тасымалданатын файл үшін диалог шақырылады;
● нысанның мәні Берілген файл сипаттамасының атауы диалогтық терезеде бастапқы файл атауы ретінде пайдаланылады;
● кез келген файл үшін сақтаудан бас тарту таңдалса, онда Тасымалданған файл сипатының объектінің аты Сипаттамада бос жол болады;
● GetFiles() әдісі кем дегенде бір файл сәтті қабылданған болса, True мәнін қайтарады;
● пайдаланушы аты мен жолды көрсету туралы сұрақтарға жауап бергеннен кейін файлдар нақты алынғанын ескеру қажет.
барлық қабылданған файлдар;
● атынан GetFile() әдісі орындалатын пайдаланушының файлдар шығарылатын ақпараттық база нысанының кем дегенде бір атрибутына Көру құқығы болмаса, бүкіл операция орындалмайды.
Мысалы:

TransferredFiles = Жаңа массив;
Сипаттама = Жаңа Жіберілген файлдың сипаттамасы(«Сипаттамасы», Файл мекенжайы);
Тасымалданған файлдар.Қосу(Сипаттамасы);
FileSelect = Жаңа FileSelectionDialog(FileSelectionDialogMode.Save);
FileSelect.Header= «Мұрағатты сақтау»;
File Selection.Extension= «zip»;
FileSelect.Filter= “Архив(*.zip)|*.zip|Барлық файлдар|*.*”;
FileSelect.FilterIndex = 0;
ReceiveFiles(TransferFiles, SelectFile, False);

Егер файлдарды сақтау үшін каталогты таңдаудың интерактивті режимі таңдалса, веб-клиент абсолютті жолдармен көрсетілген файлдарды сақтауға рұқсатты қосымша сұрайды. Интерактивті емес сақтау жағдайында (каталогқа жол сәйкес параметрде көрсетіледі) сұраныс сақталған файлдардың бүкіл тізімі бойынша орындалады.

Файлдық әдістерді қолдану мысалы

// Файлды дискіден интерактивті түрде алу
// және оны уақытша сақтауға қою.
&OnClient
Процедура SelectDiskFileIWrite()
Айнымалының SelectedName;
Перем TemporaryStorageAddress;
NewObject = Object.Link.Empty();
Егер PlaceFile(TemporaryStorageAddress, “”, SelectedName, True)Содан кейін
Object.FileName = SelectedName;
PlaceObjectFile(TemporaryStorageAddress);
endIf;
Процедураның соңы
// Файлды уақытша жадтан деректемелерге көшіру
// каталог, нысанды жазу, уақытша файлды жою
// сақтау.
&OnServer
Процедура PlaceObjectFile(Уақытша сақтау мекенжайы)
Каталог элементі = Form AttributesValue («Нысан»);
BinaryData = GetFromTemporaryStorage(TemporaryStorageAddress);
Каталог элементі.Файл деректері= Жаңа StorageValues(BinaryData, NewDataCompression());
Файл = Жаңа Файл(Каталог элементі.ФайлАты);
Directory Item.FileName = File.Name;
Каталог элементі.Write();
Өзгертілген = False;
DeleteFromTemporaryStorage(TemporaryStorageAddress);
ValueВFormAttributes(Каталог элементі, «Объект»);
Процедураның соңы
// Файлды реквизиттерден оқып, оны сақтаңыз
// қосулы жергілікті дискинтерактивті түрде.
&OnClient
Процедура ReadFileAndSaveToDisk()
Мекенжай = GetNavigationLink(Object.Link,"Файлдеректер");
GetFile(Мекенжай, Object.FileName, True);
Процедураның соңы

Файл операцияларының тобын орындауға рұқсат

Веб-клиентте кейбір әрекеттерді орындаған кезде бірнеше файл әрекеттері үшін рұқсат алу қажет болуы мүмкін.
Мысалы, инфобазадан құжатты шығарып алу керек, содан кейін сақталған құжатты байланысты қолданба арқылы ашу керек.
Бұл операцияны орындау үшін құжатты сақтау туралы сұраққа және оны іске қосу қажеттілігі туралы сұраққа жауап беру керек. Операциялар көп болса, пайдаланушының да сұрақтары көп болады.
Сұрақтардың санын азайту үшін әдісті қолдануға болады. Бұл әдісті қолданғанда
Пайдаланушыға орындау жоспарланған барлық операциялардың тізімі көрсетіледі және операциялар тобына орындауға рұқсат беру сұралады. Егер пайдаланушы орындауға рұқсат берсе, онда сұралған әрекеттер пайдаланушыға қосымша сұрауларсыз орындалады. Рұқсат берілмесе, операциялар әдеттегідей жалғасады: әр операцияға бір сұрау.
ЕСКЕРТУ. Әдісті қолдану үшін RequestUserPermission()веб-клиентте файлды басқару кеңейтімін қосу керек.
Әдісті қолданудың мысалын қарастырайық:

Егер ConnectExtensionФайлдармен жұмыс()Содан кейін
Сілтеме = GetNavigationLink(Object.Link, “FileData”);
// Тасымалданатын файлдардың сипаттамасын қалыптастыру (in бұл жағдайдабір файл)
Тасымалданған файлдар= Жаңа массив;
Сипаттама = Тасымалданған файлдың жаңа сипаттамасы (Нысан. Файл атауы, Сілтеме);
TransferredFiles.Add(Сипаттамасы);
// Алынған файлдар туралы ақпаратты қабылдау үшін нысанды дайындаңыз
Тасымалданған файлдар= Жаңа массив;

// Басқа әдіс параметрлерін анықтаңыз
Каталогты сақтау= “c:\temp”;
Интерактивті = False ;
Жіберілген файл атауы = Каталогты сақтау + “\” + Object.FileName;
// Рұқсаттарды алу әдістерінің сипаттамасын дайындаңыз
Әдістер = Жаңа массив;

Methods.Add («GetFiles»);
Methods.Add(TransferFiles);
Methods.Add(TransferredFiles);
Methods.Add(SaveDirectory);
Methods.Add(Интерактивті);
Methods.Add( Жаңа массив);
Methods.Add («RunApplication»);
Methods.Add(TransferredFileName);
Егер жоқ болса RequestUserPermission(әдістер)Содан кейін
Ескерту («Пайдаланушы рұқсат беруден бас тартты.»);
Қайтару;
endIf;
GetFiles(TransferFiles, TransmittedFiles, SavingDirectory, Interactive);
LaunchApplication(TransferredFileName);
Әйтпесе
Ескерту("Орындауға қолдау көрсетілмейді. Файл кеңейтімі орнатылмаған.");
endIf;

Әдістің бірнеше ерекшеліктерін атап өту керек RequestUserPermission().

1. Рұқсат тек келесі әдістер үшін сұралады:

GetFiles()/StartGettingFiles(),
● PlaceFiles()/StartPlaceFiles(),
● FindFiles()/StartSearchFiles(),
● CopyFile()/StartCopyFile(),
● MoveFile()/StartMovingFile(),
● DeleteFiles()/StartDeletingFiles(),
● CreateDirectory()/StartCreatingDirectory(),
● LaunchApplication()/StartRunApplication().

2. Рұқсат әдіс параметрлерінің арнайы жиыны үшін сұралады. Егер файлды манипуляциялау әдісін нақты орындау кезінде параметр мәндері рұқсат алынған мәндерден өзгеше болса, бұл рұқсат жарамсыз болады және пайдаланушы операцияны растау үшін бөлек сұрау алады.

3. Файлдармен екі (немесе одан да көп) бірдей операцияларды орындау қажет болса (тіпті бірдей параметрлер жиынтығымен), әдіс параметрлері массивінде элементтердің сәйкес санын көрсету керек. RequestUserPermission(). Мысалы, бір файлды инфобазадан екі рет алу және оны файлдық жүйеде бекітілген орынға орналастыру қажет болса, рұқсат сұрау керек.
екі операция үшін.

4. Интерактивті әрекетті орындайтын операцияға рұқсат сұралса (мысалы, GetFiles() функциясы, нысан параметр ретінде беріледі. Файлды таңдау диалогы), онда мұндай операция сұраудан шығарылады.

Берілген рұқсаттар рұқсат етілген қоңырау орындалғанша немесе кірістірілген тіл орындалу аяқталғанша сақталады.
ЕСКЕРТУ. Қалың және жұқа клиенттерде RequestUserPermission()Әдіс әрқашан True мәнін, пайдаланушы әрекетінсіз қайтарады.

Фондық тапсырмада уақытша жадпен жұмыс істеу

Уақытша жадпен жұмыс істеу механизмінде деректерді фондық тапсырмадан басталған сеансқа тасымалдауға болады фондық жұмыс.
Мұндай тасымалдау үшін бос мәнді ата-аналық сеанстағы уақытша жадқа орналастыру керек (әдісті пайдалану). PlaceInTemporaryStorage()), құрылатын уақытша жадтың кез келген идентификаторын көрсету (Мекенжай параметрі). Содан кейін алынған мекенжайды фондық тапсырма параметрлері арқылы фондық жұмысқа жіберіңіз. Одан әрі, егер фондық жұмыста бұл мекенжай Әдіс мекенжайы параметрінің мәні ретінде пайдаланылады PlaceInTemporaryStorage(), содан кейін нәтиже фондық тапсырма іске қосылған сеансқа көшіріледі.
Фондық тапсырмадағы уақытша сақтауға орналастырылған деректерге фондық тапсырма аяқталмайынша, ата-аналық сеанс қол жетімді болмайды.

Сурет өрісіндегі мекенжайларды қолдау

Көрініс өрісі пішін элементі Сурет өрісі уақытша жадта немесе дерекқорда мән мекенжайы (сурет немесе екілік деректер болуы мүмкін) арқылы көрсетілген суретті көрсетуді қолдайды.
Ол үшін пішін элементінің Деректер сипатында жол түрі төлсипатын орнату керек. Бұл атрибуттың мәні суреттің мекенжайы ретінде түсіндіріледі.

// 1-мысал
// Кескін өрісін кескін мекенжайына уақытша байланыстыру
// сақтау. AddressPictures – жол түріндегі пішін мәліметтері
PlaceFile(ImageAddress, InitialName, SelectedName, True, UniqueIdentifier);
// 2-мысал
// Объект атрибутынан кескіннің адресін алу
// ақпараттық база
FilePictures = Object.FilePictures;
PictureFile.Empty() болмаса, онда
ImageAddress = GetNavigationLink(ImageFile, “FileData”);
Әйтпесе
ImageAddress = “”;
Шексіз;

Стандартты каталогтарға қол жеткізу

Жүйені пайдаланған кезде файлдық жүйеде әртүрлі файл деректерін сақтауға болатын біраз орын қажет, ол бір жағынан уақытша, ал екінші жағынан айтарлықтай ұзақ уақыт сақталуы керек. Мұндай файлдарға құжат айналымы жүйелеріне арналған жобалар, клиенттік компьютер жағында жұмыс істейтін сыртқы компоненттер және т.б.
Арнайы каталог белгілі бір ақпараттық базаның белгілі бір пайдаланушысымен байланыстырылған осындай файлдарды сақтауға арналған.
Екі ақпараттық базамен жұмыс істейтін бір пайдаланушы пайдаланушы деректерін сақтауға арналған екі түрлі каталогқа қол жеткізе алады. Бұл каталогтың орны әдіс арқылы анықталады WorkUserDataDirectory(). Егер каталог жоқ болса, ол бірінші рет қатынасқанда жасалады. Егер каталогты жасау мүмкін болмаса, жүйе ерекше жағдайды шығарады.
ЕСКЕРТУ. UserDataWorkDirectory() әдісі сервер жағында қол жетімді емес.
IN операциялық жүйеПайдаланушы деректерін тұрақты сақтау үшін арнайы каталог бөлінген. Кейбір болуы мүмкін
есептер, құжаттардың басып шығарылған нысандары және т.б. Деректер осы каталогта орналастырылады, оларды кейінірек сыртқыға жіберуге болады
тұтынушыларға. Бұл каталогқа кіру үшін DocumentDirectory() әдісі пайдаланылады. Каталогтың физикалық орны операциялық жүйеге байланысты өзгереді.
қолданба орындалатын және синтаксистік көмекшіде тізімделген жүйе.

Басып шығару (Ctrl+P)

1С:Кәсіпорында сеансқа қатысты кейбір деректерді сақтауды қамтамасыз ететін уақытша жадпен жұмыс істеу механизмі бар.
Сонымен қатар, инфобаза мен клиенттік қосымша арасында файлдар алмасуды қамтамасыз ететін файлдармен жұмыс істеу механизмі енгізілді. Бұл механизмнің ерекшелігі - ол пайдалануға арналған жұқа клиентжәне веб-клиент және веб-браузерлердің файлдарды өңдеу шектеулерін есепке алу үшін жасалған.

Уақытша сақтау

Бұл мәнді орналастыруға болатын мамандандырылған ақпарат қоймасы. Негізгі мақсат - клиент пен сервердің өзара әрекеттесуі кезінде мәліметтер базасына тасымалданғанға дейін ақпаратты уақытша сақтау. Уақытша сақтау механизмі файлдарды өңдеу механизмімен бірге пайдаланушының компьютерінде жергілікті түрде сақталған деректерді ақпараттық базаның уақытша сақтау қоймасына орналастыруға, бұл ақпаратты уақытша сақтау орнынан деректер қорына тасымалдауға және алуға болатын жиынтықты қамтамасыз етеді. ол пайдаланушының компьютеріне қайта оралады. Бұл механизмдер арқылы шешілетін ең көп таралған қолданбалы мәселелер ілеспе ақпаратты сақтау болып табылады, мысалы, тауарлардың кескіндері, келісім-шарттарға қатысты құжаттар және т.б. Уақытша сақтау және файлдармен жұмыс істеу механизмдері жиі бірге пайдаланылады, бірақ бөлек пайдаланылуы мүмкін.
Уақытша сақтау қажеттілігі, мысалы, веб-шолғыш үлгісі пайдаланушы таңдаған файлды клиентте сақтау мүмкіндігінсіз тікелей серверге тасымалдауды талап ететіндіктен туындайды. Файл тасымалданған кезде ол уақытша жадқа орналастырылады, содан кейін дерекқорға нысанды жазу кезінде пайдалануға болады.
Уақытша жадты деректердің қызмет ету мерзімі басқарылатын әмбебап сақтау орны ретінде пайдалануға болады:

1. Егер деректерді уақытша сақтауға орналастыру кезінде деректер белгілі бір пішінге байланыстырылған болса, онда сақталған деректердің қызмет ету мерзімі деректер байланыстырылған пішіннің өмір сүру ұзақтығына байланысты болады. Пішін нысанын жойған кезде, уақытша жад онымен байланысты барлық ақпараттан тазартылады.

2. Егер деректерді уақытша сақтауға орналастыру кезінде нысанға байланыстыру аяқталмаса, онда уақытша сақтауды тазарту келесі жағдайларда жүзеге асырылады:

  • Пішінді келесі жолы сұрағанда.
  • Келесі серверде клиенттің жалпы модулінен қоңырау.
  • Пішіннен контекстік және контекстік емес клиенттік қоңыраулар үшін.
  • Пәрмен модулінен сервер жағы шақырылғанда. Мәнді уақытша жадқа орналастыру үшін сервер шақыруы жасалса, тазалау орындалмайды. Тазалау қоңырау жұмысын аяқтағаннан кейін орын алады.

Яғни, бір немесе бірнеше мәндерді уақытша жадқа қоюға және бұл мәнді келесі қоңырауда пайдалануға болады. Дегенмен, пайдаланғаннан кейін және сервер қоңырауы аяқталмай тұрып, орналастырылған мән автоматты түрде жойылады.

Уақытша сақтау арқылы шешілетін ең типтік қолданбалы мәселе объект ақпараттық базада, мысалы, элемент түрінде жазылғанға дейін файлдарға немесе суреттерге қол жеткізуді қамтамасыз етеді. Мұндай қол жеткізуді ұйымдастырған кезде деректерді беру ұсынылады клиенттік компьютерлерсерверге дәл файлдар сияқты, алдын ала «түрлендірусіз». мәтіндік құжат, электрондық кесте құжаты және 1С:Кәсіпорын жүйесінің ұқсас форматтары. Файлды сервер жағына тасымалдау және сервер жағында файл деректерін қалағанға жүктеу ұсынылады
1С: Кәсіпорын жүйесінің форматы.
Жадқа орналастырылған деректер кейінірек жазу, оқу немесе жою операцияларында пайдаланылуы мүмкін бірегей мекенжай арқылы анықталады. Бұл мекенжай уақытша жадқа мән жазу әдістерімен беріледі. Кірістірілген тілдегі бөлек әдіс берілген мекенжайдың уақытша сақтаудағы деректерге нұсқайтын мекенжай екенін анықтауға мүмкіндік береді.
Бір сеанста жасалған уақытша жад басқа сеанстан қол жетімді емес. Ерекшелік - уақытша сақтауды пайдаланып, фондық жұмысты бастаған сеансқа деректерді тасымалдау мүмкіндігі.

Материал Drupal 8.7.0+ нұсқасына сәйкес жаңартылды

Уақытша қойма(уақытша сақтау) - кез келген деректерді уақытша сақтауға мүмкіндік береді. Бұл $_SESSION ішіндегі деректерді сақтаудың бір түрі, себебі бұл жад әдетте белгілі бір пайдаланушымен байланысты. Бірақ ол $_SESSION қолданбайды және барлығын жүйеде (деректер базасында) сақтайды.

Ядрода уақытша сақтауға арналған екі қызмет бар, tempstore.private және tempstore.shared. Олар бірдей жұмыс істейді, бірақ жеке әрқашан белгілі бір пайдаланушы үшін деректерді сақтайды. Яғни, жеке жадтан бір кілтті шақыру әрбір пайдаланушы үшін әртүрлі деректерді қайтарады. Бөлісуге әр пайдаланушы қол жеткізе алады.

Бұл қызметтердің қолдану аясы және оларды сақтау өте кең болуы мүмкін. Мысалы, кейбір уақытша пішін мәндерін сақтаңыз және егер пайдаланушы оларды сақтамаса, оларды осы жадтан қалпына келтіруге болады, мысалы, кейбір REST пішіндері үшін, тіпті тұрақтылар жасайды. Жалпы, сіздің қиялыңыз немесе тапсырмаларыңыз жеткілікті. Мысалы, бұл Drupal жүйесінен тыс басқарылатын кейбір пішіндер үшін пайдаланылуы мүмкін, мысалы, React немесе Vue.

Бұл қоймалардағы мәндер әдепкі бойынша 604800 секунд (1 апта) өмір сүреді, содан кейін олар автоматты түрде жойылады.

Бұл мәнді өзгерту үшін. Сізге, мысалы, sites/default/services.yml қосу және оны қайта анықтау қажет:

Параметрлер: # 10 секунд tempstore.expire: 10

Бірақ бұл жақсы себеппен болмауы керек.

Әрбір сақтау құрылғысының мүмкіндіктерін қарастырайық, олар ұқсас болғанымен, олар аздап ерекшеленеді.

tempstore.private - жеке сақтау орны

Бұл жад әрбір пайдаланушы үшін жеке.

tempstore.shared - ортақ сақтау

Бұл жад ортақ және барлық пайдаланушыларға ортақ деректерді қамтуы мүмкін.

Репозиторийде келесі әдістер бар:

  • get($key) : кілт арқылы дүкеннен мәнді шығарады. Деректер болмаса, ол NULL мәнін қайтарады, бар болса, мәнді қайтарады.
  • getIfOwner($key) : кілт арқылы дүкеннен мәнді шығарады. Егер деректер болмаса немесе деректер ағымдағы пайдаланушының астында жазылмаса, ол NULL мәнін қайтарады, егер бар және ағымдағы пайдаланушының астында жазылған болса, мәнді қайтарады.
  • setIfNotExists($key, $value): $key пернесі астындағы $value мәнін сақтау үшін ғана жазады. қазірбұл кілт үшін деректер жоқ. Жазылған болса, TRUE, деректер әлдеқашан жазылған болса, ЖАЛҒАН мәнін қайтарады.
  • setIfOwner($key, $value) : $key пернесі астындағы $value мәнін қазіргі уақытта деректер болмаса немесе нақты деректердің иесі ағымдағы пайдаланушы болған жағдайда ғана сақтау үшін жазады.
  • set($key, $value): Сақтау үшін $кілтінің астына $value мәнін жазады.
  • getMetadata($key) : нақты $кілтке арналған метадеректерді деректерсіз қайтарады. Бұл мәнді сақтайтын иелік қасиетін, мәнді кім иеленетінін және жаңартылған сипатты - осы мән жазылған уақыттың Unix уақыт белгісін қамтитын нысан.
  • delete($key): Берілген $кілтпен байланысты деректерді жадтан жояды.
  • deleteIfOwner($key) : Берілген $кілтпен байланысты деректерді сақтаудан жояды, егер деректер ағымдағы пайдаланушыға тиесілі болса ғана.

Олар қалай аталады?

Оларды қалай шақыруға болатыны туралы шағын мысалдар.

Бірінші қадам - ​​қажетті сақтаудың уақытша сақтау орнын алу, содан кейін қоймадан деректер қажетті кілттердің астында сақталған «жинақ» алынады. Әдетте, «жинақ» атауы модуль атауына тең.

Drupal\Core\TempStore\PrivateTempStoreFactory пайдаланыңыз; Drupal\Core\TempStore\SharedTempStoreFactory пайдаланыңыз; /** @var PrivateTempStoreFactory $private_tempstore */ $private_tempstore = \Drupal::service("tempstore.private"); $my_private_storage = $private_tempstore->get("жалпақ"); $my_private_storage->set("пайдаланушы аты", "Drupal"); /** @var SharedTempStoreFactory $shared_tempstore */ $shared_tempstore = \Drupal::service("tempstore.shared"); $my_shared_storage = $shared_tempstore->get("жалған"); $my_shared_storage->set("пайдаланушы аты", "Drupal");

Мысал

Мысалда біз /temp-store-form бетінде екі өрісі бар пішін жасаймыз, олардың біреуі хабарламаны жеке сақтауда, ал екіншісі жалпыға ортақ жерде сақтайды.

Пішін жасаңыз:

Src/FormWithTempStore.php

privateTempStore = $private_temp_store->get("жалпақ");

$this->sharedTempStore = $shared_temp_store->get("жалған");

) /** * (@inheritdoc) */ жалпы статикалық функция жасау(ContainerInterface $container) (жаңа статикалық мәнді қайтарады($container->get("tempstore.private"), $container->get("tempstore.shared") ) /** * (@inheritdoc) */ getFormId() жалпы функциясы ( "form_with_temp_store" қайтару; ) /** * (@inheritdoc) */ buildForm жалпы функциясы (массив $form, FormStateInterface $form_state) ( $form [" private_message"] = [ "#type" => "textarea", "#title" => $this->t("Жеке хабар"), "#required" => РАС, "#description" => $ this- >t("Бұл мән әрбір пайдаланушы үшін жеке болады."), "#default_value" => $this->privateTempStore->get("message"), ] $form["shared_message"] = [ " #type " => "textarea", "#title" => $this->t("Ортақ хабар"), "#required" => TRUE, "#description" => $this->t("Бұл мән барлық пайдаланушылар үшін ортақ."), "#default_value" => $this->sharedTempStore->get("message"), ]; $form["actions"] = ["#type" => "әрекеттер" ]; $form["actions"]["submit"] = [ "#type" => "жіберу", "#value" => $this->t("Сақтау"), ];

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerations.Types of Objects.Image; Сақтау орны = NewValueStorage(NewPicture, NewDataCompression()); CurrentImage.Storage = Storage.Get();

// осы жерде ол барлығын көрсетеді... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...электрондық кесте құжаты:

TabDoc=Жаңа кестелік құжат;

TabDoc.Output(FormElements.TabularDocumentField1);

Storage=NewValueStorage(TabDoc);

Write();<>Процедураның соңы

Процедураның соңы

RestoreFromStoragePress(элемент) процедурасы

TabDoc=Storage.Get();

Егер TabDoc

Анықталмаған ThenFormElements.TabularDocumentField1.Output(TabDoc);

endIf;

...еркін файлдар (екілік деректер):

XZ = NewValueStorage(NewBinaryData(файл));

TabDoc.Output(FormElements.TabularDocumentField1);

Сегіз жадқа орналастырылған деректерді қысуды қолдайды:

XZ = NewValueStorage(NewBinaryData(файл),NewDataCompression(9));

Процедураның соңы

... сыртқы өңдеу және есеп беру:

LoadProcessingIntoStorage(PropsStorageType) процедурасы

CompressionRate = NewDataCompression(9); //9 максимум PropsStorageType = Жаңа СақтауМәндері(Жаңа BinaryData("c:\reports\report.epf", Қысу коэффициенті));<>Процедура StartProcessingFromStorage(PropsStorageType)

TemporaryFileName = TemporaryFileDirectory()+"report.epf";

BinaryData = PropsStorageType.Get();

BinaryData.Write(TemporaryFileName);

ExternalProcessing = ExternalProcessing.Create(TemporaryFileName);

ExternalProcessing.GetForm().Open();

Сақтаумен жұмыс

Егер бұл екілік деректер болса, оны Get әдісі арқылы мәндер қоймасынан қалпына келтіруге және Write() әдісі арқылы файлға жазуға болады.

TypeValue (сақтау) болса

Содан кейін («BinaryData») теріңіз

Басқарылатын қолданба файлдармен жұмыс істеудің жаңа механизмін жүзеге асырады. Ол инфобаза мен клиенттік қолданба арасында файл алмасуды қамтамасыз етеді. Бұл механизмнің ерекшелігі - ол жұқа клиентте және веб-клиентте пайдалануға арналған және веб-браузерлер қойған файлдармен жұмыс істеуге шектеулерді ескере отырып құрастырылған.

Механизм – пайдаланушының компьютерінде жергілікті түрде сақталған мәліметтерді ақпараттық базаның уақытша сақтау қоймасына орналастыру, бұл ақпаратты уақытша сақтау қоймасынан дерекқорға тасымалдау және оны пайдаланушының компьютеріне қайтару үшін қолданылатын әдістер жиынтығы. Бұл механизммен шешілетін ең көп таралған қолданбалы мәселелер ілеспе ақпаратты сақтау болып табылады, мысалы, тауарлардың суреттері, келісім-шарттарға қатысты құжаттар және т.б.

Әдіс көлемі

Уақытша сақтау

Уақытша сақтау - бұл екілік деректерді орналастыруға болатын ақпараттық базаның мамандандырылған аймағы. Негізгі мақсат - клиент пен сервердің өзара әрекеттесуі кезінде мәліметтер базасына тасымалданғанға дейін ақпаратты уақытша сақтау.

Уақытша сақтау қажеттілігі веб-шолғыштың операциялық үлгісі пайдаланушы таңдаған файлды клиентте сақтау мүмкіндігінсіз тікелей серверге тасымалдауды талап ететіндіктен туындайды. Файл тасымалданған кезде ол уақытша жадқа орналастырылады, содан кейін дерекқорға нысанды жазу кезінде пайдалануға болады.

Уақытша сақтау арқылы шешілетін ең типтік қолданбалы тапсырма объект ақпараттық базаға жазылғанға дейін файлдарға немесе суреттерге қол жеткізуді қамтамасыз етеді, мысалы, элемент түрінде.

Сақтауға орналастырылған файл немесе екілік деректер кейінірек жазу, оқу немесе жою әрекеттерінде пайдаланылуы мүмкін бірегей мекенжай арқылы анықталады. Бұл мекенжай файлды уақытша жадқа жазу әдістерімен беріледі. Кірістірілген тілдегі бөлек әдіс берілген мекенжайдың уақытша сақтаудағы деректерге нұсқайтын мекенжай екенін анықтауға мүмкіндік береді.

Ақпараттық база

Механизм Құнды сақтау түрінің атрибуттарында сақталған екілік деректерге қол жеткізуге мүмкіндік береді.

Уақытша сақтау жағдайындағы сияқты, ақпаратқа қол жеткізу арнайы мекенжай арқылы мүмкін болады. Оны арнайы әдіс арқылы объектке сілтеме немесе ақпараттық регистрді енгізу кілті және атрибут атауы арқылы алуға болады. Кестелік бөлік жағдайында кестелік бөліктің жол көрсеткішін көшіру қосымша талап етіледі.

Инфобаза мәліметтерімен жұмыс істеу кезінде файлдармен жұмыс істеу әдістерінде шектеулер бар. Олар үшін уақытша сақтаудан айырмашылығы, тек оқу ақпараты қол жетімді, бірақ оны жазу немесе жою мүмкін емес.

Файлдармен жұмыс істеу әдістерінің сипаттамасы

Деректерді уақытша сақтауға сақтау

Бұл механизмді пайдаланудың ең типтік сценарийі бастапқыда пайдаланушы деректерін уақытша сақтауға орналастыруды қамтиды. Бұл үшін екі әдіс бар: PlaceFile() және PlaceFileInTemporaryStorage().

Бірінші әдіс PlaceFile(), жергілікті файлдық жүйедегі файлды уақытша жадқа орналастырады. Әдіс сақтаудағы мақсатты мекенжайды қабылдай алады. Егер ол анықталмаса немесе бос жол болса, онда жаңа файл жасалады және әдіс сәйкес параметр арқылы оның мекенжайын қайтарады.

Егер интерактивті жұмыс режимін анықтайтын параметр True болса, онда әдіс жадқа орналастыру үшін файлды таңдауға болатын стандартты файлды таңдау диалогтық терезесін көрсетеді. Бұл жағдайда әдіс таңдалған файлдың мекенжайын да қайтарады.

Нәтижесінде, пайдаланушы файлды таңдау диалогында әрекетті орындаудан интерактивті түрде бас тартса, әдіс False мәнін қайтарады. Әдіс тек клиентте қол жетімді.

Екінші әдіс PlaceFileInTemporaryStorage() алдыңғыға ұқсас, тек ол серверде қолжетімді және уақытша жадқа жазылатын деректер файлдық жүйедегі жол ретінде емес, түрдегі айнымалы ретінде көрсетіледі. BinaryData. Сол сияқты, мақсатты мекенжай көрсетілмесе, жадта жаңа файл жасалады. Оның адресі функцияның нәтижесі ретінде қайтарылады.

Уақытша жадтан файлды шығарып алу

Инфобазаға нысанды жазғанда, деректерді уақытша жадтан шығарып, оны, мысалы, атрибутқа орналастыру қажет болуы мүмкін. Бұл үшін сәйкес сервер әдісі бар - GetFileFromTemporaryStorage(). Бұл әдіс деректерді уақытша сақтаудан шығарып, нәтижесінде оны қайтарады. Ол үшін уақытша сақтаудағы мекенжайды көрсету керек. Бұл мекенжай жоғарыда сипатталған PlaceFile() және PlaceFileInTemporaryStorage() әдістерімен қайтарылады, егер олар сәтті орындалса.

Уақытша жадтан файлды жою

Деректер мәліметтерде сақталғаннан кейін уақытша сақтаудағы файлды жоюға болады. Осы мақсатта файлды уақытша жадтан жоятын DeleteFileFromTemporaryStorage() әдісі бар. Әдіс параметр ретінде уақытша сақтаудағы файлдың мекенжайын алады. Серверде қол жетімді.

Уақытша сақтау үшін мекенжайды тексеру

Файл мекенжайы уақытша сақтау орнын да, инфобазадағы мәліметтерді де көрсете алады. Оның түрін тексеру үшін This isTemporaryStorageAddress() әдісі бар.

Ол жіберілген мекенжай дүкенді көрсететін мекенжай екенін тексереді. Мекенжай уақытша жадты көрсетсе, True мәнін қайтарады. Әдіс серверде қол жетімді.

Жабдықтың мекенжайын алу

Деректер инфобазадағы мәліметтерге орналастырылғаннан кейін, сізге файлдық әдістерді пайдаланып кіру қажет болуы мүмкін.

Бірақ деректерді алмас бұрын, мысалы, сипат, сіз осы сипаттың мекенжайын алуыңыз керек. Осы мақсатта GetFileAddressInInformationBase() әдісі бар.

Оның мақсаты - бастапқы параметрлерге сәйкес инфобазадағы файл мекенжайын қайтару. Ол үшін объект кілтін (бұл нысанға сілтеме немесе ақпараттық регистрді енгізу кілті болуы мүмкін) және атрибуттың атын беру керек. Кестелік бөлік атрибутында сақталған файлдың мекенжайын алу қажет болса, атрибут атауын көрсететін параметрдегі атрибут атауының алдында кестелік бөліктің атын және «.» нүктесін қосу керек. Әдіс клиентте де, серверде де қол жетімді.

Инфобазадан файлды шығарып алу

GetFile() әдісі инфобазадан файлды алады және оны пайдаланушының жергілікті файлдық жүйесіне сақтайды. Бірінші параметр атрибуттағы немесе уақытша файл сақтау қоймасындағы файлдың мекенжайын көрсетеді. Екінші параметр алынған файлдың тағайындалған орнын көрсетеді. Интерактивті емес режимде жолды көрсету керек. Интерактивті режимде параметр міндетті емес.

Әдепкі бойынша әдіс интерактивті режимде орындалады, яғни соңғы параметр True. Бұл қабылданған файлмен әрекетті көрсетуге болатын диалогтық терезенің көрсетілетінін білдіреді: оны іске қосыңыз немесе пайдаланушы көрсеткен орынға сақтаңыз. Интерактивті режим белсенді болса және Мақсатты дискінің файл жолы параметрі көрсетілмесе, файлды ашу әрекеті қол жетімді емес. Логикалық мәнді қайтарады. False пайдаланушының интерактивті файлды сақтау тілқатысу терезесіндегі операциядан бас тартуды таңдағанын білдіреді.

Файлдық әдістерді қолдану мысалы

// Интерактивті режимде дискіден файлды алу // және оны уақытша жадқа орналастыру &Client процедурасында SelectDiskFileAndWrite()

Айнымалының SelectedName;

TabDoc.Output(FormElements.TabularDocumentField1);

// Файлды уақытша жадтан каталогқа көшіру // атрибут, нысанды жазу, файлды уақытша // сақтаудан жою &Сервер процедурасында Нысан файлын орналастыру (уақытша сақтау мекенжайы)

Каталог элементі = Form AttributesValue («Нысан»);

TabDoc.Output(FormElements.TabularDocumentField1);

BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress);

Directory Element.File деректері = NewValueStorage(BinaryData);

Процедураның соңы

FilePathOnDisk = Жаңа файл(DirectoryItem.FileName);

Directory Item.FileName = FilePathOnDisk.Name;

Каталог элементі.Write();

Өзгертілген = False; DeleteFileFromTemporaryStorage(TemporaryStorageAddress);

ValueВFormAttributes(Каталог элементі, "Объект");

// Файлды деректемелерден оқу және оны сақтау // жергілікті дискіде интерактивті режимде &Client процедурасында ReadFileAndSaveToDisk()

Мекенжай = GetFileAddressInInformationBase(Object.Link, "FileData");

GetFile(Мекенжай, Object.FileName, True);

Сурет өрісіндегі мекенжайларды қолдау

Сурет өрісін басқару элементі уақытша сақтаудағы немесе дерекқордағы файл мекенжайы арқылы көрсетілген суретті көрсетуді қолдайды.

Ол үшін пішін элементінің Деректер сипатында жол түрі төлсипатын орнату керек. Бұл атрибуттың мәні суреттің мекенжайы ретінде түсіндіріледі.

Мысал

// Кескін өрісін уақытша // сақтаудағы кескін мекенжайымен байланыстыру. AddressPictures жол түрінің мәліметтерін қалыптастырады

PlaceFile(Сурет мекенжайы, True)

  • Пішіннің кесте атрибутының қасиеттерінде «Әрқашан пайдалану» жалаушасы бар. Егер ол орнатылған болса, өрістің мазмұны әрқашан сервер мен клиент арасында тасымалданады - мысалы, пішінді ашқан кезде. Бұл жалаушаны өшіру керек, бірақ бұл кодта ескерілуі керек, себебі әдепкі бойынша клиентте бұл өріс үшін мән болмайды. Мысалды 1С:Архивтен табуға болады.

Оны пайдалану тіпті жақсы уақытша сақтауклиент пен сервер арасында файлдарды тасымалдау үшін.