1c kukataa kwa madirisha ya modal. Nini cha kufanya ikiwa "matumizi ya madirisha ya modal katika hali hii yamepigwa marufuku." Maagizo ya kurekebisha makosa kwa watumiaji wa kawaida

Masanduku ya mazungumzo, ambayo tumezoea kabisa wakati wa kufanya kazi na kila aina ya mifumo na, haswa, katika 1C, inaweza kuonekana wakati wa kufanya vitendo anuwai, kuhitaji mtumiaji kuingiza data fulani, kwa mfano, thamani fulani, kuchagua faili, kujibu swali, au Wanatoa tu onyo. Pia huitwa modal.

Bila jibu kwa ombi la dirisha kama hilo, haiwezekani kuendelea kufanya kazi katika programu. Dirisha huzuia interface, huzuia kazi ya madirisha mengine, na wakati huo huo, utekelezaji wa nambari za programu pia utaacha mahali ambapo mazungumzo yaliitwa - programu inasubiri kukamilika kwa hatua nayo.

Maongezi kwa kawaida hayasababishi matatizo katika hali nyembamba na nene ya uzinduzi wa mteja, lakini matatizo yanaweza kutokea wakati wa kufanya kazi na mteja wa wavuti. Hii ni kutokana na ukweli kwamba vipengele vya mfumo sawa kwenye mtandao hutumiwa kama vyombo vya habari vya utangazaji, na watumiaji mara nyingi huzima maonyesho yao katika mipangilio ya kivinjari chao. Ipasavyo, kazi yao imezuiwa katika programu inayoendesha kupitia kivinjari. Kwa hivyo, unapofanya kazi na 1C kupitia mteja wa wavuti au kwenye jukwaa la rununu, lazima usisahau kufanya mipangilio ya ziada ya kivinjari na kumbuka kuwa kivinjari cha rununu hakiunga mkono ujumbe wa pop-up hata kidogo.

Jinsi ya kutatua kosa katika 1C: "Matumizi ya madirisha ya modal katika hali hii ni marufuku"

Hitilafu hii ilianza kuonekana baada ya 1C kubadili interface mpya ya jukwaa la 1C 8.3 - "Teksi". Hii ni kutokana na ukweli kwamba watengenezaji walijumuisha kazi na madirisha ndani yake, lakini bila mode mode.

Mtini.1

Hebu tufungue msingi wa habari katika hali ya "Configurator" na uangalie mali ya usanidi wetu kwa kubofya haki na kuchagua amri ya "Mali". Kusogeza chini kwenye mstari hapa chini, tunaona sehemu ya "Upatanifu", ambapo parameta ya modi tunayovutiwa nayo iko na chaguzi zimeorodheshwa - "Tumia / Tumia kwa onyo / Usitumie."



Mtini.2

Baada ya hayo, unahitaji kuokoa na kusasisha mabadiliko ya usanidi. Hitilafu tunayozungumzia inaonekana wakati kisanduku cha kuteua kimewekwa ili kutotumia hali ya kurekebisha. Fursa hii ilionekana kuanzia na jukwaa 8.3.3.721, iliyotolewa Septemba 2013. Hiyo ni, watumiaji wanaoendesha matoleo ya zamani ya jukwaa hawahitaji kuchagua kutoka kwa muundo. Katika matoleo mengine, ili dirisha la kosa halionekani, unaweza kuiweka tu "Tumia".

Katika mfano wetu, chaguo la onyo limewekwa. Bila shaka, katika siku zijazo, watengenezaji wataboresha usanidi wa kutumia vipengele vingine vinavyopita madirisha ya modal. Lakini leo, hali kutoka kwa mfano wetu ndiyo hasa ambayo msanidi hutumia wakati wa mpito, wakati sio usanidi mzima bado umebadilishwa kuwa hali ya kawaida. Kwa hiyo, programu pia itatoa ujumbe kuhusu marufuku ya madirisha yenye sifa za modal.



Mtini.3

Maombi ambayo hutumiwa kupitia mteja wa wavuti, kwenye iPad, katika wingu, kwa mfano, kwenye "1cfresh.com", usitumie hali hii. Mipangilio yote mipya hutumia hali ya kiolesura isiyo na hali.

Kukataa kwa mtindo

Waendelezaji wa mpango wa 1C, wanaounga mkono mwelekeo wa kimataifa, wanajaribu kuleta interface ya programu karibu na sampuli za wavuti na kuileta kwa kiwango kimoja, na hivyo kuwapa watumiaji fursa ya kufanya kazi katika dirisha moja na kiolesura cha "nje" kinachojulikana.

Kwa hivyo (na ili kupunguza shida zilizoelezewa hapo juu) iliamuliwa kuondoa mazungumzo ya pop-up bila kupunguza utendakazi wa suluhisho. Katika kesi hii, ujumbe katika hali mpya ya uendeshaji wa programu huonekana ndani ya dirisha la mzazi, na sio, kama hapo awali, kwenye dirisha la modal. Ingawa bado inazuia kiolesura kizima.

Hiyo ni, uvumbuzi huondosha haja ya mipangilio ya ziada ya kivinjari, huimarisha mteja wa mtandao na kuboresha utendaji wake. Pia, kwa kuwa sasa hakuna haja ya kufungua madirisha ibukizi, usanidi wowote na mabadiliko haya unaweza kutumika kwenye kifaa chochote.

"Matumizi ya madirisha ya modal katika hali hii ni marufuku" - kosa hili sasa linaanza kuwasumbua watumiaji wa 1C na waandaaji wa programu kwa kuwasili kwa kiolesura kipya cha jukwaa la 1C 8.3 - "".

Watengenezaji wa jukwaa la teknolojia ya 1C hufuatana na nyakati, kusawazisha suluhisho lao kwa viwango vya kimataifa vya ukuzaji programu. Viwango vyote kwa njia moja au nyingine vinakuja kwenye kiolesura kimoja, karibu na kurasa za wavuti.

Madirisha ya Modal na pop-up yanachukuliwa kuwa fomu mbaya na kwa muda mrefu imekoma kuwa ya kawaida katika maendeleo ya programu. Watumiaji wamezoea kufanya kazi "katika dirisha moja".

Mara nyingi tunaona hitilafu ya muundo katika njia zifuatazo za 1C:

  • Swali;
  • Onyo;
  • OpenValue.

Kwa kutolewa kwa kiolesura kipya cha "teksi", watengenezaji wa jukwaa la 1C 8 walifanya uamuzi sahihi - kujaribu kuwafunza tena watengenezaji wa suluhisho la maombi kwa njia mpya. Walijumuisha kipengele kwenye jukwaa jipya - "modality mode".

Urekebishaji wa haraka

Ikiwa huna muda wa kuifanya na unahitaji haraka kutatua tatizo, tunatoa suluhisho rahisi, lakini si sahihi kabisa. Ili kurekebisha kosa haraka, badilisha tu hali ya usanidi katika mali ya usanidi.

Ili kufanya hivyo, ingia kwenye mfumo katika hali, fungua usanidi:

Katika usanidi wazi, piga menyu ya muktadha kwa kubofya kulia kwenye mzizi wa usanidi na uchague "Sifa":

Pata masomo 267 ya video kwenye 1C bila malipo:

Sifa za usanidi zitafunguliwa, ambapo kwenye sehemu ya chini kuna mali ambayo tunavutiwa nayo - "Modi ya utumiaji wa hali", chagua modi ya "Tumia":

Baada ya hayo, hifadhi na utumie mabadiliko kwa kushinikiza kitufe cha "F7".

Suluhisho sahihi la shida

Njia sahihi ya kutatua tatizo hili ni kurekebisha usanidi au usindikaji wa nje ili kukidhi mahitaji mapya.

Onyo, swali, visanduku vya mazungumzo na miundo mingine yote yanahitaji kuandikwa upya kwa njia mpya.

Waendeshaji waliojengwa ambao waliita madirisha ya modal wanahitaji kubadilishwa na kazi mbili.

Kwa mfano:

  • Onyo - Onyo la Kuonyesha;
  • Swali - OnyeshaSwali (maelezo - );
  • - Nambari za ShowInput.

Wakati huo huo, kitu maalum kilionekana - Maelezo ya Arifa.

Mfano wa uingizwaji:

Kamba = "" ; EnterString(Kamba,"Ingiza thamani ya kamba"

) Notify("Umeingiza" + String);

Lazima kubadilishwa na: Kamba = "" ; MaelezoAlerts = Maelezo MapyaTaarifa( EnterString(Kamba,) ;

"TestLineInput"

, Fomu Hii);

ShowLineInput(Taarifa za Maelezo, Kamba,

Ili kuzuia ufikiaji wa fomu inayoitwa kwa kufungua fomu, taja tu thamani "Zuia dirisha la mmiliki" katika sifa ya fomu "WindowOpenMode":

Imetekelezwa katika toleo la 8.3.3.641.

1C:Enterprise hutumia madirisha ya modal katika hali ambapo mtumiaji anahitajika kuingiza habari, bila ambayo utekelezaji zaidi wa algorithm hauwezekani. Katika kesi hii, interface nzima ya programu imefungwa kabisa, na utekelezaji wa msimbo wa programu huacha mpaka mtumiaji afunge dirisha la modal.

Pamoja na ujio wa mteja wa mtandao na mpito wa 1C:Enterprise kwa majukwaa ya simu, madirisha ya modal yaligeuka kuwa chanzo cha idadi kubwa ya usumbufu na matatizo, mara nyingi hayawezi kufutwa.

Kama sheria, vivinjari vya "desktop", bora au mbaya zaidi, vinasaidia madirisha ya modal na kuzifungua kwenye dirisha jipya la kivinjari kama "dirisha ibukizi":

Lakini kwa sababu ya ukweli kwamba teknolojia ya dirisha la pop-up hutumiwa sana kwenye mtandao kwa utangazaji, karibu vivinjari vyote vina madirisha ya pop-up yamezimwa kwa chaguo-msingi. Katika idadi kubwa ya matukio, bila kubadilisha mpangilio huu wa kivinjari, mteja wa wavuti haitafanya kazi.

Shida nyingine ni kwamba vivinjari vya rununu haviungi mkono madirisha ya modal hata kidogo. Na ili 1C:Enterprise iweze kufanya kazi ndani yao, utaratibu maalum ulitekelezwa katika mteja wa wavuti. Huu ni utaratibu tata na, kwa bahati mbaya, haujumuishi hali zote muhimu. Matokeo yake, usanidi kwenye iPads, kwa mfano, ni vigumu kudumisha.

Katika hali hiyo, chaguo la kufanya kazi 1C: interface ya Biashara bila kutumia madirisha ya modal huondoa matatizo yote yaliyoorodheshwa hapo juu.

Wakati huo huo, hakuna kuachwa kwa utendaji ambao ulitolewa hapo awali na madirisha ya modal. Lakini utendaji huu unatekelezwa na teknolojia nyingine ambazo haziingilii na uendeshaji wa 1C:Enterprise katika vivinjari.

Katika hali mpya ya utendakazi wa kiolesura, dirisha, ambalo hapo awali lingekuwa la modal, linachorwa ndani ya dirisha la mzazi, na kwa njia hiyo hiyo huzuia kiolesura kingine cha mteja wa wavuti:

Kama matokeo:

  • hakuna madirisha mapya ya kivinjari yanafunguliwa, ambayo inaboresha utendaji na utulivu wa mteja wa mtandao;
  • mara nyingi, mipangilio ya ziada ya kivinjari haihitajiki, kwani 1C:Enterprise haitumii tena madirisha ya pop-up;
  • usanidi wowote kwa kutumia mteja wa wavuti unaweza kufanya kazi kwenye iPad na vifaa vingine vya rununu.

Kwa kawaida, miujiza haifanyiki, na hali mpya ya kufanya kazi haiwezi kuanzishwa "na wimbi la wand wa uchawi." Mabadiliko katika mantiki ya kufanya kazi na madirisha mapya, yanayozuia inahitajika. Lakini habari njema ni kwamba mabadiliko haya si vigumu, na inawezekana kufuatilia maeneo yote "ya kutiliwa shaka" katika programu. Jukwaa hutumia utaratibu maalum unaokuwezesha kuangalia katika hatua ya maendeleo kwamba usanidi mzima unatumia taratibu mpya na utafanya kazi bila madirisha ya modal.

Uhitaji wa kubadilisha mantiki ya kufanya kazi na madirisha hayo ni kutokana na ukweli kwamba hali mpya ya uendeshaji wa interface hutoa modality tu kwa mtumiaji. Hata hivyo, kwa msanidi programu, utekelezaji wa msimbo wa programu hauacha wakati dirisha la kuzuia linaonyeshwa.

Hii ina maana kwamba algorithm, ambayo hapo awali ilikuwa moja nzima, sasa itabidi kugawanywa katika sehemu mbili. Moja, ambayo inaisha na ufunguzi wa dirisha la kuzuia, na pili, ambayo itatekelezwa wakati mtumiaji atafunga dirisha hili. Ili mfumo ujue wapi kuendelea kutekeleza msimbo wa programu, dirisha la kuzuia linapewa jina la utaratibu ambao unapaswa kutekelezwa wakati mtumiaji anafunga dirisha hili.

Kiini cha mabadiliko haya ni rahisi kuona kwa mfano. Utaratibu wa zamani ambao ulifungua kidirisha cha modal na kusindika data iliyopokea unaweza kuonekana kama hii:

Katika toleo jipya la fomu Ingizo la FormText (ambayo itafungua kwenye dirisha la kuzuia) unahitaji kuweka mali Hali ya Kufungua Dirisha kwa maana BlockAllInterface . Hii itatoa muundo kwa mtumiaji:

Na nambari ya programu, badala ya utaratibu mmoja, kama hapo awali, itakuwa na taratibu mbili:

Katika utaratibu wa kwanza, fungua fomu. Katika kesi hii, katika parameter ya mwisho tunapitisha eneo la utaratibu wa pili, ambao utatekelezwa baada ya mtumiaji kufunga dirisha. Katika kesi hii, utaratibu huu iko katika moduli sawa, lakini kwa ujumla inaweza kuwa iko katika nyingine.

Mtumiaji anapoingiza data na kufunga fomu, itachakatwa kwa utaratibu wa pili tuliotaja, ambapo tulihamisha msimbo wa "zamani" ambao huchakata data iliyopokelewa.

Mbali na fomu ambazo msanidi programu anaweza kufungua katika hali ya modal (kwa mapenzi), kuna mbinu za lugha zilizojengwa ambazo daima, bila kujali tamaa ya msanidi programu, hufungua fomu za modal za kuingiza au kuchagua data. Kwa mfano, mbinu EnterValue() .

Kutumia njia kama hizo katika hali isiyo ya kawaida ni rahisi zaidi. Kwa njia zote hizo, jukwaa lina njia mbili, wakati wa kuwaita lazima pia uonyeshe eneo la utaratibu ambao utatekelezwa baada ya mtumiaji kufunga dirisha.

Kwa mfano, hapa chini inaonyeshwa kwa kutumia njia ya zamani EnterValue() na njia yake mpya ya kuhifadhi nakala ShowInputValue() :

Ni lazima kusema kwamba, pamoja na kesi zilizoorodheshwa, baadhi ya taratibu za jukwaa pia hutumia madirisha ya modal kuingiliana na mtumiaji. Na hii haitegemei tena vitendo vya msanidi programu.

Kwa hivyo, mazungumzo yote kama haya ya mfumo wa jukwaa pia yamehamishiwa kwa hali ya utendakazi isiyo na hali.

Imepangwa kupunguza hatua kwa hatua matumizi ya madirisha ya modal katika ufumbuzi wa maombi. Kwa hiyo, kwa utangamano na ufumbuzi wa maombi yaliyoandikwa mapema, jukwaa huhifadhi uwezo wa kufanya kazi katika toleo la zamani la interface, kwa kutumia madirisha ya modal.

Katika toleo la jukwaa la 1C 8.3, hali mpya ya uendeshaji wa programu imeonekana - bila kutumia modality. Kwa usahihi, njia 2 mpya zimeonekana: bila kutumia hali na kutumia hali, lakini kwa onyo. Na hali ya zamani ya operesheni imeonyeshwa kama kutumia modality.

Je, haya yote yanamaanisha nini? Katika matoleo ya awali ya jukwaa, tulitumia madirisha mbalimbali ya modal na hatukufikiri sana juu yake. Kwa mfano, unahitaji kuonyesha onyo kwa mtumiaji, au unahitaji kuuliza swali, au kuingiza thamani fulani, au kuchagua faili. Haya yote ni madirisha ya modal.

Modal ina maana gani Hii ina maana kwamba wakati dirisha hili linaitwa, linaingiliana na madirisha mengine yote, yaani, inaonyeshwa juu kabisa na inazuia kazi na madirisha mengine mpaka kazi na dirisha hili imekamilika. Mbali na kuzuia madirisha, utekelezaji wa msimbo huacha hasa mahali ambapo dirisha hili linaitwa na utekelezaji wa kanuni unaendelea tu baada ya dirisha kama hilo kufungwa. Kutoka mahali ambapo utekelezaji ulisimama. Nitaonyesha simu kwa dirisha la modal kwa kutumia mfano wa kupiga fomu ya uteuzi wa kipindi:

&OnClient

StandardProcessing = Uongo;




Ikiwa Dialog.Edit() Kisha //Pigia fomu ya modali. Utekelezaji wa msimbo utaendelea tu baada ya fomu kufungwa.
Elements.Services.CurrentData.StartDate = Dialog.Period.StartDate;
Elements.Services.CurrentData.EndDate = Dialogue.Period.EndDate;
mwishoKama;

Mwisho wa Utaratibu


Kama tunavyoona, utaratibu mmoja unatosha kuchakata simu kwa dirisha la modi ya uteuzi wa kipindi.

Kwa nini madirisha ya modal ni mbaya? Sasa hebu tuone ni kwa nini 1C iliamua kuachana na matumizi ya madirisha ya modal. Kweli, kwanza kabisa, hii ni matokeo ya ukweli kwamba jukwaa la 1C linaweza kutumika sio tu katika hali yake ya kawaida - kama programu ya desktop, lakini pia inaweza kuzinduliwa kwenye kivinjari na inaweza kuzinduliwa kama programu ya rununu.

Tatizo la vivinjari ni kama ifuatavyo. Njia ya dirisha ndani yao inatekelezwa kwa kutumia madirisha ya kivinjari ya pop-up tofauti. Wanasaidiwa na karibu vivinjari vyote, lakini kutokana na matumizi ya mara kwa mara ya madirisha hayo kwa ajili ya matangazo, karibu watengenezaji wote wa kivinjari wanajitahidi nao na kuzima matumizi ya madirisha hayo kwa default. Kama matokeo, ili kuhakikisha kuwa mtumiaji wa 1C anaweza kufanya kazi kwenye kivinjari, ni muhimu kumlazimisha kuruhusu madirisha haya, kujitolea kwa ugumu wote wa kazi ya 1C na vivinjari, na kwa ujumla kumpakia bila ya lazima. habari.

Nuance tofauti na vivinjari vya kompyuta kibao na vivinjari vya simu. Mara nyingi, vivinjari hivi havitumii madirisha ibukizi. Miingiliano (wachunguzi na vifaa vya kuingiza) vya vifaa vile vilivyo na madirisha ibukizi haziendani.

Na hatimaye, programu ya simu ya 1C pia si ya kirafiki kabisa na madirisha ya modal.

Kwa hivyo hitimisho: Usitumie madirisha ya modal. Nitumie nini badala yake? Badala yake, unahitaji kutumia madirisha sawa, lakini bila mode mode. Katika jukwaa jipya la 1C, tumeunda hali kama hiyo kwa kila dirisha. Inatekelezwa kama njia tofauti kwa kila mazungumzo. Hali hii inakuwezesha kufungua dirisha, lakini si kuacha utekelezaji wa msimbo wa programu. Kitaalam, vivinjari hutekeleza hii kama dirisha la uwongo ambalo linaonekana ndani ya kidirisha cha mzazi, lakini huliingilia. Ukweli kwamba nambari inaendelea kutekeleza baada ya dirisha kufunguliwa inamaanisha kuwa hautaweza kupokea mara moja maadili yaliyochaguliwa ndani yake baada ya nambari ya kupiga dirisha. Bado hawajachaguliwa. Kwa hivyo, kupata na kusindika maadili haya hufanywa kwa utaratibu tofauti, unaoitwa wakati wa kufunga dirisha kama hilo, na utaratibu huu umeainishwa wakati wa kupiga njia ya kufungua dirisha. Wacha tuangalie dirisha la uteuzi wa kipindi kama mfano.

&OnClient
Utaratibu wa HudumaStartDateStartSelection(Element, SelectionData, StandardProcessing)

StandardProcessing = Uongo;

Dialog = NewEditingDialogStandardPeriod();
StandardPeriod = New StandardPeriod();

Tarehe ya Kuanza = Vipengee.Services.CurrentData.StartDate;
Tarehe ya Mwisho = Items.Services.CurrentData.EndDate;

StandardPeriod.StartDate = Tarehe ya Kuanza;
StandardPeriod.EndDate = EndDate;
Dialog.Period = StandardPeriod;

Maelezo ya Tahadhari = Maelezo Mapya ya Tahadhari("Uchakataji wa Uteuzi wa Kipindi", Fomu Hii);

Dialog.Onyesha(Tahadhari za Maelezo)

Mwisho wa Utaratibu

&OnClient
Uteuzi wa Kipindi cha Usindikaji(Kipindi, Vigezo) Hamisha

Ikiwa Kipindi<>Haijafafanuliwa Kisha

Items.Services.CurrentData.StartDate = Period.StartDate;
Elements.Services.CurrentData.EndDate = Period.EndDate;

mwishoKama;

Mwisho wa Utaratibu


Kama tunavyoona, badala ya Hariri(), Show() inaitwa. Na usindikaji wa tukio la uteuzi tayari uko katika utaratibu mwingine.

Kwa hivyo, tulifikiria jinsi ya kufanya bila modality. Sasa hebu tuone ni kwa nini tunahitaji hali ya kutumia hali iliyo na onyo. Kimsingi, huu ni utawala wa mpito. Wakati bado haujaweza kubadilisha usanidi wako wote kuwa modi bila kutumia hali, lakini tayari unajitahidi kwa hili. Na kila wakati unapoita dirisha la modal, programu itakupa onyo kwamba haifai kuwaita madirisha ya modal katika hali hii.

Kweli, wacha tuachane na hali na teknolojia mpya za 1C kufanya kazi katika vivinjari na kompyuta za rununu.

Kuanzishwa kwa interface mpya ya jukwaa la 1C 8.3 - "teksi" - ilisababisha ukweli kwamba watumiaji na waandaaji wa programu walikuwa wanakabiliwa na hitilafu ifuatayo: "Matumizi ya madirisha ya modal katika hali hii ni marufuku."
Mchele. 1

Watengenezaji wa jukwaa la teknolojia ya 1C hujitahidi kufuata mitindo ya kimataifa kwa kuleta programu kulingana na viwango vya kimataifa. Mwisho huo unaongoza kwa kiolesura kimoja, karibu na kurasa za wavuti.

Madirisha ya modal na pop-up, kuwa ishara ya ladha mbaya, kwa muda mrefu imekuwa kuchukuliwa kuwa haikubaliki katika maendeleo ya programu. Uhitaji wa kufanya kazi "katika dirisha moja" umewekwa imara katika mawazo ya watumiaji.

Waendelezaji wa jukwaa la 1C walifanya jaribio la kuhusisha watengenezaji wa ufumbuzi wa maombi katika kufanya kazi kwa "njia mpya". Kwa kuanzishwa kwa kiolesura kipya cha "teksi", waliongeza kipengele kipya kwenye jukwaa jipya - "modality mode".

Urekebishaji wa haraka

Kwa kukosekana kwa wakati, ikiwa unahitaji kusuluhisha shida haraka, unaweza kuamua suluhisho rahisi, lakini sio sahihi sana - unahitaji tu kubadilisha hali ya muundo katika mali ya usanidi.

Ili kufanya hivyo, ingia kwenye mfumo katika hali ya usanidi na ufungue usanidi:

Baada ya hayo, bonyeza kulia kwenye mzizi wa usanidi ili kufungua menyu ya muktadha na uchague "Sifa":


Mchele. 3

Katika sifa za usanidi zinazofunguliwa, kwenye tabo, pata "Modi ya utumiaji wa hali", chagua "Tumia" ndani yake:


Mchele. 4

Hifadhi na utumie mabadiliko yako kwa kubonyeza kitufe cha "F7".