Co je modální okno v 1c. Proč dojde k chybě "Použití modálních oken v tomto režimu je zakázáno"? Správné řešení úkolu

Dialogová okna, na které jsme docela zvyklí, na které pracují s všechny druhy systémů, a zejména v 1C, se mohou objevit při provádění různých akcí, vyžadují, aby uživatel zadal jakákoliv data, například určitou hodnotu, a Výběr souboru, odpověď na otázku, nebo jen vydat varování. Jsou také nazývány modální.

Nezodpovězené k požadavku na takové okno, není možné i nadále pracovat v programu. Okno blokuje rozhraní, překrývá provoz ostatních oken a zároveň bude provádění programových kódů stohováno také na místě, kde došlo k dialogu - program čeká na dokončení akce s ním.

Dialogy, obvykle nezpůsobují problémy v režimu spouštění tenkého a tlustého klienta, ale při práci s webovým klientem mohou nastat problémy. Důvodem je skutečnost, že stejné systémové prvky na internetu slouží jako propagační média a často v konfiguraci uživatelů prohlížeče ukazují, že je odpojit. Proto je jejich práce blokována v programu běžícím webovým prohlížečem. Práce s 1C prostřednictvím webového klienta nebo na mobilní platformě, nesmíte zapomenout další nastavení prohlížeč a pamatujte si to mobilní prohlížeč Nepodporuje vyskakovací zprávy vůbec.

Jak eliminovat chybu 1C: "Použití modálních oken v tomto režimu je zakázáno"

Tato chyba se začala objevit po přechodu 1C nové rozhraní Platformy 1C 8.3 - "Taxi". To je způsobeno skutečností, že pokrývá práci s okny v něm, ale bez moduce.

Obr. 1

Otevřeno informační základna V režimu konfigurátoru a zobrazit vlastnosti našeho konfigurace stisknutím pravého tlačítka myši a výběrem příkazu vlastnosti. Posouvání níže uvedeného řádku vidíme sekci "Kompatibilita", kde má parametr režimu, který má zajímat a uvádí seznam možností - "Použití / použití Upozornění / nepoužívejte".



Obr.2

Poté musíte uložit a aktualizovat změny konfigurace. Chyba, o které říkáme, když je značka chystá nepoužívat režim modality. Tato funkce se objevila, počínaje platformou 8.3.3.721, zveřejněnou v září 2013. To znamená, že uživatelé pracují na starších verzích platformy, není potřeba modality. V jiných verzích se okno s chybou neobjeví, můžete jednoduše jednoduše - "POUŽITÍ".

V našem příkladu je stanovena možnost varování. Samozřejmě, v budoucnu vývojáři vylepšují konfiguraci, aby používali jiné funkce obcházení modálních oken. Dnes však režim z našeho příkladu používá vývojář během přechodu, když není celá konfigurace stále přepracována do provozního režimu. Proto bude program také vydávat zprávy o zákazu systému Windows s modálními vlastnostmi.



Obr. 3.

Aplikace, které se používají prostřednictvím webového klienta v iPadu, například na "1cfresh.com", nepoužívejte tento režim. Všechny nové konfigurace používají provozní režim rozhraní.

Neschopnost modality

Vývojáři programu, podporující globální trendy, zkuste přinést programové rozhraní do vzorků webu a přivést jej do jediného standardu, což umožňuje uživatelům pracovat v jednom okně se známou "polévkou".

Proto (a zmírnit výše popsané problémy) bylo rozhodnuto o odstranění vyskakovacích dialogů bez omezení funkčnosti řešení. Současně se programy v novém režimu provozu programu zobrazují v rámci nadřazeného okna, a ne jako před - v modálním. Ačkoli stále blokuje celé rozhraní.

To znamená, že inovace nás eliminuje z potřeby dokončení prohlížeče, stabilizuje webový klient a zvyšuje jeho výkon. Také, protože nyní není třeba otevřít vyskakovací okna, jakákoliv konfigurace s takovými změnami lze použít na libovolném zařízení.

V asistentské syntaxi pro tyto příkazy je uvedeno, že pokud je vlastnost pro konfiguraci Režim Usermodality Instalován NepoužívatMěli byste použít jiné příkazy v kódu programu, například Hrací (), Ovládání (), Obsažené ():

Chcete-li pracovat s těmito situacemi v programu 1C 8.3, nový systémový objekt "popis", který se používá k popisu hovoru postupu programového modulu na výskytu očekávané události, jako je zavírání tvaru nebo Eordinate dialog:

To je pohled na problém zevnitř pro ty, kteří se chtějí vypořádat s příčinou. Nejprve pro programátory 1C. Stejně jako v této situaci obyčejní uživatelé Opravte chybu bez studia softwarový kód? Existuje velmi jednoduchá metoda.

Pokyny pro korekce chyb pro běžné uživatele

Krok 1. Kompletní práce:

Krok 2. Vraťte se do výchozího menu pro spuštění konfigurace. Vyberte položku nabídky "Konfigurace":

Krok 3. Otevřete "konfigurátor": Na horním panelu najdeme tlačítko "Konfigurace" a vyberte nabídku "Otevřít konfiguraci" v navrhovaném seznamu:

Krok 4. Nainstalujte kurzor na konfiguraci a pravé tlačítko Myš volání kontextová nabídkaVe kterém zvolíte položku "Vlastnosti":

Krok 5. Otevřete formu "vlastností":

Krok 6. Najděte řádek "Modality Použít režim" (v dolní části seznamu):

Ve výchozím nastavení v programu 1C 8.3 stojí za to "nepoužívat". Přeneste hodnotu "Nepoužívejte" k "Použít":

Výsledek:

Pokud je chyba "Použití modálních oken v tomto režimu zakázáno" v 1C 8.3 vlevo, můžete dále pracovat. Obvykle se to stane.

Pokud však chyba modality v 1c zůstala po naplnění všech těchto akcí, měli byste kontaktovat programátoři, které slouží a podporuje váš 1C program.

Jak pracovat v rozhraní "Taxi", jak provést konfiguraci na pracovišti "Další", nastavení oblíbených položek navigačního panelu, jak provést fulltextové vyhledávání, operace s protokoly, tlačítko "Výběr" v dokumentech, vysílat odkazy Dokumenty, ověření a další funkce v novém rozhraní - to vše lze nalézt z našeho videa:

Speciální o tom, jak rychle uspořádat navigaci podle programu 1C 8.3, pomocí nového taxiového rozhraní, o nových funkcích, které chcete použít obvyklé nástroje, například vestavěný kalkulačka, kalendář, porovnání souborů, přenos odkazů na dokumenty K kolegům se považuje za naší kurz ""


Dejte své posouzení tohoto článku:

Článek zváží hlavní důvody odmítnutí modality v platformě 1C: Enterprise a hlavní metody pro převod kódových sekcí do nového asynchronního modelu.

Použitelnost

Článek popisuje asynchronní model budování obchodní logiky, přidané platformy "1C: Enterprise" redakční rady 8.3. Poskytnuté informace jsou relevantní pro aktuální vydání platformy.

Odmítnutí používat modální okna v platformě 1C: Enterprise 8.3

Při vývoji konfigurace na 1C platformě: Enterprise 8 periodicky vyvstává potřebu pozastavit provoz programu, dokud uživatel nepřijde žádné rozhodnutí ani provádět žádné akce.

Například, když kliknete na tlačítko Vyplnění, měl by se uživatel zeptat, zda je třeba vymazat část tabulky tak, aby nedošlo ke ztrátě dříve zadaných dat.

Takové chování může poskytnout například následující kód:

& Svalette
Postup Film(Tým )
Odpověď \u003d otázka ("část tabulky bude vymazána. Pokračujte?", Regálový roll.);
Pokud odpověď \u003d Ochránit.Pak
// plnicí algoritmus
Skončil;
Extrudrtves

V důsledku práce tohoto fragmentu kódu je programový kód pozastaven, na obrazovce se zobrazí otázka, rozhraní aplikace jiné než dialog s otázkou se stává nepřístupným, systém očekává uživateli, provedení Kód bude pokračovat pouze po odpovědi na otázku.

Také pozastavení provedení kódu a blokování rozhraní dává otevření modálních oken voláním metody OpenModly ().

Při práci s konfigurací v režimu webového klienta prostřednictvím prohlížeče v tomto případě se otevře nové okno - vyskakovací okno, které blokuje nejen na kartě Aktuální, ale také celé rozhraní prohlížeče, včetně zbytku otevřená okna a záložky.

Pop-up okna na internetu se často používají pro škodlivou distribuci nežádoucí reklamy, takže prohlížeče obsahují blokování vyskakovacích oken.

V tomto případě pracovat s konfigurací 1C: Enterprise 8 prostřednictvím prohlížeče, je nutné zabránit blokování vyskakovacích oken.

Problémy se také vyskytují při práci mobilní zařízení. Modální okna například nejsou podporovány na iPadu.

Pro vyřešení těchto problémů byste měli používat blokování oken místo modálního. Pro uživatele viditelné vše vypadá stejně: okno blokuje webové klientské rozhraní.

Blokovací okno, jak to bylo, "kreslí" v horní části hlavního okna, a pouze aktuální záložka prohlížeče je blokována, ve které je konfigurace otevřená, což umožňuje přepnout na jiné karty, protože okna modální prohlížeče jsou nepoužívá.

Proto se vyskakovací okna v prohlížeči neotevírají a pracují prostřednictvím webového klienta na mobilních zařízeních.

Kořenový prvek konfigurace má režim "Modality Mode", který určuje, zda chcete otevřít modální okna v konfiguraci.

Pokud je vybrána možnost "Použití", lze otevřít modální okna. Pokud je vybrána možnost "Nepoužívat", modální okna nejsou povolena. Při pokusu o volání metody, který otevře modální okno, systém zobrazí chybová zpráva:

S touto hodnotou je vlastnost "Modality Použití" povoleno pouze blokováním oken.

Pokud je vybrána možnost "Použití s \u200b\u200bvarováním", pak při otevření modálních oken se text zobrazí v okně zprávy:

Tato verze práce lze použít jako meziprodukt při zpracování konfigurace, aby se odmítl používat modální okna.

Hlavním rozdílem blokujících oken z modálních spočívá v tom, že otevření okna blokování nezastaví provádění kódu.

Proto budou muset vývojáři přepsat programový kód pomocí modálních Windows, s přihlédnutím k této funkci.

Kodex musí být rozdělen do dvou částí:

  • otevření oken blokování;
  • zpracování výběru uživatelů.

Fragment kódu uvedeného na začátku článku by měl být přepsán následovně:

& Svalette
Postup Film(Tým )
Oznámení \u003d New. Popis(, Tento objekt);

Regálový roll.);
Extrudrtves
& Svalette
Postup (výsledek, Doplňkové možnosti) Export
Pokud výsledek \u003d Ochránit.Pak
// plnicí algoritmus
Skončil;
Extrudrtves

Po provedení postupu se systém nezastaví, čeká na odpověď uživatele, spuštění kódu pokračuje.

Uživatel bude moci rozhodnout pouze po dokončení práce celého postupu. Současně bude exportní postup způsoben vývozním výstrahem (). Jeho jméno jsme byli převedeni na projektanta návrhu konstrukce objektu.

Postup, který bude způsoben po výběru, může být umístěn v modulu formuláře, příkazového modulu, obecně ne globálního modulu.

Ve zvažovaném příkladu se nazývá postup v modulu řízené formy, takže jsme byli převedeni do parametru této možnosti.

Zvažte hovor na postup umístěný ve sdíleném modulu. Chcete-li to provést, přidejte nový společný manipulační modul, nastavte pro něj příznak. "Klient (spravovaná aplikace)" a není nainstalována znak "Global". Umístěte postup pro vyplnění tohoto modulu k vyplnění postupu ().

Procesor příkazu výplně bude vypadat takto:

& Svalette
Postup Film(Tým )
Oznámení \u003d New. Popis("Vyplnění finistéry",
Léčba);
Tempecks \u003d "Tabulka bude vyčištěna. Pokračovat?" ;
Hraní oznámení, textility, Regálový roll.);
Extrudrtves

Po volání jakékoli metody, které otevře blokování okna, musí být postup dokončen a následující kód by měl být umístěn v postupu, který bude volán po zavření okna.

Pro přenos kontextu (pomocná data, některé parametry, variabilní hodnoty) z postupu, který otevře modální okno, postup, který je nazýván při jeho uzavření, je třetí volitelný parametr návrhu konstrukčního objektu volitelný.

Tento objekt (libovolný typ) bude převeden na postup popsaný v popisu popisu, nejnovějšího parametru.

Na příkladu výše uvedeného kódu to lze provést takto:

& Svalette
Postup Film(Tým )
Parametr1 \u003d 0;
Parametr2 \u003d 0;
Listappiemers.\u003d Nová struktura ("Parametr1, parametr2", parametr1, parametr2);
Oznámení \u003d New. Popis("Vyplnění finistéry", Tento objekt,
Listappiemers.);
Umístěte oznámení, "Tabulová část bude vyčištěna. Pokračujte?",
Regálový roll.);
Extrudrtves
& Svalette
Postup Selhání(Výsledek, Doplňkové možnosti) Export
Pokud výsledek \u003d Ochránit.Pak
// analyzujeme možnosti. Parametr1
// analyzujeme možnosti. Parametr2
Skončil;
Extrudrtves

Pokud potřebujete vysílat pouze jednu hodnotu, pak nelze strukturu používat, ale přiřadit tuto hodnotu na možnosti parametrů pro konstruktoru objektu návrhu.

Zvažte několik příkladů práce s blokujícími okny.

Úkol 1. Otevření jiné formy

Z formuláře dokumentu kliknutím na tlačítko "Otevřete parametry", musíte otevřít formulář, na kterém musí být zaškrtávací políčko Dva parametr a parametr2 instalovány. Po uzavření formuláře zobrazte hodnotu parametru v řetězci zpráv.

Vytvořit sdílenou formu "formarametrů", kterou umístíme podrobnosti o parametru1 a parametru, stejně jako velitele uzávěrem:

Popisovač příkazů je následující:

Popisovač příkazů je následující: & Slite
Uzavření postupu (tým)
Listappiemers.\u003d Nová struktura ( "Parametr1, parametr2", Parametr1, parametr2);
Zavřít Listappiemers.); Extrudrtves

Pro formulář jsou vlastnosti vlastností nastaveny na "blokovat celé rozhraní":

Ve formě dokumentu máme příkaz o otevírání parametrů, jehož popisovač je popsán následovně:

& Svalette
Postup OpenParametry(Tým )
Oznámení \u003d New. Popis("OpenParametros vytváření"Tento objekt);
OpenForm ( "Zvětšení formaframetry",,,,,,,,,
Extrudrtves
& Svalette
Postup OpenParametros Cover.(Výsledek, Doplňkové možnosti) Export
Pokud typnyh (výsledek) \u003d typ ("struktura")
Pro každý klíč k výsledku cyklu
Zpráva \u003d New. SOUHRN;
Zpráva. Text \u003d "Klíč:" " "+ Klíč mluvit. Vítejte +" "", hodnota \u003d "
+ Klíč je pozoruhodný;
Zpráva. Software();
Endcykl;
Skončil;
Extrudrtves

V uživatelském režimu spuštěním konfigurace pod webovým klientem získáme výsledky práce:

Chcete-li zvětšit, klikněte na obrázek.

Režim otevření okna může být také zadán v posledním parametru otevřeného formuláře.

& Svalette
Postup OpenParametry(Tým )
Oznámení \u003d New. Popis("OpenParametros vytváření"Tento objekt);
OpenForm ( "Zvětšení formaframetry",,,,,,,,,,
Modtekiyoknforma.blocking Rozhraní
);
Extrudrtves

Úkol 2. Otázka Při zavírání formuláře

Když zavřete okno zpracování, nastavte uživatele otázku, zda opravdu chce zavřít okno.

Tento úkol lze vyřešit pomocí následujícího kódu umístěného v modulu zpracování formuláře:

& Svalette
Změna Opezakhoroform.;
& Svalette
Konverze procedur (odmítnutí, Stálý zpracování)
Pokud ne Opezakhoroform.\u003d Pravda pak
Selhání \u003d pravda;
Oznámení \u003d New. Popis("Krycí kryt"Tento objekt);
Dělá upozornění, "opravdu chcete zavřít okno?"
Regálový roll.
);
Skončil;
Extrudrtves
& Svalette
Postup Krytina(Výsledek, Doplňkové možnosti) Export
Pokud výsledek \u003d Ochránit.Pak
Opezakhoroform.\u003d Pravda;
Zavřít ();
v opačném případě
Opezakhoroform.\u003d Nedefinované;
Skončil;
Extrudrtves

V zákroku je postup převodu uživatelů otázkou, příznak selhání je nastaven na pravdu, uzavření formuláře je zrušeno.

Po afirmativní odpovědi na otázku by měla být proměnná nastavena na shodu v pravdě, formulář se znovu uzavře.

Úkol 3. Zadání číselné hodnoty

Po kliknutí na formulář zpracování otevřete standardní vstupní dialog.

K tomu je nutné použít metodu obtisek () namísto zadávání (), která otevírá blokovací okno místo modálního.

& Svalette
ÚČAST POSTUPU (příkaz)
Oznámení \u003d New. Popis("Prezentační kryt"Tento objekt);
Obsažený(ALERT, 0, "Zadejte číslo", 15, 3);
Extrudrtves
& Svalette
Postup Prezentace katalogu(Výsledek, Doplňkové možnosti) Export

Zpráva \u003d New. SOUHRN;
Zpráva. Text \u003d "Zadali jste kvantity" + výsledek;
Zpráva. Software();
Skončil;
Extrudrtves

Po zavření vstupního okna bude postup způsoben postupem, v prvním parametru bude převeden na zadané číslo nebo hodnota je nejistá, pokud uživatel odmítl vstoupit.

Úloha 4. Výběr barev

Když stisknete tlačítko na formuláři formace pomocí standardního dialogu pro výběr barev, uživatel určí požadovanou barvu. Tato barva je nastavena na pozadí stisknutého tlačítka.

Přidáme příkaz k příkazu Elecveta s následujícím popisovačem:

& Svalette
Výběrový postup (tým)
DialogisticSteeevet.\u003d New. DialogisticSteeevet.;
Oznámení \u003d New. Popis("Volfetaveting.Tento objekt);
Dialogopebně.Zatímco vrtání (výstraha);
Extrudrtves
& Svalette
Postup Selektivnívetasiveman.(Výsledek, Doplňkové možnosti) Export
Pokud ne výsledek \u003d nejistý
Prvky. Láhve.Cellophone.\u003d Výsledek;
Skončil;
Extrudrtves

Pro zařízení pro péči o dialogu (stejně jako stojanový stojan na dialogu, návrhové formateps, oblast diagramu, výdaji dialogu), okno show () otevře okno show ().

Po zavření okna bude postup povolán do prvního parametru, který bude vysílána vybraná hodnota (barva, písmo atd.) Nebo je hodnota nejistá, pokud uživatel odmítl zvolit.

Je třeba poznamenat, že objekt pro péči o dialogu nemá metodu pro zobrazení () na rozdíl od dialogů barev nebo výběru písma, protože implementace těchto dialogů je výrazně odlišná.

Chcete-li použít dialogové okno Výběr souboru na webovém klientovi, musíte nejprve připojit rozšíření se soubory.

Dialogy implementované prostřednictvím rozšíření práce se soubory nevytváří tyto problémy v provozu, jako je modální okna prohlížeče, proto nebyl implementován zjišťování blokování oken pro zařízení pro digitální zařízení.

Závěrem si všimneme, že začíná od vydání 8.3.10 ve webovém klientovi podporovanou podporu pro modální okna. V tomto případě je-li modální metoda volána v konfiguraci, vygeneruje se výjimka. Také ve webovém klientovi přestal podporovat režim rozhraní V samostatných oknech. Kromě toho, jak v tenkém, tak v webovém klientovi mohou být nyní otevřeny v samostatném okně (při práci v režimu rozhraní v záložkách). Takové kardinální kroky umožnily opustit režim rozhraní, který již není podporován všemi moderními prohlížeči.

Jaký druh praktického závěru lze z těchto informací učiněno? A výstup je poměrně jednoduchý - Pokud z nějakého důvodu stále máte modální hovory do konfigurace, pak na těchto místech bude webový klient vydán okno s chybovou zprávou. Chci se varovat pokusy o "spojit" někteří rychlé rozhodnutí Tento problém, protože Převážná část tipů je snížena na takový recept: v konfigurátoru na úrovni konfigurace v režimu "MODE POUŽITÍ POUŽITÍ" "Použít". Přirozeně, B. tento momentNebude to fungovat pouze kvůli tomu, že moderní prohlížeče již nepodporují modální výzvy.

A máte pouze dva způsoby, jak vyřešit výše popsaný problém:

  1. Obnovte platformu, abyste uvolnili 8.3.10+ (8.3.11), nastavte vlastnost Konfigurace "režim kompatibility" v "Nepoužívat" a přepsat fragmenty kódu pomocí modálních metod na asynchronním modelu Business Logic Construct Model
  2. Doporučujeme svým zákazníkům používat zastaralé prohlížeče, kde jsou stále podporovány modální výzvy ( Mozilla Firefox. Verze 37 a níže, Chrot pod 37 verzemi atd.).

Mimochodem, od vydání 8.3.11 již nejsou podporovány webové prohlížeče Microsoft Web Prohlížeče. Internet Explorer. verze 8 a 9.

S ohledem na modalitu jsme se zabývali webovými prohlížeči, nyní je čas objasnit situaci se zbytkem klientů.

Počínaje verzí 8.3.5 Vlastnost "Modality Mode" v tenké a husté klinice se bere v úvahu pouze v případě, že je zadán parametr příkazového řádku / ENABLECHECKMODAL. Tento parametr je automaticky nahrazen příkazový řádek Pouze při spuštění aplikace z konfigurátoru. Pokud tento parametr není zadán, generace vyloučení nedochází a nejsou zobrazena odpovídající varování. Ty. V praxi, v případě použití tlustého a tenkého klienta, žádná kardinální změna v práci při použití režimu modality není pozorována - modální hovory budou fungovat stejně dobře fungovat dříve, přičemž nevydává žádná varování jako ve webovém klientovi.

Chcete-li nastavit všechny body nad "i", všimneme, že od editoru 8.3.9 v klientovi Tolstaya je ignorován režim konfigurace vlastnosti "používání synchronních volání pro platformy a externí komponenty", zatímco odpovídající synchronní metody fungují bez generování výjimek a výstup varování. Zadaný ignorovaný nemovitost byla přidána do redakčního kanceláře 8.3.5 za účelem podpory asynchronní práce s externími komponenty, kryptografií a rozšířením pro práci se soubory ve webovém prohlížeči Google Chrome.. Je zřejmé, že nemá žádný vztah k tlustému klientovi, a proto "tichý" ignorování této vlastnosti jednoduše vyloučilo zbytečné kontroly pro použití synchronních metod při použití konfigurace.

Mimochodem! Vzhledem k tomu, že platforma se s jistotou pohybuje směrem k webu, od verzi 8.3.8, vývojáři vstoupili do určitých omezení kódu programu, který je spojen s uzavírací logikou formuláře nebo aplikace provedené v tlustých a tenkých klientech. Nezapomeňte si přečíst náš článek, který podrobně osvětluje tento nuance. Kromě toho si vědom profesionálního rozvoje rozhraní a formulářů v 1C: Enterprise 8.3, "Existuje kapitola věnovaná modalitě, a na tomto tématu se můžete dozvědět mnoho užitečných a relevantních informací.

Kolegové, existují dvě věci, které si můžete přečíst nekonečně: Páska VKontakte a seznam změn v příštím vydání platformy, takže pojďme shrnout konečné výsledky;)

V procesu zvážení příkladů, které vám umožní přesunout z prvků synchronního modelu na asynchronní, pravděpodobně jste si již všimli, že v obecném případě se programový kód stal větší. Čím více kódů, tím více se zvyšuje složitost svého dalšího doprovodu a ladění.

Kromě toho se počet kodexu dále zvýší, pokud používáme v procesu vývoje velké množství dialogy. Proto v procesu vývoje aplikovaná řešeníZaměřeno na práci ve webovém klientovi, musíte si pamatovat paradigma práce, která je v současné době používána v moderních webových aplikacích. Proto pokud vaše konfigurace má mnoho interaktivních uživatelských dialogů vydaných varováními, to znamená, že má smysl revidovat tuto funkčnost ve prospěch dalších přístupů při organizaci interakce s uživatelem.

Místo odnětí svobody

Takže náš cyklus "první kroky ve vývoji pro 1C" přišel až do konce. Pokud jste ji přečetli úplně, s největší pravděpodobností si již všimli, co se v poslední době rozvíjí platforma sedmiletých kroků. Materiál tohoto cyklu byl napsán relativně nedávno, ale byli jsme nuceni skutečně aktualizovat vážně, protože I v tak krátkodobém horizontu bylo mnoho důležitých funkce a změny. Takové hlavní změny mohou být poněkud tlačeny programátorem 1C, pokud neroste a nevyvíjejí se v profesionálním plánu s platformou po celou dobu.

Na specializovaných internetových zdrojích je často možné číst požadavky od začínacích programátorů a jejich zralejší kolegy, aby jim poradil materiály, které by jim pomohly pochopit rozsáhlé a někdy zjevné nekonečné, schopnosti platformy 1c. My, podle tradice doporučujeme upozornit na naše programovací kurzy.

15
Pro vymáhání podniku se používají následující klíče v obvyklé nebo zvládnutelné aplikaci: / RunModeRystaryApplication Spuštění tlustého klienta v normálním režimu, navzdory nastavení konfigurace a uživatelem, který 3
Je nutné, aby uživatelé nemohli změnit rozhraní nakonfigurované pro ně! Řešení: Chcete-li vypnout, musíte odebrat správnou "ukládání uživatelských dat", abyste zakázali kořenový prvek konfigurace. Nastavení panelu Odpojte a položku 2
V aktuální operaci uživatel obvykle otevírá několik objektů. To může být dokument, adresář, zpráva atd. V předchozímu rozhraní nebyly žádné problémy rychle najít otevřený objekt a aktualizovat jej pro další práci pomocí systému Windows nebo 2
V posledním článku: Instalace klasifikátoru adresy (KLADR) v 1s Já jsem řekl, co je Brandry a jak jej stáhnout v 1C běžné formy (8.0-8.2). V tomto článku vám řeknu, jak nahrát klasifikátor adresy (KLADR) v řízené rozhraní a 2
Často se rozvíjejí určitou konfiguraci, uživatelé chtějí připojit k prvku adresáře fotografií a tak, aby byly uloženy v databázi. V tomto článku vám řeknu, jak přímo připojit fotografie fotografií ve formě odkazu

V konfiguračních vlastnostech na platformě 1C: Podnik 8.3 je způsob použití modality. Pokud hodnota tohoto pole "nepoužívejte", pak při pokusu o otevření modálního okna se platforma zobrazí zpráva "Použití modálních oken v tomto režimu je zakázána." Provádění programového kódu se zastaví.

Tento článek ukazuje mechanismus pro změnu kódu programu, na téma uživatele, když je modální režim vypnut.

Pravidelně při vývoji softwarový produktJe třeba požádat uživatele o provedených činech. Například při automatickém vyplnění částí stolu. Když uživatel musí být schopen provést to před přijetím PM. A v závislosti na jeho odezvě bude PM vyčištěn a ohromen nebo ne.

Část kódu s otázkou může vypadat něco takového:

Pokud PM. Číslo()< > 0 pak odpověď \u003d otázka (" // V tomto řádku se modální okno s otázkou a provedení kódu zastaví před odpovědí uživatele Pokud je odpověď \u003d zdanění kódu. No pak náhradu; Skončil; // Uživatel souhlasil, že bude pokračovat ODPOLEDNE. Průhledná (); Skončil; // Proveďte další akci // Zde program spadne, pokud byl PM prázdný nebo uživatel odpověděl na otázku o přeplnění Provedení ();

Když je modální režim vypnut v řádku s otázkou tohoto kódu, dojde k chybě a další provedení bude přerušeno. To se stane, protože funkce otázky používá modální okno.

V této situaci je nutné užívat postupu pro tuto zprávu. Při použití tohoto postupu se neočekává odpověď uživatele. První parametr tohoto postupu je však popis výstrahy, se kterým je sledována odpověď uživatele.

Jak se změní předčasný písemný kód:

// Potřebujete vyplnit data TM // Zkontrolujte PM pro plnost Pokud PM. Číslo()< > 0 pak. // tch není prázdný, je nutné požádat uživatele o přeplnění Hrací (nový popis počítače (" Přetížitelnost", Tento objekt, přídavné parametry)," Pm bude ohromen. Pokračovat?", Zarovnání režimu. Dentate); // v tomto řádku okno zobrazí otázku, ale provedení kódu se nezastaví v opačném případě // Zde bude program spadnout, pokud byl PM prázdný Perfektní hanba (); Skončil; // Zde bude program spadat v každém případě, tam byl prázdný pm nebo ne // (pokud v předchozím kódu nedošlo k chybám) . . . // exportní postup ve stejném modulu // volal po odpovědi uživatele na otázku & Klauzule Postup Overwale Přepracování (Exterence, další zemědělci) Export Pokud výsledky \u003d kód fakeadiadialogue. Ne THEN // Uživatel odmítl pokračovat Vrácení peněz; Skončil; // výkon dalšího dataamvius // Zde bude program spadnout, pokud počítač nebyl prázdný a uživatel odpověděl na otázku o přeplnění ODPOLEDNE. Průhledná (); Perfektní hanba (); Extrudrtves

Vzhledem k tomu, že program se nezastaví, když je postup proveden, je nutné pečlivě učit všechny události
Při řešení tohoto úkolu může dojít k provedení další akce na dvou událostech:
1. Pokud byl PM prázdný
2. Pokud PM nebyl prázdnou a pozitivní odezvou uživatele k otázce přeplnění

A proto, protože program nezastaví při čekání na odpověď uživatele, musí být volání těchto událostí distribuována do různých částí kódu.
Proto jsou zpravidla všechny výkonné metody, které musí být prováděny po kontrole PM pro plnost, jsou umístěny v samostatném postupu.

Takový mechanismus se používá s podobnými funkcemi interakce s uživatelem (volby, selectScript atd.)