Jeżeli rejestr obliczeniowy obsługuje okres ważności to wtedy. Właściwość podstawowego wymiaru rejestru obliczeniowego. Brak predefiniowanej części tabelarycznej „Podstawowe rodzaje obliczeń” dla typów obliczeń Planu typów obliczeń można wytłumaczyć faktem, że
Wyniki niektórych rozliczeń międzyokresowych i odliczeń zależą od wyników uzyskanych z innych rodzajów obliczeń. Przykładowo procentowy wzrost wynagrodzenia jest uzależniony od wysokości wynagrodzenia zasadniczego przypadającego pracownikowi. Wysokość wynagrodzenia zasadniczego w tym przypadku nazywana jest podstawą do obliczenia zasiłku, a rodzaje obliczeń składających się na podstawę nazywane są podstawowymi rodzajami obliczeń.
Podstawę oblicza się za okres bazowy określony we wpisie rejestru kalkulacyjnego. Okres bazowy to okres, za który wybierane są rozliczenia międzyokresowe z rejestru kalkulacyjnego w celu ustalenia podstawy. Okres bazowy może wynosić niecały miesiąc (np. przy obliczaniu dodatku za łączenie zawodów, jeśli połączenie trwało krócej niż miesiąc) lub kilka okresów rozliczeniowych (np. okres bazowy dla premii kwartalnej wynosi 3 miesiące).
Podstawa naliczania rozliczeń międzyokresowych obejmuje wszystkie rozliczenia międzyokresowe za okres bazowy, niezależnie od okresu rozliczeniowego, w którym zostały naliczone. Przykładowo przy obliczaniu premii za lipiec w podstawie będzie uwzględniona zarówno wypłata wynagrodzenia za pierwszą połowę lipca, naliczona w lipcu, jak i wypłata wynagrodzenia za drugą połowę lipca, zarejestrowana w sierpniu. Ta zależność od podstawowych rozliczeń międzyokresowych nazywa się zależnością od okresu ważności.
W zależności od okresu ważności, podstawę pobiera się z wyników wpisów do rejestru kalkulacyjnego, których okres ważności mieści się w okresie bazowym. Jeżeli wpis do rejestru kalkulacyjnego nie posiada okresu ważności, analizowany jest okres rejestracyjny wpisu i jeżeli mieści się on w okresie bazowym, wynik wliczany jest do bazy. Przy takiej zależności może dojść do sytuacji, gdy do okresu bazowego wpadnie tylko część okresu naliczania. Przykładowo wynagrodzenie naliczane jest za cały miesiąc, natomiast podstawę premii za łączenie trzeba ustalić dopiero za pół miesiąca. W takim przypadku podstawą premii będzie jedynie część wypłaty wynagrodzenia za liczbę dni lub godzin grafiku pracownika przypadającą na okres bazowy.
Podstawa do obliczenia potrąceń, na przykład na podstawie tytułów egzekucyjnych, jest tworzona inaczej. W bazie znajdują się wszystkie rozliczenia międzyokresowe zarejestrowane w bieżącym miesiącu, niezależnie od okresu, za który zostały naliczone. Zależność ta nazywana jest zależnością od okresu rejestracji.
Ryż. Zależność bazowa
Ryż. Częściowe przecięcie okresu bazowego i okresu ważności
W zależności od okresu rejestracji w bazie danych uwzględniane są jedynie wyniki tych zapisów rejestru obliczeniowego, których okres rejestracji mieści się w okresie bazowym.
Zależność pomiędzy wynikami rozliczeń międzyokresowych i odliczeń może być wielopoziomowa i dość złożona. Większość premii, takich jak premie za staż pracy, za zajęcia, za rozszerzenie obszarów usług, ustalana jest jako procent wynagrodzenia podstawowego naliczanego pracownikowi za przepracowany czas. Premie przewidziane w systemie wynagradzania naliczane są od kwoty wpłaty podstawowej z uwzględnieniem dodatków. Premie z kolei wliczane są do podstawy naliczania dodatku północnego, a podstawą tego ostatniego jest także płaca zasadnicza i inne dodatki pracownicze. Jeżeli po zakończeniu wszystkich obliczeń z jakiegoś powodu wynik jednego z rozliczeń międzyokresowych ulegnie zmianie, wówczas należy ponownie obliczyć wszystkie od niego zależne rozliczenia międzyokresowe.
Przykładowo, jeżeli po obliczeniu okaże się, że pracownikowi została nadana błędna stawka taryfowa i wynik wypłaty wynagrodzenia musi zostać przeliczony, wówczas należy przeliczyć wszystkie premie zależne od wypłaty wynagrodzenia, a także premie i premię północną. . Zadanie nie jest łatwe, zwłaszcza jeśli weźmie się pod uwagę, że w ogólnym przypadku wszystkie te rozliczenia międzyokresowe można zarejestrować w bazie danych informacyjnych za pomocą kilku dokumentów. Program pozwala na automatyczne monitorowanie takich sytuacji i ustalanie listy dokumentów wymagających ponownego przeliczenia. Aby skorzystać z mechanizmu, należy określić listę wiodących typów obliczeń dla każdego zależnego typu obliczenia.
Wiodące są tego typu obliczenia, w przypadku których wyniki ulegają zmianie, konieczne jest ponowne przeliczenie wyniku tego typu obliczeń.
Pojęcia podstawowych i wiodących typów obliczeń mają bardzo zbliżone znaczenie i najczęściej listy podstawowych i wiodących typów obliczeń są zbieżne, ale nie należy się ich bać.
Podstawowe to rodzaje obliczeń, które bezpośrednio wpływają na wynik tego typu obliczeń. Wiodące rodzaje obliczeń mogą nie zostać uwzględnione w bazie danych, ale mają pośredni wpływ na wynik, tj. lista wiodących rodzajów obliczeń może być szersza w porównaniu z listą podstawowych rodzajów obliczeń.
Rozbieżność między listami podstawowych i wiodących typów obliczeń zobaczymy, gdy rozważymy ustawienie obliczania średnich zarobków. Podstawę premii uwzględnianych przy obliczaniu przeciętnego wynagrodzenia pobiera się odrębnie od wynagrodzenia zasadniczego pracownika. Aby automatycznie uzyskać podstawę do premii w zakresie rodzajów naliczania wynagrodzeń Przeciętnych, istnieją specjalne rodzaje naliczania Premii uwzględnianych w ramach średnich zarobków, dla których podstawą są rodzaje naliczania premii. Kwotę premii można obliczyć jako procent innych rozliczeń międzyokresowych (wypłata według stawek taryfowych, premii do wynagrodzenia itp.), które choć nie są uwzględniane w podstawie dla rodzaju naliczenia Premie brane pod uwagę w ramach średnich zarobków, ale mają wpływ na jego wynik, dlatego znajduje się na liście wiodących rodzajów obliczeń.
Listy podstawowych i wiodących typów obliczeń konfiguruje się w formularzu zależnych typów obliczeń.
Przy ustalaniu wiodących typów obliczeń należy, podobnie jak przy ustalaniu typów obliczeń z wywłaszczaniem, kierować się zasadą: jeżeli typ obliczenia A prowadzi do typu obliczenia B, to z kolei prowadzi do typu obliczenia C , następnie do listy wiodących typów obliczeń typu C Należy uwzględnić zarówno typ obliczeń B, jak i typ obliczeń A. W przeciwnym razie program wyświetli komunikat o błędzie: „Niekompletna lista wiodących typów obliczeń!”. Na przykład, jeśli premia kwartalna jest uwzględniona na liście wiodących rozliczeń międzyokresowych, wówczas należy uwzględnić wszystkie wiodące rozliczenia międzyokresowe dotyczące premii kwartalnej, takie jak wynagrodzenie dzienne, wynagrodzenie godzinowe itp.
Ryż. Konfigurowanie podstawowych i wiodących typów obliczeń
rejestr informacyjny, który będzie zawierał wykres użyty w obliczeniach. W naszym przypadku jest to rejestr Zaplanowane dni robocze. W polu Znaczenie wykresu wybierzmy Dzień Pracy- dokładnie w tym zasobie rejestr informacyjny zostanie zapisana wartość 1, jeśli dzień jest dniem roboczym. W polu Zaplanuj datę wybierz wymiar rejestru Data.Ustawmy flagę Okres bazowy.
Ustawiane w grupie parametrów Okresowość parametr Miesiąc.
Przejdźmy do zakładki Dane. Ustawmy tutaj następujące parametry, rys.
1.11:
Ryż. 1.11. Pomiar Pracownik - typ DirectoryLink.Pracownicy , flaga Podstawowy
zainstalowany. W tym wymiarze będziemy przechowywać pracownika, dla którego wykonywane są obliczenia. Ratunek Pracownik Wynik Numer
, długość 10, dokładność 2. To właśnie ten zasób będzie zawierał wyliczoną wartość typu obliczenia określonego dla pracownika. Wynik będzie zawierał wartość w rublach, co determinuje parametry użytego dla niego typu danych. Rekwizyty- numer typu, długość 10, dokładność 2. W tym atrybucie zapiszemy dane początkowe do obliczeń. Na przykład dla typu obliczenia Wynagrodzenie napiszemy tutaj pierwotną kwotę wynagrodzenia dla rodzaju kalkulacji Nagroda- procent, jaki należy odjąć od podstawy obliczenia dla danego rodzaju obliczenia Trzymać- kwota odliczenia w rublach.
, długość 10, dokładność 2. To właśnie ten zasób będzie zawierał wyliczoną wartość typu obliczenia określonego dla pracownika. Wynik będzie zawierał wartość w rublach, co determinuje parametry użytego dla niego typu danych. Harmonogram Pracownik DirectoryLink.GraphsWorks. W tym szczególe będziemy przechowywać harmonogram odpowiadający pracownikowi, dla którego naliczamy wynagrodzenie. We właściwości tego atrybutu Połączenie z harmonogramem ustawić pomiar Harmonogram rejestr informacyjny Godziny otwarcia. To dzięki temu ustawieniu będziemy mogli zastosować różne harmonogramy pracy dla różnych pracowników (pięciodniowy, sześciodniowy) i przy obliczaniu uzyskać prawidłową liczbę dni roboczych dla każdego harmonogramu.
Przed kontynuowaniem konfiguracji ustawień rejestr obliczeniowy, będziemy musieli stworzyć dokument, który będzie tworzył ruchy rejestr obliczeniowy.
1.6. Dokument płacowy
Stwórzmy nowy dokument i nadajmy mu nazwę Naliczanie wynagrodzeń. Dokument ten powinien posiadać następującą funkcjonalność:
- Możliwość ręcznego wprowadzania opłat;
- Tworzenie ruchów według rejestr obliczeniowy ;
Przejdźmy do zakładki Dane Okna ustawień właściwości dokumentu Naliczanie wynagrodzeń, ryż. 1.12. Stwórzmy szczegóły dokumentu Okres rejestracji Pracownik Data, skład daty - Data.
Ryż. 1.12.
Utwórzmy sekcję tabeli Rozliczenia międzyokresowe i odliczenia. Stwórzmy w nim następujące detale:
Przejdźmy teraz do zakładki Ruchy. Zakażmy działania trzyma dokument, do rejestrów, za pomocą których dokument generuje ruchy, dodamy rejestr Rozliczenia międzyokresowe i odliczenia.
Kliknij przycisk Konstruktor ruchu. Otworzy się okno projektanta, rys.
1.13.
Ryż. 1.13.
Wypełniając pola określające zasady formowania ruchów, wypełnimy je w następujący sposób: Początek okresu podstawowego I Koniecokresu bazowego Nagroda Nie będziemy wypełniać konstruktora. Potrzebujemy tych pól dla typu obliczenia
Kliknij przycisk , dlatego wypełnimy je kodem procedury przetwarzania księgowania dla tego typu kalkulacji. OK
Procedura ProcessingProcessing(Failure, Mode) //((__CONSTRUCTOR_MOVEMENT_REGISTERS // Ten fragment jest budowany przez konstruktora. // Jeśli ponownie użyjesz konstruktora, zmiany wprowadzone ręcznie zostaną utracone!!! Dla każdej linii technologicznej naliczania i przechowywania z naliczania i przechowywania Cykl // rejestr ruchu naliczania i zatrzymania = Przesunięcia. Dodaj (); Okres rejestracji = Okres rejestracji; Pracownik = Linia naliczenia i odliczenia.Pracownik; Wstępne dane = Linia naliczenia i zatrzymania.InitialData; = Linia techniczna naliczania i zatrzymywania.Chart; //))__CONSTRUCTOR_MOVEMENT_REGISTERSEndProcedure
Oczywiście dla każdego wiersza części tabelarycznej tworzony jest nowy element zbioru dokumentów Ruchy i zatrzymania, po czym wypełniane są właściwości nowego elementu.
Zmodyfikujmy ten kod, aby ustawić parametry okres bazowy dla typu rozliczenia Nagroda. W tym celu sprawdzimy, jaki rodzaj obliczenia występuje w przetwarzanym wierszu, jeśli jest - Nagroda- ustawić parametry okres bazowy. Umieśćmy następujący kod w pętli przetwarzającej wiersze w sekcji tabelarycznej:
Jeśli TechLine typu naliczania i zatrzymywania = Plany typów obliczeń Podstawowy, wówczas początek okresu podstawowego = początek miesiąca (okres rejestracji);
Movement.BasePeriodEnd=EndMonth(okres rejestracji); koniecJeśli; Teraz zmieńmy nieco część kodu, która ustawia początek i koniec okres ważności rozliczenia międzyokresowe. W naszym przypadku należy „wyposażyć” tylko jeden rodzaj naliczania okres ważności, które zostaną wyraźnie określone przez użytkownika. Ten - koniecJeśli; Absencja Naliczanie wynagrodzeń. Dla wszystkich pozostałych okres ważności będzie wynosił jeden miesiąc – początek okresu będzie przypadał na początek miesiąca, za który naliczane jest wynagrodzenie, koniec
Jeśli Movement.CalculationType=PlansCalculationTypes.Main.Absenteeism then Movement.ActionPeriodStart =TexLineAccrualAndRetention.StartDate;
Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate;
W przeciwnym razie Movement.ActionPeriodStart = BeginningofMonth(RegistrationPeriod);
Movement.ActionPeriodEnd = EndMonth(RegistrationPeriod); koniecJeśli; Ten kod zastąpi linie Movement.ActionPeriodStart = AccrualAndDeductionTexLine.StartDate; Movement.ActionPeriodEnd = TechLineAccrualAndRetention.EndDate; Po wykonaniu wszystkich tych kroków dokument po zaksięgowaniu doda dane obliczeniowe do rejestru obliczeń. Sprawdźmy to. Uruchommy naszą konfigurację w trybie 1C:Enterprise, utwórz nowy dokument.
Lista płac Godziny otwarcia, wypełnij go danymi i sprawdź, jak te dane się odzwierciedlają rejestr obliczeniowy Po
wykonanie dokumentu Movement.ActionPeriodStart = AccrualAndDeductionTexLine.StartDate; Przed utworzeniem prawdziwego dokumentu płacowego należy wejść do katalogu
przynajmniej kilka wykresów i wypełnij dla nich rejestr
Dni robocze zgodnie z harmonogramem . Wypełnijmy ten rejestr ręcznie, na przykład parą wykresów za jeden miesiąc. Na ryc. rejestr obliczeniowy 1.14 możesz zobaczyć dokument, który wypełniliśmy i wykonane w nim ruchy , który wyprodukował po przeprowadzeniu, po opracowaniu kodu, który napisaliśmy powyżej., których można używać w różnych trybach i pracować z dużą ilością danych. Istota działania jest taka sama jak w naszym przykładzie, ale realizacja jest inna.
Głównym celem naszego przykładu edukacyjnego jest pokazanie zasad rozwiązywania problemów obliczeniowych, dlatego tutaj skupiamy się konkretnie na podstawowych zasadach, nie zwracając uwagi na optymalność kodu ani jego wydajność. Po wykonaniu wszystkich tych kroków dokument po zaksięgowaniu doda dane obliczeniowe do rejestru obliczeń. Sprawdźmy to. Uruchommy naszą konfigurację w trybie 1C:Enterprise, utwórz nowy dokument Dodajmy do procedury
polecenie rejestracji wygenerowanych ruchów:
Ruchy.RozliczeniaIOdliczenia.Rekord();
To polecenie musi następować po poleceniu zamykającym cykl formowania ruchu. Rekwizyty Dodajmy do kodu blok obliczania retencji. Zgodnie z logiką wcześniej określonych typów obliczeń, tutaj tylko kopiujemy Dla Trzyma Ratunek.
V
Dla każdego ruchu z cyklu Movement.AccrualAndRetention Jeśli Movement.CalculationType=PlansCalculationTypes.Main.Retention then Movement.Result=Movement.InitialData;
koniecJeśli; Koniec cyklu; Ruchy.RozliczeniaIOdliczenia.Rekord();
Teraz zacznijmy obliczać wynagrodzenie. Dla każdego ruchu z cyklu Movement.AccrualsAndDeductions Jeśli Movement.CalculationType = PlansCalculationTypes.Basic.Salary then Plan = Movement.GetGraphData(CalculationRegisterPeriodType.ActionPeriod); Fakt = Ruch.GetGraphData(CalculationRegisterPeriodType.ActualActionPeriod); rejestr obliczeniowy Movement.Result = Movement.InitialData*Act.WorkingDay/Plan.WorkingDay; koniecJeśli; Koniec cyklu; Ruchy.RozliczeniaIOdliczenia.Rekord(); Metoda PobierzDataGraphics dokumentacja zwraca dane wykresu w postaci tabeli wartości, a metoda ta jest wywoływana z parametrem typu Rodzaj okresu rejestru obliczeniowego . Jeśli nazwiesz to widokiem okresu.
OkresAkcja - zwrot danych nastąpi zgodnie z harmonogramem uwzględniającym w naszym przypadku pełną liczbę dni roboczych. Wywołanie metody z typem kropki Rzeczywista akcja okresu Dzień Pracy zwraca podane dane rejestr informacyjny rodzaje obliczeń przemieszczenia
Rekord typu Fakt umożliwia dostęp do wiersza w tabeli wartości. I nagrywając
Fakt.Dzień pracy
Zasoby=Nowa tablica(1);
Zasoby="AccrualsAndDeductions.Result"; Wymiary = Nowa struktura („Pracownik”, „AccrualsAndRetentions.Employee”); Dla każdego ruchu z cyklu Movement.AccrualsAndRetentions Jeśli Movement.CalculationType=PlansCalculationTypes.Main.Premium then DataBase=Movement.GetBase(Resources, Dimensions); Ruch.Result = Ruch.InitialData*BaseData.Result/100; koniecJeśli; rejestr obliczeniowy Koniec cyklu; Ruchy.RozliczeniaIOdliczenia.Rekord(); Najpierw przygotujemy parametry, które mają zostać przekazane do metody Pobierz bazę. To będzie tablica rejestr obliczeniowy (Zasoby, który w naszym przypadku zawiera nazwę zasobu bazowego w formacie„Nazwa rejestru. Nazwa zasobu”
. Przygotowujemy również konstrukcję Pomiary. Do konstrukcji dodajemy nowy element, którego nazwa odpowiada nazwie wymiaru Wymiary = Nowa struktura („Pracownik”, „AccrualsAndRetentions.Employee”);"Pracownik" rejestr obliczeniowy), a wartość zawiera listę wymiarów (w formacie Nagroda„Nazwa rejestru.Nazwa wymiaru” Wymiary = Nowa struktura („Pracownik”, „AccrualsAndRetentions.Employee”);), w naszym przypadku jest to jeden wymiar. Dane te posłużą do uzyskania podstawy kalkulacyjnej do wyliczenia składki.
W pętli zapisujemy do zmiennej rejestr obliczeniowy Bazy Danych Ratunek wyniki wykonania metody
dla bieżącego wpisu
(to znaczy dla typu obliczenia
). Metoda
zwraca tabelę wartości, w której wierszach przechowywane są dane wymagane podczas wywoływania metody.
Pamiętajmy, jak nazywa się zasób, w którym przechowywane są wyniki obliczeń - jest to zasób
Rejestry obliczeniowe swoją budową przypominają rejestry akumulacyjne lub rejestry informacyjne. One, podobnie jak rejestry akumulacyjne, mają pomiary, zasoby, szczegóły, ale zasada działania rejestrów obliczeniowych jest zupełnie inna.
Zasadniczo pomiary w rejestrze akumulacji służą jako „ filtr» w kontekście którego otrzymujemy dane z rejestru akumulacji. Przykładowo, gdy weźmiemy „pozostałość” według rejestru akumulacji „Pozostały towar” w kontekście określonej pozycji lub „pozostałość najnowszego” według rejestru informacyjnego „Wynagrodzenia pracowników” w kontekście konkretnego pracownika . W odróżnieniu od rejestru akumulacji, pomiary w rejestrze rozliczeń okresowych służą realizacji „” (czyli wtedy, gdy typy obliczeń rozciągniętych w czasie konkurują ze sobą w przedziale okresu ważności zapisu, czyli np. kalkulacja podróży służbowych type zastępuje typ naliczania wynagrodzenia za okres ważności) oraz „” (w tym przypadku rodzaj naliczania premii zależy od rodzaju naliczania wynagrodzenia za poprzednie okresy).
mechanizm represji według okresu działania«:
Widzimy tutaj, że typ kalkulacji „Podróż służbowa” ma czas trwania i obowiązuje od 10 kwietnia do 20 kwietnia, „Podróż służbowa” jest wskazany jako wypierający typ kalkulacji dla typu kalkulacji „Wynagrodzenie”. „Wynagrodzenie” również rozciąga się w czasie i obowiązuje od 1 kwietnia do 30 kwietnia. Ponieważ „Podróż służbowa” jest wskazana jako wypierający rodzaj kalkulacji dla typu kalkulacji „Wynagrodzenie” (ma wyższy priorytet niż wynagrodzenie) i obowiązuje przez okres ważności wynagrodzenia, to wynagrodzenie jest zastępowane przez podróż służbową i powstaje „Rzeczywisty okres ważności wynagrodzenia”. Rzeczywisty okres ważności wynagrodzenia „Jest to okres ważności wynagrodzenia po przemieszczeniu w podróż służbową, w naszym przypadku składa się z 2 okresów - od kwietnia 1 do 9 kwietnia oraz od 21 kwietnia do 30 kwietnia i łącznie wynosi 19 dni. Mechanizm eksmisji na podstawie okresu działa tylko w przypadku obliczeń długoterminowych.
Powyższy rysunek graficznie przedstawia zasadę „ mechanizm zależności według okresu bazowego«:
Załóżmy, że pod koniec kwietnia 2017 roku chcemy przyznać pracownikowi premię w wysokości 10% jego wynagrodzenia. Jako podstawowy rodzaj naliczania premii wskazywane jest wynagrodzenie.
Jednak jako „podstawę” do wyliczenia składki nie przyjmiemy całego miesiąca kwietnia, a jedynie okres od 10 kwietnia do 20 kwietnia (11 dni). Obliczmy podstawę premii, wynagrodzenie pracownika wynosi 60 000 rubli, miesiąc ma 30 dni, dzienne wynagrodzenie = 60 000/30 = 2000 rubli. Następne 2000*11 = 22000 rub. Podstawą obliczenia składki jest 22 000 rubli.
Obliczmy składkę: (22000/100)*10 = 2200 rubli. Premia w wysokości 10% wynagrodzenia wynosi 2200 rubli.
Obiekt metadanych aplikacji „Plan typów obliczeń” jest ściśle powiązany z rejestrem obliczeń.
Plan typów obliczeń (PVR)- obiekt metadanych konfiguracyjnych przechowujący informacje o rodzajach typów obliczeń i określający wpływ różnych obliczeń na siebie.
Jeden plan typów obliczeń może być używany w kilku rejestrach obliczeń, ale jeden rejestr obliczeń nie może korzystać z kilku planów typów obliczeń jednocześnie.
Rejestr obliczeniowy jest tabelą, w której przechowywane są obliczone dane, a jeśli chodzi o typy obliczeń, przechowywane są algorytmy obliczania tych danych. Rejestr obliczeń musi mieć co najmniej jednego rejestratora dokumentów, który dokonuje ruchów w rejestrze obliczeń (na przykład Lista płac).
Mechanizmy obliczeniowe w systemie 1C Enterprise są zaprojektowane w taki sposób, że najpierw trzeba dokonać wpisów do rejestru obliczeń, a dopiero potem wykonać obliczenia na podstawie tych danych. Przykładowo nie da się naliczyć premii od wynagrodzenia, dopóki to samo wynagrodzenie nie zostanie odnotowane w rejestrze kalkulacyjnym.
Praktyka
Przyjrzyjmy się bliżej rejestrom obliczeniowym w praktyce:
Krok 1 Zacznijmy od planu rodzajów obliczeń. Przed utworzeniem rejestru obliczeń należy utworzyć plan typu obliczeń. Plan typów obliczeń tworzymy przed rejestrem obliczeń, ponieważ przed utworzeniem tabeli do przechowywania danych obliczonych (czyli rejestru obliczeń) konieczne jest określenie algorytmów obliczania tych danych (czyli planu typów obliczeń).
Stwórzmy plan dla typów kalkulacji „Opłaty podstawowe”. Przejdźmy od razu do zakładki „Obliczenia”. Tutaj od razu widzimy flagę ” Używa okresu ważności", gdy ta flaga jest ustawiona, wszystkie typy obliczeń uwzględnione w tym planie będą miały długość w czasie(na przykład wynagrodzenie, podróż służbowa), a także dla tego planu typów obliczeń „ mechanizm represji według okresu działania„. Jeżeli flaga „Wykorzystuje okres ważności” nie jest ustawiona, wówczas typy kalkulacji nie będą miały przedłużenia w czasie (np. Premia, Kara) i nie będzie działał „mechanizm przesunięcia według okresu ważności”. Również na tej karcie znajdują się sekcje „Zależność od podstawy” i „Podstawowe plany typów obliczeń” - służą do wdrożenia „ mechanizm zależności według okresu bazowego„, ale porozmawiamy o tym później. Zostawmy na razie „Zależność od bazy” w trybie „Niezależny”.
Stwórzmy predefiniowany typ kalkulacji „Wynagrodzenie”. W zakładce „Podstawowe” wszystko jest proste. Ustaw nazwę i kod typu obliczenia.
Dzięki temu, że ustawiliśmy flagę” Używa okresu ważności„Mamy teraz zakładkę” Przemieszczanie" i włączyłem " okresowy mechanizm represji«.
W tej zakładce wskazujemy rodzaje naliczeń, które przesuną wynagrodzenie według okresu ważności (np. Podróż służbowa).
Notatka: w „Przemieszczaniu” możesz dodać typy obliczeń, które należą tylko do tego planu typów obliczeń.
Jest też zakładka „ Prezenterzy» – wskazuje typy obliczeń, które po zmianie muszą przeliczyć bieżący typ obliczeń. Tutaj możesz także określić typy obliczeń z innych planów typów obliczeń. Przykładowo typ kalkulacji „Wynagrodzenie” jest wiodącym typem kalkulacji „Bonus”, tj. Kiedy zmienia się wynagrodzenie, musimy również przeliczyć premię, ponieważ Premia naliczana jest w zależności od wynagrodzenia. W tym przypadku typ kalkulacji „Wynagrodzenie” należy do PRP „Podstawowe rozliczenia międzyokresowe”, który wykorzystuje okres ważności, a typ kalkulacji „Bonus” należy do PRP „Dodatkowe rozliczenia międzyokresowe”, które nie korzysta z okresu ważności.
Krok 2.Utwórzmy katalog „Charts” o domyślnej strukturze. W katalogu „Harmonogramy” będziemy przechowywać godziny pracy pracowników (pięciodniowe, sześciodniowe itp.).
Krok 3.Potrzebujemy również obiektu, w którym będziemy przechowywać kalendarz produkcji (dni robocze i weekendy). W tym celu korzystamy z nieokresowego niezależnego rejestru informacji.
Stwórzmy nieokresowy niezależny rejestr informacyjny „Harmonogramy pracy” z 2 wymiarami „Data” i „Harmonogram” oraz zasobem „Liczba godzin”.
Dzięki rejestrowi informacyjnemu „Rozkłady Pracy” będziemy mogli naliczyć wynagrodzenie z wynagrodzenia proporcjonalnie do ilości przepracowanych dni.
Krok 4.Utwórz dokument „Payroll” o strukturze szczegółów pokazanej poniżej:
Bliższe dane:
Wykonanie operacyjne jest ustawione na „Zabroń” ponieważ nie ma to sensu dla mechanizmu okresowych rozliczeń w 1C - nigdy nie naliczamy premii, wynagrodzeń ani kar w czasie rzeczywistym.
Utwórzmy formularz dokumentu z ustawieniami domyślnymi.
Krok 5. Wreszcie dotarliśmy do punktu tworzenia rejestrów obliczeniowych.
Obiekt metadanych rejestru obliczeniowego znajduje się w gałęzi konfiguratora „Rejestry obliczeniowe”.
Stwórzmy rejestr kalkulacyjny „Opłaty podstawowe”. Przyjrzyjmy się poniższym ustawieniom rejestru obliczeniowego:
1. W polu „Plan typów rozliczeń” należy wskazać PVR „Opłaty podstawowe” utworzone w kroku 1.
2. Ustaw flagę „Okres ważności” na „True”, ponieważ PVR określony w kroku 1 ma przedłużenie w czasie.
Po ustawieniu tej flagi standardowe szczegóły „Action Period”, „Action PeriodStart”, „ActionPeriodEnd” natychmiast stają się dla nas dostępne, oznacza to, że typy obliczeń zarejestrowane w tym rejestrze obliczeniowym również mają długość w czasie i mamy dostęp do „ mechanizm represji według okresu działania«.
P.S. Jeśli określisz PVR, który ma długość w czasie dla RR z flagą „Okres ważności” ustawioną na „Fałsz”, wówczas ten PVR będzie działał jak PVR, który nie ma przedłużenie w czasie.
3. Po ustawieniu flagi „Okres ważności” na „True” dostępne stają się dla nas pola „Wykres”, „Wartość wykresu”, „Data wykresu”.
W polu „Harmonogram” wskazujemy utworzony w kroku 3 rejestr informacyjny „Harmonogramy pracy”.
W polu „Wartość harmonogramu” wskazujemy zasób „Ilość godzin” w rejestrze informacyjnym „Harmonogramy pracy”.
W polu „Data harmonogramu” wskazujemy wymiar „Data” rejestru informacyjnego „Harmonogramy pracy”.
4.W polu „Częstotliwość” podajemy wartość „Miesiąc”, co oznacza, że dane będą wprowadzane do rejestru w cyklach miesięcznych.
Poniżej znajduje się struktura metadanych rejestru:
Flaga „Podstawowa” dla wymiaru wpływa tylko na wydajność; nie musisz jej ustawiać, ale jeśli to zrobisz, pole „Pracownik” zostanie zindeksowane.
Wymiar „Pracownik” – stosowany jest w „ mechanizm represji oparty na okresie działania" I " mechanizm zależności od okresu bazowego«.
Zasób „Kwota” - obliczone wynagrodzenie zostanie tam zapisane.
Atrybut „Wykres” jest wskazany jako atrybut, a nie wymiar rejestru, ponieważ ani on, ani niczego nie wypiera - zasadniczo pole odniesienia. Ważny!!! Nie zapomnij wypełnić pola „Link do harmonogramu”. przy atrybucie „Harmonogram” należy wskazać wymiar „Harmonogram” rejestru informacyjnego „Harmonogramy Pracy”, w przeciwnym razie wysokość wynagrodzenia nie zostanie naliczona.
Atrybut „Parametr” będzie przechowywać wartość wynagrodzenia.
Teraz, gdy już wskazaliśmy powiązanie z MS „Harmonogramy pracy”, obliczymy wynagrodzenie pracownika proporcjonalnie do liczby przepracowanych dni.
Wskazujemy dokument jako rejestratora ” koniecJeśli;" utworzony w kroku 4.
Krok 6. Przesunięcia wykonujemy według rejestru kalkulacyjnego „Opłaty podstawowe”.
Wróćmy do dokumentu „Payroll” utworzonego w kroku 4.
Opiszmy proces księgowania w module obiektu dokumentu:
Fragment kodu przetwarzania dokumentu
1C (Kod)
Procedura ProcessingProcessing(Failure, Processing Mode) // zarejestruj BasicAccruals of Movement.MainAccruals.Write = True;
Ruchy.MainAccruals.Clear(); Okres rejestracji = początek miesiąca (data); Dla każdego rozliczenia TechLine BasicAccruals z cyklu BasicAccruals Movement = Movements.MainAccruals.Add(); Move.Reversal = Fałsz; Movement.CalculationType = TechLineMainAccruals.CalculationType; Movement.ActionPeriodStart = TechLineMainAccruals.StartDate; Movement.ActionPeriodEnd = EndDay(TexLineMainAccruals.EndDate); Ruch.Okres Rejestracji = Okres Rejestracji; Ruch.Pracownik = TechLineMainAccruals.Employee; Movement.Chart = TechStringMainAccruals.Chart; Movement.Parameter = TechStringMainAccruals.Size; Koniec cyklu; Koniec procedury Procedura przetwarzania (awaria, tryb) // Główny rejestr rozliczeń międzyokresowych Ruchy. Podstawowe rozliczenia międzyokresowe. napisz = prawda; Ruchy. Podstawowe rozliczenia międzyokresowe. Jasne() ; Okres rejestracji = początek miesiąca (data) ; |
Dla każdego TechLine BasicAccrualsZ BasicAccrualsCycle
Ruch = ruchy. Podstawowe rozliczenia międzyokresowe. Dodać() ;
Ruch. Storno= Fałsz;
Ruch. Typ obliczenia=TexLineMainAcccruals. Typ obliczenia; Ruch. PeriodActionStart = TechLineMainAcccruals. Data rozpoczęcia;
Ruch. ActionPeriodEnd=DzieńKońca(TexLineMainAccruals.EndDate) ;
Ruch. Okres Rejestracji = Okres Rejestracji;
Ruch. Pracownik = TechLineMainAccruals. Pracownik;
Ruch. Wykres = TechLineMainAcccruals. Harmonogram; Ruch. Parametr = TechStringMainAccruals. Rozmiar; Koniec cyklu;
Koniec procedury zawiera liczbę faktycznie przepracowanych godzin obliczoną na podstawie danych harmonogramu
„Liczba godzinOkres działania” – zawiera liczbę godzin pracy obliczoną na podstawie danych harmonogramowych w okresie rozliczeniowym
Procedura naliczania wynagrodzeń
1C (Kod)
Procedura CalculateAccruals(Rejestrator, Zbiór rekordów) Eksport //Żądanie wynagrodzenia=Nowe żądanie;
Query.Text="SELECT | ISNULL(BasicAccrualsGraphicsData.NumberofHoursActualActionPeriod, 0) AS HoursFact, |BasicAccrualsGraphicsData.Parameter, | ISNULL(BasicAccrualsGraphicsData.NumberofHoursActionPeriod, 0) AS HoursPlan, |BasicAccrualsDataGr a fika.Numer wiersza |Z |Rejestr obliczeniowy.Podstawowe rozliczenia międzyokresowe. Dane graficzne(| Rejestrator = &Rejestrator | AND Typ obliczenia = &Typ obliczeniaWynagrodzenie) AS Basic AccrualsDataGraphics"; Request.SetParameter("Rejestrator", Rejestrator); // przekaż dokument rejestratorowi, aby wyszukiwanie zostało przeprowadzone tylko na bieżącym dokumencie Request.SetParameter("Typ obliczeniaWynagrodzenie", Plany typów obliczeń. Podstawowe rozliczenia międzyokresowe. Wynagrodzenie); //ustaw typ obliczania wynagrodzenia, ponieważ oblicz wynagrodzenie Selection=Request.Run().Select(); SearchStructure=NowaStruktura; SearchStructure.Insert("Numer wiersza",0); //utwórz strukturę do wyszukiwania danych do obliczeń według numeru wiersza Dla każdego rekordu z zestawu rekordów Cykl //przechodź przez zbiór rekordów bieżącego dokumentuSearch Structure.LineNumber=Record.LineNumber; //wpisz numer linii do wyszukiwania If Selection.FindNext(Search Structure) Następnie //szukamy w próbce danych do obliczeń na podstawie bieżącego numeru linii Record.Sum =?(Selection.HoursPlan=0.0, Selection.HoursFact /Sample.HoursPlan * Próbkowanie .Parametr); //oblicz wynagrodzenie proporcjonalnie do przepracowanych dni, w parametrze - aktualne wynagrodzenie EndIf; Wybór.Reset(); //zresetuj wybór, potrzebujemy następnego rekordu zestawu rekordów, aby najpierw przeszukać zaznaczenie EndCycle; Zestaw rekordów.Write(, True); //zapisz obliczone rekordy do bazy danych, przekaż parametr Zamień = True EndProcedure //Wynagrodzenie Żądanie=Nowe żądanie; Wniosek. Tekst="WYBIERZ | ISNULL(BasicAccrualsDataGraphics.NumberofHoursActualActionPeriod, 0) AS HoursFact, |
| BasicAccrualsDataGraphics.Parametr,
Wynagrodzenia pracowników firmy naliczane są miesięcznie. Wszyscy pracownicy pracują według pięciodniowego harmonogramu pracy, jednak rozwiązanie musi umożliwiać pracę w wielu różnych harmonogramach.
Za prowadzenie zajęć w głównym miejscu pracy pracownicy przedsiębiorstwa edukacyjnego otrzymują wynagrodzenie według stawki godzinowej. Kwotę naliczonej taryfy oblicza się jako stawkę taryfową pomnożoną przez liczbę faktycznie przepracowanych godzin. Wartość początkowa stawki taryfowej może ulegać zmianie nie częściej niż raz dziennie, lecz jest pobierana na początku okresu rozliczeniowego
Pracownicy mogą prowadzić szkolenia na miejscu. W takim przypadku taryfa za okres szkolenia na miejscu nie jest naliczana, a naliczana
pracownik składa się z dwóch części:
Pewna stała kwota rekompensująca koszty transportu;
Rozliczenia międzyokresowe bezpośrednio na szkolenia w formie wynagrodzenia, obliczane jako łączna kwota wpłat dokonanych przez studentów w bieżącym okresie rozliczeniowym, pomnożona przez określony procent. Wartość procentową można określić w dokumencie „Lista płac.
W grudniu na koniec roku pracownikom przedsiębiorstwa może zostać przyznana premia stanowiąca procent kwoty wszystkich rozliczeń międzyokresowych dokonanych w ciągu ostatniego roku. Procent premii jest taki sam dla wszystkich pracowników przedsiębiorstwa. Wartość procentową ustala się w momencie wprowadzenia informacji memoriałowej do bazy informacji.
W ramach tego zadania nie ma potrzeby stosowania mechanizmu przeliczeń.
Wszystkie rozliczenia międzyokresowe są wprowadzane za pomocą dokumentu „Lista płac”. Weź pod uwagę, że wszystkie dane są wprowadzane tylko w ciągu jednego miesiąca, na przykład możesz wskazać naliczenie taryfy od 10.01 do 31.01, ale nie można wprowadzić wpisu: taryfa od 10.01 do 03.02.
Aby przeanalizować rozliczenia międzyokresowe dokonane na rzecz pracowników przedsiębiorstwa w konfiguracji, konieczne jest dostarczenie raportu typu:
Raport można wygenerować za dowolny okres rozliczeniowy. Aby przeanalizować rozliczenia międzyokresowe dokonane w ramach szkolenia studentów na miejscu, konfiguracja musi udostępniać raport następującego typu:
Raport można wygenerować za dowolny okres rozliczeniowy.
Rozwiązanie
1. Rozwiązywanie problemu obliczeniowego zacznijmy od ustalenia, jakie rodzaje rozliczeń międzyokresowych należy utworzyć w konfiguracji oraz jakich wzorów należy użyć, aby uzyskać wynik każdego rodzaju obliczeń. Zgodnie z zadaniem będziemy musieli utworzyć cztery rodzaje obliczeń:
· Naliczanie opłat za szkolenie studentów w głównym miejscu pracy Wynik = Stawka taryfowa * Liczba przepracowanych godzin;
Należy pamiętać, że w przypadku premii rocznej natychmiast wskazywana jest metoda obliczenia całkowitej kwoty wszystkich rozliczeń międzyokresowych dokonanych w ciągu ostatniego roku - „Otrzymanie podstawy”.
2. W kolejnym etapie dla powyższych typów obliczeń wskażemy zależności pomiędzy nimi.
Tabela nr 5.1. Ustalenie zależności przemieszczeniowych i bazowych pomiędzy rodzajami obliczeń potrzebnych do rozwiązania problemu
Rodzaj obliczeń | Przemieszczanie | Opierać |
TRF | KMD | - |
TRN | - | - |
KMD | - | - |
PRM | - | TRF, TRN, KMD |
3. Utwórzmy powyższe typy obliczeń w konfiguracji. Skonfigurujmy sekcję „Obliczenia” dla każdego użytego planu obliczeń;
4. Tworzenie rejestrów rozliczeniowych;
5. Dokonamy niezbędnych zmian w strukturze dokumentu „Lista płac”;
6. Przejdźmy do dokumentu „Płace”:
A. Dodajmy wymaganą liczbę wpisów do rejestru:
I. Dla każdego rekordu określmy granice przedziałów wszystkich istniejących okresów;
II. Wskazujemy wartości pomiarów i dane rejestrowe;
B. Obliczmy rekordy wygenerowanych zbiorów dla podstawowych typów obliczeń:
I. Jeżeli wprowadzono koszty transportu, wynik naliczenia
ustalimy natychmiast, zgodnie z dokumentem;
II. Kalkulacja według taryfy obowiązującej w głównym miejscu pracy
1. Korzystając z mechanizmu zapytań, dla każdego rekordu z określonym typem rozliczenia otrzymamy dane o przepracowanych godzinach oraz aktualnej stawce taryfowej;
2. Cykl organizujemy w oparciu o zapisy zestawu. Dla każdego rekordu realizujemy bezpośrednie pozycjonowanie do żądanego wiersza w wyborze zapytania. Obliczmy wynik naliczenia;
3. Zestaw zapiszemy bez przeliczania faktycznego okresu ważności;
iii. Kalkulacja opłat za wyjazd
1. Stwórzmy negocjowalny rejestr kumulacji „Płatności
słuchacze”;
2. Wprowadzimy zmiany w algorytmie przetwarzania dokumentu „Odbiór pieniędzy”, podczas którego należy wypełnić ten rejestr;
3. Korzystając z mechanizmu zapytań, dla każdego pracownika, który pracował w terenie i wskazanego w dokumencie, uzyskamy dane dotyczące wpłat stażystów;
4. Cykl organizujemy w oparciu o zapisy zestawu. Dla każdego rekordu realizujemy bezpośrednie pozycjonowanie do żądanego wiersza w wyborze zapytania. Obliczmy wynik naliczenia;
5. Zestaw zapiszemy bez przeliczania faktycznego okresu ważności;
D. Powtórzmy kroki opisane w paragrafie 4 dla zapisów drugorzędnych typów obliczeń na każdym poziomie:
I. Obliczanie premii rocznej
1. Utwórz stałą do przechowywania procentu składki. Włączmy domyślnie tryb używania głównej postaci stałych;
2. Wykorzystując mechanizm zapytań, dla każdego rekordu z określonym rodzajem obliczeń uzyskujemy dane w bazie danych;
3. Cykl organizujemy w oparciu o zapisy zestawu. Dla każdego rekordu realizujemy bezpośrednie pozycjonowanie do żądanego wiersza w wyborze zapytania. Obliczmy wynik naliczenia;
4. Zapiszmy zbiór;
mi. Przenieśmy kod programu związany z obliczeniami do wspólnego modułu;
7. Zbudujmy raporty wymagane w zadaniu w oparciu o dane z rejestrów obliczeniowych, wykorzystując mechanizm kompozycji danych.
Formularze zarządzane
| BasicAccrualsDataGraphics.Parametr,
W formularzach wszystkich dokumentów wykorzystywanych w zadaniu należy dodać możliwość przeglądania ruchów w rejestrach powiązanych z dokumentem, którego formularz jest w danym momencie otwarty.
W formularzu wyboru pracowników, wywoływanym z formularza Dokument „Wynagrodzenie”, listę wybranych pracowników należy uzupełnić o informację o ich stawkach taryfowych. Przy wyborze pracownika w kolumnie „Wielkość” powinna pojawić się informacja o odpowiedniej stawce. W przypadku dokumentu „Lista płac” konieczne jest utworzenie formularza listy głównej, w którym dla bieżącego dokumentu powinny zostać odzwierciedlone wpisy dokonane przez niego w rejestrach rozliczeniowych.
Rozwiązanie
1. Stwórzmy podstawowe formy dokumentów. Otwórzmy każdy formularz w oknie edytora formularzy. Na karcie „Interfejs poleceń” rozwiń gałąź „Panel nawigacji - Przejdź”. Ustaw pola wyboru Widoczność dla rejestrów.
2. Stwórzmy inny niż główny formularz wyboru katalogu „Osoby”;
A. Dokonamy niezbędnych zmian w strukturze rejestru „Informacje o pracownikach”;
B. Stwórzmy nowy formularz;
C. Otwórzmy paletę właściwości głównych atrybutów formularza;
D. W sekcji „Obiekt” ustaw flagę „Żądanie niestandardowe”;
mi. Otwórzmy ustawienia listy;
F. Wprowadzimy niezbędne zmiany w treści żądania;
G. Tworząc formularz na serwerze ustalimy wartości parametrów żądania zewnętrznego;
H. Zdefiniujmy własne przetwarzanie wyboru wartości z formularza wyszukiwania;
3. Zorganizuj wywoływanie formularza książki telefonicznej z formularza dokumentu
A. Stwórzmy główną formę dokumentu „Lista płac”;
B. Utworzony formularz katalogowy wskazujemy jako wartość właściwości „Formularz wyboru” elementu formularza dokumentu „Basic AccrualsEmployee”;
Plany typu obliczeniowego- są to obiekty konfiguracyjne aplikacji. Wykorzystywane są w mechanizmie złożonych obliczeń okresowych i służą do opisu rodzajów obliczeń oraz ich wzajemnego wpływu.
Struktura
Plan rodzajów obliczeń jest listą typów obliczeń. Każdy rodzaj obliczeń ma kod, nazwę i zestaw bliższe dane zawierający dodatkowe informacje na temat tego typu obliczeń:
Na przykład plan typów obliczeń Podstawowe rozliczenia międzyokresowe organizacji może wyglądać tak:
Tworzenie i edycja typów obliczeń może być wykonywana zarówno przez programistę (predefiniowane typy obliczeń), jak i przez użytkownika podczas pracy z rozwiązaniem aplikacyjnym. Użytkownik nie może jednak usunąć typów obliczeń utworzonych przez programistę.
Typy obliczeń utworzone w planie typów obliczeń mogą na siebie wpływać. System obsługuje dwa rodzaje takiego wpływu: zależność według okresu bazowego Początek okresu podstawowego wykup według okresu ważności.
Dla każdego rodzaju kalkulacji można określić listę typów kalkulacji, od których będzie ona uzależniona dla okresu bazowego, a które zastąpią ją w okresie ważności.
Na przykład typ obliczenia Alimenty może zależeć od okresu bazowego na takich rodzajach obliczeń jak Wynagrodzenie, Taryfa dzienna, Dodatkowa płatnośćOsobista itp. I rodzaj obliczeń Wynagrodzenie można zastąpić typem obliczenia Absencja:
Oprócz tych zależności dla danego rodzaju obliczeń można określić tzw. wiodące typy obliczeń - takie, od których nie zależy bezpośrednio, ale które mogą na nie wpływać poprzez inne typy obliczeń.
Typy obliczeń, formularze planów
Aby użytkownik mógł przeglądać i zmieniać dane zawarte w planie typów obliczeń, system obsługuje kilka form ich prezentacji. System może automatycznie wygenerować wszystkie niezbędne formularze; Wraz z tym programista ma możliwość tworzenia własnych formularzy, z których system będzie korzystał zamiast formularzy domyślnych:
Formularz listy
Aby wyświetlić typy obliczeń, użyj formularza listy. Umożliwia poruszanie się po liście, dodawanie, zaznaczanie do usunięcia i usuwanie typów obliczeń. Formularz listy umożliwia sortowanie i selekcję wyświetlanych informacji według kilku kryteriów: