Uvažujme v tomto článku pokyny krok za krokem k vytvoření externího zpracování v 1C 8.3 v režimu spravované aplikace použijeme spravované formuláře. A co je nejdůležitější, naučíme se, jak jej připojit k mechanismu „externího zpracování“ konfigurací 1C postavených na knihovně standardních subsystémů verze 2.0 a novější.
Úkol bude následující: vytvořit co nejjednodušší externí zpracování, které provede skupinovou akci na adresáři „Položka“, a to nastavit zvolené procento sazby DPH pro zadanou skupinu položek.
Za tímto účelem okamžitě provedeme potřebná nastavení v programu (zvažujeme konfiguraci 1C 8.3: „Enterprise Accounting 3.0“ na spravovaných formulářích).
Zaškrtnutím tohoto políčka máme možnost využít externí zpracování.
Vytvoření nového externího zpracování v 1C 8.3 pomocí příkladu
Nyní přejdeme ke konfigurátoru. V nabídce "Soubor" vyberte "Nový...". Otevře se okno pro výběr typu souboru, který se má vytvořit. Vyberte „Externí zpracování“:
Otevře se nové okno externího zpracování. Pojďme jí hned dát jméno. Při ukládání zpracování na disk se nabídne:
Přidejme nový formulář řízeného zpracování. Uvádíme, že se jedná o formu zpracování a je to hlavní:
Ve formuláři budeme mít dva podrobnosti:
- Skupina nomenklatur – odkaz na adresář „Nomenklatura“;
- SelectVATRAte – vazba na převod sazby DPH.
Podrobnosti vytváříme ve sloupci „Vlastnosti“ v pravém horním okně. Přetáhněte je myší do levého horního okna. Nové podrobnosti by se měly okamžitě objevit ve formuláři níže.
Pořadí detailů lze změnit pomocí šipek „Nahoru“ – „Dolů“:
Získejte 267 videolekcí na 1C zdarma:
Zbývá pouze přidat tlačítko „Instalovat“. Ve spravovaných formulářích nemůžete do formuláře jen přidat tlačítko. I když jej přidáte do struktury prvků formuláře, nebude na samotném formuláři vidět. Tlačítko musí být spojeno s příkazem, který má provést. Přejděte na kartu „Příkazy“ a přidejte příkaz „Nastavit sazbu DPH“. Ve vlastnostech příkazu vytvořte akci. Vyberte obslužnou rutinu příkazů „Na klientovi“. Příkaz lze do formuláře přidat také pouhým přetažením do sekce s prvky formuláře.
V modulu formuláře se vytvoří stejnojmenná procedura. V něm zavoláme proceduru na serveru:
&OnClient
Postup Nastavit sazbu DPH (příkaz)
SetVATRateOnServer();
Konec procedury
V postupu na serveru napíšeme malý požadavek a úkony související s nastavením sazby DPH:
&Na serveru
Postup SetVATRAteOnServer()
Žádost = Nová žádost;
Žádost.Text =
"VYBRAT
| Nomenklatura.Odkaz
|OD
| Directory.Nomenclature AS Nomenklatura
| KDE
| Nomenclature.Link IN HIERARCHY (&Nomenclature Group)
| A NE Nomenklatura.MarkDeletion
| A NE nomenklatura. Toto je skupina“;
Request.SetParameter("Skupina položek", Skupina položek);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();
Zatímco SelectRecordDet.Next() Loop
Pokus
SprNomObject.Write();
Výjimka
Report("Chyba při zápisu objektu """ + SprNomObject + """!
|» + DescriptionError());
EndPokus;
EndCycle;
Konec procedury
Vrátíme se na kartu „Formulář“, přidáme do formuláře tlačítko a přiřadíme jej k příkazu:
Naše zpracování je jako takové připraveno k použití. Chcete-li to zavolat, v režimu „1C Enterprise“ musíte přejít do nabídky „Soubor“ - „Otevřít“ a vybrat vytvořený soubor.
Práce v tomto režimu je však vhodná pro ladění zpracování, ale není zcela vhodná pro uživatele. Uživatelé jsou zvyklí mít vše „na dosah ruky“, tedy v databázi samotné.
K tomu slouží sekce „Další přehledy a zpracování“.
Abychom tam ale mohli přidat naše zpracování, musíme jej nejprve popsat a sdělit programu jeho vlastnosti.
Popis funkce „Informace o externím zpracování“
Uvedu příklad obsahu této funkce. Musí být exportovatelný, a proto musí být umístěn v modulu zpracování:
Funkce InformationOnExternalProcessing() Export
DataForReg = Nová struktura();
DataForReg.Insert("Jméno", "Nastavení sazby DPH");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Version", "ver.: 1.001");
DataForReg.Insert("Informace", "Zpracování pro nastavení sazby DPH v adresáři Nomenklatura");
DataForReg.Insert("Zobrazit", "Další zpracování");
CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identifikátor");
TabZnCommands.Columns.Add("Použití");
TabZnCommands.Columns.Add("Zobrazit");
NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OtevřítFormulář";
NewRow.View = "Otevřít zpracování";
DataForReg.Insert("Příkazy", TabZnPříkazy);
Return DataForReg;
EndFunction
Abychom lépe pochopili, která pole struktury registračních dat je třeba použít, podívejme se na podrobnosti o adresáři „Další sestavy a zpracování“:
Jak vidíte, vše je docela jednoduché. Pouze jeden atribut neodpovídá: „Možnost spuštění“ – „Použít“. Pokud se podíváme na kód jednoho z běžných modulů, uvidíme, jak vzniká spousta těchto polí:
Chcete-li určit, která pole struktury jsou vyžadována, můžete ji nejprve nepopsat, jednoduše vytvořit prázdnou a poté použít ladicí program. Pokud sledujete moduly při registraci zpracování, je okamžitě jasné, která pole jsou povinná a která ne.
Připojení externího zpracování v 1C 8.3
Pro práci s externím zpracováním (a externí tisková forma je také externí zpracování) existuje objekt Externí zpracování.
Uvažujme dva možné případy:
Externí zpracování je uloženo na disku odděleně od infobáze
Chcete-li programově otevřít externí zpracování v 1C, musíte znát adresu jeho souboru. Pokud to znáte, můžete buď otevřít formulář pro zpracování, nebo získat objekt pro zpracování, abyste s ním provedli další akce (například volání funkcí exportu z modulu objektu).
Otevření formuláře pro externí zpracování
Chcete-li programově otevřít formulář pro externí zpracování v 1C, použijte funkci GetForm() objekt Externí zpracování. Funkce má několik parametrů. Zvažte jednoduché otevření hlavního formuláře zpracování:
Form = ExternalProcesses. GetForm(Adresa souboru) ;
Formulář. OTEVŘENO();
Chcete-li otevřít vedlejší formulář pro externí zpracování, musíte zadat jeho název.
//Proměnná FileAddress obsahuje úplnou cestu k souboru externího zpracování
Form = ExternalProcesses. GetForm(Adresa souboru, "MinorForm") ;
Formulář. OTEVŘENO();
Otevření externího zpracování jako objektu
Aby bylo možné přijímat externí zpracování jako objekt, používá se funkce Vytvořit() objekt Externí zpracování.
//Proměnná FileAddress obsahuje úplnou cestu k souboru externího zpracování
ProcessingObject = ExternalProcessing. Create(FileAddress) ;
Ve výchozím nastavení jsou všechna zpracování otevřena v nouzovém režimu. Chcete-li jej zakázat, použijte následující možnosti:
//Proměnná FileAddress obsahuje úplnou cestu k souboru externího zpracování
Externí zpracování nebo tiskový formulář uložený v infobázi
V mnoha konfiguracích je možné ukládat externí tištěné formuláře a zpracování přímo v infobázi. K tomu slouží referenční kniha. Externí zpracování. Samotné externí zpracování je uloženo jako binární data nebo v atributech StorageExternalProcessing nebo v tabulkové části Afiliace v rekvizitách StorageExternalProcessing.
K otevření externího zpracování potřebujete:
- Získejte to z úložiště.
- Uložte zpracovaný soubor na disk.
- Otevřete formulář nebo získejte objekt zpracování.
- Pokud se jedná o externí tištěný formulář, pak můžeme vyplnit standardní údaje Odkaz na objekt a zavolejte funkci exportu Těsnění.
//Proměnná RefLink obsahuje odkaz na prvek adresáře ExternalProcessings
DvData = RefLink. Externí úložiště pro zpracování. Dostat() ;
FileAddress = GetTemporaryFileName() ;
DvData. Write(Adresa souboru) ;
ProcessingObject = ExternalProcessing. Create(FileAddress, False) ;