Pokud výpočetní registr podporuje dobu platnosti, pak. Vlastnost základního rozměru výpočtového registru. Absenci předdefinované tabulkové části „Základní typy kalkulací“ pro typy kalkulací Plánu typů kalkulací lze vysvětlit tím, že
Výsledky některých položek časového rozlišení a srážek závisí na výsledcích získaných z jiných typů výpočtů. Například procentuální navýšení mzdy závisí na výši základního výdělku, který zaměstnanci připadl. Výše základní mzdy se v tomto případě nazývá základ pro výpočet příspěvku a druhy výpočtu tvořící základ se nazývají základní typy výpočtu.
Základ se vypočítá za základní období uvedené v položce kalkulačního registru. Základní období je období, za které se z kalkulačního registru vybírají časové rozlišení pro stanovení základu. Základní období může být kratší než měsíc (např. při výpočtu příspěvku na sloučení profesí, pokud kombinace trvala méně než měsíc) nebo více výpočtových období (např. základní období pro čtvrtletní bonus jsou 3 měsíce).
Základ pro výpočet časového rozlišení zahrnuje veškeré časové rozlišení za základní období bez ohledu na zúčtovací období, ve kterém bylo časově rozlišeno. Například při výpočtu bonusu za červenec se do základu započítá jak výplata mzdy za první polovinu července naběhlá v červenci, tak výplata mzdy za druhou polovinu července evidovaná v srpnu. Tato závislost na základním časovém rozlišení se nazývá závislost na době platnosti.
V závislosti na době platnosti se báze sbírá z výsledků záznamů kalkulačního registru, jejichž doba platnosti spadá do základního období. Pokud záznam výpočtového registru nemá období platnosti, analyzuje se období registrace záznamu, a pokud spadá do základního období, je výsledek zahrnut do základu. Při takové závislosti může nastat situace, kdy do základního období spadá pouze část časového rozlišení. Například výplata mzdy se počítá za celý měsíc, ale základ pro bonus za kombinování je potřeba určit pouze za půl měsíce. V tomto případě bude základ pro bonus zahrnovat pouze část výplaty mzdy za počet dní nebo hodin v rozvrhu zaměstnance, které připadají na základní období.
Odlišně se tvoří základ pro výpočet srážek např. na základě exekučních titulů. Databáze zahrnuje všechny přírůstky evidované v aktuálním měsíci bez ohledu na období, za které byly časově rozlišeny. Tato závislost se nazývá závislost doby registrace.
Rýže. Základní závislost
Rýže. Částečný průsečík základního období a doby platnosti
V závislosti na registračním období databáze zahrnuje výsledky pouze těch záznamů výpočtových registrů, jejichž registrační období spadá do základního období.
Vztah mezi výsledky časového rozlišení a srážek může být víceúrovňový a poměrně složitý. Většina bonusů, jako jsou odměny za odslouženou dobu, za třídu, za rozšíření služebních oblastí, je stanovena procentem ze základní mzdy, která zaměstnanci za odpracovanou dobu připadá. Bonusy poskytované systémem odměňování se vypočítávají z výše základní platby s přihlédnutím k náhradám. Bonusy jsou zase zahrnuty do základu pro výpočet severního příspěvku a do základu tohoto zahrnuje i základní mzdu a další zaměstnanecké příspěvky. Pokud se po dokončení všech výpočtů z nějakého důvodu změní výsledek některého časového rozlišení, pak je nutné přepočítat i všechny na něm závislé časové rozlišení.
Pokud se například po výpočtu zjistí, že zaměstnanci byla přidělena nesprávná tarifní sazba a výsledek výplaty mzdy se musí přepočítat, je třeba postupně přepočítat všechny odměny závislé na výplatě mzdy, odměny a severní odměnu. . Úkol to není snadný, zvláště pokud uvážíte, že v obecném případě lze všechny tyto časové rozlišení evidovat v informační databázi pomocí několika dokumentů. Program umožňuje takové situace automaticky sledovat a určit seznam dokladů, které je třeba přepočítat. Chcete-li mechanismus použít, musíte zadat seznam hlavních typů výpočtu pro každý závislý typ výpočtu.
Přední jsou ty typy výpočtů, jejichž výsledky se změní, je nutné výsledek tohoto typu výpočtu přepočítat.
Pojmy základní a hlavní typy výpočtů jsou si velmi blízké a nejčastěji se seznamy základních a hlavních typů výpočtů shodují, ale neměli byste se jich bát.
Základní jsou typy výpočtů, které přímo ovlivňují výsledek tohoto typu výpočtů. Přední typy výpočtů nemusí být obsaženy v databázi, ale mají nepřímý dopad na výsledek, tzn. seznam hlavních typů kalkulací může být ve srovnání se seznamem základních typů kalkulací širší.
Nesoulad mezi seznamy základních a hlavních typů výpočtu uvidíme, až budeme uvažovat o nastavení výpočtu průměrného výdělku. Základ pro prémie zohledňovaný při výpočtu průměrného výdělku se vybírá odděleně od základního výdělku zaměstnance. Pro automatické získání základu pro bonusy z hlediska typů výpočtu Průměrný výdělek existují speciální typy výpočtu Bonusy zohledněné v rámci průměrného výdělku, jehož základem jsou typy výpočtu odměn. Výši bonusu lze vypočítat procentem z ostatních přírůstků (platba v tarifních sazbách, mzdové bonusy atd.), které sice nejsou zahrnuty do základu pro typ výpočtu Bonusy zohledněné jako součást průměrného výdělku, ale mají dopad na jeho výsledek, proto zařazen na seznam hlavních typů výpočtu.
Seznamy základních a hlavních typů výpočtu jsou konfigurovány ve formuláři závislého typu výpočtu.
Při nastavování předstihových typů výpočtu je nutné, stejně jako při nastavování předřazených typů výpočtu, dodržet pravidlo: pokud typ výpočtu A vede pro typ výpočtu B, ten zase vede pro typ výpočtu C , poté na seznam typů vedení pro typ výpočtu C Musí být zahrnut typ výpočtu B i typ výpočtu A V opačném případě program zobrazí chybové hlášení: „Neúplný seznam typů výpočtu!“. Pokud je například čtvrtletní bonus zahrnut do seznamu hlavních přírůstků, musí být zahrnuty všechny hlavní přírůstky čtvrtletního bonusu, jako je Mzda po dnech, Mzda po hodině atd.
Rýže. Nastavení základních a hlavních typů výpočtů
registr informací, který bude obsahovat graf použitý při výpočtu. V našem případě je to registr Plánované pracovní dny. V terénu Význam grafu pojďme si vybrat Pracovní den- přesně v tomto zdroji registr informací bude uloženo 1, pokud je den pracovní. V terénu Termín rozvrhu vyberte rozměr registru Datum.Nastavíme vlajku Základní období.
Nastavte ve skupině parametrů Periodicita parametr Měsíc.
Pojďme na kartu Data. Zde nastavíme následující parametry, Obr.
1.11:
Rýže. 1.11. Měření Zaměstnanec - typ DirectoryLink.Employees , vlajka Základní
nainstalováno. Do této dimenze uložíme zaměstnance, pro kterého se výpočet provádí. Zdroj Zaměstnanec VýsledekČíslo
, délka 10, přesnost 2. Právě tento zdroj bude obsahovat vypočtenou hodnotu typu výpočtu zadaného pro zaměstnance. Výsledek bude obsahovat hodnotu v rublech, která určuje parametry pro něj použitého datového typu. Rekvizity- typové číslo, délka 10, přesnost 2. Do tohoto atributu zaznamenáme počáteční údaje pro výpočet. Například pro typ výpočtu Plat zde napíšeme původní výši mzdy pro typ výpočtu Cena- procento, které by mělo být převzato z výpočtového základu pro daný typ výpočtu Držet- výše srážky v rublech.
, délka 10, přesnost 2. Právě tento zdroj bude obsahovat vypočtenou hodnotu typu výpočtu zadaného pro zaměstnance. Výsledek bude obsahovat hodnotu v rublech, která určuje parametry pro něj použitého datového typu. Naplánovat Zaměstnanec DirectoryLink.GraphsWorks. V tomto detailu uložíme rozvrh, který odpovídá zaměstnanci, kterému mzdu počítáme. Ve vlastnosti tohoto atributu Propojení s jízdním řádem nastavte měření Naplánovat registr informací Otevírací doba. Právě díky tomuto nastavení budeme moci používat různé pracovní doby pro různé zaměstnance (pětidenní, šestidenní) a při výpočtu získat pro každý rozvrh správný počet pracovních dnů.
Než budete pokračovat v konfiguraci nastavení kalkulační registr, budeme muset vytvořit dokument, který bude vytvářet pohyby podél kalkulační registr.
1.6. Dokument Mzdy
Vytvoříme nový dokument a pojmenujeme ho Časové rozlišení platu. Tento dokument by měl mít následující funkce:
- Možnost ručního zadávání poplatků;
- Formování pohybů podle kalkulační registr ;
Pojďme na kartu Data Okna nastavení vlastností dokumentu Časové rozlišení platu, rýže. 1.12. Pojďme vytvořit detaily dokumentu Registrační období Zaměstnanec Datum, datum složení - Datum.
Rýže. 1.12.
Vytvoříme sekci tabulky Časové rozlišení a srážky. Vytvoříme v něm následující detaily:
Nyní přejdeme na záložku Pohyby. Zakažme provoz drží dokument, přidáme do registrů, kterými dokument generuje pohyby, registr Časové rozlišení a srážky.
Klikněte na tlačítko Motion Builder. Otevře se okno návrháře, Obr.
1.13.
Rýže. 1.13.
Při vyplňování polí, která specifikují pravidla pro formování pohybů, je vyplníme následovně: BasePeriodStart A BasePeriodEnd Cena Konstruktor vyplňovat nebudeme. Tato pole potřebujeme pro typ výpočtu
Klikněte na tlačítko , tak je vyplníme v kódu postupu zpracování zaúčtování pro tento typ výpočtu. OK
Procedure ProcessingProcessing(Failure, Mode) //((__CONSTRUCTOR_MOVEMENT_REGISTERS // Tento fragment je vytvořen konstruktorem. // Pokud konstruktor znovu použijete, změny provedené ručně budou ztraceny!!! Pro každou TechLine Accrual a Retention from Accrual and Retention Cyklus // registr Accrual and Retention Movements (Období registrace) Movement.Employee = Accrual and Retention Line.Employee = TextLine of Accrual and Retention.Graph; = TechLine of Accrual and Retention.Chart //))__CONSTRUCTOR_MOVEMENT_REGISTERSEendProcedure
Je zřejmé, že pro každý řádek tabulkové části se vytvoří nový prvek kolekce dokumentů Časové rozlišení a retence, načež se vyplní vlastnosti nového prvku.
Upravme tento kód pro nastavení parametrů základní období pro akruální typ Cena. Za tímto účelem zkontrolujeme typ výpočtu přítomný ve zpracovávaném řádku, pokud je - Cena- nastavit parametry základní období. Umístíme následující kód do smyčky pro zpracování řádků v tabulkové části:
Pokud TechLine of Accrual and Retention.Calculation Type = Plány typů kalkulace Základní, poté Počátek základního období = Začátek měsíce (období registrace);
Movement.BasePeriodEnd=EndMonth(RegistrationPeriod); endIf; Nyní trochu pozměníme část kódu, která nastavuje začátek a konec doba platnostičasové rozlišení. V našem případě je třeba „vybavit“ pouze jeden typ časového rozlišení doba platnosti, který bude výslovně specifikován uživatelem. toto - endIf; Absentérství Časové rozlišení platu. U všech ostatních bude doba platnosti rovna jednomu měsíci - začátek období se bude shodovat se začátkem měsíce, za který se mzdy počítají, konec
If Movement.CalculationType=PlansCalculationTypes.Main.Absenteeism Then Movement.ActionPeriodStart =TexLineAccrualAndRetention.StartDate;
Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate;
Jinak Movement.ActionPeriodStart = BeginningofMonth(RegistrationPeriod);
Movement.ActionPeriodEnd = EndMonth(RegistrationPeriod); endIf; Tento kód nahradí řádky Movement.ActionPeriodStart = AccrualAndDeductionTexLine.StartDate; Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate; Po všech těchto krocích dokument při zaúčtování doplní kalkulační data do kalkulačního registru. Pojďme to zkontrolovat. Spusťte naši konfiguraci v režimu 1C:Enterprise, vytvořte nový dokument.
Mzdy Otevírací doba, vyplňte jej daty a zkontrolujte, jak se tato data projeví kalkulační registr po
provedení dokumentu Movement.ActionPeriodStart = AccrualAndDeductionTexLine.StartDate; Před vytvořením skutečného mzdového dokladu je třeba vstoupit do adresáře
alespoň pár grafů a vyplnit k nim rejstřík
Pracovní dny dle rozvrhu . Naplňme tento registr ručně např. u dvojice grafů na jeden měsíc. Na Obr. kalkulační registr 1.14 můžete vidět dokument, který jsme vyplnili, a pohyby v něm , který vytvořil po provedení, po vypracování kódu, který jsme napsali výše., který lze používat v různých režimech a pracovat s velkým množstvím dat. Podstata akce je stejná jako v našem příkladu, ale provedení je jiné.
Hlavním cílem našeho vzdělávacího příkladu je ukázat principy, kterými se řeší výpočetní úlohy, proto se zde zaměřujeme konkrétně na základní principy, aniž bychom dbali na optimálnost kódu nebo jeho výkon. Po všech těchto krocích dokument při zaúčtování doplní kalkulační data do kalkulačního registru. Pojďme to zkontrolovat. Spusťte naši konfiguraci v režimu 1C:Enterprise, vytvořte nový dokument Doplníme postup
příkaz pro záznam generovaných pohybů:
Movements.AccrualsAndDeductions.Record();
Tento příkaz musí následovat po příkazu k uzavření cyklu tvorby pohybu. Rekvizity Pojďme do kódu přidat blok výpočtu retence. V souladu s logikou dříve specifikovaných typů výpočtu zde pouze kopírujeme Pro Drží Zdroj.
PROTI
Pro každý pohyb z cyklu Movement.AccrualAndRetention If Movement.CalculationType=PlansCalculationTypes.Main.Retention Then Movement.Result=Movement.InitialData;
endIf; EndCycle; Movements.AccrualsAndDeductions.Record();
Nyní se pustíme do výpočtu platu. Pro každý pohyb z Movement.AccrualsAndDeductions Cycle If Movement.CalculationType = PlansCalculationTypes.Basic.Salary Then Plan = Movement.GetGraphData(CalculationRegisterPeriodType.ActionPeriod); Fakt = Movement.GetGraphData(CalculationRegisterPeriodType.ActualActionPeriod); kalkulační registr Movement.Result = Movement.InitialData*Act.WorkingDay/Plan.WorkingDay; endIf; EndCycle; Movements.AccrualsAndDeductions.Record(); Metoda GetDataGraphics evidence vrací data grafu ve formě tabulky hodnot a tato metoda je volána s parametrem typu Typ období registru výpočtů . Pokud to nazvete dobovým pohledem.
PeriodAction - data budou vrácena podle harmonogramu, odrážejícího v našem případě plný počet pracovních dnů. Volání metody s typem období ActualPeriodAction Pracovní den vrátí zadaná data registr informací typy výpočtu posunutí
Záznam typu Fakt umožňuje přístup k řádku v tabulce hodnot. A nahráváním
Fakt. Pracovní den
Zdroje=Nové pole(1);
Resources="AccrualsAndDeductions.Result"; Dimenze = Nová struktura ("Zaměstnanec", "AccrualsAndRetentions.Employee"); Pro každý pohyb z Movement.AccrualsAndRetentions Cycle If Movement.CalculationType=PlansCalculationTypes.Main.Premium Then DataBase=Movement.GetBase(Resources, Dimensions); Movement.Result = Movement.InitialData*BaseData.Result/100; endIf; kalkulační registr EndCycle; Movements.AccrualsAndDeductions.Record(); Nejprve si připravíme parametry, které budou předány metodě GetBase. Toto bude pole kalkulační registr (Zdroje, který v našem případě obsahuje název základního zdroje ve formátu"RegisterName.ResourceName"
. Připravujeme také strukturu Měření. Do struktury přidáme nový prvek, jehož název se shoduje s názvem kóty Dimenze = Nová struktura ("Zaměstnanec", "AccrualsAndRetentions.Employee");"Zaměstnanec" kalkulační registr) a hodnota obsahuje seznam dimenzí (ve formátu Cena"RegisterName.DimensionName" Dimenze = Nová struktura ("Zaměstnanec", "AccrualsAndRetentions.Employee");), v našem případě se jedná o jeden rozměr. Tyto údaje budou použity pro získání kalkulačního základu pro výpočet pojistného.
Ve smyčce zapisujeme do proměnné kalkulační registr Databáze Zdroj výsledky provedení metody
pro aktuální záznam
(tedy pro typ výpočtu
). Metoda
vrací tabulku hodnot, v jejíchž řádcích jsou uložena data požadovaná při volání metody.
Připomeňme si, jak se zdroj jmenuje, ve kterém jsou uloženy výsledky výpočtů - jedná se o zdroj
Výpočtové registry jsou svou strukturou podobné akumulačním registrům nebo informačním registrům. Mají stejně jako akumulační registry měření, zdroje, detaily, ale princip fungování kalkulačních registrů je úplně jiný.
Ve svém jádru slouží měření v registru akumulace jako „ filtr» v jejímž rámci získáváme data z akumulačního registru. Jako příklad vezmeme „zbytky“ podle akumulačního registru „Zbývající zboží“ v kontextu určité položky nebo „úsek nejnovější“ podle informačního registru „Platy zaměstnanců“ v kontextu určitého zaměstnance . Na rozdíl od registru akumulace slouží měření v registru periodických výpočtů k realizaci „“ (jde o případ, kdy si v intervalu doby platnosti záznamu konkurují časově rozšířené typy výpočtů, např. výpočet pracovní cesty typ nahrazuje typ výpočtu mzdy pro dobu platnosti) a „“(to je, když typ výpočtu bonusu závisí na typu výpočtu mzdy za předchozí období).
represivní mechanismus dobou působení«:
Zde vidíme, že typ výpočtu „Služební cesta“ má trvání v čase a je platný od 10. dubna do 20. dubna, „Služební cesta“ je uveden jako vytlačující typ výpočtu pro typ výpočtu „Mzda“. „Plat“ se také prodlužuje v čase a platí od 1. dubna do 30. dubna. Vzhledem k tomu, že „Služební cesta“ je uvedena jako vytěsněný typ výpočtu pro typ výpočtu „Mzda“ (má vyšší prioritu než mzda) a platí po dobu platnosti mzdy, je mzda vytlačena pracovní cestou a tvoří se „Skutečná doba platnosti mzdy.“ Skutečná doba platnosti mzdy „Jedná se o dobu platnosti mzdy po vystěhování pracovní cestou v našem případě se skládá ze 2 období - od dubna; 1 do 9. dubna a od 21. dubna do 30. dubna a celkem je 19 dní. Mechanismus vystěhování na základě období funguje pouze pro dlouhodobé výpočty.
Obrázek výše graficky znázorňuje princip „ mechanismus závislosti podle základního období«:
Řekněme, že na konci dubna 2017 chceme dát zaměstnanci bonus ve výši 10 % z jeho mzdy. Mzda je uvedena jako základní typ výpočtu bonusů.
Ale jako „základ“ pro výpočet pojistného nebudeme brát celý měsíc duben, ale pouze interval od 10. dubna do 20. dubna (11 dní). Vypočítejme základ pro bonus, plat zaměstnance je 60 000 rublů, v měsíci je 30 dní, denní plat = 60 000/30 = 2 000 rublů. Dalších 2000*11 = 22000 rublů. Základem pro výpočet pojistného je 22 000 rublů.
Vypočítejme prémii: (22000/100)*10 = 2200 rublů. Bonus ve výši 10 % z platu je 2 200 rublů.
Objekt metadat aplikace „Plán typů výpočtů“ je úzce spojen s registrem výpočtů.
Plán typů výpočtů (PVR)- objekt konfiguračních metadat, který ukládá informace o typech typů výpočtů a určuje vzájemný vliv různých výpočtů.
Jeden výpočtový typový plán lze použít v několika kalkulačních registrech, ale jeden kalkulační registr nemůže používat více plánů výpočtových typů současně.
Výpočtový registr je tabulka, ve které se ukládají vypočítaná data a z hlediska typů výpočtů jsou uloženy algoritmy pro výpočet těchto dat. Kalkulační evidence musí mít alespoň jednu evidenci dokladů, která provádí pohyby v kalkulační evidenci (např. Mzdy).
Výpočtové mechanismy v systému 1C Enterprise jsou navrženy tak, že nejprve je potřeba provést zápisy do kalkulačního registru a až poté provést výpočet na základě těchto údajů. Například není možné vypočítat bonus na základě mzdy, dokud není stejná mzda zaznamenána v registru výpočtů.
Praxe
Podívejme se blíže na kalkulační registry v praxi:
Krok 1 Začněme plánem typů výpočtů. Před vytvořením kalkulačního registru musíte vytvořit plán typu výpočtu. Plán pro výpočetní typy vytváříme před kalkulačním registrem, protože před vytvořením tabulky pro ukládání vypočtených dat (tj. kalkulačního registru) je nutné specifikovat algoritmy pro výpočet těchto dat (tj. plán pro výpočetní typy).
Vytvořme plán pro typy výpočtu „Základní poplatky“. Okamžitě přejdeme na kartu „Výpočet“. Zde okamžitě vidíme vlajku " Používá dobu platnosti", když je tento příznak nastaven, budou mít všechny typy výpočtů zahrnuté v tomto plánu délka v čase(například Mzda, Služební cesta) a také pro tento plán typů kalkulací „ represivní mechanismus dobou působení". Pokud není nastaven příznak „Použije dobu platnosti“, pak typy výpočtu nebudou mít časové prodloužení (například Bonus, Pokuta) a nebude fungovat „mechanismus přesunu podle doby platnosti“. Na této záložce jsou také sekce „Závislost na základně“ a „Základní plány pro typy výpočtů“ - slouží k implementaci „ mechanismus závislosti podle základního období“, ale o tom si povíme později. Nyní ponechme „Závislost na základně“ v režimu „Nezávislý“.
Vytvořme si předdefinovaný typ výpočtu „Mzda“. Na kartě „Základní“ je vše jednoduché. Nastavte název a kód typu výpočtu.
Díky tomu, že jsme nastavili vlajku " Používá dobu platnosti"Teď máme kartu" Přemístění"a zapnuto" dobový represivní mechanismus«.
Na této záložce označujeme typy výpočtů, které posunou mzdu podle doby platnosti (například Služební cesta).
Poznámka: v „Přemístění“ můžete přidat typy výpočtů, které patří pouze do tohoto plánu typů výpočtů.
Je tam také záložka " Přednášející»—označuje typy výpočtů, které při změně musí přepočítat aktuální typ výpočtu. Zde můžete také určit typy výpočtů z jiných plánů typů výpočtů. Například typ výpočtu „Mzda“ je hlavní typ výpočtu typu „Bonus“, tzn. Při změně platu musíme přepočítat i bonus protože Bonus se vypočítává v závislosti na platu. V tomto případě typ výpočtu „Mzda“ patří do PRP „Základní časové rozlišení“, který používá dobu platnosti, a typ výpočtu „Bonus“ patří do PRP „Dodatečné časové rozlišení“, který nepoužívá dobu platnosti.
Krok 2.Pojďme vytvořit adresář “Charts” s výchozí strukturou. V adresáři „Rozvrhy“ budeme ukládat pracovní dobu zaměstnanců (pětidenní, šestidenní atd.).
Krok 3.Potřebujeme také objekt, do kterého budeme ukládat Výrobní kalendář (pracovní dny a víkendy). Pro tyto účely využíváme neperiodický nezávislý registr informací.
Vytvořme neperiodický nezávislý informační registr „Pracovní rozvrhy“ se 2 dimenzemi „Datum“ a „Rozvrh“ a zdroj „Počet hodin“.
Díky informačnímu registru „Rozvrhy práce“ budeme schopni vypočítat mzdu ze mzdy v poměru k počtu odpracovaných dnů.
Krok 4.Vytvořte dokument „Mzdy“ s níže uvedenou strukturou podrobností:
Podrobnosti:
Operační provádění je nastaveno na „Zakázat“ protože pro mechanismus periodického zúčtování v 1C to nedává smysl - nikdy nepočítáme bonusy, platy ani pokuty v reálném čase.
Vytvoříme formulář dokumentu s výchozím nastavením.
Krok 5. Konečně jsme se dostali k bodu vytváření výpočtových registrů.
Objekt metadat kalkulačního registru se nachází v konfigurátoru ve větvi „Výpočtové registry“.
Vytvořme kalkulační registr „Základní poplatky“. Podívejme se na nastavení registru výpočtů níže:
1. V poli „Plán typů výpočtů“ uveďte „Základní poplatky“ PVR vytvořené v kroku 1.
2. Nastavte příznak „Doba platnosti“ na „True“, protože PVR specifikovaný v kroku 1 má prodloužení v čase.
Po nastavení tohoto příznaku se nám okamžitě zpřístupní standardní detaily „Action Period“, „Action PeriodStart“, „ActionPeriodEnd“, to znamená, že typy výpočtů evidované v tomto kalkulačním registru mají také délka v čase a máme přístup k " represivní mechanismus dobou působení«.
P.S. Pokud zadáte PVR, které má délka v čase pro RR s příznakem „Doba platnosti“ nastaveným na „False“, bude tento PVR fungovat jako PVR, který nemá prodloužení v čase.
3.Po nastavení příznaku „Doba platnosti“ na „True“ se nám zpřístupní pole „Graf“, „Hodnota grafu“, „Datum grafu“.
V poli „Plán“ označujeme registr informací „Pracovní rozvrhy“ vytvořený v kroku 3.
V poli „Hodnota rozvrhu“ uvádíme zdroj „Počet hodin“ v informačním registru „Pracovní rozvrhy“.
V poli „Datum rozvrhu“ uvádíme dimenzi „Datum“ registru informací „Pracovní rozvrhy“.
4. V poli „Frekvence“ uvedeme hodnotu „Měsíc“, to znamená, že údaje budou do registru vkládány měsíčně.
Níže je struktura metadat registru:
Příznak „Základní“ pro dimenzi má vliv pouze na výkon, nemusíte jej nastavovat, ale pokud tak učiníte, pole „Zaměstnanec“ bude indexováno.
Dimenze "Zaměstnanec" - používá se v " represivní mechanismus založený na době působení"A" mechanismus závislosti na základním období«.
Zdroj „Částka“ - tam bude zaznamenána vypočtená mzda.
Atribut „Graf“ je indikován jako atribut, nikoli jako dimenze registru, protože ani ono, ani ono nic nevytěsňuje – v podstatě referenční pole. Důležité!!! Nezapomeňte vyplnit pole „Schedule Link“. u atributu „Rozvrh“ musí být uvedena dimenze „Rozvrh“ informačního registru „Rozvrhy práce“, jinak se výše mzdy nevypočítá.
Atribut „Parametr“ uloží hodnotu platu.
Nyní, když jsme naznačili souvislost s MS „Pracovní rozvrhy“, spočítáme mzdu zaměstnance v poměru k počtu odpracovaných dnů.
Dokument označujeme jako registrátora " endIf;“ vytvořené v kroku 4.
Krok 6. Pohyby provádíme podle kalkulačního registru „Základní poplatky“.
Vraťme se k dokumentu „Mzdy“ vytvořenému v kroku 4.
Popišme si zpracování zaúčtování v modulu objektu dokladu:
Fragment kódu zpracování zpracování dokumentu
1C (kód)
Procedure ProcessingProcessing(Failure, Processing Mode) // registrace BasicAccruals of Movement.MainAccruals.Write = True;
Movements.MainAccruals.Clear(); Registrační období = začátek měsíce (datum); Pro každou TechLine BasicAccruals from BasicAccruals Cycle Movements = Movements.MainAccruals.Add(); Move.Reversal = False; Movement.CalculationType = TechLineMainAccruals.CalculationType; Movement.ActionPeriodStart = TechLineMainAccruals.StartDate; Movement.ActionPeriodEnd = EndDay(TexLineMainAccruals.EndDate); Movement.Registration Period = Období registrace; Movement.Employee = TechLineMainAccruals.Employee; Movement.Chart = TechStringMainAccruals.Chart; Movement.Parameter = TechStringMainAccruals.Size; EndCycle; Konec procedury Postup zpracování (selhání, režim) // Hlavní registr časového rozlišení Pohyby. Základní časové rozlišení. psát = pravda; Pohyby. Základní časové rozlišení. Clear() ; Registrační období = začátek měsíce (datum) ; |
Pro každou TechLine BasicAccrualsFrom BasicAccrualsCycle
Pohyb = Pohyby. Základní časové rozlišení. Add() ;
Hnutí. Storno= nepravda;
Hnutí. Typ výpočtu=TexLineMainAccruals. Typ výpočtu; Hnutí. PeriodActionStart = TechLineMainAccruals. Datum zahájení;
Hnutí. ActionPeriodEnd=Koncový den(TexLineMainAccruals.EndDate) ;
Hnutí. Registrační období = Registrační období;
Hnutí. Zaměstnanec = TechLineMainAccruals. Zaměstnanec;
Hnutí. Graf = TechLineMainAccruals. Naplánovat; Hnutí. Parametr = TechStringMainAccruals. Velikost; EndCycle;
Konec procedury obsahuje počet skutečně odpracovaných hodin vypočtený na základě údajů plánu
"Počet hodin akčního období" - obsahuje počet pracovních hodin vypočtený na základě údajů rozvrhu ve kalkulačním období
Postup výpočtu mezd
1C (kód)
Procedure CalculateAccruals(Registrář, Sada záznamů) Export //Požadavek na mzdu=Nový požadavek;
HQ r afika.Číslo řádku |OD |Registr výpočtů.Základní časové rozlišení. Grafická data(| Registrátor = &Registrátor | A Typ výpočtu = &Typ výpočtuPlat) AS Basic AccrualsDataGraphics"; Request.SetParameter("Registrátor", Záznamník); // předá dokument registrátorovi, aby bylo vyhledávání provedeno pouze na aktuálním dokumentu Request.SetParameter("Calculation TypeSalary", Plans of Calculation Types. Basic Accruals. Plat); //nastavíme typ výpočtu mzdy, protože vypočítat mzdu Selection=Request.Run().Select(); SearchStructure=NewStructure; SearchStructure.Insert("RowNumber",0); //vytvoří strukturu pro vyhledávání dat pro výpočet podle čísla řádku For Each Record From RecordSet Cycle //cykluje množinu záznamů aktuálního dokumentuSearch Structure.LineNumber=Record.LineNumber; //vyplňte číslo řádku pro hledání If Selection.FindNext(Search Structure) Potom //hledáme v ukázce data pro výpočet na základě aktuálního čísla řádku Record.Sum =?(Selection.HoursPlan=0.0, Selection.HoursFact /Sample.HoursPlan * Vzorkování .Parametr); //výpočet mzdy v poměru k odpracovaným dnům, v Parametr - aktuální mzda EndIf; Selection.Reset(); //resetování výběru, potřebujeme další záznam sady záznamů, abychom prohledali výběr jako první EndCycle; Recordset.Write(, True); //zapíše vypočítané záznamy do databáze, předá parametr Replace = True EndProcedure //Plat Požadavek=Nový požadavek; Žádost. Text="SELECT | ISNULL(Basic AccrualsDataGraphics.NumberofHoursActualActionPeriod, 0) AS HoursFact, |
| BasicAccrualsDataGraphics.Parameter,
Mzdy zaměstnanců společnosti jsou vypočítávány měsíčně. Všichni zaměstnanci pracují na pětidenním pracovním plánu, ale řešení musí umožňovat možnost pracovat ve více různých plánech.
Za vedení výuky na hlavním pracovišti dostávají zaměstnanci vzdělávacího podniku odměnu v hodinové sazbě. Výše tarifu se vypočítá jako tarifní sazba vynásobená počtem skutečně odpracovaných hodin. Počáteční hodnota tarifu se může změnit maximálně jednou denně, ale platí se na začátku zúčtovacího období
Zaměstnanci mohou provádět školení na místě. V tomto případě tarif za dobu školení na místě nenarůstá a časové rozlišení
zaměstnanec se skládá ze dvou částí:
Nějaká pevná částka na kompenzaci jeho nákladů na dopravu;
Časové rozlišení přímo za školení ve formě odměny, vypočtené jako celková částka plateb provedených studenty v aktuálním zúčtovacím období vynásobená určitým procentem. Procentní hodnotu lze specifikovat v dokumentu „Mzdy.
V prosinci, na konci roku, může být zaměstnancům podniku přiznána prémie jako procento z částky všech přírůstků uskutečněných za uplynulý rok. Procento bonusu je stejné pro všechny zaměstnance podniku. Procentuální hodnota je stanovena v okamžiku, kdy jsou akruální informace vloženy do informační báze.
V rámci tohoto úkolu není nutné používat mechanismus přepočtu.
Veškeré časové rozlišení se zadává pomocí dokladu „Mzdy“. Vezměte v úvahu, že všechny údaje se zadávají pouze do jednoho měsíce, např. můžete uvést časové rozlišení pro tarif od 10.01 do 31.01, ale nelze zadat záznam: tarif od 10.01 do 03.02.
Pro analýzu přírůstků provedených zaměstnancům podniku v konfiguraci je nutné poskytnout zprávu následujícího typu:
Výkaz lze generovat pro libovolné zúčtovací období. Aby bylo možné analyzovat přírůstky provedené pro školení studentů na místě, konfigurace musí poskytovat zprávu následujícího typu:
Výkaz lze generovat pro libovolné zúčtovací období.
Řešení
1. Začněme řešit výpočetní problém tím, že určíme, jaké typy časového rozlišení a odpočtů je třeba vytvořit v konfiguraci a jaké vzorce by měly být použity k získání výsledku každého typu výpočtu. Podle úkolu budeme muset vytvořit čtyři typy výpočtů:
· Časové rozlišení na školení studentů na hlavním pracovišti Výsledek = Tarifní sazba * Počet odpracovaných hodin;
Vezměte prosím na vědomí, že u ročního bonusu je okamžitě uvedena metoda výpočtu celkové částky všech přírůstků provedených za poslední rok - „Příjem základny“.
2. V další fázi u výše uvedených typů výpočtů uvedeme závislosti mezi nimi.
Tabulka č. 5.1. Nastavení závislostí posunu a základny mezi typy výpočtů potřebných k vyřešení problému
Typ výpočtu | Přemístění | Báze |
TRF | KMD | - |
TRN | - | - |
KMD | - | - |
PRM | - | TRF, TRN, KMD |
3. Vytvořme výše uvedené typy výpočtů v konfiguraci. Pojďme nastavit sekci „Výpočet“ pro každý použitý plán výpočtu;
4. Vytvořit registr osídlování;
5. Provedeme potřebné změny ve struktuře dokladu „Mzdy“;
6. Přejděme k dokumentu „Mzdy“:
A. Přidejme do registru požadovaný počet záznamů:
i. Stanovme hranice intervalů všech existujících období pro každý záznam;
ii. Uvádíme hodnoty měření a detaily registru;
b. Spočítejme si záznamy vygenerovaných sad pro primární typy výpočtu:
i. Pokud jsou zadány náklady na dopravu, výsledek časového rozlišení
určíme ihned, dle dokumentu;
ii. Kalkulace dle tarifu na hlavním pracovišti
1. Pomocí dotazovacího mechanismu pro každý záznam se zadaným typem výpočtu obdržíme údaje o odpracovaných hodinách a aktuální tarifní sazbě;
2. Cyklus organizujeme na základě záznamů soupravy. Pro každý záznam implementujeme přímé umístění na požadovaný řádek ve výběru dotazu. Spočítejme výsledek časového rozlišení;
3. Zaznamenáme sadu bez přepočítávání skutečné doby platnosti;
iii. Výpočet poplatků za odjezd
1. Vytvořme obchodovatelný registr akumulace „Plateb
posluchači“;
2. Provedeme změny v algoritmu pro zpracování dokumentu „Příjem peněz“, při kterém je nutné tento registr vyplnit;
3. Pomocí dotazovacího mechanismu získáme pro každého zaměstnance, který pracoval v terénu a který je uveden v dokumentu, údaje o platbách stážistů;
4. Cyklus organizujeme na základě záznamů soupravy. Pro každý záznam implementujeme přímé umístění na požadovaný řádek ve výběru dotazu. Spočítejme výsledek časového rozlišení;
5. Zaznamenáme sadu bez přepočítávání skutečné doby platnosti;
d. Zopakujme kroky popsané v odstavci 4 pro záznamy sekundárních typů výpočtu každé úrovně:
i. Výpočet ročního bonusu
1. Vytvořte konstantu pro uložení procenta prémie. Povolme standardně režim použití hlavní formy konstant;
2. Pomocí dotazovacího mechanismu pro každý záznam se zadaným typem výpočtu získáme data o databázi;
3. Cyklus organizujeme na základě záznamů soupravy. Pro každý záznam implementujeme přímé umístění na požadovaný řádek ve výběru dotazu. Spočítejme výsledek časového rozlišení;
4. Zapišme si množinu;
E. Přeneseme programový kód spojený s výpočtem do společného modulu;
7. Vytvořme sestavy požadované v úloze na základě dat z výpočtových registrů pomocí mechanismu skládání dat.
Spravované formuláře
| BasicAccrualsDataGraphics.Parameter,
Ve formulářích všech dokladů použitých v úloze je potřeba přidat možnost prohlížení pohybů v evidencích spojených s dokladem, jehož formulář je v daný čas otevřen.
Ve formuláři pro výběr zaměstnanců, vyvolaném z formuláře dokladu „Mzdy“, je třeba doplnit seznam vybraných zaměstnanců o informace o jejich tarifních sazbách. Při výběru zaměstnance by se ve sloupci „Velikost“ měla objevit informace o vhodné sazbě. Pro doklad „Mzdy“ je nutné vytvořit formulář hlavního seznamu, ve kterém by se pro aktuální doklad měly promítnout jím provedené záznamy do kalkulačních knih.
Řešení
1. Vytvořme základní formy dokumentů. Otevřete každý formulář v okně editoru formulářů. Na kartě „Příkazové rozhraní“ rozbalte větev „Navigační panel – Přejít“. Zaškrtněte políčka Viditelnost pro registry.
2. Vytvořme nehlavní formulář pro výběr adresáře „Jednotlivci“;
A. Provedeme potřebné změny ve struktuře registru „Informace o zaměstnancích“;
b. Vytvořme nový formulář;
C. Otevřeme paletu vlastností hlavních atributů formuláře;
d. V části „Objekt“ nastavte příznak „Vlastní požadavek“;
E. Otevřeme nastavení seznamu;
F. V textu žádosti provedeme potřebné změny;
G. Při vytváření formuláře na serveru určíme hodnoty parametrů externího požadavku;
h. Pojďme si definovat vlastní zpracování pro výběr hodnoty z vyhledávacího formuláře;
3. Zorganizujte volání formuláře adresáře z formuláře dokumentu
A. Vytvořme hlavní formulář dokumentu „Mzdy“;
b. Vytvořený adresářový formulář označujeme jako hodnotu vlastnosti „Formulář výběru“ prvku formuláře dokumentu „Basic AccrualsEmployee“;
Plány typu kalkulace- jedná se o objekty konfigurace aplikace. Používají se v mechanismu složitých periodických výpočtů a slouží k popisu typů výpočtů a jejich vzájemného ovlivňování.
Struktura
Plán typů kalkulací je seznam typů kalkulací. Každý typ výpočtu má kód, název a sadu podrobnosti obsahující další informace o tomto typu výpočtu:
Například plán typů výpočtů Základní časové rozlišení organizací může vypadat takto:
Vytváření a úpravy typů výpočtů může provádět jak vývojář (předdefinované typy výpočtů), tak uživatel při práci s aplikačním řešením. Uživatel však nemůže odstranit typy výpočtů vytvořené vývojářem.
Typy kalkulací vytvořené v typovém plánu kalkulací se mohou navzájem ovlivňovat. Systém podporuje dva typy takového vlivu: závislost podle základního období BasePeriodStart předkupní doba podle doby platnosti.
Pro každý typ výpočtu můžete zadat seznam typů výpočtu, na kterých bude záviset pro základní období a které jej nahradí po dobu platnosti.
Například typ výpočtu Výživné může záviset na základním období na takových typech výpočtu jako Plat, Denní tarif, DoplatekOsobní atd. A typ výpočtu Plat lze nahradit typem výpočtu Absentérství:
Kromě těchto závislostí lze pro typ výpočtu specifikovat tzv. vedoucí typy výpočtu - takové, na kterých přímo nezávisí, ale které jej mohou ovlivňovat prostřednictvím jiných typů výpočtů.
Typy výpočtů plánové formuláře
Aby si uživatel mohl prohlížet a měnit údaje obsažené v plánu typů výpočtů, systém podporuje několik forem jeho prezentace. Systém dokáže automaticky vygenerovat všechny potřebné formuláře; Spolu s tím má vývojář možnost vytvořit si vlastní formuláře, které systém použije místo výchozích formulářů:
Formulář seznamu
Chcete-li zobrazit typy výpočtů, použijte formulář seznamu. Umožňuje procházet seznamem, přidávat, označovat k odstranění a mazat typy výpočtů. Formulář seznamu umožňuje třídit a vybírat zobrazené informace podle několika kritérií: